白盒测试练习
软件测试-白盒测试用例练习题

白盒测试用例练习一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。
void DoWork (int x,int y,int z) {int k=0,j=0; if ( (x>3)&&(z<10) ) { k=x*y-1;j=sqrt(k); //语句块1} if ( (x==4)||(y>5) ) {j=x*y+10;} //语句块2 j=j%3; //语句块3 } a Y cN b eYx>3 and x=4 ork=x*y-1 k=0Nd由这个流程图可以看出,该程序模块有4条不同的路径: P1:(a-c-e) P2:(a-c-d) P3:(a-b-e) P4:(a-b-d) 将里面的判定条件和过程记录如下: 判定条件M ={x>3 and z<10} 判定条件N={x=4 or y>5} 1、 语句覆盖测试用例输入输出判定M 的取值判定N 的取值覆盖路径x=4,z=5,y=8 k=31,j=0 TTP1(a-c-e) 2、判定覆盖p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。
测试用例输入 输出 判定M 的取值判定N 的取值覆盖路径x=4,z=5,y=8k=31,j=0TTP1(a-c-e) x=2,z=11,y =5k=0,j=0FFP4(a-b-d)也可以让测试用例测试路径P2和P3。
相应的两组输入数据如下: 测试用例输输出判定M 的取判定N 的取覆盖路径j=j%3j=x*y+1入值值x=5,z=5,y= 4 k=19,j=sqrt(19)%3T F P2(a-c-d)x=4,z=11,y=6k=0,j=1 F T P3(a-b-e)3、条件覆盖对于M:x>3取真时T1,取假时F1;z<10取真时T2,取假时F2;对于N:x=4取真时T3,取假时F3;y>5取真时T4,取假时F4。
(完整版)白盒测试练习及答案

1、在白盒测试用例设计中,有语句覆盖、分支覆盖、条件覆盖、路径覆盖等,其中( A )是最强的覆盖准则。
为了对如下图所示的程序段进行覆盖测试,必须适当地选取测试用例组。
若x, y是两个变量,可供选择的测试用例组共有Ⅰ、Ⅱ、Ⅲ、Ⅳ四组,如表中给出,则实现判定覆盖至少应采取的测试用例组是( B )或( C );实现条件覆盖至少应采取的测试用例组是( D );实现路径覆盖至少应采取的测试用例组是( E )或( F )。
供选择的答案A:① 语句覆盖② 条件覆盖③ 判定覆盖④ 路径覆盖B~F:① Ⅰ和Ⅱ组② Ⅱ和Ⅲ组③ Ⅲ和Ⅳ组④ Ⅰ和Ⅳ组⑤ Ⅰ、Ⅱ、Ⅲ组⑥ Ⅱ、Ⅲ、Ⅳ组⑦ Ⅰ、Ⅲ、Ⅳ组⑧ Ⅰ、Ⅱ、Ⅳ组解答:A. ④ B. ⑤ C. ⑧ D. ④ E. ⑤ F. ⑧2. 阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到条件覆盖。
( B )int func(int a,b,c){ int k=1;if ( (a>0) || (b<0) || (a+c>0) ) k=k+a;else k=k+b;if (c>0) k=k+c;return k;}A. (a,b,c) = (3,6,1)、(-4,-5,7)B. (a,b,c) = (2,5,8)、(-4,-9,-5)C. (a,b,c) = (6,8,-2)、(1,5,4)D. (a,b,c) = (4,9,-2)、(-4,8,3)3. 阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到判定覆盖。
(D )int func(int a,b,c){ int k=1;if ( (a>0) &&(b<0) && (a+c>0) ) k=k+a;else k=k+b;if (c>0) k=k+c;return k;}A. (a,b,c) = (3,6,1)、(-4,-5,7)B. (a,b,c) = (2,5,8)、(-4,-9,-5)C. (a,b,c) = (6,8,-2)、(1,5,4)D. (a,b,c) = (4,-9,-2)、(-4,8,3)4. 阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到判定条件覆盖。
白盒测试方法习题及含答案

[ 试题分类 ]: [04]白盒测试方法/[0400][综合]白盒测试方法1.下边不属于白盒测试能保证的是。
A. 模块中所有独立门路起码测试一次B. 测试所以逻辑决议真和假两个方面D.不正确或遗漏的功能答案 :D分数 :1题型 :单项选择题难度 :12.因果图方法是依据()之间的因果关系来设计测试用例的。
A.输入与输出B.设计与实现C.条件与结果D.主程序与子程序答案 :A分数 :1题型 :单项选择题难度 :13.使用白盒测试方法时,确立测试数据应依据()和指定的覆盖标准。
A.程序的内部逻辑B.程序的复杂程度C.使用说明书D.程序的功能答案 :A分数 :1题型 :单项选择题难度 :14.软件测试中常用的静态剖析方法是()和接口剖析。
A.引用剖析B.算法剖析C.靠谱性剖析D.效率剖析答案 :A分数 :1题型 :单项选择题难度 :15.软件测试中常用的静态剖析方法是引用剖析和()。
A.引用剖析B.算法剖析C.靠谱性剖析D.接口剖析答案 :D分数 :1题型 :单项选择题难度 :16.白盒方法中常用的方法是()方法。
A.路径测试B.等价类C.因果图D.概括测试答案 :A分数 :1题型 :单项选择题难度 :17.在软件工程中,白箱测试法可用于测试程序的内部构造。
此方法将程序看作是()A.路径的会合B.循环的会合C.目标的会合D.地点的会合答案 :A分数 :1题型 :单项选择题难度 :18.软件测试白箱测试是对软件的构造进行测试,下述:Ⅰ .边沿值剖析Ⅱ .语句测试Ⅲ .分值测试Ⅳ .路经测试()是其应包含的内容。
A. ⅠB. Ⅱ和ⅢC.Ⅲ和ⅣD. Ⅱ .Ⅲ和Ⅳ答案 :D分数 :1题型 :单项选择题难度 :19.在进行单元测试时,常用的方法是()。
A.采纳白盒测试,辅之以黑盒测试B.采纳黑盒测试,辅之以白盒测试D.只合用黑盒测试答案 :A分数 :1题型 :单项选择题难度 :110. 白盒测试法一般使用于()测试。
软件工程白盒测试练习及解答

白盒测试练习1、什么是白盒测试?白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。
这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
2、什么是测试用例?一组由前提条件、输入、执行条件、预期结果等组成,以完成对某个特定需求或者目标测试的数据,体现测试方案、方法、技术和策略的文档3、写出以上程序的所有路径;L1(1->2->3)L2(1->4->5->3)L3(1->2->6->7)L4(1->4->5->6->7)4、尝试用表格的形式描述满足以下情况的测试用例:a)写出满足语句覆盖需要的测试用例;解:语句覆盖就是程序中每一个语句至少能被执行一次运行结果b)写出满足判定覆盖(分支覆盖)需要的测试用例;解:判定覆盖就是程序中每个判定至少有一次为真值,有一次为假值,使得程序中每个分支至少执行一次运行结果c) 写出满足条件覆盖需要的测试用例;解:条件覆盖是程序各判定中的每个条件获得各种可能的取值至少满足一次运行结果d) 写出满足判定/条件覆盖需要的测试用例;解:判定/条件覆盖是程序中每个判定至少有一次为真值,有一次为假值,使得程序中每个分支至少执行一次,且使得各判定中的每个条件获得各种可能的取值至少满足一次。
运行结果e) 写出满足条件组合覆盖需要的测试用例。
解:条件组合覆盖是判定中条件的各种组合都至少被执行一次运行结果更改逻辑运算符以条件组合覆盖测试用例进行测试运行结果。
白盒测试用例练习

