1、软件测试的定义
软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。通常对软件测试的定义有三种描述:
-
软件测试是为了发现错误而执行程序的过程。
-
软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。
-
IEEE对软件测试的定义为:使用人工和自动手段来运行或测试某个系统的过程,其目的在于检测它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
2、软件测试的基本问题
- 软件生命周期:一个软件生命周期包括制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用等8个阶段。
- 软件测试的对象:
- 软件测试不等于程序测试。
- 软件测试贯串于软件定义和开发的整个过程。
- 软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。
3、软件测试的目的
(1)测试是程序的执行过程,目的在于发现错误;不能证明程序的正确性,除非仅处理有限种情况。
(2)检查系统是否满足需求也是测试的期望目标。
(3)一个好的测试用例在于发现了还未曾发现的错误;一次成功的测试则是发现了错误的测试。
注意:测试无法说明错误不存在,只能说明软件错误已出现。
4、软件测试的原则
(1)尽早地和及时地测试;
(2)测试用例应当由测试数据和与之对应的预期结果这两部分组成;
(3)在程序提交测试后,应当由专门的测试人员进行测试;
(4)测试用例应包括合理的输入条件和不合理的输入条件;
(5)严格执行测试计划,排除测试的随意性;
(6)充分注意测试当中的群体现象;
(7)应对每一个测试结果做全面的检查;
(8)保存测试计划、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料。
5、软件测试的分类
软件测试按照不同的划分方法,有不同的分类:
- 按照软件测试用例的设计方法而论,软件测试可以分为白盒测试法和黑盒测试法。
- 按照软件测试的策略和过程来分类,软件测试可分为单元测试、集成测试、系统测试、验证测试和确认测试。
6、测试停止的依据(标准)
- 第一类标准:测试超过了预定时间,则停止测试。
- 第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试。
- 第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础。
- 第四类标准:正面指出停止测试的具体要求,即停止测试的标准可定义为查出某一预订数目的故障
- 第五类标准:根据单位时间内查出故障的数量决定是否停止测试。