1.软件质量

article/2025/9/17 10:18:04

一、软件质量

什么是质量

定义:影响产品或服务满足给定需求的能力的特性和特性的总和。

质量来自:

  • 客户的观点是否适合使用或其他客户需求
  • 生产者观点满足要求

软件质量

定义:软件符合质量标准的程度。

Prevention is better than cure

软件质量包括过程和质量

质量保证与工作流程有关

质量保证关于产品


一些定义

二、软件测试

软件缺陷

Error 错误:发生在编写程序的过程中。

Fault 故障 :是一个或多个错误的表现。

Failure 失效:当执行错误的代码段导致传播到程序输出的错误状态时,就会发生这种情况。

Incident 事故:发生故障时不显示任何消息。

软件缺陷定义

  • 不符合用户期望(期望)
  • 软件功能可能无法正确执行
  • 各种软件问题 例如,不一致,用户界面故障
  • 软件缺陷=Bug

缺陷来源

  • 需求定义
  • 设计
  • 执行
  • 支持系统
  • 软件测试不充分
  • 升级

缺陷何时发生

  • 软件没有做规范要求它应该做的事情
  • 软件做了一些规范说它不应该做的事情
  • 该软件做了一些规范没有提到的事情
  • 该软件不会执行产品规范未提及但应该执行的操作
  • 软件难懂、难用、慢……

正确程序

  • 没有语法错误
  • 运行过程中无明显错误
  • 没有不当言论
  • 有效输入 - 正确输出
  • 无效输入 - 正确输出
  • 任何可能的输入 - 正确的输出

软件测试的历史

image-20211108100824990

软件测试定义

  • 软件测试是有计划的、系统的必不可少的步骤
  • 这是一项实证调查,旨在为利益相关者提供有关被测产品或服务质量的信息
  • 我们可以知道用户的期望是否实现
  • 软件测试是软件质量保证的关键步骤

通过手动或自动方式对系统或系统组件进行演练或评估的过程,以验证其是否满足特定要求或识别预期结果与实际结果之间的差异。

注意:软件测试的本质功能是验证和确认

验证(Verification):软件应符合其规范(我们构建的产品是否正确?)

​ 确定软件开发周期给定阶段的产品是否满足前一阶段建立的要求的过程。

确认(Validation):软件应该做用户真正需要的事情(我们正在构建正确的产品吗?)

​ 在软件开发过程结束时评估软件以确保符合软件需求的过程。

test和debug的区别:

testdebug
自动测试手动操作
可以不知道细节必须知道细节
正确性证明和处理错误仅正确性证明
检查推理
计划,在控制中不在控制中

根据 G.J.Myers 的观点,软件测试的目的:

  • 查找软件错误
  • 降低软件不起作用的风险

测试的类型

  • C1:按照测试生成的来源

image-20211108210726436
  • C2:进行测试的生命周期阶段

image-20211108210748450
  • C3:按照特定测试活动的目标

image-20211108210818839
  • C4:按照被测对象的特征

image-20211108210835849 image-20211108210917476
  • C5:按照测试过程模型

  1. Testing in waterfall model(瀑布模型)

    缺点:不能对上一步的模型进行调整

image-20211108211408080
  1. Testing in V-model(V 模型)

    在开发周期的每个阶段显式地指定测试活动

    image-20211108211548589
  2. Spiral testing(螺旋测试)

    应用于软件增量时,每个增量都可能是最终将应用程序交付给客户的原

    型。

    image-20211108211819489
  3. Agile testing(敏捷测试)
    • 从需求阶段开始,在整个开发项目中都包含与测试相关的活动
    • 与指定测试要求的客户合作
    • 测试人员和开发人员必须相互合作,而不是充当对手
    • 经常进行小块测试
  4. Test-driven development (测试驱动开发,TDD)

    ​ Requirements specified as tests

三、软件测试规则

  • 尽早测试并经常测试
  • 集成应用程序开发和测试生命周期
  • 形式化测试方法
  • 制定全面的测试计划
  • 使用静态和动态测试

  • 定义您的预期结果
  • 了解应用程序背后的业务原因
  • 使用多个级别和类型的测试
  • 审查和检查工作,它会降低成本
  • 不要让你的程序员检查他们自己的工作

测试通过规则

  • 是否执行所有测试用例
  • 功能设计是否完成
  • 我们是否得到足够的错误

什么是测试用例

如果系统根据其规范运行,则用于测试系统的输入和来自这些输入的预测输出。

测试用例生成规则

  • 避免模糊的测试用例
  • 类似的功能应该被抽象和分类
  • 避免复杂的测试用例

软件测试员的能力

  • 技术能力
  • 沟通能力
  • 怀疑
  • 自信
  • 耐心
  • 分析能力
  • 合作

http://chatgpt.dhexx.cn/article/4jNcZdK5.shtml

相关文章

软件质量的定义及其六大特性(质量模型)

1、软件质量的定义 软件质量是软件特性的综合,指软件满足规定或潜在用户需求的能力,其主要从内部质量、外部质量、使用质量和过程质量这四个方面来衡量。 2、软件质量模型 测度与度量:在软件质量中用于测量的一种量化的标度和方法即为测度…

软件缺陷与软件质量

** 一、 软件缺陷 ** 1、软件缺陷 BUG Bug这 个词在计算机世界表示计算机程序中的错误或者 疏漏,它们会使程序计算出莫名其妙的结果,甚 至引起程序的崩溃。 缺陷的识别 什么是缺陷 不符合设计要求 • 不满足用户确定需求 注意 两个观点 • 有些问题…

软件质量概述篇

软件产品与其他产品一样,都是有质量要求的,软件质量关系着软件使用程度与使用寿命,一款高质量的软件更受用户欢迎,它除了满足客户的显式需求之外,往往还满足了客户隐式需求。下面分别从软件质量的概念、软件质量模型、…

