有关软件测试的实验报告
(1)分析各种输入情况,列出为输入变量month、day、year划分的有效等价类。
(2)分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。
(3)根据(1)和(2),画出简化后的决策表。
public class test {
public static void main(String[] args) {
不能构成三角形
不能构成三角形
2
含有非数字字符的组合:A,s,d
含有非英文字符
输入错误
3
三个互不相等的整数:2,3,4
三边不等三角形
三边不等三角形
4
仅有两个相等的整数组合:2,2,3
等腰三角形
等腰三角形
5
三个整数都相等的组合:2,2,2
等边三角形
等边三角形
6
含有非法字符的组合:2,@,3
含有非法字符
输入错误
a=3,b=4,c=5
3
, ,
3
2.判定覆盖测试用例
输入
期望输出
覆盖对象
测试结果
Case11
a=1,b=2,c=3
0
,
0
Case12
a=3,b=4,c=5
1
, , ,
1
Case13
a=3,b=3,c=5
2
, , ,
2
Case14
a=3,b=4,c=5
3
, ,
3
3.条件覆盖测试用例
输入
期望输出
覆盖对象
0
T1,T2,F2
0
Case14
A=3,b=3,c=3
3
T1,T2,T3
T4,T5
3
Case15
A=3,b=3,c=4
2
T1,T2,T3
T4,T5
2
四、程序流程图
基本路径覆盖测试用例
输入
期望输出
覆盖对象
测试结果
Case16
a=1,b=6,c=7
0
A->D
0
Case17
a=7,b=6,c=1
0
A->B->D
91
100
0
0
0
1
2
0
3
11
5
95
100
0
0
0
1
0
0
1
12
4
96
100
0
0
0
0
2
0
2
13
2
98
100
0
0
0
0
1
0
1
14
1
99
100
0
0
0
0
0
1
1
15
0
100
100
0
0
0
0
0
0
0
结构性测试
一、实验目的:掌握结构性测试技术,并能应用结构性测试技术设计测试用例;对测试用例进行优化设计。
二、实验内容
1.题目一:使用逻辑覆盖测试方法测试以下程序段
public static void main(String[] args){
int a,b,c;
Scanner input=new Scanner;
a=();
b=();
c=();
if(a+b<=c || a+c <= b || b+c<=a){}
else{
if(a == b && b == c){}
(2)非6~8位数字字符
(3)非法英文字符
(4)日期不存在
月
(5)在1~12之间的整数
(6)小于1
(7)大于12
日
(8)在1~31之间的整数
(9)大于31
(10)小于1
年
(11)大于0的整数
(12) 小于0
用例编号
测试用例
预测结果
测试结果
1
6~8位数字字符,可以包含非法字符或者汉字字符:2004 年11月29日,2004-11-29
用例编号
S
输入
输出
备注张数
商品价格x
付款y
50元R50
20元R20
10元R10
5元R5
2元R2
1元R1
1
101
错误
2
0
3
101
101
4
100
99
5
50
50
100
1
0
0
0
0
0
1
6
49
51
100
0
2
0
1
2
0
5
7
20
80
100
0
1
0
0
0
0
1
8
19
81
100
0
0
1
1
2
0
4
9
10
90
100
0
0
1
0
0
0
1
10
9
Y>5,记为T4
Y<=5,记为F4
测试编号
XYZ
路径
覆盖条件
1
5 4 12
aceg
F1F2F3F4
2
6 6 5
abdeg
T1T2F3F4
3
4 3 9
abdfg
T1T2T3T4
4
4 1 12
acfg
F1F2T3F4
5
4 6 12
acfg
F1F2T3T4
2.题目二:三角形问题
在三角形计算中,要求输入三角型的三个边长:A、B和C。当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。画出程序流程图、控制流程图、计算圈复杂度V(g),找出基本测试路径。
F5,F6,F7,F8
2
Case10
a=4,b=3,c=3
2
T1,T2,T3,F4,
T5,F6,T7,F8
2
4.条件组合覆盖测试用例
输入
期望输出
覆盖对象
测试结果
Case11
A=1,b=6,c=7
0
F1,T2,T3
0
Case12
A=7,b=6,c=1
0
T1,F2,F3
0
Case13
A=1,b=7,c=6
少于四个数字字符
输入错误
17
大于四个数字符
输入错误
2.根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
“一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。”
代码:
public class Test2 {
,2);
Date da = ();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
} catch (Exception e) {
}
}
else{
}
}
}
输入
合理等价类
不合理等价类
日期
(1)在6~8位数字字符,可以包含非法字符或者汉字字符
7
含有负整数的组合:-1,1,1
含有负整数
输入错误
8
含有0的整数组合:0,1,1
含有0的整数
输入错误
3.用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2004年11月29日,则该程序的输出为2004年12月1日。
2004年11月30日
2004年11月30日
2
非6~8位数字字符:2004-1
输入格式不正确
输入错误
3
非法英文字符:2004-a-a
输入非法字符
输入错误
4
日期不存在:2003-2-29
输入日期不存在
输入错误
5
月份小于1:2003-0-25
输入月份不存在
输入错误
6
月份大于12:2004-13-5
输入月份不存在
Scanner input=newScanner;
String str=();
str=();
"电话号码由三部分组成,1)地区码:空白或三位数字;(2)前缀:非'0'或'1'的三位数字;(3)后缀:4位数字。");
if("\\d{3}(-| *)[2-9]{3}\\d{4}")){
"您输入的电话号码格式正确:"+str);
12
年小于0:-102-5-4
输入日期不存在
输入错误
序号
1
2
3
4
5
6
7
8
条件
日期是否正确
1
1
1
0
1
0
0
0
月份是否正确
1
1
0
1
0
1
0
0
日是否正确
1
0
1
1
0
0
1