《软件测试黑盒白盒测试方法综合实训》.docx
- 文档编号:4481149
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:26
- 大小:643.82KB
《软件测试黑盒白盒测试方法综合实训》.docx
《《软件测试黑盒白盒测试方法综合实训》.docx》由会员分享,可在线阅读,更多相关《《软件测试黑盒白盒测试方法综合实训》.docx(26页珍藏版)》请在冰豆网上搜索。
《软件测试黑盒白盒测试方法综合实训》
《软件测试综合实训》报告填写内容
(一)黑盒测试实训一
1、实训目的
理解黑盒测试的基本方法,掌握等价类划分法、边界值方法。
2、实验内容、步骤及结果
实验内容:
程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:
1≤month≤12、1≤day≤31、1900≤year≤2050。
),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上下一天的日期。
例如,输入为2005年11月29日,则该程序的输出为2005年11月30日。
a.大家用自己熟悉的编程语言,实现上面问题的描述。
b.用等价类设计法和边界值法设计测试用例并执行,将测试结果与预期结果进行比对并查找、修复bug。
实验步骤:
步骤一:
编写源程序并运行该程序。
步骤二:
编写测试用例设计。
步骤三:
执行测试。
步骤四:
将测试结果与预期结果进行比对并查找、修复bug。
实验结果:
条件划分:
输入条件
标号
有效等价类
编号
无效等价类
输入年份
T1
1900<=year<=2050
T7
Year<1900
T8
Year>2050
输入月份
T2
1<=month<=12
T9
Month<1
T10
Month>12
输入日期
T3
1<=day<=31
T11
Day<1
T12
Day>31
闰年
T4
输入2月29日
T13
输入闰年2月30日
平年
T5
输入2月28日
T14
输入2月29日
输入类型
T6
输入int性
T15
输入除int型任意型
等价类测试法:
测试用例
输入
预期结果
测试结果
覆盖等价类
1
2010-1-1
2010/01/02
T1,T2,T3,T6
2
2000-2-29
2001/03/01
T4
3
2001-02-28
2001-03-01
T5
4
2600-3-4
无效输入
T8
5
1800-5-12
无效输入
T7
6
1997-0-1
无效输入
T9
7
1998-20-1
无效输入
T10
8
2018-1-0
无效输入
T11
9
2018-3-66
无效输入
T12
10
2000-2-30
无效输入
T13
11
2014-2-29
无效输入
T14
12
DAEE*&
无效输入
T15
多变量边界测试法:
对于n个变量的程序采用五点法产生4n+1个测试用例,本实验题有三个变量即有4*3+1=13个测试用例
测试用例
输入
预期结果
测试结果
1
1900-1-1
1900-1-2
2
1901-3-9
1901-3-10
3
1975-6-15
1975-6-16
4
2049-8-11
2049-8-12
5
2050-12-31
无效输入
6
1999-1-13
1992-1-14
7
1992-2-13
1992-2-14
8
2001-11-9
2001-11-10
9
2018-12-9
2018-12-10
10
2003-8-1
2003-8-2
11
2011-8-2
2011-8-3
12
2015-7-30
2015-8-1
13
2016-5-31
2015-6-1
3、结果分析与问题讨论
通过本次实验,我对黑盒测试用例有了进一步的了解。
实验要求使用等价类划分法、边界值法的设计测试用例。
在分析边界值设计时测试有点混,因为针对于本实验可以采用多变量边界值分析(通常采用“五点法”)或者健壮性边界值分析(通常采用“七点法”),本题有是有三个变量的程序,采用五点法将产生4n+1=4*3+1=13个测试用例,对于多变量健壮性边界值分析,需要设计6n+1=6*3+1=19个测试用例。
在本次实验我采用的方法是五点法,测试用例比较多,需要认真分析。
(二)黑盒测试实训二
1、实训目的
理解黑盒测试的基本方法,掌握因果图法和决策表法设计测试用例。
2、实验内容、步骤及结果
1)某软件规格说明书包含这样的要求:
第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
要求:
a.根据问题描述画出因果图。
b.画出决策表并设计测试用例。
实验结果:
1)根据题意,
条件桩:
问题的所有条件:
c1:
第一列为Ac2:
第一列为Bc3:
第二列为数字
条件项:
对条件桩给出的条件列出所有可能的取值
c1:
1-第一列为A,0-第一列不为A
c2:
1-第一列为B,0-第一列不为B
c3:
1-第二列为数字,0-第一列不为数字
动作桩:
出现问题时按规定可能采取的操作
结果:
e1:
修改文件e2:
给出信息Le3:
给出信息M
2)其对应的因果图如下:
C为中间节点,考虑到原因c1和c2不可能同时为1,因此在因果图上加上E(异或)约束。
b:
根据因果图创建决策表
条件桩
条件项
c1
1
1
1
1
0
0
0
0
c2
1
1
0
0
1
1
0
0
c3
1
0
1
0
1
0
1
0
c中间节点
1
1
1
1
0
0
动作桩
动作项
e1
√
e2
√
√
√
e3
√
√
√
测试用例:
测试用例
规则号
输入数据
预期输出
Case1
1
c1:
1c2:
1c3:
1
c1和c2不可能同时为1
Case2
2
c1:
1c2:
1c3:
0
c1和c2不可能同时为1
Case3
3
A3
修改文件
Case4
4
A*
给出信息M
Case5
5
B1
修改文件
Case6
6
B/
给出信息M
Case7
7
C5
给出信息L
Case8
8
M@
给出信息L,M
2)支付宝个人认证中,分为两部分:
个人身份认证和银行卡认证。
这两者都通过后,认为个人认证成功。
个人身份认证需要提交个人基本信息及身份证复印件。
银行卡认证分为两种:
提现认证和充值认证。
要求:
a.根据问题描述画出因果图。
b.画出决策表并设计测试用例。
实验步骤:
步骤一:
分析问题,列出原因和结果。
步骤二:
画出因果图,将原因与结果用关系连接线连接。
步骤三:
根据因果图生成决策表。
步骤四:
根据决策表设计测试用例。
实验结果:
条件桩:
问题的所有条件:
C1:
个人基本信息
C2:
身份证复印件
C3:
提现认证
C4:
充值认证
条件项:
对条件桩给出的条件列出所有可能的取值
C1:
1—个人基本信息正确 0—个人基本信息不准确
C2:
1—身份证复印件有效 0—身份证复印件无效
C3:
1—提现认证成功 0—提现认证失败
C4:
1—充值认证成功 0—充值认证失败
动作桩:
出现问题时按规定可能采取的操作
A1:
个人身份认证成功。
A2:
银行卡认证成功
A3:
支付宝个人认证成功
动作项:
指出在条件项的各组取值情况下采取的动作
H1:
√--个人身份认证成功
H2:
√--银行可认证成功
H3:
√--支付宝个人认证成功
因果图:
根据因果图推导出决策表
条件桩
条件项
c1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
c2
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
c3
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
c4
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
动作桩
动作项
A1
√
√
√
√
A2
√
√
√
√
√
√
√
√
√
√
√
√
A3
√
√
√
测试用例
测试用例
规则号
输入数据
预期输出
Case1
1
c1:
0c2:
0c3:
0c4:
0
支付宝个人认证失败
Case2
2
c1:
1c2:
1c3:
1c4:
1
支付宝个人认证成功
Case3
3
c1:
1c2:
0c3:
0c4:
0
支付宝个人认证失败,银行卡认证失败
Case4
4
c1:
1c2:
1c3:
0c4:
0
支付宝个人认证成功,银行卡认证失败
Case5
5
c1:
1c2:
0c3:
1c4:
0
支付宝个人认证失败,银行卡认证成功
Case6
6
c1:
1c2:
0c3:
0c4:
1
支付宝个人认证失败,银行卡认证失败
Case7
7
c1:
1c2:
1c3:
0c4:
1
支付宝个人认证成功
Case8
8
c1:
1c2:
1c3:
1c4:
0
支付宝个人认证成功
Case9
9
c1:
1c2:
0c3:
1c4:
1
支付宝个人认证失败,银行卡认证成功
Case10
10
c1:
0c2:
1c3:
0c4:
0
支付宝个人认证失败,银行卡认证失败
Case11
11
c1:
0c2:
1c3:
1c4:
0
支付宝个人认证失败,银行卡认证成功
Case12
12
c1:
0c2:
1c3:
0c4:
1
支付宝个人认证失败,银行卡认证成功
Case13
13
c1:
0c2:
1c3:
1c4:
1
支付宝个人认证失败,银行卡认证成功
Case14
14
c1:
0c2:
0c3:
1c4:
0
支付宝个人认证失败,银行卡认证成功
Case15
15
c1:
1c2:
0c3:
1c4:
1
支付宝个人认证失败,银行卡认证成功
Case16
16
c1:
1c2:
0c3:
0c4:
1
支付宝个人认证失败,银行卡认证成功
3.结果分析与问题讨论
通过本次黑盒测试实训,从结果上看,因果图只是清晰地表达了需求分析的内容,为了得到测试用例,我们需要借助于决策表,因果图中的“因”和“果”直接可以作为条件桩和动作桩。
在画因果图的时候,要注意分析有些条件是不可以同时存在。
(三)白盒测试实训一
1.实训目的
a.掌握路径测试、数据流测试的基本方法。
b.运用路径测试、数据流测试的方法设计测试用例。
2.实验内容、步骤及结果
1)阅读下面代码。
0voidDoWork(intx,inty,intz){
1intk=0,j=0;
2if((x>3)&&(z<10))
3{
4k=x*y-1;
5j=sqrt(k);
6}
7if((x==4)||(y>5))
8j=x*y+10;
9}
要求:
①使用路径测试的方法
a.画出控制流图。
b.计算环形复杂度并列出基本路径。
c.根据基本路径设计测试用例并执行测试。
②使用数据流测试法
a.根据已画出的控制流图分析代码中所有变量的定义使用(区分谓词使用和计算使用)节点、定义使用对、定义使用路径(注明是否为定义清除路径)。
b.根据全定义-使用路径覆盖准则(测试路径需要覆盖所有定义点到所有使用点的路径)找出测试路径并设计测试用例并执行测试。
实验步骤:
步骤一:
根据代码画出相关图形。
步骤二:
根据不同测试方法设计测试用例。
步骤三:
运行代码执行测试用例
实验结果:
控制流图
环形复杂度分为两个圈计算,圈1和圈2分别如下:
圈1:
V(G)=6-5+2=3
圈2:
V(G)=5-4+2=3
总独立路径为:
圈1复杂度*圈2复杂度=9条(取8条即可,分别为:
路径1:
2(x>3)→7(x==4)→7(y>5)→9
路径2:
2(x>3)→7(x==4)→7(y>5)→8→9
路径3:
2(x>3)
→2(z<10)→7(x==4)→7(y>5)→9
路径4:
2(x>3)
→2(z<10)→7(x==4)→7(y>5)→8→9
路径5:
2(x>3)→2(z<10)→4→5→7(y==4)→7(y>5)→9
路径6:
2(x>3)
→2(z<10)→4→5→7(x==4)→7(y>5)→8→9
路径7:
2(x>3)
→2(z<10)→7(x==4)
→8→9
路径8:
2(x>3)
→2(z<10)→4→5→7(x==4)
→8→9
根据基本路径设计测试用例并执行测试。
测试用例表:
测试用例名称
测试数据
预期结果
测试结果
测试路径
T1
x=2,y=4,z=0
K=0,j=0
路径1
T2
x=2,y=6,z=0
k=0,j=22
路径2
T3
x=5,y=4,z=11
k=0,j=0
路径3
T4
x=5,y=6,z=9
k=29,j=40
路径4
T5
x=5,y=4,z=8
k=19,j=4
路径5
T6
x=6,y=6,z=7
k=35,j=46
路径6
T7
x=4,y=0,z=12
k=0,j=10
路径7
T8
x=4,y=0,z=4
k=-1,j=10
路径8
②使用数据流测试法
变量
定义节点
使用节点
定义-使用对(DUpath)
(开始节点,结束节点)
定义-使用路径(是否为定义-清除路径)
计算使用
谓词使用
x
0
4,8
2,7
(0,4),(0,8),(0,2),(0,7)
0-1-2(F)
0-1-2-4-5-7(F)
0-1-2-4(F)
0-(F)
y
0
4,8
7
(0,4),(0,8),(0,7)
0-1-2-4-5-7(F)
0-1-2-4(F)
0-(F)
z
0
2
(0,2)
0-1-2(F)
k
1,4
5
(1,5),(4,5)
1-2-4-5(F)
4-5(T)
j
1,5,8
b.根据全定义-使用路径覆盖准则(测试路径需要覆盖所有定义点到所有使用点的路径)找出测试路径并设计测试用例并执行测试。
测试路径1:
0-
测试路径2:
0-1-2-7-9
测试路径3:
0-1-2-7-8-9
测试路径4:
0-
测试用例名称
测试数据
预期结果
测试结果
测试路径
T1
x=4,y=6,z=2
k=27,j=38
路径1
T2
x=2,y=2,z=11
k=0,j=0
路径2
T3
x=2,y=6,z=3
k=0,j=22
路径3
T4
x=5,y=2,z=2
k=9,j=3
路径4
3.结果分析与问题讨论
要正确分析判断程序的走向,然后画出控制流图。
根据控制流图计算环形(圈)复杂度,主要运用两种方法计算环形复杂度:
(1)V(G)=E-N+2
(2)V(G)=P+1,正确计算出环形复杂度,并确定独立路径,用测试用例来测试路径。
复杂度是独立路径数的上界,独立路径可以小于复杂度。
先计算预期结果,再用代码验证预期结果与测试结果是否一致。
(四)白盒测试实训二
1.实训目的
a.掌握逻辑覆盖的基本方法。
b.运用逻辑覆盖的方法设计测试用例。
2.实验内容、步骤及结果
1)阅读下面源码。
#include
usingnamespacestd;
intmain()
{
intb;
intc;
inta;
cin>>a>>b>>c;
if(a*b*c!
=0&&(a+b>c&&b+c>a&&a+c>b))
{
if(a==b&&b==c)
{
cout<<"您输入的是等边三角形!
";
}
elseif((a==b||b==c)||a==c)
{
cout<<"您输入的是等腰三角形!
";
}
elseif((a*a+b*b==c*c)||(b*b+c*c==a*a)||(a*a+c*c==b*b))
{
cout<<"您输入的是直角三角形!
";
}
else{
cout<<"普通三角形";
}
}
else{
cout<<"您输入的不能构成三角形";
}
}
要求:
a.画出程序流程图。
b.分析判断语句与条件表达式。
c.分别使用逻辑覆盖的5种覆盖标准设计测试用例并执行测试。
实验步骤:
步骤一:
根据代码画出相关图形。
步骤二:
根据5种覆盖标准计测试用例。
步骤三:
运行代码执行测试用例
实验结果:
a.画出程序流程图。
b.分析判断语句与条件表达式。
(1)a*b*c!
=0&&(a+b>c&&b+c>a&&a+c>b)这四个条件必须同时满足才能构成三角形,若不满足其中任意一项都不可能构成三角形。
(2)a==b&&b==c在a*b*c!
=0&&(a+b>c&&b+c>a&&a+c>b)成立的情况下,满足a==b&&b==c这两个条件,输出的三角形是等边三角形,若不满足其中任意一项,则不能输出等边三角形
(3)(a==b||b==c)||a==c,在a*b*c!
=0&&(a+b>c&&b+c>a&&a+c>b)成立的情况下,且a==b&&b==c不成立,满足(a==b||b==c)||a==c这三个条件,输出等腰三角形,则不能输出等腰三角形
(4)(a*a+b*b==c*c)||(b*b+c*c==a*a)||(a*a+c*c==b*b),在a*b*c!
=0&&(a+b>c&&b+c>a&&a+c>b)成立的情况下,且a==b&&b==c不成立,(a==b||b==c)||a==c也不成立,满足(a*a+b*b==c*c)||(b*b+c*c==a*a)||(a*a+c*c==b*b)这个条件输出直角三角形,否则输出普通三角形。
c.分别使用逻辑覆盖的5种覆盖标准设计测试用例并执行测试。
在a*b*c!
=0&&(a+b>c&&b+c>a&&a+c>b)成立的情况下
1.语句覆盖:
选择足够多的测试数据,使得程序中的每一个可执行语句至少执行一次
测试用例
变量取值(a,b,c)
执行路径
预期结果
测试结果
T1
2,3,4
acegi
普通三角形
2.判定(分支)覆盖:
使得程序中的每一个判断至少获得一次“真”和一次“假”
测试用例
变量取值(a,b,c)
执行路径
预期结果
测试结果
T1
1,2,3
ab
不能构成三角形
T2
3,3,3
acd
等边三角形
T3
4,4,5
acef
等腰三角形
T4
2,3,4
acegi
普通三角形
T5
3,4,5
acegh
直角三角形
3.条件覆盖:
使得程序中每个判定表达式中的每个条件至少获得一次“真”和一次“假”
第一个判定表达式:
a*b*c!
=0取真值,记为T1
a*b*c!
=0取假值,即a*b*c=0,记为~T1
a+b>c取真值,记为T2
a+b>c取假值,即a+b≤c,记为~T2
b+c>a取真值,记为T3
b+c>a取假值,即b+c≤a,记为~T3
a+c>b取真值,记为T4
a+c>b取假值,即a+c≤b,记为~T4
第二个判定表达式:
a==b取真值,记为T5
a==b取假值,即a≠b,记为~T5
b==c取真值,记为T6
b==c取假值,即b≠c,记为~T6
第三个判定表达式:
a==b取真值,记为T7
a==b取假值,即a≠b,记为~T7
b==c取真值,记为T8
b==c取假值,即b≠c,记为~T8
a==c取真值,记为T9
a==c取假值,即a≠c,记为~T9
第四个判定表达式:
a*a+b*b==c*c取真值,记为T10
a*a+b*b==c*c取假值,即a*a+b*b≠c*c,记为~T10
b*b+c*c==a*a取真值,记为T11
b*b+c*c==a*a取假值,即b*b+c*c≠a*a,记为~T11
a*a+c*c==b*b取真值,记为T12
a*a+c*c==b*b取假值,即a*a+c*c≠b*b记为~T12
条件覆盖的测试用例
测试用例
变量取值(a,b,c)
执行路径
覆盖条件
T1
2,3,4
acegi
T1,T2,T3,T4,~T5,~T6,~T7,~T8,~T9,~T10,~T11,~T12
T2
1,0,0
ab
~T1,T2,~T3,T4,~T5,T6,~T7,T8,~T9,~T10,~T11,~T12
T3
1,1,1
acd
T1,~T2,~T3,~T4,T5,T6,T7,T8,T9,T10,T11,T12
测试结果:
4.判定/条件组合:
第一个判定表达式:
a*b*c!
=0,a+b>c,b+c>a,a+c>b,记为T1,T2,T3,T4
a*b*c!
=0,a+b≤c,b+c>a,a+c>b,记为T1,~T2,T3,T4
a*b*c!
=0,a+b>c,b+c≤a,a+c>b,记为T1,T2,~T3,T4
a*b*c!
=0,a+b>c,b+c>a,a+c≤b,记为T1,T2,T3,~T4
a*b*c==0,a+b>c,b+c≤a,a+c>b,记为~T1,T2,~T3,T4
a*b*c==0,a+b≤c,b+c>a,a+c>b,记为~T1,~T2,T3,T4
a*b*c==0,a+b>c,b+c>a,a+c≤b,记为~T1,T2,T3,~T4
a*b*c==0,a+b≤c,b+c≤a,a+c>b,记为~T1,~T2,~T3,T4
a*b*c==0,a+b≤c,b+c>a,a+c≤b,记为~T1,~T2,T3,~T4
a*b*c==0,a+b>c,b+c≤a,a+c≤b,记为~T1,T2,~T3,~T4
a*b*c==0,a+b≤c,b+c≤a,a+c≤b,记为~T1,~T2,~T3,~T4
第
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件测试黑盒白盒测试方法综合实训 软件 测试 黑盒 方法 综合