目录
内容说明
结合章节内容重点难点,会对重要知识点进行扩展,以及做示例说明等,以便更好理解重点难点;
一、软件缺陷的概念
一般看来,满足以下的任意一种情况都可以称为软件缺陷:
(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类标准:根据单位时间内查出故障的数量决定是否停止测试。