软件测试-白盒测试用例练习题
白盒测试例题
例题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用白盒测试方法设计测试用例。
《软件测试》第三章 白盒测试方法
《软件测试》第三章白盒测试方法一、填空题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):设计足够多的测试用例,确保每个条件都分别取真值与假值。
软件测试之白盒测试题及答案
#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,此时所有的基路径就已经全部找到的。
白盒测试习题
习题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 阅读下列流程图:当用判定覆盖法进行测试时,至少需要设计( ) 个测试用例。
白盒和黑盒测试用例测试题目
一、问题:报表日期等价类划分和边界值分析设某公司要打印2001~2005年的
报表,其中报表日期为6位数字组成,其中,前4位为年份,后两位为月份。
二、请结合等价类方法给出getNumDaysInMonth(int month, int year)方法
的测试用例,其中getNumDaysInMonth方法根据给定的月份和年份返回该月份的总天数。
三、阅读下列说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。
[说明]在 ERP(企业资源计划)系统中,“计划管理”模块的流程图如下:
[问题1]因果图法是功能测试案例设计方法中的一种,简述利用因果图导出测试用例需要经过哪几个步骤?
[问题2]根据题干中的流程图,利用因果图法,找出哪些是正确的输入条件,那些是正确的输出结果,将下列描述的字母编号填入表中。
a.可以进行销售发货管理
b.可用库存不满足销售需求(有可用库存)
c.可用库存不满足销售需求(无可用库存)
d.可用库存满足生产需求
e.可用库存不满足生产需求
f.可用库存不满足生产需求(无可用库存)
g.可以进行 MPS 运算
h.可用库存满足销售需求
i.生成主生产计划
j.生成计划采购单
k.生成计划生产定单
l.可以进行 MRP 运算
[问题3]下图画出“计划管理”模块的因果图。
请把问题2中列出的输入条件和输出结果的字母编号填入到空白框中相应的位置。
四、有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品
后,进行在线购买,这时需要使用帐号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。
五、根据如下流程图,写出白盒测试测试用例。
软件测试技术-考题-大全
一、“白盒”测试1. 逻辑路径覆盖法是白盒测试用例的重要设计方法,其中语句覆盖法是较为常用的方法,针对下面的语句段,采用语句覆盖法完成测试用例设计,测试用例见下表,对表中的空缺项(True或者False),正确的选择是(A)。
语句段:if (A && (B||C)) x=l;else x=O;用例表:A.①TRUE ②FALSE ③TRUE B.①TRUE ②FALSE ③FALSEC.①FALSE ②FALSE ③TRUE D.①TRUE ②TRUE ③FALSE2. 不属于白盒测试的技术是(C)。
A. 语句覆盖B. 判定覆盖C. 边界值分析D. 基本路径测试3.实际的逻辑覆盖测试中,一般以(C)为主设计测试用例。
A. 条件覆盖B. 判定覆盖C. 条件组合覆盖D. 路径覆盖4. 使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。
A. 程序内部逻辑B. 程序的复杂度C. 使用说明书D. 程序的功能5. 在用白盒测试中的逻辑覆盖法设计测试用例时,有语句覆盖、分支覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖等,在下列覆盖中,(D)是最强的覆盖准则。
A. 语句覆盖B. 条件覆盖C. 判定-条件覆盖D. 路径覆盖6. 在用白盒测试中的逻辑覆盖法设计测试用例时,有语句覆盖、分支覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖等,其中(A)是最弱的覆盖准则。
A. 语句覆盖B. 条件覆盖C. 判定-条件覆盖D. 路径覆盖7.软件测试中白盒法是通过分析程序的(B)来设计测试用例的。
A. 应用范围B. 内部逻辑C. 功能D. 输入数据8.下列几种逻辑覆盖标准中,查错能力最强的是(D)。
A. 语句覆盖B. 判定覆盖C. 条件覆盖D. 条件组合覆盖9. 造成测试覆盖率不达标的原因可能是(D)。
A. 存在不可到达的代码或冗余的代码B. 测试用例不足C. 存在不可能的路径和条件D. 以上全部10. 下列叙述中,(A)是正确的。
白盒测试练习
7.4白盒测试【课堂练习】选择题1、下面不属于白盒测试能保证的是()A)模块中所有独立途径至少测试一次B)测试所有逻辑决策真和假两个方面C)在所有循环的边界内部和边界上执行循环体D)不正确或漏掉的功能2、语句覆盖、判定覆盖、条件覆盖和路径覆盖都是白盒测试法设计测试用例的覆盖准则,在这些覆盖准则中最弱的准则是()。
A)语句覆盖B)条件覆盖C)路径覆盖D)判定覆盖3、在下面所列举的逻辑测试覆盖中,测试覆盖程度最强的是()A)条件覆盖B)条件组合覆盖C)语句覆盖D)条件及判定覆盖4、对下面的个人所得税程序中满足语句覆盖测试用例的是()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)5、对下面的个人所得税程序中满足判定覆盖测试用例的是()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 = (799,1500,1999,2001)B)income = (799,1501,2000,2000)C)income = (800,1500,2000,2001)D)income = (800,1499,2000,2001)6、使用白盒测试方法时,确定测试数据应根据()和指定的覆盖标准。
白盒测试上机练习
白盒测试课程练习一、判断分析题1.语句覆盖是最弱的逻辑覆盖。
(√)2.语句覆盖是最强的逻辑覆盖。
(×)3.判定覆盖不一定包含条件覆盖。
(√)4.条件覆盖不一定包含判定覆盖.(√)5.判定/条件覆盖能同时满足判定、条件两种覆盖标准.(√)6.判定/条件覆盖指满足判定覆盖标准或条件覆盖标准。
(×)7.DD-路径图是一种压缩图。
(√)8.详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内数据结构,并用某种选定的表达工具给出清晰的描述。
(√)9.尽量用公共过程或子程序去代替重复的代码段。
(√)10.对于连锁型分支结构,若有n个判定语句,则有2n条路径。
(√)11.尽量采用复合的条件测试,以避免嵌套的分支结构。
(×)12.GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁.(√)二、简答题1.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
软件的黑盒测试意味着测试要在软件的接口处进行。
这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。
因此黑盒测试又叫功能测试或数据驱动测试.黑盒测试主要是为了发现以下几类错误:1、是否有不正确或遗漏的功能?2、在接口上,输入是否能正确的接受?能否输出正确的结果?3、是否有数据结构错误或外部信息(例如数据文件)访问错误?4、性能上是否能够满足要求?5、是否有初始化或终止性错误?白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
软件的白盒测试是对软件的过程性细节做细致的检查。
这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
软件测试补充练习-白盒测试
软件测试补充练习白盒测试练习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、本流程图描述了某子程序的处理流程,现要求用白盒测试法为该子程序设计测试数据。
白盒测试用例练习
白盒測試用例練習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 {/** 判斷三角形の種類。
白盒测试及例题
基本路径测试
• 前提条件 测试进入的前提条件是在测试人员 已经对被测试对象有了一定的了解,基 本上明确了被测试软件的逻辑结构。 • 测试过程 过程是通过针对程序逻辑结构设计 和加载测试用例,驱动程序执行,以对 程序路径进行测试。测试结果是分析实 际的测试结果与预期的结果是否一致。
基本路径测试
• 在程序控制流图的基础上,通过分析控制构造的环 路复杂性,导出基本可执行路径集合,从而设计测 试用例。包括以下4个步骤和一个工具方法: 1. 程序的控制流图:描述程序控制流的一种图示 方法。 2. 程序圈复杂度:McCabe复杂性度量。从程序的 环路复杂性可导出程序基本路径集合中的独立 路径条数,这是确定程序中每个可执行语句至 少执行一次所必须的测试用例数目的上界。 3. 导出测试用例:根据圈复杂度和程序结构设计 用例数据输入和预期结果。 4. 准备测试用例:确保基本路径集中的每一条路
条件组合覆盖
• 针对上述问题又提出了另一种标准——―条 件组合覆盖”。它的含义是:执行足够的 例子,使得每个判定中条件的各种可能组 合都至少出现一次。显然,满足“条件组 合覆盖”的测试用例是一定满足“分支覆 盖”、“条件覆盖”和“分支/条件覆盖” 的。
条件组合覆盖
再看例1的程序,我们需要选择适当 的例子,使得下面 8种条件组合都能 够出现:
基本路径测试
工具方法: 图形矩阵:是在基本路径测试中起辅 助作用的软件工具,利用它可以实现自 动地确定一个基本路径集。
控制流图的符号
• 在介绍基本路径方法之前,必须先介绍一种简单的 控制流表示方法,即流图。流图是对待测试程序过 程处理的一种表示。流图使用下面的符号描述逻辑 控制流,每一种结构化构成元素有一个相应的流图 符号。
• • • • 白盒测试概念 测试覆盖标准 逻辑驱动测试 基本路径测试
软件测试技术上机2 白盒测试
上机2 白盒测试
一、对下图所示程序段进行语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖方法进行测试用例设计。
1、语句覆盖:
2、判定覆盖
3、条件覆盖
5、组合覆盖
二、针对test函数按照基本路径测试方法设计测试用例。
int Test(int i_count, int i_flag)
{
1 int i_temp=0;
2 while (i_count>0)
{
3 If (0==i_flag)
{
4 i_temp=i_count+100;
5 break;
}
6 else
{
7 If (1==i_flag)
{
8 i_temp=i_temp+10;
}
9 else
{
10 i_temp=i_temp+20;
}
}
11 i_count--;
}
12 return i_temp;
}
解答:
1.画出程序控制流程图如下:
2.计算圈复杂度
从图中可以看到,V(G)=11(边数)-9(结点数)+2=3(判定结点数)+1=4,则上图的圈复杂图为4。
表示只要最多 4 个测试用例就可以达到基本路径覆盖。
3.确定独立路径的基本集合
路径1:1-2-3-4-5-12
路径2:1-2-12
路径3:1-2-3-6-7-8-11-2-12
路径4:1-2-3-6-7-9-10-11-2-12
4.设计测试用例。
软件测试-白盒测试用例练习题
白盒测试用例练习一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。
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)的输入值可以达到判定条件覆盖。
白盒测试习题
【说明】本流程图描述了某子程序的处理流程,现要求用白盒测试法为该子程序设计测试数据。
【流程图】【问题】根据判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等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;}写出分别达到语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、路径覆盖的测试用例。
白盒和黑盒测试用例测试题目
一、问题:报表日期等价类划分和边界值分析设某公司要打印2001~2005年的
报表,其中报表日期为6位数字组成,其中,前4位为年份,后两位为月份。
二、请结合等价类方法给出getNumDaysInMonth(int month, int year)方法
的测试用例,其中getNumDaysInMonth方法根据给定的月份和年份返回该月份的总天数。
三、阅读下列说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。
[说明]在 ERP(企业资源计划)系统中,“计划管理”模块的流程图如下:
[问题1]因果图法是功能测试案例设计方法中的一种,简述利用因果图导出测试用例需要经过哪几个步骤?
[问题2]根据题干中的流程图,利用因果图法,找出哪些是正确的输入条件,那些是正确的输出结果,将下列描述的字母编号填入表中。
a.可以进行销售发货管理
b.可用库存不满足销售需求(有可用库存)
c.可用库存不满足销售需求(无可用库存)
d.可用库存满足生产需求
e.可用库存不满足生产需求
f.可用库存不满足生产需求(无可用库存)
g.可以进行 MPS 运算
h.可用库存满足销售需求
i.生成主生产计划
j.生成计划采购单
k.生成计划生产定单
l.可以进行 MRP 运算
[问题3]下图画出“计划管理”模块的因果图。
请把问题2中列出的输入条件和输出结果的字母编号填入到空白框中相应的位置。
四、有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品
后,进行在线购买,这时需要使用帐号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。
五、根据如下流程图,写出白盒测试测试用例。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试-白盒测试用例练
习题
本页仅作为文档页封面,使用时可以删除
This document is for reference only-rar21year.March
白盒测试用例练习
一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。
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
}
由这个流程图可以看出,该程序模块有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、判定覆盖
p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。
也可以让测试用例测试路径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<=5
根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表所示:
4、判定/条件覆盖
5、组合覆盖
条件组合
1)x>3,z<10 2)x>3,z>=10
3) x<=3,z<10 4)x<=3,z>=10
5)x=4,y>5 6)x=4,y<=5
7)x!=4,y>5 8)x!=4,y<=5
6、路径覆盖
二、冒泡法排序:
#include<>
main()
{
int i,j,temp;
int a[10];
for(i=0;i<10;i++) scanf ("%d,",&a[i]); for(j=0;j<=9;j++) { for (i=0;i<10-j;i++) if (a[i]>a[i+1]) {
temp=a[i]; a[i]=a[i+1];
a[i+1]=temp;}
}
for(i=0;i<10;i++) printf("%5d,",a[i] ); printf("\n"); }
2、程序流程图
3
语句覆盖 3
判定覆盖
条件覆盖
路径覆盖。