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

合集下载

白盒测试练习题11

白盒测试练习题11

白盒测试练习题1、为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。

语句覆盖:X=17,y=6; x=1,y=4; x=10,y=-1; 判定覆盖:x=18,y=7; x=3,y=2; x=1,y=-2; x=9,y=9 条件覆盖:对于第一个判定( (x>8)&&y>5) ):条件x>8 取真值记为T1,取假值记为F1条件y>5 取真值记为T2,取假值记为F2对于第二个判定( (x>16)||(y>10) ):条件x>16 取真值记为T3,取假值记为F3条件y>10 取真值记为T4,取假值记为F4 对于第三个判定((x>0)||(y>0):条件x>0 取真值记为T5,取假值记为F5条件y>0 取真值记为T6,取假值记为F6判定/条件覆盖:组合覆盖:1.X>8,Y>5:T1T22.X>8,Y<=5:T1F23.X<=8,Y>5:F1T24.X<=8,Y<=5:F1F25.X>0,Y>0:T5T66.X>0,Y<=0:T5F67.X<=0,Y>0:F5T68.X<=0,Y<=0:F5F69.X>16,Y>10:T3T410.X>16,Y<=10:T3F411.X<=16,Y>10:F3T412.X<=16,Y<=10:F3F42、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

程序如下,请按要求设计测试用例。

要求:画出流程图分别写出满足语句覆盖和判定覆盖的测试用例语句覆盖:c=a;c= ;c=0;c=, 判定覆盖:c=a,;c= ;c=0;c=, 1)画出控制流图;2)分析复杂性;V(G)=53)给出独立路径并设计测试用例;路径1:2-11路径2: 2-3-4-11路径3: 2-3-5-6-11路径4: 2-3-5-7-8-11路径5: 2-3-5-7-9-114)画出N-S图;5)计算要满足覆盖所需要的最少测试用例数;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); //语句块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。

白盒和黑盒测试用例测试题目

白盒和黑盒测试用例测试题目

一、问题:报表日期等价类划分和边界值分析设某公司要打印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中列出的输入条件和输出结果的字母编号填入到空白框中相应的位置。

四、有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品
后,进行在线购买,这时需要使用帐号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。

五、根据如下流程图,写出白盒测试测试用例。

白盒测试-基本路径测试习题

白盒测试-基本路径测试习题
}
public static void getArray2(int[] arr){ System.out.print("冒泡排序后数组大小排列为:"); for(int i = 0;i < arr.length; i++){ System.out.print(arr[i]+" , "); } System.out.println();
(13)
return;
(14)
}
(15)
}
(16) }
1.程序流程图:
2.1
2.2.1 (--i>0
2.2.2
4.1 4.2
5 6.7.8.9 10
15
3 3
3.1 12 13
4.3
16
流图:
2.1
2.2.1
3
2.2.2
3
4.1
3.1
4.2
12
13 5
4.3
6,7,8,9
10
15
16
2.计算环形复杂度: CC(G)= 6 个区域 CC(G)= 18 条边 – 14 个节点 + 2 = 6 CC(G)= 5 个判定节点 + 1 = 6
4.测试用例 路径 1 测试用例:
输入条件:将数组设为 int[0],输入空值 期望结果:null 实际运行结果:
路径 2 测试用例: 输入条件:将数组设为 int[1],输入 5 期望结果:原数组大小排列为:5 冒泡排序后数组大小排列为:5 实际结果:
路径 3 测试用例: 输入条件:将数组设为 int[5],输入 1,3,5,7,9 期望结果:原数组大小排列为:1,3,5,7,9 冒泡排序后数组大小排列为:1,3,5,7,9 实际运行结果:

练习题-白盒法 测试用例

练习题-白盒法 测试用例

下面是选择排序的程序,其中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;//当前具最小关键码的对象}}(1) 试计算此程序段的McCabe复杂性;(2) 用基本路径覆盖法给出测试路径;(3) 为各测试路径设计测试用例。

解答如下:首先画出程序的流程图:(1)McCabe复杂性为:V(G)=判定节点数+1=4+1=5(2)用基本路径覆盖法给出测试路径:从以上程序图中确定无关的基本路径:Path1:0-1-2-12Path2: 0-1-2-3-4-5-9-11Path3: 0-1-2-3-4-5-9-10-11Path4: 0-1-2-3-4-5-6-8Path5: 0-1-2-3-4-5-6-7-8(3)为各测试路径设计测试用例:由于节点2和节点5判定条件是等价的,所以Path2和Path3不可直达。

A={1},n=1路径:0-1-2-12A={1,2},n=2路径:0-1-2-3-4-5-6-8-5-9-11-2-12A={2,1},n=2路径:0-1-2-3-4-5-6-7-8-5-9-10-11-2-12A={1,3,2 },n=3路径:0-1-2-3-4-5-6-8-5-9-11-2-3-4-5-6-7-8-5-9-10-11-2-12。

白盒测试方法习题及含答案

白盒测试方法习题及含答案

[ 试题分类 ]: [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) 写出满足条件组合覆盖需要的测试用例。

解:条件组合覆盖是判定中条件的各种组合都至少被执行一次运行结果更改逻辑运算符以条件组合覆盖测试用例进行测试运行结果。

白盒测试试题答案

白盒测试试题答案

先看以下代码:/** 白盒测试逻辑覆盖测试范例*/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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

白盒测试用例练习
一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。

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、判定覆盖
也可以让测试用例测试路径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
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白盒测试:语句覆盖
判定覆盖
条件覆盖
路径覆盖。

相关文档
最新文档