软件工程白盒测试练习及解答
软件测试-白盒测试用例练习题
白盒测试用例练习一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。
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。
软件测试白盒测试用例练习题
白盒测试用例练习一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。
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 d由这个流程图可以看出,该程序模块有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=0T T P1(a-c-e)2、判定覆盖x>3 andz<10 x=4 or y>5 j=j%3j=x*y+10 k=x*y-1 j=sqrt(k)k=0 j=0p1和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.计算环路复杂度方法有哪三种,答:(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),写出独立路径。
软件工程测试题及答案
软件工程测试题及答案一、单项选择题(每题2分,共20分)1. 软件测试的目的是:A. 证明软件无缺陷B. 证明软件存在缺陷C. 证明软件符合需求规格D. 证明软件符合设计答案:B2. 黑盒测试主要关注:A. 内部逻辑B. 输入输出关系C. 代码结构D. 内部数据结构答案:B3. 白盒测试主要关注:A. 内部逻辑B. 输入输出关系C. 代码结构D. 内部数据结构答案:A4. 单元测试通常由谁执行:A. 客户B. 测试人员C. 开发人员D. 项目经理答案:C5. 系统测试的目的是:A. 测试单个模块B. 测试整个系统C. 测试集成后的模块D. 测试用户界面答案:B二、多项选择题(每题3分,共15分)1. 以下哪些属于软件测试的类型:A. 单元测试B. 集成测试C. 系统测试D. 性能测试E. 回归测试答案:ABCDE2. 软件测试过程中可能使用到的测试用例设计技术包括:A. 等价类划分B. 边界值分析C. 决策表D. 错误猜测E. 随机测试答案:ABCDE3. 软件测试的阶段包括:A. 单元测试B. 集成测试C. 系统测试D. 验收测试E. 性能测试答案:ABCD三、填空题(每空1分,共10分)1. 软件测试的目的是________。
答案:发现软件缺陷2. 软件测试的基本原则是________。
答案:测试显示存在缺陷3. 软件测试的目的是________,而不是证明软件没有缺陷。
答案:发现错误4. 软件测试的目的是________,而不是证明软件符合需求。
答案:发现错误5. 软件测试的目的是________,而不是证明软件符合设计。
答案:发现错误四、简答题(每题5分,共20分)1. 简述软件测试的重要性。
答案:软件测试是确保软件质量的关键环节,它能够发现软件中的错误和缺陷,从而提高软件的可靠性和稳定性,减少用户在使用过程中遇到的问题。
2. 描述软件测试的一般过程。
答案:软件测试的一般过程包括测试计划、测试设计、测试实施、测试评估和测试报告。
白盒测试方法习题及答案
[试题分类]: [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.语句覆盖.判定覆盖.条件覆盖和路径覆盖都是白盒测试法设计测试用例的覆盖准则,在这些覆盖准则中最弱的准则是()。
软件工程测试题含答案
软件工程测试题含答案一、选择题1. 下列关于软件测试的说法中,错误的是:A. 软件测试是验证软件系统的正确性和完整性的过程B. 软件测试是为了发现和纠正软件中的错误C. 软件测试可以保证软件系统的绝对没有错误D. 软件测试可以帮助提高软件质量答案:C2. 软件测试的主要目的是:A. 发现软件中的错误B. 让用户更容易上手使用软件C. 保证软件的绝对没有错误D. 提高软件的开发效率答案:A3. 在软件测试中,黑盒测试的特点是:A. 只测试软件的外部功能,不考虑内部结构B. 只测试软件的内部结构,不考虑外部功能C. 综合测试软件的内外部功能D. 只测试软件的界面功能,不考虑其他功能答案:A4. 在软件测试中,白盒测试的特点是:A. 只测试软件的外部功能,不考虑内部结构B. 只测试软件的内部结构,不考虑外部功能C. 综合测试软件的内外部功能D. 只测试软件的界面功能,不考虑其他功能答案:B5. 下列哪种测试方法通常被用于验证软件系统的全面性和正确性:A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:C二、填空题1. 软件测试的基本原则是“早测出、早纠正、早测试”,它强调在软件开发的早期进行( 1 )测试,并及时( 2 )软件中的错误。
答案:(1) 单元;(2) 纠正2. 为了保证测试的完备性和准确性,测试用例应该( 1 )。
答案:(1) 具有高覆盖率3. 在进行黑盒测试时,测试人员不需要了解被测软件的( 1 )。
答案:(1) 内部结构4. 在进行白盒测试时,测试人员需要了解被测软件的( 1 )。
答案:(1) 内部结构5. 对于错误的级别进行划分,常用的标准有( 1 )。
答案:(1) 严重程度三、简答题1. 请简要介绍一下软件测试的目的和重要性。
答:软件测试的目的是为了发现软件中的错误并进行纠正,以保证软件的正确性、完整性和质量。
软件测试的重要性体现在以下几个方面:- 帮助提高软件质量:通过测试,可以发现和修复软件中的错误,确保软件的可靠性和稳定性。
白盒测试练习及问题详解
Is 在白盒测试用例设计中,有语句覆盖、分支覆盖、条件覆盖、路径覆盖等,其中(A ) 是最强的覆盖准则。
为了对如下图所示的程序段进行覆盖测试,必须适当地选取瀬式用例组。
若x, y 是两个变呈,可供选择的测试用例组共有I 、□、皿、IV 四组,如表中给出,则实现判 走覆盖至少应采取的测试用例组是(B )或(C );实现条件覆盖至少应采取的测试用 例组是(D );实现路径覆盖至少应采取的测试用例组是(E )或(F )。
供选择的答案 A :①语句覆盖②条件覆盖 ③判走覆盖④路径覆盖B 〜F:①I 和II 组 ②II 和m 组 ③ 皿和IV 组 ④I 和IV 组⑤I.⑧I 、□、in 组 ⑥□、皿、iv 组⑦I 、m 、iv 组 □、IV 组 解答:A.④ B •⑤ C.⑧D.④E.⑤F •⑧2•阅读下面这段程序#使用逻辑覆盖法进行测试,请问哪一组关于(a,b ,c )的输 入值可以达到条件覆盖。
(B )int func(int a f b,c) { int k=l;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) = (361)、(-4,-5,7)B. (a,b,c)二(2,5,8). (+c. (abc)二(6册2)、(154) D.⑻b,c)二(4禺2). (-4f8f3)3•阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(ab,c )的输入值可以达到判定覆盖。
(D )int func(int a z b,c){ int k=l;if ((a>0) &&(bvO) && (a+c>0)) k=k+a;else k二k+b;if (c>0) k二k+c;return k;}A.⑻b,c) = (361)、(-4,-5,7)B. (a,b,c) = (2,5,8)、(-4,-9,-5)c. (a f b f c) = (154) D. (a,b,c)二(4厂9厂2)、(-4,8,3)4•阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a z b z c )的输入值可以达到判定条件覆盖。
白盒测试问答
一、选择题
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.简述为什么要做白盒测试。
黑盒测试不能对程序源代码进行测试,有时虽然在黑盒测试中没有发现问题,但是并不能说明程序代码中没有缺陷了。
程序代码中如果存在着一些内存泄漏,在测试中运行时间短并不能发现问题,但是在系统长时间运行后,由于内存泄漏的积累,导致整个系统内存消耗殆尽,最后瘫痪。
软件工程白盒测试
以下的程序段,请分别写出语句覆盖、判定覆盖、条件覆盖、判定—条件覆盖、条件组合覆盖的测试用例?(红色部分代码可能会改变)void DoWork(int x,int y,int z){int k=0,j=0;if((x>3)&&(z<10)){k=x*y-1; //语句块1j=sqrt(k);}if((x==4)||(y>5)){j=x*y+10; //语句块2}j=j%3; //语句块3}解:(1)语句覆盖(3分)测试用例输入:{ x=4、y=5、z=5}程序执行的路径是: a-b-d这个测试用例把三个执行语句块中的语句都覆盖了。
(2)判定覆盖(3分)测试用例的输入为:{ x=4、y=5、z=5}		 { x=2、y=5、z=5} 程序执行的路径:a-b-d a-c-e(3)条件覆盖(3分)测试用例通过路径条件取值覆盖分支x=2、y=6、z=5 acd-T1、T2、-T3、T4 cdx=4、y=5、z=15 acdT1、-T2T3、-T4 cd(4)判定-条件覆盖(3分)测试用例通过路径条件取值覆盖分支x=4、y=6、z=5 abdT1、T2、T3、T4 bdx=2、y=5、z=11ace-T1、-T2、-T3、-T4 ce(5)条件组合覆盖(3分)测试用例通过路径覆盖条件 x=4、y=6、z=5 abdT1、T2、T3、T4x=4、y=5、z=15 acdT1、-T2、T3、-T4 x=2、y=6、z=15 ace-T1、-T2、-T3、-T4 x=5、y=4、z=5 abeT1、T2、-T3、T4第三节白盒测试白盒测试以程序的结构为依据,所有又称为结构测试。
早期的白盒测试把注意力放在流程图的各个判定框,使用不同的逻辑覆盖标准来表达对程序进行测试的详尽程度。
随着测试技术的发展,人们越来越重视对程序执行路径的考察,并且用程序图代替流程图来设计测试用例。
白盒测试试题答案[1]
先看以下代码:/** 白盒测试逻辑覆盖测试范例*/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、测试用例:两个判断的取真、假分支都已经被执行过,所以满足了判断覆盖的标准。
白盒测试用例练习
白盒测试用例练习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、对于判定语句IF (a>1 AND c1、c1 AND c判断覆盖方法。
5、判定条件覆盖要求判定语句中所有条件取值的可能组合都至少出现一次。
6、在程序插桩法中,插入到程序中的代码称为探针。
二、判断题1、语句覆盖无法考虑分支组合情况。
(X )。
2、目标代码插桩需要重新编译、链接程序。
(√)。
3、语句覆盖可以测试程序中的逻辑错误。
(√)。
4、判定-条件覆盖没有考虑判定语句与条件判断的组合情况。
(X )。
5、对于源代码插桩,探针具有较好的通用性。
(√)。
三、单选题1、下列选项中,哪一项不属于逻辑覆盖?( D )。
A.语句覆盖B.条件覆盖C.判定覆盖D.判定-语句覆盖。
2、关于逻辑覆盖,下列说法中错误的是( C )。
A.语句覆盖的语句不包括空行、注释等。
B.相比于语句覆盖,判定覆盖考虑到了每个判定语句的取值情况。
C.条件覆盖考虑到了每个逻辑条件取值的所有组合情况。
— 1/2 —— 1/2 —D.在逻辑覆盖中,条件组合覆盖是覆盖率最大的测试方法。
3、关于程序插桩法,下列说法中错误的是( D )。
A.程序插桩法就是往被测程序中插入测试代码以达到测试目的的方法。
B. 程序插桩法可分为目标代码插桩法和源代码插桩。
C. 源代码插桩的程序需要重新编译、链接过程,单测试代码不参与编译、链接过程。
D. 目标代码插桩是往二进制程序中插入测试代码四、简答题1、请简述逻辑覆盖的几种方法及他们之间的区别。
答:6种。
语句覆盖(SC):设计足够多的测试用例,抄确保每条语句都被执行过。
判定覆盖(DC):设计足够多的测试用例,确保每个判定都分别取真值与假值。
条件覆盖(CC):设计足够多的测试用例,确保每个条件都分别取真值与假值。
白盒测试用例练习
白盒测试用例练习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、使用逻辑覆盖法测试以下程序段。
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→……测试用例表略。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
白盒测试练习
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) 写出满足条件组合覆盖需要的测试用例。
解:条件组合覆盖是判定中条件的各种组合都至少被执行一次
运行结果
更改逻辑运算符
以条件组合覆盖测试用例进行测试运行结果。