软件测试学习中的一些有用网站

作为小白,在学习软件测试过程中遇到的一些比较有用的公众号、网站,做一总结分享出来,后面也会及时更新里面的内容。 1.公众号:搜狗测试、软件测试资源分享 2.博客/论坛:51testing论坛,CSDN一些博客 3.小…

软件测试该怎么自学?

众所周知,软件测试是IT技术岗位中技术入门门槛最低的,因此许多计算机零基础的小白会选择测试行业。虽然,大家都说测试很简单,但是对于完全没有基础的初学者来讲,想要学好测试也并不简单。下面我们就来看看,…

刚入行的软件测试工程师如何自学软件测试?

从题干上看,你是已经进入了软件测试行业,有了一份软件测试的工作,那表示你看好这个行业,有意愿在这个行业持续发展。 软件测试相对一些开发的专业来说,需要了解的东西特别多,拿一些招聘简章中的要求来看&am…

软件测试自学好还是培训好?软件测试自学与培训的优劣势对比

随着移动互联网行业的火爆,软件测试行业成了香饽饽。一大批想要学习软件测试的新手都经历过这样的迷茫期,软件测试自学好还是报培训班好? 首先,如果你对软件测试行业真的感兴趣,从此工具为乐,代码为生。我…

自学软件测试,该读些什么书籍?

大家好,我是谭叔。 最近,有不少准备转行软件测试的网友询问我应当阅读些什么书籍。这一问让我想起几年前,我准备转行时的场景——那时,迷茫的我真的好期待有一位老师能带带我,告诉我该怎么学习,该阅读哪些…

软件测试技能图谱|自学测试路线图

很多新手,不知道软件测试学习该如何开始,软件测试需要掌握哪些知识。下面是根据本人的理解,粗略整理的一个学习大纲,希望对刚入行或者准备学习测试的朋友提供一点指引。 — 1 — 测试基础理论 软件测试基础理论是软件测试的重要…

自学软件测试怎么样,有前景吗?

做测试有没有前景呢?这是大家最关心的一个问题,但其实测试岗和任何岗位一样,都有其天花板、有其挑战也有其发展前途。 一、天花板和挑战 随着人工智能的发展,测试也越来越实现半自动化操作了。所以,很多大公司将测试岗位外包&a…

自学软件测试需要多久?能掌握吗?

自学软件测试需要多久?如果参加培训班学软件测试需要5-6个月,自学软件测试时间长短因人而异,与学习资料及个人的毅力有关,排除资料问题假设能够弄到靠谱的资料然后开始自学,按照制定好的学习计划走至少需要5个月。 自…

软件测试培训分享:软件测试自学能找到工作吗

软件测试技术虽然不是很难,但对于零基础的同学来说,想要自学软件测试难度还是很大的,而且会在后面找工作的时候比较困难,下面小编就为大家具体的介绍一下软件测试自学能找到工作吗? 软件测试自学能找到工作吗?软件测试的工作本质…

软件测试自学网站推荐_四大适合年轻人自学的网站!知乎超100万人推荐,自学改变人生...

在这个互联网时代,想要学点什么东西,上网搜一搜就有,但网上的资源五花八门,看得人眼花缭乱,想要找到高质量又免费的自学资源还真不是见容易的事!不过别着急,今天就来跟大家分享几个质量杠杠的自…

零基础怎么自学软件测试?分享五个宝藏网站,自学简直不要太轻松了

虽说入行门槛低,但软件测试涉及的技术知识可不少,求学之路不是容易的事,因此很多朋友纷纷吐槽——​​​​​​​ .没有导师,不知道从哪里开始学起;.学习过程中遇到困难,自己无法解决,最终放弃…

自学软件测试最常用的七个网站!建议收藏

前言 不知道大家有没有发现一个现象,技术行业更新换代的速度,远远快于我们追赶的脚步,两三年前,只需要掌握基础的软件测试技术,会一些功能测试,就可以找到一份不错的工作,但是从2021年来看&…

机器学习模型——回归模型

目录 线性回归特点最小二乘法代码实现 多项式回归特点 岭回归特点:共线性collinearity优化函数代码实现 套索回归Lasso岭回归和套索回归对比代码实现 弹性回归网络特点: 线性回归 线性回归指的是全部由线性变量组成的回归模型特点 建模速度快、对每个变…

机器学习基础:模型评估(上)

目录 1. 什么是一个优秀的分类器 2. 选择测试数据集 2.1 切分训练测试集 2.1.1 简单随机划分(random handout) 2.1.2 留一法(leave-one-out) 2.1.3 留一法交叉验证(leave-one-out cross validation) …

【零基础强化学习】强化学习中的有模型和无模型

递归与动态规划🤔 写在前面关于Planning 与 Learning关于有模型和无模型写在最后谢谢点赞交流!(❁◡❁) 更多代码: gitee主页:https://gitee.com/GZHzzz 博客主页: CSDN:https://blog.csdn.net/gzhzzaa 写在前面 作…

【机器学习】哪些模型可以解释?

模型解释是有监督机器学习中的一项重要任务。解释模型对于理解支配数据的动态至关重要。让我们看看一些易于解释的模型。 为什么我们需要解释我们的模型? 数据科学家的角色是从原始数据中提取信息。他们不是工程师,也不是软件开发人员。他们挖掘内部数据…

机器学习建模

文章目录 1.机器学习模型概述1.1 模型与算法1.2 机器学习中的三要素1.3 机器学习模型 2.传统机器学习模型(单模型)2.1 按任务类型划分2.1.1 分类2.1.2 回归 2.2 按性质划分2.2.1 非概率模型(决策函数)2.2.2 概率模型 2.3 按知识体…