软件质量保证与测试实验报告.doc
《软件质量保证与测试实验报告.doc》由会员分享,可在线阅读,更多相关《软件质量保证与测试实验报告.doc(11页珍藏版)》请在冰豆网上搜索。
《软件质量保证与测试》实验报告
实验一白盒测试技术
(实验日期:
12
(2)11(3)班9月22日-9月29日)
(实验日期:
12
(1)班9月23日-9月30日)
一、实验目的
1.熟练掌握白盒法测试的逻辑覆盖法,并能进行实际程序测试;
2.掌握分支覆盖和测试流的测试方法,并能进行实际程序测试;
3.对测试用例进行优化。
二、实验内容
一)使用逻辑覆盖测试方法测试以下程序段
voidDoWork(intx,inty,intz){
1 intk=0,j=0;
2 if((x>1)&&(y==0)){
3 k=x*y-1;
4 j=sqrt(k);
5 }
6 if((x==2)||(z>1)){
7 j=x*y+10;
8 j=j%3;
9 }
10 }
说明:
程序段每行开头的数字(1~10)是对每条语句的编号。
(1)画出程序的控制流程图(图自己完成,下图仅供参考)。
(2)分别以语句覆盖、判定覆盖、条件覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。
语句覆盖:
选用的测试用例是:
case1 x=2 y=0 z=3
执行路径是:
ace
判定覆盖:
选用的测试用例是:
case1 x=2 y=0 z=3
case2 x=1 y=0 z=1
可分别执行路径ace和abd
条件覆盖:
选用的测试用例是:
case1 x=2 y=0 z=3
case2 x=1 y=0 z=1
case3 x=2 y=1 z=1
可分别执行路径ace、abd和abe
路径覆盖:
选用的测试用例是:
case1 x=2 y=0 z=3
case2 x=1 y=0 z=1
case3 x=2 y=1 z=1
case4 x=3 y=0 z=1
可分别执行路径ace、abd、acd和abe
二)三角形问题
在三角形计算中,要求输入三角型的三个边长:
A、B和C。
当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。
若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。
画出程序流程图、控制流程图,找出基本测试路径,编写测试用例。
程序代码及画图自己完成。
测试用例
a
b
c
测试路径
预期输出
Test1
10
10
10
根据图写出路径
等边三角形
Test2
10
10
5
根据图写出路径
等腰三角形
Test3
3
4
5
根据图写出路径
一般三角形
Test4
4
1
2
根据图写出路径
非三角形
三、讨论与总结
实验二黑盒测试技术
(实验日期:
12
(2)11(3)班9月29日-10月10日)
(实验日期:
12
(1)班9月30日-10月10日)
一、实验目的
1.熟悉掌握黑盒的等价划分法进行实际程序测试;
2.掌握黑盒测试的边界值分析法并能进行实际程序测试;
3.掌握黑盒测试的因果图法并能进行实际程序测试;
4.掌握黑盒测试的场景法和决策表法并能进行实际程序测试;
5.对测试用例进行优化。
二、实验内容
一)电话号码问题
城市的电话号码由两部分组成。
这两部分的名称和内容分别是:
地区码:
以0开头的三位或者四位数字(包括0);
电话号码:
以非0、非1开头的七位或者八位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。
根据该程序的规格说明,作等价类的划分,并设计测试方案。
首先:
划分等价类并编号
输入数据
有效等价类
无效等价类
地区码
1.以0开头的3位数串
2.以0开头的4位数串
3.以0开头的含有非数字字符的串
4.以0开头的小于3位的数串
5.以0开头的大于4位的数串
6.以非0开头的数串
电话号码
7.以非0、非1开头的7位数串
8.以非0、非1开头的8位数串
9.以0开头的数串
10.以1开头的数串
11.以非0、非1开头的含有非法字符7或者8位数串12.以非0、非1开头的小于7位数串以非0、非1开头的大于8位数串
其次:
为有效等价类设计测试用例
测试数据
期望结果
覆盖范围
01023145678
显示有效输入
1、8
0232234567
显示有效输入
1、7
05546863670
显示有效输入
2、7
085123145678
显示有效输入
2、8
最后:
为每一个无效等价类至少设计一个测试用例
测试数据
期望结果
覆盖范围
0a3423456789
显示无效输入
3
0523456789
显示无效输入
4
0123423456789
显示无效输入
5
234123456789
显示无效输入
6
02801234567
显示无效输入
9
02812345678
显示无效输入
10
028qw123456
显示无效输入
11
028623456
显示无效输入
12
028886234569
显示无效输入
13
二)找零钱最佳组合
假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内(P),求找给顾客最少货币个(张)数?
假定此商店的货币面值只包括:
50元(N50)、10元(N10)、5元(N5)、1元(N1)四种。
结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。
1.分析输入的情形
货品价格:
R>100、0 顾客付款:
P>100、R<=P<=100、P2.分析输出情形
N50=1、N50=0
1<=N10<=4、N10=0
N5=1、N5=0
1<=N1<=4、N1=0
3.分析规格中每一决策点的情形,以RR1,RR2,RR3表示计算要找50,10,5元货币数时的剩余金额。
R>100、 R<=0、 P>100、 PRR1>=50、 RR2>=10、 RR3>=5
4.由上述的输入/输出条件组合出可能的情形。
1)R>100
2)R<=0
3)0100
4)05)06)07)08)09)010)011)012)05.设计测试用例
1)货品价格=101货品价格非法!
2)货品价格=0货品价格非法!
3)货品价格=-1货品价格非法!
4)货品价格=100,付款金额=101付款金额非法!
5)货品价格=100,付款金额=99欠1元!
6)货品价格=50,付款金额=100N50=1,N10=0,N5=0,N1=0
7)货品价格=51,付款金额=100N50=0,N10=4,N5=1,N1=4
8)货品价格=90,付款金额=100N50=0,N10=1,N5=0,N1=0
9)货品价格=91,付款金额=100N50=0,N10=0,N5=1,N1=4
10)货品价格=95,付款金额=100N50=0,N10=0,N5=1,N1=0
11)货品价格=96,付款金额=100N50=0,N10=0,N5=0,N1=4
12)货品价格=99,付款金额=100N50=0,N10=0,N5=0,N1=1
13)货品价格=100,付款金额=100N50=0,N10=0,N5=0,N1=0
三、讨论与总结
实验三单元测试
(实验日期:
12
(2)11(3)班10月10日-10月13日)
(实验日期:
12
(1)班10月10日-10月14日)
一、实验目的
1.熟练掌握面向对象单元测试驱动程序和桩程序的编写。
2.了解Junit4安装过程,进行安装实验。
3.掌握Junit4的使用方法。
4.能够使用Junit4进行单元测试。
二、实验内容
有一数据处理小系统,框架结构如图:
主模块(RootModule)ava)
数据查询(DataQuery)
数据计算(DataCalculated)
查素数
(IsPrimes)
查完全数(PerfectNumber)
求阶乘
(Factorial)
求数据和
(DataSum)
对下面给出的部分单元进行面向对象单元测试驱动框架的设计及单元测试。
RootModule.java,DataQuery.java,DataCalculated.java,IsPrimes.java,PerfectNumber.java,Factorial.java,DataSum.java
第一题:
(Factorial.java)//求阶乘模块
publicclassFactorial{
publiclongnumFactorial(intargs){
longjc;
for(inti=1;i<=args;i++){
jc=1;
jc+=i;
}
returnjc;
}
}
驱动模块:
publicclassDrive1{
publicstaticvoidmain(String[]args){
Scannerin=newScanner(System.in);
Factorialqjc=newFactorial();
System.out.println("您需要求的阶乘N为:
");
inty=in.nextInt();
System.out.println("您所求"+y+"的阶乘为:
"+qjc.numFactorial(y));
}
}
求阶乘模块中:
jc=1;语句位置有错和jc+=i;语句应改为jc*=i;
第二题:
DataCalculated.java
//数值计算模块
importjava.util.Scanner;
publicclassDataCalculated{
publicDataCalculated(){
System.out.println("请输入您的选择:
1--求阶乘,2--求数据和");
Scannerin=newScanner(System.in)