白盒测试方法习题测验及答案
软件测试-白盒测试用例练习题
白盒测试用例练习一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。
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)的输入值可以达到判定条件覆盖。
软件工程白盒测试练习及解答
白盒测试练习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) 写出满足条件组合覆盖需要的测试用例。
解:条件组合覆盖是判定中条件的各种组合都至少被执行一次运行结果更改逻辑运算符以条件组合覆盖测试用例进行测试运行结果。
白盒测试试题答案
先看以下代码:/** 白盒测试逻辑覆盖测试范例*/int logicExample(int x, int y){int magic=0;if(x>0 && y>0){magic = x+y+10; // 语句块1}else{magic = x+y-10; // 语句块2}if(magic < 0){magic = 0; // 语句块3}return magic; // 语句块4}解答:一般做白盒测试不会直接根据源代码,而是根据流程图来设计测试用例和编写测试代码,在没有设计文档时,要根据源代码画出流程图:做好了上面的准备工作,接下来就开始讲解六个逻辑覆盖标准:一、语句覆盖1、概念:设计足够多的测试用例,使得被测试程序中的每条可执行语句至少被执行一次。
在本例中,可执行语句是指语句块1到语句块4中的语句。
2、测试用例:{x=3, y=3}可以执行到语句块1和语句块4,所走的路径:a-b-e-f{x=-3, y=0}可以执行到语句块2、语句块3和语句块4,所走的路径:a-c-d-f这样,通过两个测试用例即达到了语句覆盖的标准,当然,测试用例(测试用例组)并不是唯一的。
3、测试的充分性:假设第一个判断语句if(x>0 && y>0)中的“&&”被程序员错误地写成了“||”,即if(x>0 || y>0),使用上面设计出来的一组测试用例来进行测试,仍然可以达到100%的语句覆盖,所以语句覆盖无法发现上述的逻辑错误。
在六种逻辑覆盖标准中,语句覆盖标准是最弱的。
二、判断覆盖(分支覆盖)1、概念:设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支至少被执行一次。
在本例中共有两个判断if(x>0 && y>0)(记为P1)和if(magic < 0)(记为P2)。
2、测试用例:两个判断的取真、假分支都已经被执行过,所以满足了判断覆盖的标准。
白盒测试例题
例题2:应用白盒测试法的具体步骤:1.按照某种覆盖标准,选择一组需要覆盖的路径;2.确定上述路径所需的输入数据;3.计算与输入数据相应的输出。
下面以工资管理程序为例说明白盒测试方法的运用过程。
(白盒测试方法有6种)工资管理程序BONUS的输入数据是职员表(Employee Table)和部门销售表(Department Table)(图1)。
职员表由姓名(Name)、职务(Job)、部门(Dept.)和工资(Salary)四个属性组成。
部门销售表由部门(Dept)和销售量(Sales)组成。
程序的功能是:“为销售量最大的部门中每一个职工增加200元工资,但是,如果某个职员的原有工资已达15000元,或者他的职务是经理,则只给他增加100元。
如果程序能正常地完成,则输出出错码0;如果两表格中没有任何条目,则输出出错码1;如果没有职员在部门销售表中销售量最大的部门中工作,则输出出错码2;”工资管理程序BONUS的两个表如下:工资管理程序BONUS的源程序:参数表中EMPTAB、DEPTTAB分别是职员表和部门表,ESIZE、DSIZE分别是两个表的长度,ERRCODE是出错码。
这里略去了说明部分和注释。
Procedure Bonus(EMPTAB,DEPTTAB:TABLE; ESIZE,DSIZE,ERRCODE:INTEGER);/*最大销量和出错码初始化*/1. Begin MAXSALES:=0; ERRCODE:=0;/*判断表是否为空,空输出1,并退出程序,否则继续执行*/2. IF (ESIZE<=0) or (DSIZE<=0)3. THEN ERRCODE:=1;4. ELSE/*获得最大销量*/5. For i=1 to DSIZE6. If Sales(i)> MAXSALES7. then MAXSALES = Sales(i);/*找到销量最大的每一个部门,并做进一步处理*/8. For j=1 to DSIZE9. If Sales(j)= MAXSALES10. Then11. Begin Found:=False;/*找销量最大的职员所属部门对应的职员表中的职员并处理*/12. For k:=1 to ESIZE13. If (EMPTAB.DEPT(k)= DEPTTAB. DEPT(J))14. Then15. Begin Found:=True;/*如果该职员工资超过15000或职务是经理则加100工资,否则加200工资*/16. If (SALARY(k)>=15000.0) or (JOB(k)=”M”)17. Then18. SALARY(k):= SALARY(k)+100.0;19. Else20. SALARY(k):= SALARY(k)+200.0;21. End;/*如果找不到对应职员,则输出出错码2,否则出错码默认0*/22. If (!Found ) then ERRORCODE:=2;23. End24. End25. End用白盒测试方法设计测试用例。
白盒测试习题
习题010401 逻辑路径覆盖法是白盒测试用例的重要设计方法,其中语旬覆盖法是较为常用的方法,针对下面的语句段,采用语句覆盖法完成测试用例设计,测试用例见下表,对表中的空缺项(True或者False),正确的选择是( )。
语句段:if(A&&(B||C)) x=1;else x=0;用例表:A. ①TRUE ②FALSE ③TRUEB. ①TRUE ②FALSE ③FALSEC. ①FALSE ②FALSE ③TRUED. ①TRUE ②TRUE ③FALSE0402 针对以下程序段,对于(A,B,C)的取值,以下( )测试用例能够满足语句覆盖的要求。
IF((A+10)=2 OR (B-20)<3) THEN C=0IF((A+30)>10 AND (C-30)<0) THEN B=30A. (2,30,1)B.(-20,0,30)C. (-30,20,30)D. (2,20,3)0403 为以下程序段,设计足够的测试用例满足语句覆盖。
if (x>8&&y>5) {if(x>16||y>10) s1;}else {if (x>0||y>0) s2;else s3;0404 针对下列程序段,需要()个测试用例才可以满足语句覆盖的要求。
switch ( value ){case 0: other = 30; break;case 1: other = 50; break;case 2: other = 300;case 3: other = other / value; break;default: other = other * value;}0405 对下面的个人所得税程序中,满足语句覆盖测试用例的是( ) 。
if (income < 800) tarrate = 0else if (income <= 1500) tarrate = 0.05else if (income < 2000) tarrate = 0.08else tarrate = 0.1A.income = (800, 1500, 2000, 2001)B.income = (800, 801, 1999, 2000)C.income = (799, 1499, 2000, 2001)0406 阅读下列流程图:当用判定覆盖法进行测试时,至少需要设计( ) 个测试用例。
白盒测试问答
一、选择题
1.下列不属于衡量软件质量标准的是( D )。
A.代码行数B.缺陷密度
C.顾客满意度D.可靠性
2.下列关于白盒测试的内容描述不正确的是( A )。
A.保证一个模块中的主要路径至少被执行1次
B.对所有的逻辑值均需测试真、假两个分支
C.在上下边界及可操作范围内运行所有循环
D.检查内部数据结构以确保其有效性
3.下列关于推行编码规范好处的说法错误的是(C)。
A.增强代码的可读性
B.可以有效的保证程序的可移植性
C.确保代码中的错误都能被发现
D.有助于代码的管理和维护
二、填空题
1.白盒测试是按照__程序内部结构______测试程序。
2.黑盒测试往往关注程序的__功能______需求。
3.白盒测试的常用策略有__桌面检查______、_代码复查_______、_代码走查_______、_单元测试_______等。
4.衡量软件质量的三个标准,分别是_缺陷密码_______,_顾客满意度_______,__可靠性______。
5.推行编码规范的好处有_可靠性_______,_可读性/可维护性_______,可移植性________。
三、简答题
1.结合之前所学的测试课程总结一下,白盒测试与黑盒测试相比,具有哪些优点,存在哪些不足?
参见表1-1
2.简述为什么要做白盒测试。
黑盒测试不能对程序源代码进行测试,有时虽然在黑盒测试中没有发现问题,但是并不能说明程序代码中没有缺陷了。
程序代码中如果存在着一些内存泄漏,在测试中运行时间短并不能发现问题,但是在系统长时间运行后,由于内存泄漏的积累,导致整个系统内存消耗殆尽,最后瘫痪。
覆盖率(白盒)测试(二)_真题(含答案与解析)-交互
覆盖率(白盒)测试(二)(总分96, 做题时间90分钟)一、选择题1.路径覆盖必定也满足______。
SSS_SINGLE_SELA 语句覆盖B 条件覆盖C 判定覆盖D 条件组合覆盖分值: 2答案:A2.设有一段程序如下:if((a==b) and ((c==d) or (e==f))) do S1else if((p==q) or (s==t)) do S2else do S3满足判定/条件覆盖的要求下,最少的测试用例数目是______。
SSS_SINGLE_SELA 6B 8C 3D 4分值: 2答案:C[分析] 判定/条件覆盖,就是设计足够的测试用例,使得判定语句中每个条件的所有可能取值至少评价一次,同时每个判定语句本身所有可能分支也至少评价一次。
本程序一共有两个判定语句和三条路径。
若以1代表某一个条件为真,0代表为假,则对于(a==b)、(c==d)、(e==f)、(p==q)、(s==t)这5个条件,取不同的真值组合,即可设计出相应的测试用例,达到判定/条件覆盖的要求。
在这里,先取(a==b)、(c==d)、(e==f)为101,(p==q)、(s==t)为任意值,然后取全部5个条件为010 11和010 00,即能达到判定/条件覆盖的要求。
3.在以下有关逻辑覆盖的说法中错误的是______。
SSS_SINGLE_SELA 所有满足条件组合覆盖标准的测试用例集,也满足路径覆盖的覆盖标准B 条件覆盖能够查出条件中包含的错误,但有时达不到判定覆盖的覆盖率要求C 路径覆盖的差错能力很强,但有时达不到条件组合覆盖的覆盖率要求D 判定覆盖包含了语句覆盖,但它不能保证每个错误条件都能检查出来分值: 2答案:A[分析] 满足了条件覆盖,并不一定满足判定覆盖。
尽管路径覆盖比判定/条件覆盖更强,但是路径覆盖并不一定能包含判定/条件覆盖。
4.下列几种逻辑覆盖标准中,设计足够的测试用例,运行被测程序,使得程序中所有可能的路径至少执行一次,称为______。
1407040248_周立群_白盒测试试题详解
1407040248_周⽴群_⽩盒测试试题详解第五章⽩盒测试⼀、判断分析题1.语句覆盖是最弱的逻辑覆盖。
(√)2.语句覆盖是最强的逻辑覆盖。
(X)3.判定覆盖不⼀定包含条件覆盖。
(X)4.条件覆盖不⼀定包含判定覆盖。
(√)5.判定/条件覆盖能同时满⾜判定、条件两种覆盖标准。
(√)6.判定/条件覆盖指满⾜判定覆盖标准或条件覆盖标准。
(X)7.DD-路径图是⼀种压缩图。
(X)8.详细设计的⽬的是为软件结构图中的每⼀个模块确定使⽤的算法和块内数据结构,并⽤某种选定的表达⼯具给出清晰的描述。
(X )9.尽量⽤公共过程或⼦程序去代替重复的代码段。
(X)10.对于连锁型分⽀结构,若有n个判定语句,则有2n条路径。
(√)11.尽量采⽤复合的条件测试,以避免嵌套的分⽀结构。
(√)12.GOTO语句概念简单,使⽤⽅便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁。
(√)⼆、简答题1.请试着⽐较⼀下⿊盒测试、⽩盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
答:⿊盒测试:已知产品的功能设计规格,可以进⾏测试证明每个实现了的功能是否符合要求。
⽩盒测试:已知产品的内部⼯作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
单元测试(模块测试)是开发者编写的⼀⼩段代码,⽤于检验被测代码的⼀个很⼩的、很明确的功能是否正确。
通常⽽⾔,⼀个单元测试是⽤于判断某个特定条件(或者场景)下某个特定函数的⾏为。
集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。
它的最简单的形式是:两个已经测试过的单元组合成⼀个组件,并且测试它们之间的接⼝。
从这⼀层意义上讲,组件是指多个单元的集成聚合。
在现实⽅案中,许多单元组合成组件,⽽这些组件⼜聚合成程序的更⼤部分。
⽅法是测试⽚段的组合,并最终扩展进程,将您的模块与其他组的模块⼀起测试。
最后,将构成进程的所有模块⼀起测试。
系统测试是将经过测试的⼦系统装配成⼀个完整系统来测试。
白盒测试用例练习题(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。
白盒测试笔试题
一选择题1.下面不属于白盒测试能保证的是(D)。
A.模块中所有独立途径至少测试一次B.测试所有逻辑决策真和假两个方面C.在所有循环的边界内部和边界上执行循环体D.不正确或漏掉的功能2.因果图方法是根据(a)之间的因果关系来设计测试用例的。
A.输入与输出B.设计与实现C.条件与结果D.主程序与子程序3.使用白盒测试方法时,确定测试数据应根据(a)和指定的覆盖标准。
A.程序的内部逻辑B.程序的复杂程度C.使用说明书D.程序的功能4.软件测试中常用的静态分析方法是(a)和接口分析。
A.引用分析B.算法分析C.可靠性分析D.效率分析5.白盒方法中常用的方法是(a)方法。
A.路径测试B.等价类C.因果图D.归纳测试6.在进行单元测试时,常用的方法是(a)。
A.采用白盒测试,辅之以黑盒测试B.采用黑盒测试,辅之以白盒测试C.只适用白盒测试D.只适用黑盒测试7.在软件工程中,白盒测试法可以用于测试程序的内部结构。
此方法将程序看做是(a)。
A.路径的集合B.循环的集合C.目标的集合D.地址的集合8. 对下面个人所得税程序中满足语句覆盖测试用例的是(D )If(income < 800) taxrate=0;Else if(income <=1500) taxrate=0.05;Else if(income <2000) taxrate=0.08;Exle taxrate=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)二简答题1.白盒测试有几种方法?答:白盒测试方法分为两大类:静态测试方法和动态测试方法。
静态测试方法:检查软件的表示和描述是否一致,没有冲突或者没有歧义。
动态测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
周立群白盒测试试题
第五章白盒测试一、判断分析题1.语句覆盖是最弱的逻辑覆盖。
(√)2.语句覆盖是最强的逻辑覆盖。
(X)3.判定覆盖不一定包含条件覆盖。
(X)4.条件覆盖不一定包含判定覆盖。
(√)5.判定/条件覆盖能同时满足判定、条件两种覆盖标准。
(√)6.判定/条件覆盖指满足判定覆盖标准或条件覆盖标准。
(X)7.DD-路径图是一种压缩图。
(X)8.详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内数据结构,并用某种选定的表达工具给出清晰的描述。
(X )9.尽量用公共过程或子程序去代替重复的代码段。
(X)10.对于连锁型分支结构,若有n个判定语句,则有2n条路径。
(√)11.尽量采用复合的条件测试,以避免嵌套的分支结构。
(√)12.GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁。
(√)二、简答题1.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
答:黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。
通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。
它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。
从这一层意义上讲,组件是指多个单元的集成聚合。
在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。
方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。
最后,将构成进程的所有模块一起测试。
系统测试是将经过测试的子系统装配成一个完整系统来测试。
它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。
软件测试之白盒测试题及答案
#include <iostream.h> //白盒测试测验题目白盒测试测验题目//程序功能:输入年、月,输出该月份的最大天数 void main() 1{2 int year, int month;3 int maxday = 0;4 cin>>year>>month;5 if ( month >= 1 && month <= 12 )6 {7 if ( month == 2 )8 {9 if ( year % 4 == 0 ) 10 { 11 if ( year % 100 == 0 ) 12 {13 if ( year % 400 == 0 ) 14 maxday = 29; 15 else16maxday = 28;17 } 18 else19 maxday = 29; 20 } 21else22 maxday = 28; 23 } 24 else 25 {26 if ( month == 4 || month == 6 || month == 9 || month == 11 ) 27 maxday = 30; 28 else29 maxday = 31; 30 } 31 }32cout<<"The MaxDay is:"<<maxday<<endl;33}要求:要求: 1. 画出该程序的程序流程图画出该程序的程序流程图1 2345 7 F1T168 10 F 2 T2912 11 27 F3 T 31331 33 F6 T632 28 14 29 23 F4 T4 1535 24 341630 25 36 18 F5 T51737 2026 2138 2219 39400:开始:开始 1 2 3456798 101112 13 14 1516 17 18 19 2021 22 23242526 27 28 29 30 31 323334:结束结束2. 画出该程序的DD 路径图路径图转换后的(D-D 图):A :{1-5};B :{6-7};C:{8-9}; D :{24-26};E :{10-11}; F :{21-23}; G :{12-13}; H :{18-20}; I :{14};J :{15-17};K :{27}; L :{28-31}; M :{32-33}; F1T1F2 T2T3F6 T6 F3 F4 T4F5T50:开始开始ABD C FEH GJ KL M 34:结束:结束 I3. 试用路径覆盖法中的语句覆盖、判定覆盖、条件覆盖、判定条件覆盖以及路径覆盖五种方法对上述问题设计测试用例述问题设计测试用例 1.语句覆盖:语句覆盖: 测试用例编号输入数据输入数据预期输出结果预期输出结果 覆盖语句覆盖语句yearmonthTC-00120002The MaxDay is:290,1,2,3,4,5,6,7,8,9,10,11,12,13,14,32,33,34TC-002 1700 2 The MaxDay is:280,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,32,33,34 TC-003 1604 2 The MaxDay is:290,1,2,3,4,5,6,7,8,9,10,11,18,19,20,32,33,34TC-004 1605 2 The MaxDay is:28 0,1,2,3,4,5,6,7,8,9,21,22,23,32,33,34TC-005 1914 6 The MaxDay is:30 0,1,2,3,4,5,6,7,24,25,26,27,32,33,34TC-006 1914 7 The MaxDay is:310,1,2,3,4,5,6,7,24,25,26,28,29,30,31,32,33,342.判定覆盖:判定覆盖:解释:我在各判断分支的真假分支都编有相应的真假符号,在判定覆盖中用判定分支的真假序号表示; 测试用例编号 输入数据输入数据 预期输出结果预期输出结果 覆盖判定覆盖判定yearmonthTC-001 2000 2 The MaxDay is:29 T1,T2,T3,T4,T5 TC-002 1700 2 The MaxDay is:28 T1,T2,T3,T4,F5TC-003 1604 2 The MaxDay is:29 T1,T2,T3,F4TC-004 1605 2 The MaxDay is:28 T1,T2,F3TC-005 1914 6 The MaxDay is:30 T1,F2,T6TC-006 1914 7 The MaxDay is:31 T1,F2,F6TC-007 1914 14 The MaxDay is:0 F13.条件覆盖:条件覆盖:(1)在判定语句5中有以下条件:中有以下条件:1.month >= 1 ;2.month <= 12 ;(2)在判定语句7中有以下条件:中有以下条件:3.month == 2;(3)在判定语句9中有以下条件:中有以下条件:4.year % 4 == 0;(4)在判定语句11中有以下条件:中有以下条件:5.year % 100 == 0;(5)在判定语句13中有以下条件:中有以下条件:6. year % 400 == 0;(6)在判定语句26中有以下条件:7. month == 4 ;8.month == 6 ;9.month == 9 ;10.month == 11;测试用例编号 输入数据输入数据 预期输出结果预期输出结果 覆盖的条件覆盖的条件yearmonthTC-001 2000 0 The MaxDay is:0 F1TC-002 1700 15 The MaxDay is:0 T1,F2TC-003 2000 2 The MaxDay is:29 T1,T2,T3,T4,T5,T6 TC-004 1605 4 The MaxDay is:30 T1,T2,F3,T7TC-005 1900 2 The MaxDay is:28 T1,T2,T3,T4,T5,F6TC-006 1604 2 The MaxDay is:29 T1,T2,T3,T4,F5TC-007 2013 2 The MaxDay is:28 T1,T2,T3,F4TC-008 1700 5 The MaxDay is:31 T1,T2,F3,F7,F8,F9,F10TC-009 1604 11 The MaxDay is:30 T1,T2,F3,F7,F8,F9,T10TC-0010 1605 9 The MaxDay is:30 T1,T2,F3,F7,F8,T9TC-0011 1914 6 The MaxDay is:30 T1,T2,F3,F7,T84.判定条件覆盖:(1)在判定语句5中有以下条件:中有以下条件:1.month >= 1 ;2.month <= 12 ;(2)在判定语句7中有以下条件:中有以下条件:3.month == 2;(3)在判定语句9中有以下条件:中有以下条件:4.year % 4 == 0;(6)在判定语句11中有以下条件:中有以下条件:5.year % 100 == 0;(7)在判定语句13中有以下条件:中有以下条件:6. year % 400 == 0;(6)在判定语句26中有以下条件:7. month == 4 ;8.month == 6 ;9.month == 9 ;10.month == 11;(覆盖的判定语句在程序流程图中有标识)(覆盖的判定语句在程序流程图中有标识)测试用例编号 输入数据输入数据 预期输出结果预期输出结果 覆盖的条件覆盖的条件 覆盖的判定覆盖的判定yearmonthTC-001 2000 0 The MaxDay is:0 F1 F1 TC-002 1700 15 The MaxDay is:0 T1,F2 F1TC-003 2000 2 TheMaxDay is:29 T1,T2,T3,T4,T5,T6 T1,T2,T3,T4,T5TC-004 1605 4 TheMaxDay is:30 T1,T2,F3,T7 T1,F2,T6TC-005 1900 2 TheMaxDayis: 28 T1,T2,T3,T4,T5,F6 T1,T2,T3,T4,F5TC-006 1604 2 The MaxDay is:29 T1,T2,T3,T4,F5 T1,T2,T3,F4 TC-007 2013 2 The MaxDay is:28 T1,T2,T3,F4 T1,T2,F3TC-008 1700 5 The MaxDay is:31 T1,T2,F3,F7,F8,F9,F10T1,F2,F6TC-009 1604 11 The MaxDay is:30 T1,T2,F3,F7,F8,F9,T10T1,F2,T6TC-0010 1605 9 The MaxDay is:30 T1,T2,F3,F7,F8,T9T1,F2,T6TC-0011 1914 6 The MaxDay is:30 T1,T2,F3,F7,T8 T1,F2,T65.路径覆盖:路径覆盖:解释:我在控制流程图的各条边上都编了序号,在路径覆盖中覆盖的路径用分支边上的序号表示;测试用例编号 输入数据输入数据 预期输出结果预期输出结果 覆盖的路径覆盖的路径year monthTC-001 2000 2 The MaxDay is:29 1-2-3-4-5-6-8-9-11-13-14-15-16-17-19-39-40 TC-00217002The MaxDay is:281-2-3-4-5-6-8-9-11-13-14-15-16-18-20-21-22-39-40TC-003 1604 2 The MaxDay is:29 1-2-3-4-5-6-8-9-11-13-14-23-24-25-26-39-40 TC-004 1605 2 The MaxDay is:28 1-2-3-4-5-6-8-9-11-27-28-29-30-39-40TC-005 1914 6 The MaxDay is:30 1-2-3-4-5-6-8-10-12-31-32-34-39-40TC-006 1914 7 The MaxDay is:31 1-2-3-4-5-6-8-10-12-31-33-35-36-37-38-39-40 TC-007 191414The MaxDay is:01-2-3-4-5-7-39-404. 用三种方法求出上述问题的圈复杂度(基路径数量V (G ))方法一:判定()结点个数计算法:V(G)=p+1;在此D-D 图中,判定结点个数为P=6;V(G)=6+1=7;方法二:.圈数计算法:V(G)= 圈数+1;该D-D 图中,圈数为6;V(G)=6+1=7;方法三:根据连通图公式计算:V(G)=E-N+2p ;E 是D-D 图中边的个数,图中边的个数, N 是D-D 图中结点的个数,p 是连通图的个数,p 一般等于1;在该图中E=40,N=35,p=1; V(G)=E-N+2p=40-35+2=7; 5. 写出上述问题的基路径测试方法所采用的基路径,写明过程写出上述问题的基路径测试方法所采用的基路径,写明过程过程:过程: 首先我根据D-D 路径来寻找基路径,找到一条最长的路径为路径1,再根据路径1中的中的 第一个分一个分支结点A 寻找其他没走过的路,这条路为路径2, 此时遍历完了分支结点A ,再在路径1中找第2个分支结点为B ,根据分支结点B 找到路径3,同理我们在路径1中还有分支结点C ,E ,G ,它们可以找到路径4,路径5和路径6,此时我们会发现已经查找完了5个分支结点,只剩下分支结点D 未被遍历,我们根据分支结点D 可以找到路径7,此时所有的基路径就已经全部找到的。
1407040248_周立群_白盒测试试题详解
条件组合覆盖:也称多条件覆盖,设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例)。
判定覆盖:有时也称分支覆盖,就是指设计若干测试用例,运行被测程序,使得每个判定的取真分支和取假分支至少经历一次。
例如上边的Coverage类代码,path ace,path abd,path abe,path acd四条路径均是符合判定覆盖要求的路径。
条件覆盖:设计足够多的测试用例,使得每一判定语句中每个逻辑条件的可能取值至少满足一次。
二、简答题
1.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
答:黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。
白盒测试作业参考答案
第四章白盒测试参考答案(注意:答案仅供参考,若有误,请自行修改。
)1、使用逻辑覆盖法测试以下程序段。
private void DoWork(int x, int y, int z)1 {2 int k = 0, j = 0;3 if ((x > 3) && (z < 10)) //3-a 和 3-b4 {5 k = x * y - 1;6 j = (int)Math.Sqrt(k);7 }8 if ((x == 4) || (y > 5)) //8-a 和 8-b9 j = x * y + 10;10 j = j % 3;11 lbResult.Text = "k=" + k.ToString() +" j=" +j.ToString () ;12 }说明:程序段中每行开头的数字是对每条语句的编号。
要求:(1)画出程序的控制流图(用题中给出的语句编号表示)。
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。
(3)执行测试用例,并记录测试结果。
参考答案:(1):控制流图:(2)(3)测试用例略。
2.基本路径测试按要求对下面的代码进行测试。
代码功能是:用折半查找在元素呈升序排列的数组中查找值为key的元素。
代码如下:private int BinSearch(int [] array,int key)1 {2 int mid,low,high;3 low=0;4 high = array.Length - 1;5 while (low <= high)6 {7 mid = (low + high) / 2;8 if (key == array[mid])9 return mid;10 else if (key < array[mid])11 high = mid - 1;12 else13 low = mid + 1;14 }15 return -1;16 }参考答案:(1)控制流图:(2)环形复杂度V(G)=3+1=4;(3)独立路径:5→15→165→8→165→8→10→11→14→5→……5→8→10→13→14→5→……测试用例表略。
白盒测试习题
【说明】本流程图描述了某子程序的处理流程,现要求用白盒测试法为该子程序设计测试数据。
【流程图】【问题】根据判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等5种覆盖标准,从供选择的答案中分别找出满足相应覆盖标准的最小测试数据组(用(1)~(12)回答)。
供选择的答案(1)X=90, Y=90: X=70, Y=70(2)X=90, Y=70; X=70, Y=90(3) X=90, Y=90: X=90, Y=75; X=75, Y=90(4) X=90, Y=75: X=75, Y=90: X=70, Y=70(5) X=90, Y=90: X=90, Y=75: X=75, Y=90; X=70, Y=70(6) X=80, Y=80: X=90, Y=70; X=70, Y=90; X=70, Y=70(7) X=80, Y=80: X=90, Y=75: X=90, Y=90; X=75, Y=90: X=70, Y=70(8) X=80, Y=80: X=90, Y=70: X=70, Y=90: X=70, Y=70; X=70, Y=75(9) X=80, Y=80: X=90, Y=75; X=90, Y=70: X=70, Y=80; X=70, Y=75: X=70,Y=70(I0) X=90, Y=90: X=90, Y-75; X=90, Y=70: X=75, Y=90: X=70, Y=70: X=70,Y=90(II) X=80, Y=80: X=90, Y=75; X=90, Y=70: X=70, Y-80: X=70, Y=75: X=70,Y=70: X=70,Y=90(12) X=80, Y=80: X=80, Y=70: X=70, Y=80: X=70, Y=70: X=90, Y=75: X=90,Y=70: X=70,Y=75: X=75, Y=90: X=75, Y=80; X=70, Y=90以下为C语言代码:intDoWork(int x, int y, int z){intj = 0;if (x > 3 && z < 10)j = x * y - 1;if (x == 4 || y > 5)j = x * y + 10;j = j % 3;return j;}写出分别达到语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、路径覆盖的测试用例。
白盒测试练习题目
选择题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)。
[试题分类]: [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题型:单选题7.在软件工程中,白箱测试法可用于测试程序的内部结构。
此方法将程序看作是()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.条件中包含的错误有接口错误分数:1题型:单选题难度:113.语句覆盖.判定覆盖.条件覆盖和路径覆盖都是白盒测试法设计测试用例的覆盖准则,在这些覆盖准则中最弱的准则是()。
A.语句覆盖B.条件覆盖C.路径覆盖D.判定覆盖答案:A分数:1题型:单选题难度:114.语句覆盖.判定覆盖.条件覆盖和路径覆盖都是白盒测试法设计测试用例的覆盖准则,在这些覆盖准则中最强的准则是()。
A.语句覆盖B.条件覆盖C.路径覆盖D.判定覆盖答案:C分数:1题型:单选题难度:115.在下面所列举的逻辑测试覆盖中,测试覆盖程度最强的是()A.条件覆盖B.条件组合覆盖C.语句覆盖D.条件及判定覆盖答案:B分数:1题型:单选题难度:116.在下面所列举的逻辑测试覆盖中,测试覆盖程度最弱的是()A.条件覆盖B.条件组合覆盖C.语句覆盖D.条件及判定覆盖答案:C分数:1题型:单选题难度:117.对下面的个人所得税程序中满足语句覆盖测试用例的是()If(income < 800) taxrate = 0;else if(income <= 1500) taxrate = 0.05;else if(income < 2000) taxrate = 0.08;else taxrate = 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)答案:D分数:1题型:单选题难度:118.对下面的个人所得税程序中满足判定覆盖测试用例的是()If(income < 800) taxrate = 0;else if(income < 2000) taxrate = 0.08;else taxrate = 0.1;A.income = (799,1500,1999,2001)B.income = (799,1501,2000,2000)C.income = (800,1500,2000,2001)D.income = (800,1499,2000,2001)答案:A分数:1题型:单选题难度:119.下列陈述中正确的是()A.结构测试中不包括循环测试B.猜测错误也是一种测试方法C.如果能做到穷举测试,便可发现程序中的全部错误D.语句覆盖达到100%,则分支(判定)覆盖也应达到100%答案:D分数:1题型:单选题难度:120.在下列逻辑覆盖测试法中,覆盖程度最高的是()。
A.语句覆盖B.判定覆盖C.路径覆盖D.条件组合覆盖答案:C分数:1题型:单选题难度:121. 在下列逻辑覆盖测试法中,覆盖程度最低的是()。
A.判定覆盖B.条件覆盖C.语句覆盖D.路径覆盖答案:C分数:1题型:单选题难度:122.以下四种逻辑覆盖中,发现错误能力最强的是()A.语句覆盖B.条件覆盖C.判定覆盖D.条件组合覆盖答案:B分数:1题型:单选题难度:1[试题分类]: [04]白盒测试方法/[0402]基本路径法23.路径测试是整个结构测试的重要组成部分,但在研究路经测试时,通常又是使用程序控制流图来代替()A.程序框图B.结构图C.数据流图D.程序流程图答案:A分数:1题型:单选题1、判定覆盖设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支_至少被执行一次。
5、根据覆盖目标的不同,逻辑覆盖又可分为:________________,_____________,_______________,__________________,条件组合覆盖,判断/条件覆盖。
语句覆盖,判定覆盖,条件覆盖,路径覆盖9、白盒测试又称为______________,可以分为______________和______________两大类。
结构测试,静态测试,动态测试16、代码复审属于____________,不实际运行程序。
静态测试1. 下列哪一项不是白盒测试?(C)A.单元测试B.集成测试C.系统测试D.回归测试6.有一组测试用例使得每一个被测试用例的分支覆盖至少被执行一次,它满足的覆盖标准___________。
(B)A. 语句覆盖B.判定覆盖C.条件覆盖D.路径覆盖9.关于白盒测试与黑盒测试的最主要区别,正确的是___________。
(A)A.白盒测试侧重于程序结构,黑盒测试侧重于功能B.白盒测试可以使用测试工具,黑盒测试不能使用工具C.白盒测试需要程序参与,黑盒测试不需要D.黑盒测试比白盒测试应用更广泛12.在下面所列举中的逻辑测试覆盖中,测试覆盖最强的是__________。
(B)A.条件覆盖B.条件组合覆盖C.语句覆盖D.判定覆盖13.在下面所列举中的逻辑测试覆盖中,测试覆盖最弱的是__________。
(C)A.条件覆盖B.条件组合覆盖C.语句覆盖D.判定覆盖30.代码检查法有桌面检查法,走查和__________。
(B)A.静态测试B.代码审查C.动态测试D.白盒测试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){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)控制流图:(2)V(G)= 4路径1:4→14路径2:4→6→7→13 → 4 → 14路径3:4→6→9→10→13→4→14路径4:4→6→9→12→13→4→141.如图显示某程序的逻辑结构。
试为它设计足够的测试用例,分别实现对程序的判定覆盖、条件覆盖和条件组合覆盖。
(20分)(每空答案:覆盖种类需满足的条件测试数据期望结果判定覆盖A>1, B=0 A=2, B=0 执行S1A>1, B≠0或A≤1, B=0或A≤1, B≠0A=2, B=1或A=1, B=0或A=1, B=1执行S2条件覆盖以下四种情况各出现一次A>1 B=0 A=2,B=0 执行S1A≤1 B≠0 A=1,B=1 执行S2条件组合覆盖A>1, B=0 A=2, B=0 执行S1 A>1, B≠0 A=2, B=1 执行S2 A≤1, B=0 A=1, B=0 执行S2 A≤1, B≠0 A=1, B=1 执行S23.设一个控制流图如下,请给出环形复杂度和基本测试路径。