白盒测试用例练习1.为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。
void DoWork (int x,int y,int z){int k=0,j=0;if ( (x>3)&&(z<10) ){ k=x*y-1;j=sqrt(k); //语句块1}if ( (x==4)||(y>5) ){j=x*y+10;} //语句块2j=j%3; //语句块3}由这个流程图可以看出,该程序模块有4条不同的路径:P1:(a-c-e) P2:(a-c-d)P3:(a-b-e) P4:(a-b-d)将里面的判定条件和过程记录如下:判定条件M={x>3 and z<10}判定条件N={x=4 or y>5}1、语句覆盖2、判定覆盖也可以让测试用例测试路径P2和P3。
相应的两组输入数据如下:3、条件覆盖对于M:x>3取真时T1,取假时F1;z<10取真时T2,取假时F2;对于N:x=4取真时T3,取假时F3;y>5取真时T4,取假时F4。
条件:x>3,z<10,x=4,y>5条件:x<=3,z>=10,x!=4,y<=55、组合覆盖条件组合1)x>3,z<10 2)x>3,z>=103) x<=3,z<10 4)x<=3,z>=105)x=4,y>5 6)x=4,y<=56题目二:三角形问题在三角形计算中,要求输入三角型的三个边长:A、B 和C。
当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。
若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。
画出程序流程图、控制流程图、计算圈复杂度V(g),找出基本测试路径。
一、核心程序代码/** 判断三角形的类*/public class TriangleTestMethod {/** 判断三角形的种类。
白盒测试方法习题及答案

[试题分类]:[04]白盒测试方法/[0400][综合]白盒测试方法1.下面不属于白盒测试能保证的是。
A.模块中所有独立途径至少测试一次B.测试所以逻辑决策真和假两个方面C.在所有循环的边界内部和边界上执行循环体D.不正确或漏掉的功能答案:D分数:1题型:单选题难度:12.因果图方法是根据()之间的因果关系来设计测试用例的。
A.输入与输出B.设计与实现C.条件与结果D.主程序与子程序答案:A分数:1题型:单选题难度:13.使用白盒测试方法时,确定测试数据应根据()和指定的覆盖标准。
A.程序的内部逻辑B.程序的复杂程度C.使用说明书D.程序的功能答案:A分数:1题型:单选题难度:14.软件测试中常用的静态分析方法是()和接口分析。
A.引用分析B.算法分析C.可靠性分析D.效率分析答案:A分数:1题型:单选题难度:15.软件测试中常用的静态分析方法是引用分析和()。
A.引用分析B.算法分析C.可靠性分析D.接口分析答案:D分数:1题型:单选题难度:16.白盒方法中常用的方法是()方法。
A.路径测试B.等价类C.因果图D.归纳测试答案:A分数:1题型:单选题难度:17.在软件工程中,白箱测试法可用于测试程序的内部结构。
此方法将程序看作是()A.路径的集合B.循环的集合C.目标的集合D.地址的集合答案:A分数:1题型:单选题难度:18.软件测试白箱测试是对软件的结构进行测试,下述:Ⅰ.边缘值分析Ⅱ.语句测试Ⅲ.分值测试Ⅳ.路经测试()是其应包括的内容。
A.ⅠB.Ⅱ和ⅢC.Ⅲ和ⅣD.Ⅱ.Ⅲ和Ⅳ答案:D分数:1题型:单选题难度:19.在进行单元测试时,常用的方法是()。
A.采用白盒测试,辅之以黑盒测试B.采用黑盒测试,辅之以白盒测试C.只适用白盒测试D.只适用黑盒测试答案:A分数:1题型:单选题难度:110.白盒测试法一般使用于()测试。
A.单元B.系统C.集成D.确认答案:A分数:1题型:单选题难度:1[试题分类]:[04]白盒测试方法/[0401]逻辑覆盖法11.关于条件测试错误的是()A.可以检查程序中所包含的逻辑条件B.条件中包含的错误有布尔算子错误C.条件中包含的错误有布尔变量错误D.条件中包含的错误有接口错误答案:D分数:1题型:单选题难度:112.关于条件中包含的错误类型说法错误的是()A.关系算子错误B.算术表达式错误C.条件中包含的错误有布尔变量错误D.条件中包含的错误有接口错误答案:D分数:1题型:单选题难度:113.语句覆盖.判定覆盖.条件覆盖和路径覆盖都是白盒测试法设计测试用例的覆盖准则,在这些覆盖准则中最弱的准则是()。
大连东软信息学院软件测试考题题库白盒测试方法习题及答案

大连东软信息学院软件测试考题题库白盒测试方法习题及答案1.计算环路复杂度方法有哪三种,答:(1)V(G)=判定节点数+ 1 ;(2)V(G) = E-N+2 ;(3)V(G)=区域数+ 12.白盒测试有几种方法,白盒测试方法分为两大类:静态测试方法和动态测试方法。
答:静态测试方法:检查软件的表示和描述是否一致,没有冲突或者没有歧义。
动态测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
4.比较白盒测试和黑盒测试,答:使用白盒测试方法时,测试根据程序的内部逻辑和指定的覆盖标准;黑盒测试法是通过分析程序的接口功能设计测试用例的。
5.为以下程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖。
int test(int A,int B){if((A>1) AND (B<10)) thenX=A-B;if((A=2) OR (B>20)) thenX=A+B;return x;}答:语句覆盖测试用例:A=2,B=0;判定覆盖测试用例:A=3,B=0;A=2,B=20;条件覆盖测试用例:A=2,B=0;A=0,B=21;6. 为以下程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖。
void DoWork (int x,int y,int z) {int k=0,j=0;if ( (x>3)&&(z<10) ){ k=x*y-1;j=sqrt(k);} //语句块1if ( (x==4)||(y>5) ){ j=x*y+10; } //语句块2j=j%3; //语句块3}答:语句覆盖测试用例:x=4、y=5、z=5;判定覆盖测试用例::x=4、y=5、z=5;x=2、y=5、z=5;条件覆盖测试用例:x=4、y=6、z=5 ;x=2、y=5、 z=15 ; 8.看代码程序: void Sort ( int iRecordNum, int iType )1 {2 int x=0;3 int y=0;4 while ( iRecordNum> 0 )5 {6 If ( iType==0 )7 x=y+2;8 else9 If ( iType==1 ) 10 x=y+10; 11 else12 x=y+20;13 }14 }要求(1)给以上代码画出控制流图(2)控制流图的环复杂度V(G),写出独立路径。
白盒测试用例练习题(1)

白盒测试用例练习题(1)白盒测试用例练习1.为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。
void DoWork (int x,int y,int z) { int k=0,j=0;if ( (x>3)&&(z<10) ) { k=x*y-1;j=sqrt(k); //语句块1} if ( (x==4)||(y>5) ) {j=x*y+10;} //语句块2 j=j%3; //语句块3 }a Y cN be YN dx>3 and z<10 x=4 or y>5 j=j%3 j=x*y+10k=x*y-1j=sqrt(k)k=0j=0由这个流程图可以看出,该程序模块有4条不同的路径:P1:(a-c-e) P2:(a-c-d)P3:(a-b-e) P4:(a-b-d)将里面的判定条件和过程记录如下:判定条件M={x>3 and z<10}判定条件N={x=4 or y>5}1、语句覆盖测试用例输入输出判定M的取值判定N的取值覆盖路径x=4,z=5,y=8 k=31,j=0 T T P1(a-c-e)2、判定覆盖p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。
测试用例输入输出判定M的取值判定N的取值覆盖路径x=4,z=5,y=8 k=31,j=0 T T P1(a-c-e)x=2,z=11,y=5 k=0,j=0 F F P4(a-b-d)也可以让测试用例测试路径P2和P3。
相应的两组输入数据如下:测试用例输入输出判定M的取值判定N的取值覆盖路径x=5,z=5,y=4 k=19,j=sqrt(19)%3 T F P2(a-c-d) x=4,z=11,y=6 k=0,j=1 F T P3(a-b-e)3、条件覆盖对于M:x>3取真时T1,取假时F1;z<10取真时T2,取假时F2;对于N:x=4取真时T3,取假时F3;y>5取真时T4,取假时F4。
白盒测试逻辑覆盖练习题

白盒测试逻辑覆盖练习题一、语句覆盖if (a > 0 && b > 0) {c = a + b;} else {c = 0;}def check_age(age):if age < 18:return "未成年"elif age >= 18 and age < 60:return "成年人"else:return "老年人"二、分支覆盖if (x > 0) {if (y > 0) {printf("第一象限");} else {printf("第四象限");}} else {if (y > 0) {printf("第二象限");} else {printf("第三象限");}}function calculateGrade(score) {if (score >= 90) {return 'A';} else if (score >= 80) {return 'B';} else if (score >= 70) {return 'C';} else {return 'D';}}三、路径覆盖public int calculate(int a, int b) { if (a > 0) {if (b > 0) {return a + b;} else {return a b;}} else {if (b > 0) {return b a;} else {return 0;}}}public int Max(int a, int b, int c) { if (a > b) {if (a > c) {return a;} else {return c;}} else {if (b > c) {return b;} else {return c;}}}四、条件覆盖def check_password(password):if len(password) >= 8 and any(char.isdigit() for char in password):return "密码强度高"else:return "密码强度低"function validateForm(username, password) {if (username.length > 0 && password.length > 0) { return true;} else {return false;}}五、判定条件覆盖public boolean isEligible(int age, boolean hasLicense) {if (age >= 18 && hasLicense) {return true;} else {return false;}}int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i < num; i++) {if (num % i == 0) {return 0;}}return 1;}六、多条件覆盖public string GetGrade(int score, bool isFinalExam) { if (score >= 90 || (isFinalExam && score >= 80)) { return "A";} else if (score >= 80 || (isFinalExam && score >= 70)) {return "B";} else if (score >= 70 || (isFinalExam && score >= 60)) {return "C";} else {return "D";}}return "Eligible";} else {return "Not Eligible";}}七、条件组合覆盖def check_login(username, password, is_admin):if (username == "admin" or username == "user") and password == "56" and not is_admin:return "User logged in";elif (username == "admin" and is_admin) and password == "admin123":return "Admin logged in";else:return "Invalid credentials";public String authenticate(String username, String password, boolean hasTwoFactor) {if (username.equals("admin") &&password.equals("admin123") && hasTwoFactor) {return "Admin access granted";} else if (username.equals("user") &&password.equals("user123") && !hasTwoFactor) {return "User access granted";} else {return "Access denied";}}八、路径条件覆盖void processOrder(int quantity, float discount) {if (quantity > 10) {if (discount < 0.1) {printf("Order processed with standard discount");} else {printf("Order processed with special discount");}} else {printf("Order processed without discount");}}function calculateTotal(price, isMember, hasCoupon) { let total = price;if (isMember) {total = 0.9; // 10% discount for members}if (hasCoupon) {total = 0.95; // Additional 5% discount for coupon}return total;}九、修改条件/判定覆盖def upgrade_account(user_type, points):if user_type == "basic" and points >= 100:return "Upgrade to premium"elif user_type == "premium" and points >= 200:return "Upgrade to elite"else:return "No upgrade available"public String checkSubscription(String type, int duration) {if (type.equals("monthly") && duration >= 6) {return "Eligible for annual plan";} else if (type.equals("annual") && duration >= 12) {return "Eligible for lifetime plan";} else {return "Continue current plan";}}答案一、语句覆盖1. 测试用例:a=1, b=1;a=1, b=12. 测试用例:age=15;age=25;age=65二、分支覆盖1. 测试用例:x=1, y=1;x=1, y=1;x=1, y=1;x=1, y=12. 测试用例:score=95;score=85;score=75;score=65三、路径覆盖1. 测试用例:a=1, b=1;a=1, b=1;a=1, b=1;a=1, b=12. 测试用例:a=10, b=5, c=3;a=5, b=10, c=8;a=5, b=5, c=10;a=3, b=3, c=3四、条件覆盖1. 测试用例:password="567";password=""2. 测试用例:username="test", password="pass";username="", password=""五、判定条件覆盖1. 测试用例:age=20, hasLicense=True;age=17, hasLicense=False2. 测试用例:num=2;num=1;num=0;num=1六、多条件覆盖1. 测试用例:score=95, isFinalExam=False;score=85, isFinalExam=True;score=75, isFinalExam=False;score=65, isFinalExam=True七、条件组合覆盖1. 测试用例:username="admin", password="admin123",is_admin=False;username="user", password="56",is_admin=False;username="admin", password="admin123",is_admin=True2. 测试用例:username="admin", password="admin123", hasTwoFactor=True;username="user", password="user123", hasTwoFactor=False;username="admin", password="wrong", hasTwoFactor=True八、路径条件覆盖1. 测试用例:quantity=15, discount=0.05;quantity=8, discount=0.05;quantity=15, discount=0.22. 测试用例:price=100, isMember=True, hasCoupon=True;price=100, isMember=False, hasCoupon=False;price=100, isMember=True, hasCoupon=False九、修改条件/判定覆盖1. 测试用例:user_type="basic", points=50;user_type="basic", points=150;user_type="premium",points=150;user_type="premium", points=2502. 测试用例:type="monthly", duration=3;type="monthly", duration=9;type="annual", duration=9;type="annual", duration=15。
白盒测试用例练习

白盒测试用例练习1.为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。
void DoWork (int x,int y,int z){int k=0,j=0;if ( (x>3)&&(z<10) ){ k=x*y-1;j=sqrt(k); //语句块1}if ( (x==4)||(y>5) ){j=x*y+10;} //语句块2j=j%3; //语句块3}由这个流程图可以看出,该程序模块有4条不同的路径:P1:(a-c-e) P2:(a-c-d)P3:(a-b-e) P4:(a-b-d)将里面的判定条件和过程记录如下:判定条件M={x>3 and z<10}判定条件N={x=4 or y>5}1、语句覆盖2、判定覆盖也可以让测试用例测试路径P2和P3。
相应的两组输入数据如下:3、条件覆盖对于M:x>3取真时T1,取假时F1;z<10取真时T2,取假时F2;对于N:x=4取真时T3,取假时F3;y>5取真时T4,取假时F4。
条件:x>3,z<10,x=4,y>5条件:x<=3,z>=10,x!=4,y<=55、组合覆盖条件组合1)x>3,z<10 2)x>3,z>=103) x<=3,z<10 4)x<=3,z>=105)x=4,y>5 6)x=4,y<=56题目二:三角形问题在三角形计算中,要求输入三角型的三个边长:A、B 和C。
当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。
若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。
画出程序流程图、控制流程图、计算圈复杂度V(g),找出基本测试路径。
一、核心程序代码/** 判断三角形的类*/public class TriangleTestMethod {/** 判断三角形的种类。
白盒测试作业题目-附答案

1.说出静态白盒测试的几个好处
答:进行静态白盒测试的首要原因是尽早发现软件缺陷,以找出动态黑盒测试难以发现或隔离的软件缺陷。
另一个好处是给黑盒测试人员提供思路。
2.判断是非:静态白盒测试可以找出需求遗漏之处和相关问题。
答:错误,因为静态白盒测试保证程序中所有关键路径的测试,防止由于没有执行的路径在实际投入运行后执行到发生意外的情况,但无法找出需求遗漏之处和相关问题。
3.正式审查由哪些关键要素组成?
答:确定问题、遵守规则、准备、编写报告
4.为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判
定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖
语句覆盖:
判定覆盖
条件覆盖
将X>8 真为T1,假为F1 将Y>5 真为T2,假为F2 将X>0 真为T3,假为F3 将Y>0 真为T4,假为F4 将X>16 真为T5,假为F5 将Y>10 真为T6,假为F6
判定/条件覆盖
条件组合覆盖
组合1:T1,T2 组合5:T3,T4 组合9:T5,T6 组合2:T1,F2 组合6:T3,F4 组合10:T5,F6 组合3:F1,T2 组合7:F3,T4 组合11:F5,T6 组合4:F1,F2 组合8:F3,F4 组合12:F5,F6
路径覆盖:
所有路径:a b c d e f g h k m n p
6. 按照基本路径测试方法设计测试用例
●画流图、计算环形复杂度
●导出独立路径
流图如下:。
软件测试补充练习-白盒测试

软件测试补充练习白盒测试练习1、本流程图描述了某子程序的处理流程,现要求用白盒测试法对子程序进行测试。
根据判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖(条件组合覆盖)、路径覆盖五种覆盖标准,从供选择的答案中分别找出满足相应覆盖标准的最小的测试数据组(用①-⑩表示)。
供选择的答案:①a=5 b=1②a=5 b=-1③a=5 b=1 a=-5 b=-1④a=5 b=1 a=0 b=-1⑤a=5 b=-1 a=-5 b=1 a=-5 b=-1⑥a=5 b=1 a=0 b=0 a=-5 b=-1⑦a=5 b=1 a=0 b=1 a=0 b=-1 a=-5 b=1⑧a=5 b=1 a=0 b=-1 a=-5 b=1 a=-5 b=-1⑨a=5 b=1 a=0 b=-1 a=0 b=1 a=-5 b=1a=-5 b=-1⑩a=5 b=1 a=5 b=0 a=5 b=-1 a=0 b=1 a=0 b=0 a=0 b=-1 a=-5 b=1 a=-5 b=0判定覆盖:________________条件覆盖:________________判定/条件:______________条件组合:________________路径覆盖:________________2、本流程图描述了某子程序的处理流程,现要求用白盒测试法对其进行测试。
根据判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖(条件组合覆盖)、路径覆盖等 5 种覆盖标准,从供选择的答案中分别找出满足相应覆盖标准的最小的测试数据组(用①-⑩表示)。
供选择的答案:①x=90,y=90②x=50,y=50③x=90,y=90x=50,y=50④x=90,y=70x=40,y=90⑤x=90,y=90x=50,y=50x=90,y=70⑥x=90,y=70x=70,y=90x=50,y=50⑦x=90,y=90x=50,y=50x=90,y=70x=70,y=90⑧x=90,y=90x=50,y=50x=90,y=50x=80,y=80⑨x=90,y=90x=90,y=70x=70,y=90x=30,y=90x=70,y=70x=50,y=50⑩x=90,y=90x=80,y=80x=90,y=70x=90,y=30x=70,y=90x=30,y=90x=70,y=70x=50,y=50判定覆盖:________________条件覆盖:________________判定/条件:______________条件组合:________________路径覆盖:________________3、本流程图描述了某子程序的处理流程,现要求用白盒测试法为该子程序设计测试数据。
【免费下载】白盒测试方法习题及答案

对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
白盒测试练习题目

选择题1.在下面说列举的逻辑测试覆盖中,测试覆盖最强的是。
A.条件覆盖 B.条件组合覆盖 C.语句覆盖 D.判定/条件覆盖答案:B2.在下面说列举的逻辑测试覆盖中,测试覆盖最弱的是。
A.条件覆盖 B.条件组合覆盖 C.语句覆盖 D.判定/条件覆盖答案:C3.对下面的个人所得税程序中,满足判定覆盖测试用例的是。
if (income < 800) tarrate = 0 ;else if (income <= 1500) tarrate = 0.05 ;else if (income < 2000) tarrate = 0.08 ;else tarrate = 0.1 ;A.income = (799, 1500, 1999, 2001) B.income = (799, 1501, 2000, 2001)C.income = (800, 1500, 2000, 2001) D.income = (800, 1499, 2000, 2001)4.对下面的个人所得税程序中,满足语句覆盖测试用例的是。
if (income < 800) tarrate = 0 ;else if (income <= 1500) tarrate = 0.05 ;else if (income < 2000) tarrate = 0.08 ;else tarrate = 0.1 ;A.income = (800, 1500, 2000, 2001) B.income = (800, 801, 1999, 2000)C.income = (799, 1499, 2000, 2001) D.income = (799, 1500, 1999, 2000)5. 阅读下面流程图当使用判定覆盖法进行测试时,至少需要设计个测试用例。
A.2 B. 4 C. 6 D. 86. 以下图2所示控制流程图(程序图)的环复杂度V(G)等于。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、在白盒测试用例设计中,有语句覆盖、分支覆盖、条件覆盖、路径覆盖等,其中
( A ④)是最强的覆盖准则。
为了对如下图所示的程序段进行覆盖测试,必须适当地选取测试用例组。
若x, y是两个变量,可供选择的测试用例组共有Ⅰ、Ⅱ、Ⅲ、Ⅳ四组,如表中给出,则实现判定覆盖至少应采取的测试用例组是( B ⑤)或( C ⑧ );实现条件覆盖至少应采取的测试用例组是( D ①);实现路径覆盖至少应采取的测试用例组是
( E ⑤)或( F ⑧)。
供选择的答案
A: ① 语句覆盖② 条件覆盖③ 判定覆盖④ 路径覆盖
B~F: ① Ⅰ和Ⅱ组② Ⅱ和Ⅲ组③ Ⅲ和Ⅳ组④ Ⅰ和Ⅳ组
⑤ Ⅰ、Ⅱ、Ⅲ组⑥ Ⅱ、Ⅲ、Ⅳ组⑦ Ⅰ、Ⅲ、Ⅳ组
⑧ Ⅰ、Ⅱ、Ⅳ组
2. 阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到条件覆盖。
( D )
int func(int a,b,c)
{ int k=1;
if ( (a>0) || (b<0) || (a+c>0) ) k=k+a;
else k=k+b;
if (c>0) k=k+c;
return k;
}
A. (a,b,c) = (3,6,1)、(-4,-5,7)
B. (a,b,c) = (2,5,8)、(-4,-9,-5)
C. (a,b,c) = (6,8,-2)、(1,5,4)
D. (a,b,c) = (4,9,-2)、(-4,8,3)
3. 阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到判定覆盖。
(D )
int func(int a,b,c)
{ int k=1;
if ( (a>0) &&(b<0) && (a+c>0) ) k=k+a;
else k=k+b;
if (c>0) k=k+c;
return k;
}
A. (a,b,c) = (3,6,1)、(-4,-5,7)
B. (a,b,c) = (2,5,8)、(-4,-9,-5)
C. (a,b,c) = (6,8,-2)、(1,5,4)
D. (a,b,c) = (4,-9,-2)、(-4,8,3)
4. 阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到判定条件覆盖。
(B )
int func(int a,b,c)
{ int k=1;
if ( (a>0) || (b<0) || (a+c>0) ) k=k+a;
else k=k+b;
if (c>0) k=k+c;
return k;
}
A. (a,b,c) = (3,6,1)、(-4,-5,7)
B. (a,b,c) = (2,-5,8)、(-4,9,-5)
C. (a,b,c) = (6,8,-2)、(1,5,4)
D. (a,b,c) = (4,9,-2)、(-4,8,3)
5、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。
int GetMax(int n, int datalist[ ])
{
int k=0;
for ( int j=1; j<n; j++ )
if ( datalist[j] > datalist[k] ) k=j;
return k;
}
(1)画出该程序的控制流图,并计算其McCabe环路复杂性。
(2)用基本路径覆盖法给出测试路径。
(3)为各测试路径设计测试用例。
6、下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。
算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( ):
void SelectSort ( datalist & list ) {
//对表list.V[0]到list.V[n-1]进行排序, n是表当前长度。
for ( int i = 0; i < list.n-1; i++ ) {
int k = i; //在list.V[i].key到list.V[n-1].key中找具有最小关键码的对象
for ( int j = i+1; j < list.n; j++)
if ( list.V[j].getKey ( ) < list.V[k].getKey ( ) ) k = j;
//当前具最小关键码的对象
if ( k != i ) Swap ( list.V[i], list.V[k] ); //交换 }
}
(1) 试计算此程序段的McCabe复杂性;
(2) 用基本路径覆盖法给出测试路径;
(3) 为各测试路径设计测试用例。
7、下面是快速排序算法中的一趟划分算法,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。
算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( ):
int Partition ( datalist &list, int low, int high ) {
//在区间[ low, high ]以第一个对象为基准进行一次划分,k返回基准对象回放位置。
int k = low; Element pivot = list.V[low]; //基准对象
for ( int i = low+1; i <= high; i++ ) //检测整个序列,进行划分
if ( list.V[i].getKey ( ) < pivot.getKey( ) && ++ k != i )
Swap ( list.V[k], list.V[i] ); //小于基准的交换到左侧去
Swap ( list.V[low], l ist.V[k] ); //将基准对象就位
return k; //返回基准对象位置 }
(1) 试画出它的程序流程图;
(2) 试利用路径覆盖方法为它设计足够的测试用例(循环次数限定为0次,1次和2次)。
8、下面是一段插入排序的程序,将R[k+1]插入到R[1…k]的适当位置。
R[0] = R[k+1];
j = k;
while (R[j] > R[0])
{
R[j+1] = R[j];
j--;
}
R[j+1] = R[0];
用路径覆盖方法为它设计足够的测试用例(while循环次数为0、1、2次)。