软件测试第1章 软件缺陷、质量模型、测试的充分性

目录

一、软件缺陷的概念

二、软件缺陷的生命周期

三、软件质量模型与软件测试相关特性

1、软件质量模型

2、测试的复杂性和经济性

四、软件测试充分性和测试停止准则

1、测试充分性准则

2、测试数据集充分性公理

3、软件测试的原则

4、测试停止准则


内容说明

结合章节内容重点难点,会对重要知识点进行扩展,以及做示例说明等,以便更好理解重点难点;

一、软件缺陷的概念

一般看来,满足以下的任意一种情况都可以称为软件缺陷:

(1)软件未达到产品说明书中标明的功能。 

(2)软件出现了产品说明书中指明的不应该出现的功能。 

(3)软件功能超出了产品说明书中指明的范围。 

(4)软件未达到产品说明书中指明的应达到的目的。 

(5)软件难以理解和使用、运行速度慢或最终用户认为不好。

二、软件缺陷的生命周期

确定的软件缺陷生命周期保证了测试过程的标准化,软件缺陷在其生命周期内会处于许多不同的状态:

三、软件质量模型与软件测试相关特性

1、软件质量模型

  • 软件质量是软件的生命,它直接影响软件的使用和维护。通常从以下几个方面评价软件质量的优劣。
软件需求是衡量软件质量的基础,不符合需求的软件就不具备质量。设计的软件应在功能、性能等方面都符合要求,并能可靠地运行。
软件结构良好,易读、易于理解,并易于修改、维护。
软件系统具有友好的用户界面,便于用户使用。
软件生存周期中各阶段文档齐全、规范,便于配置、管理。
  • 如何评定一个软件呢?

最通用的一个规范就是使用ISO/IEC 9126-1991标准规定的软件质量度量模型。它不仅对软件质量做了定义,还涉及整个软件测试的一些规范流程和测试计划的撰定、制订以及测试用例的设计。

其中对质量特性和质量子特性做如下详细说明:

功能性:是指当软件在指定条件下使用时,软件产品满足明确和隐含的功能的能力。

① 适合性:是指软件产品与指定的任务和用户目标提供一组合适的功能的能力。

② 准确性:是指软件产品具有所需精确度的正确或相符的结果及效果的能力。

③ 互操作性:是指软件产品与一个或多个规定系统进行交互的能力。

④ 安全性:是指软件产品保护信息和数据的能力,以使未授权的人员或系统不能阅读、修改这些信息和数据,但不拒绝授权人员或系统对其的访问。

⑤ 依从性:是指软件产品遵循与同功能性相关的标准、约定或法规,以及类似规定的能力。

可靠性:是指当软件在指定条件下使用时,软件产品维持规定的性能级别的能力。

① 成熟性:是指软件产品避免因软件中错误发生而导致失效的能力 

② 容错性:是指在软件发生故障或违反指定接口的情况下,软件产品维持规定的性能级别的能力。

③ 易恢复性:是指在失效发生的情况下,软件产品重建规定的性能级别并恢复受直接影响的数据的能力。

④ 依从性:是指软件产品遵循与同可靠性相关的标准、约定或法规,以及类似规定的能力。

可维护性:是指软件产品可被修改的能力,修改可能包括修正、改进或软件适应环境、需求和功能规格说明中的变化。

① 易分析性:是指软件产品诊断软件中的缺陷或失效原因,以及判定待修改部分的能力。

② 稳定性:是指软件产品避免由于软件修改而造成意外结果的能力。

③ 易改变性:是指软件产品使指定的修改可以被实现的能力。

④ 易测试性:是指软件产品使已修改软件能被确认的能力。

⑤ 依从性:是指软件产品遵循与同维护性相关的标准或约定的能力

2、测试的复杂性和经济性

测试的复杂性:软件测试是一项复杂而艰巨的任务,需要系统地学习、训练和实践。

       如果希望利用黑盒测试方法查出软件中的所有故障,只能采用穷举输入测试。所谓穷举输入测试,就是把所有可能的输入全部都用作测试输入。

      黑盒穷举测试不现实,那么,另一种常用的测试方法白盒测试是否可以做到穷举测试呢?然而,程序的路径数量可能是个天文数字

      即使程序中每条路径都测试过了,仍不能保证程序没有故障,原因有以下3点。

(1)穷举路径测试不能保证程序实现符合规格说明的要求。例如,如果要求编写升序排序程序,结果程序被错误地编写成降序排序程序。这时,穷举路径测试是毫无用处的。

(2)穷举路径测试不可能查出程序中因遗漏路径而出现的错误。

(3)穷举路径测试可能发现不了有关数据的故障。

艾兹格·迪杰斯特拉(E.W.Dijkstra)的一句名言对测试的不彻底性做了很好的注释:“软件测试只能证明故障的存在,但不能证明故障不存在”。

四、软件测试充分性和测试停止准则

测试充分性问题是软件测试的另一个重要问题

1、测试充分性准则

2、测试数据集充分性公理

3、软件测试的原则

  • 完全测试程序是不可能的

  • 软件测试是有风险的

  • 测试无法找到隐藏的软件故障

       通过软件测试可以查找并报告发现的软件故障,但是不能保证软件故障全部被找到,也无法报告隐藏的软件故障。继续测试,可能还会发现一些软件故障。

  • 存在的故障数量与发现的故障数量成正比

  • 杀虫剂现象

  • 并非所有软件故障都能修复

  • 一般不要丢弃测试用例
  • 应避免测试自己编写的程序

  • 软件测试是一项复杂且具有创造性的和需要高度智慧的挑战性任务

4、测试停止准则

第1类标准:测试超过了预定的时间,停止测试。
第2类标准:执行了所有测试用例但没有发现故障,停止测试。
第3类标准:使用特定的测试用例方法作为判断测试停止的基础。
第4类标准:正面指出测试完成的要求,如发现并修改70个软件故障。
第5类标准:根据单位时间内查出故障的数量决定是否停止测试。
  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多则惑少则明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值