预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共59页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第七章概论概论概论概论§7.1基本概念软件质量问题软件测试的目标7.1.1测试的目的与地位E.W.Dijkstra指出:“程序测试能证明错误的存在,但不能证明错误不存在.”测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错.把证明程序无错当作测试目的不仅是不正确的,完全做不到的,而且对做好测试没有任何益处,甚至是十分有害的.软件测试要设法使软件发生故障,暴露软件错误测试的“成功”与“失败”能够发现错误的测试是成功的测试,否则是失败的测试。“测试的目的是说明程序正确地执行它应有的功能”也是错误的.例:程序Triangle,输入三个整数,表示一个三角形的三个边长,该程序产生一个结果,指出该三角形是等边三角形、等腰三角形还是不等边三角形。为说明其能正确执行它的功能,可使用“测试用例”(3,4,5),(5,5,6),(6,6,6),程序都能给出正确结果,是否就可认为程序是正确的?测试(test)调试(debug)程序中的问题根源可能在开发前期的各阶段解决、纠正错误也必须追溯到前期工作。测试与开发前期工作的关系测试阶段工作步骤单元测试:检验每个模块能否单独工作.集成测试:检验概要设计中模块接口设计问题确认测试:以需求规格说明书为检验尺度系统测试:综合检验测试可视为分析、设计、编码三个阶段的最终复审,以保证软件质量.软件生存期各阶段间需保持的正确性软件测试的对象软件测试不等于程序测试软件测试应贯穿于软件定义与开发的整个期间;据美国一家公司统计,查出的软件错误中,属于需求分析和软件设计的错误约占64%,属于程序编写的错误仅占36%。程序编写的许多错误是“先天的”。7.1.2测试的基本原则“测试用例”要求测试用的一组输入数据、环境平台和运行条件。测试的基本原则(1)开发和测试队伍分别建立(2)测试用例应由输入数据和预期的输出结果两部分组成.(3)兼顾合理的输入和不合理的输入数据(4)应检查程序是否作了不该做的事(5)程序修改后要回归测试(6)应长期保留测试用例,直至系统废弃。程序测试举例例:程序Triangle,输入三个整数,表示一个三角形的三个边长,该程序产生一个结果,指出该三角形是等边三角形、等腰三角形还是不等边三角形。判断三角型的测试用例设计:输入数据预期结果(1)6;6;6等边(2)8;8;4等腰(3)4;5;6一般还应输入非法数据:0;7;9-7;3;5a;2;7等软件错误分类功能错(需求分析错误)软件结构错数据错编码错软件集成错测试定义与测试执行错误7.1.3软件测试信息流7.1.3软件测试信息流7.1.4测试的方法与技术静态测试:基本特征是在对软件进行分析、检查和测试是不实际运行被测试的软件。静态测试约可找出30~70%的逻辑设计错误.对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错.动态测试:通过运行软件来检验软件的动态行为和运行结果的正确性动态测试的两个基本要素:被测试程序测试数据(测试用例)动态测试方法(1)选取定义域有效值,或定义域外无效值.(2)对已选取值决定预期的结果(3)用选取值执行程序(4)执行结果与(2)结果相比,不吻和,程序有错.§7.2两种类型的测试7.2.1黑盒测试又称:功能测试数据驱动测试基于规格说明书的测试7.2.2白盒测试又称:结构测试玻璃盒测试基于覆盖的测试.根据被测程序的逻辑结构设计测试用例;力求提高测试覆盖率;黑盒测试与白盒测试比较黑盒测试是从用户观点,按规格说明书要求的输入数据与输出数据的对应关系设计测试用例,是根据程序外部特征进行测试。白盒测试是根据程序内部逻辑结构进行测试。7.2.3穷举测试例:输入三条边长黑盒测试可采用的测试用例数(设字长16位)执行时间:设测试一次需1ms共需一万年.7.2.3穷举测试白盒测试例:含4个分支,循环次数≤20,从A到B的可能路径执行时间:设测试一次需2ms穷举测试需5亿年.不论黑盒还是白盒测试都不能进行穷尽测试,所以软件测试不可能发现程序中存在的所有错误,因此需精心设计测试方案,力争尽可能少的次数,测出尽可能多的错误.黑盒测试与白盒测试能发现的错误§7.3白盒测试的测试用例设计7.3.1逻辑覆盖法例:PROCEDURESAMPAL(A,B:REAL;VARX:REAL);BEGINIF(A>1)AND(B=0)THENX:=X/AIF(A=2)OR(X>1)THENX:=X+1END;逻辑覆盖准则:(1)语句覆盖(2)判定覆盖(3)条件覆盖(4)判定/条件