[计算机软件及应用]白盒测试及其用例的设计.ppt

[计算机软件及应用]白盒测试及其用例的设计.ppt

[计算机软件及应用]白盒测试及其用例的设计

第4章 白盒测试及其用例的设计;本章教学目标;;4.1 白盒测试方法;白盒测试法检查程序内部逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法。 即使每条路径都测试过了,仍然可能存在错误: 穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序。 穷举路径测试不可能查出程序因为遗漏路径而出错。 穷举路径测试发现不了一些与数据相关的错误。;采用白盒测试方法必须遵循以下几条原则: 保证一个模块中的所有独立路径至少被测试一次。 所有逻辑值均需测试真 (true) 和假 (false) 两种情况。 检查程序的内部数据结构,保证其结构的有效性。 在上下边界及可操作范围内运行所有循环。;;4.2 程序结构分析;4.2.1 控制流图;常见结构的控制流图;图4-1 控制流图;;4.2.2 环形复杂度;计算环形复杂度的方法; 导出独立路径集: 路径1:5-15 (iRecordNum=0) 路径2:5-7-8-14-5-15 (iRecordNum≥0,iType=0) 路径3:5-7-9-11-14-5-15 (iRecordNum≥0,iType=1) 路径4:5-7-9-13-14-5-15 (iRecordNum≥0,iType≠0,iType≠1) ;4.2.3 图矩阵;;习题;4.3 覆盖测试;4.3.1 测试覆盖率;逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它属白盒测试。 根据覆盖目标的不同,可分为:;;;;;;;逻辑覆盖法(续);int DoWork (int x,int y,int z) { int k=0,j=0; if ( (x3)(z10) ) { k=x*y-1; j=sqrt(k); } //语句块1 if ( (x==4)||(y5) ) { j=x*y+10; } //语句块2 j=j%3; //语句块3 return j; };X3 z10;L1(a b d) = {x3 and z10} and {x=4 or y5} = {x3 and z10 and x=4} or {x3 and z10 and y5} = {x=4 and z10} or {x3 and z10 and y5};L2(a c d) = {x3 and z10} and {x=4 or y5} = {x3 or z10 and x=4} or {x3 and z10 and y5} = {x=4 and z≥10} or {z ≥ 10 and y5} or {x≤3 and y5};L3(a b e) = {x3 and z10} and {x=4 or y5} = {x3 and z10} and {x=4 and y5} = {x3 and z10 and x≠4 and y≤5};L4(a c e) = {x3 and z10} and {x=4 or y5} = {x3 or z10} and {x=4 and y5} = {x≤3 and x≠4 and y≤5} or {z≥10 and x≠4 and y≤5};语句覆盖;判定覆盖;判定覆盖;判定覆盖(续);条件覆盖;;;分析: 这组测试用例,则虽然满足了条件覆盖,但只是覆盖了程序中第一个判定的取假分支c 和第二个判定的取真分支d,不满足判定覆盖的要求。 ;判定/条件覆盖;判定/条件覆盖(续);组合覆盖;根据组合覆盖的基本思想,设计测试用例如下:;路径覆盖;分析:虽然前面一组测试用例满足了路径覆盖,但并没有覆盖程序中所有的条件组合(丢失了组合3和7),即满足路径覆盖的测试用例并不一定满足组合覆盖。 说明: 对于比较简单的小程序,实现路径覆盖是可能做到的。但如果程序中出现较多判断和较多循环,可能的路径数目将会急剧增长,要在测试中覆盖所有的路径是无法实现的。为了解决这个难题,只有把覆盖路径数量压缩到一定的限度内,如程序中的循环体只执行一次。 在实际测试中,即使对于路径数很有限的程序已经做到路径覆盖,仍然不能保证被测试程序的正确性,还需要采用其他测试方法进行补充。;最少测试用例数计算;用N-S图表示程序的3种基本控制结构:; 显然,要测试这

文档评论(0)

1亿VIP精品文档

相关文档