《软件质量保证与测试》实验 告
实验一 白盒测试技术
(实验日期:12(2)11(3)班9月22日-9月29日)
(实验日期:12(1)班9月23日-9月30日)
一、实验目的
1. 熟练掌握白盒法测试的逻辑覆盖法,并能进行实际程序测试;
2. 掌握分支覆盖和测试流的测试方法,并能进行实际程序测试;
3. 对测试用例进行优化。
二、实验内容
一)使用逻辑覆盖测试方法测试以下程序段
void DoWork(int x,int y,int z) {
1int k=0,j=0;
2if ((x>1 ) && (y==0)){
3 k=x*y-1;
4j=sqrt(k);
5}
6if ((x==2)||(z>1)){
7j=x*y+10;
8j=j%3;
9}
10}
说明:程序段每行开头的数字(1~10)是对每条语句的编 。
(1)画出程序的控制流程图(图自己完成,下图仅供参考)。
(2)分别以语句覆盖、判定覆盖、条件覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编 表示)。
语句覆盖:选用的测试用例是:case1 x=2y=0z=3
执行路径是:ace
判定覆盖:选用的测试用例是:case1 x=2y=0z=3
case2x=1y=0z=1
可分别执行路径ace和abd
条件覆盖:选用的测试用例是:case1 x=2y=0z=3
case2x=1y=0z=1
case3x=2y=1z=1
可分别执行路径ace、abd和abe
路径覆盖:选用的测试用例是:case1 x=2y=0z=3
case2x=1y=0z=1
case3x=2y=1z=1
case4x=3y=0z=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位数串
其次:为有效等价类设计测试用例
测试数据
期望结果
覆盖范围
010
显示有效输入
1、8
023
显示有效输入
1、7
0554
显示有效输入
2、7
0851
显示有效输入
2、8
最后:为每一个无效等价类至少设计一个测试用例
测试数据
期望结果
覆盖范围
0a34
显示无效输入
3
05
显示无效输入
4
01234
显示无效输入
5
2341
显示无效输入
6
028
显示无效输入
9
028
显示无效输入
10
028 qw
显示无效输入
11
028
显示无效输入
12
028
显示无效输入
13
二)找零钱最佳组合
假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内 (P) , 求找给顾客最少货币个(张)数此商店的货币面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四种。
结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。
1.分析输入的情形
货品价格:R > 100、0
顾客付款:P > 100、R
2.分析输出情形
N50 = 1、N50 = 0
1
N5 = 1、N5 = 0
1
3. 分析规格中每一决策点的情形,以RR1,RR2,RR3 表示计算要找50,10,5元货币数时的剩余金额。
R > 100、R 100、P
RR1 >= 50、RR2 >= 10、RR3 >= 5
4. 由上述的输入/输出条件组合出可能的情形。
1) R > 100
2) R
3) 0 100
4) 0
5) 0
6) 0
7) 0
8) 0
9) 0
10) 0
11) 0
12) 0
5.设计测试用例
1) 货品价格 = 101 货品价格非法!
2) 货品价格 = 0 货品价格非法!
3) 货品价格 = -1 货品价格非法!
4) 货品价格 = 100, 付款金额 = 101 付款金额非法!
5) 货品价格 = 100, 付款金额 = 99 欠1元!
6) 货品价格 = 50, 付款金额 = 100 N50=1,N10=0,N5=0,N1=0
7) 货品价格 = 51, 付款金额 = 100 N50=0,N10=4,N5=1,N1=4
8) 货品价格 = 90, 付款金额 = 100 N50=0,N10=1,N5=0,N1=0
9) 货品价格 = 91, 付款金额 = 100 N50=0,N10=0,N5=1,N1=4
10) 货品价格 = 95, 付款金额 = 100 N50=0,N10=0,N5=1,N1=0
11) 货品价格 = 96, 付款金额 = 100 N50=0,N10=0,N5=0,N1=4
12) 货品价格 = 99, 付款金额 = 100 N50=0,N10=0,N5=0,N1=1
13) 货品价格 = 100, 付款金额 = 100 N50=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) //求阶乘模块
public class Factorial {
public long numFactorial(int args){
long jc;
for(int i=1;i
jc=1;
jc+=i;
}
return jc;
}
}
驱动模块:
public class Drive1 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
Factorial qjc=new Factorial();
System.out.println(“您需要求的阶乘N为:”);
int y=in.nextInt();
System.out.println(“您所求”+y+”的阶乘为:”+qjc.numFactorial(y));
}
}
求阶乘模块中:jc=1;语句位置有错和jc+=i;语句应改为jc*=i;
第二题:DataCalculated.java
//数值计算模块
import java.util.Scanner;
public class DataCalculated {
public DataCalculated(){
System.out.println(“请输入您的选择:1–求阶乘,2–求数据和”);
Scanner in=new Scanner(System.in);
int x=in.nextInt();
switch(x){
case 1:{
System.out.println(“您需要求的阶乘N为:”);
int y=in.nextInt();
Factorial qjc=new Factorial();
System.out.println(“您所求”+y+”的阶乘为:”+qjc.numFactorial(y));
break;
}
case 2:{
DataSum dataSum1=new DataSum(100);
System.out.println(“1–100的和为:”+dataSum1.dataSum(100));
break;
}
}
}
}
编写相应的桩模块及驱动模块进行单元测试
驱动模块:
public class Drive1 {
public static void main(String[] args) {
new DataCalculated();
}
}
求阶乘桩模块:
public class Stake1 {
public void speak(){
System.out.println(“本桩模块为求阶乘!”);
}
}
求和桩模块:
public class Stake1 {
public void speak(){
System.out.println(“本桩模块为求和!”);
}
}
三、讨论与总结
实验四 集成测试
(实验日期:12(2)11(3)班10月13日)
(实验日期:12(1)班10月14日)
一、 实验目的
1.掌握集成测试策略;
2.掌握集成测试的方法;
二、 实验内容
使用单元测试完成的模块按下图结构进行自顶向下集成测试方法和自底向上集成测试方法进行集成测试。
(要求:根据集成测试原理分别设计驱动程序d和桩模块s测试用例,根据设计的测试用例进行测试。)
RootModule
DataCcalculated
Factorial
DataQuery
IsPrimes
DataSum
PerfectNumber
三、讨论与总结
实验五 系统测试
(实验日期:12(2)11(3)班 10月20日)
(实验日期:12(1)班 10月21日)
一、 实验目的
1.能够运用黑盒测试方法设计测试用例。
2.了解系统测试软件;
3.熟悉掌握测试案例设计方法。
二、 实验内容
例题:聊天软件的系统测试
选择聊天软件的2~3个重要的功能进行测试。建议系统测试进行浏览器兼容性测试、分辨率配置测试和功能测试。功能测试的内容包括登录、联系人列表、两人对话。
(要求:自己选择相关系统,根据黑盒测试方法设计测试用例,主要考虑等价类和边界值方法。根据设计的测试用例进行测试。)
三、讨论与总结
展开阅读全文
相关资源:悦客服,首家可订制的在线客服系统软件-C#工具类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!