1、软件测试的定义
软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。通常对软件测试的定义有两种描述:
定义1:软件测试是为了发现错误而执行程序的过程。
定义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。
测试:所谓测试的含义,首先是一项活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,结果将被观察和记录,并对系统或组成部分进行评价。测试活动有两种结果:找出缺陷和故障,或显示软件执行正确。测试是一个或多个测试用例的集合。
测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。
测试步骤:测试步骤详细规定了如何设置、执行、评估特定的测试用例。
软件测试的基本问题
软件生命周期:一个软件生命周期包括制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用等8个阶段。
软件测试的对象:
● 软件测试不等于程序测试。
● 软件测试贯串于软件定义和开发的整个过程。
● 软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。
软件测试在软件生命周期中横跨两个阶段:
***个阶段:单元测试阶段,即在每个模块编写出以后所做的必要测试。
第二个阶段:综合测试阶段,即在完成单元测试后进行的测试,如集成测试、系统测试、验收测试。
软件测试涉及的关键问题包括四个方面:
(1)测试由谁来执行。
(2)测试什么。
(3)什么时候进行测试。
(4)怎样进行测试。
2、软件测试的基本理论
2.1 软件测试的目的
(1)测试是程序的执行过程,目的在于发现错误;不能证明程序的正确性,除非仅处理有限种情况。
(2)检查系统是否满足需求也是测试的期望目标。
(3)一个好的测试用例在于发现了还未曾发现的错误;一次成功的测试则是发现了错误的测试。
注意:测试无法说明错误不存在,只能说明软件错误已出现。
2.2 软件测试的原则
(1)尽早地和及时地测试;
(2)测试用例应当由测试数据和与之对应的预期结果这两部分组成;
(3)在程序提交测试后,应当由专门的测试人员进行测试;
(4)测试用例应包括合理的输入条件和不合理的输入条件;
(5)严格执行测试计划,排除测试的随意性;
(6)充分注意测试当中的群体现象;
(7)应对每一个测试结果做全面的检查;
(8)保存测试计划、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料。
2.3 软件测试的分类
软件测试按照不同的划分方法,有不同的分类:
按照软件测试用例的设计方法而论,软件测试可以分为白盒测试法和黑盒测试法。
按照软件测试的策略和过程来分类,软件测试可分为单元测试、集成测试、系统测试、验证测试和确认测试。
2.4 测试信息流程
测试信息流程如图1-2所示。测试过程中需要三类输入:软件配置、测试配置和测试工具。
图-测试信息流程
2.5 软件测试的周期性
软件测试的周期性是“测试->改错->再测试->再改错”这样一个循环过程,如下图所示。
图-软件测试的周期性
2.6 测试停止的依据(标准)
***类标准:测试超过了预定时间,则停止测试。
第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试。
第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础。
第四类标准:正面指出停止测试的具体要求,即停止测试的标准可定义为查出某一预订数目的故障。
第五类标准:根据单位时间内查出故障的数量决定是否停止测试。
【编辑推荐】