文档介绍:软件测试的目标
第一页,共63页
软件测试在软件生命周期中横跨两个阶段。软件测试包括两种:
单元测试——模块的编写者和测试者是同一个人
综合测试——由专门的测试人员承担
软件测试的工作量往往占软件开发总工作量的40%以上
第二页,共63页
基本概念
软件测试的目标
(1)测试是为了发现程序中的错误而执行程序的过程;
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;
(3)成功的测试是发现了至今为止尚未发现的错误的测试。
测试的定义——为了发现程序中的错误而执行程序的过程。
第三页,共63页
测试目标决定了测试方案的设计。如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。
由于测试的目标是暴露程序中的错误,因此由程序的编写者自己进行测试是不恰当的。因此,在综合测试阶段通常由其他人员组成测试小组来完成测试工作。
第四页,共63页
测试不能证明错误不存在,只能表示软件错误已经出现。
测试决不能证明程序是正确的。即使经过了最严格的测试之后,仍然可能还有没被发现的错误潜藏在程序中。测试只能查找出程序中的错误,不能证明程序中没有错误。
第五页,共63页
测试原则
所有的测试都应追溯到用户需求。
应在测试工作真正开始的前较长时间内就进行测试计划。(测试计划可在设计模型一完成就开始,详细测试方案定义可在设计模型被确定后立即开始)
穷举测试是不可能的。
为达到最佳效果,应由独立的第三方来构造测试。
第六页,共63页
可测试性
软件的可测试性就是一个计算机程序能够被测试的容易程度。
可测试性特征:
可操作性“运行得越好,被测试的效率越高”
可观察性。“你所见的即为你所测试的”
可控制性。“对软件控制越好,测试越能够被自动执行与优化”
可分解性。“通过控制测试范围,能更快的分界问题,执行更灵巧的再测试”
简单性。“需测试的内容越少,测试速度越快”
稳定性。“改变越少,对测试的破坏越小”
易理解性。“得到的信息越多,进行的测试越灵巧”
第七页,共63页
“好”测试的属性
一个好测试发现错误的可能性很高。
一个好测试并不冗余。(每个测试都该有不同的用途)
一个好测试应该是一组目的相似的测试中最佳的,最可能找到所有错误的测试。
一个好测试既不会太简单,也不会太复杂。
第八页,共63页
黑盒测试和白盒测试
测试任何产品都有两种方法:
黑盒测试——如果已经知道了产品应该具有
的功能,可以通过测试来检验是否每个功能都能正常使用;
白盒测试——如果知道产品内部工作过程,
可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行,且所有内部部件被充分利用(确保“所有齿轮吻合”)。
第九页,共63页
黑盒测试又称为功能测试,它把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按
照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如,数据库或文件)的完整性。
(故意不考虑控制结构,而是注意信息域)
第十页,共63页