三角形测试.docx
《三角形测试.docx》由会员分享,可在线阅读,更多相关《三角形测试.docx(16页珍藏版)》请在冰点文库上搜索。
三角形测试
基于数据与代码分离的三角形类型判断测试
(二、三章合作实验)
1.1实验类型
实验类型为综合设计型,6个学时。
1.2实验目的
(1)能熟练应用白盒、黑盒测试技术进行测试用例设计;
(2)能够熟练应用JUnit框架,并能够实现数据与代码的分离测试
(3)能够熟练应用数据库或文件设计测试用例结构,并进行优化设计;
1.3实验设备
主流PC机一套,要求安装windows操作系统和Office工具,Eclipse,Junit,MySql;
1.4实验内容
题目:
三角形的判定问题
输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?
如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。
输入三个整数a、b、c,必须满足以下条件:
1≤a≤200;1≤b≤200;1≤c≤200。
要求:
1)自己编写三角形的判定程序
2)采用测试用例与测试代码分离的方法设计测试框架
3)测试用例的存储可以采用数据库也可以采用文本文件的形式,但测试用例的结构需要设计
4)采用白盒测试方法中语句覆盖,分支覆盖,组合条件覆盖,路径覆盖、基本路径覆盖的覆盖准则设计测试用例,进行测试判断
5)采用黑盒测试方法中的等价类方法,边界值方法,决策表方法设计测试用例,进行测试判断;
1.5实验要求
(1)根据题目要求编写测试用例;
(2)根据实验结果分析测试用例设计设计有效性和被测程序的正确性;
(3)撰写实验报告,要求给出测试代码,测试用例库,和运行结果。
1.6实验步骤
(1)测试代码:
packaget;
importjava.awt.Button;
importjava.awt.Color;
importjava.awt.Label;
importjava.awt.Panel;
importjava.awt.TextField;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JFrame;
publicclassTriangel{
/**
*@paramargs
*/
Triangeltriangle=newTriangel(0,0,0);
publicTriangel(inta,intb,intc){
}
publicintgetA(){
returna;
}
publicintgetB(){
returnb;
}
publicintgetC(){
returnc;
}
staticinta;
staticintb;
staticintc;
publicstaticvoidmain(Stringargs[]){
JFramef=newJFrame("三角形的判断");
Panelpanel=newPanel();//创建一个面板p
f.add(panel);//把面板p添加到框架f中
finalTextFieldT1=newTextField(3);
finalTextFieldT2=newTextField(3);
finalTextFieldT3=newTextField(3);
finalTextFieldT4=newTextField(16);
LabelL1=newLabel("请输入a");
LabelL2=newLabel("请输入b");
LabelL3=newLabel("请输入c");
LabelL4=newLabel("结果为:
");
L4.setBounds(50,50,50,50);
ButtonB=newButton("判断");
f.setBackground(Color.black);
panel.add(L1);
panel.add(T1);
panel.add(L2);
panel.add(T2);
panel.add(L3);
panel.add(T3);
panel.add(L4);
panel.add(T4);
panel.add(B);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400,400);
f.setVisible(true);
B.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
try{
a=Integer.parseInt(T1.getText().trim());
b=Integer.parseInt(T2.getText().trim());
c=Integer.parseInt(T3.getText().trim());
if(a>=1&&a<=200&&b>=1&&b<=200&&c>=1
&&c<=200){
if(a+b<=c||a+c<=b||b+c<=a){
T4.setText("不是三角形");
}elseif(a==b&&a==c){
T4.setText("等边三角形");
}elseif(a==b||a==c||b==c){
T4.setText("等腰三角形");
}
elseif(a!
=b&&a!
=c&&b!
=c){
T4.setText("一般三角形");
}
}else{
thrownewException();
}
}catch(Exceptione1){
T4.setText("非法输入");
}
}
});}
}
(2)根据白盒、黑盒测试技术设计测试用例;
一.白盒测试技术测试用例
1).基本独立路径
控制流图:
流程图:
独立路径:
编号
独立路径
1
1,2,11
2
1,2,3,9,10
3
1,2,3,4,5,10
4
1,2,3,4,6,7,10
5
1,2,3,4,5,8,10
测试用例:
测试用例
输入数据
预期结果
覆盖独立路径
a
b
c
1
0
100
100
非法输入
1
2
1
1
2
不能构成三角形
2
3
3
3
3
等边三角形
3
4
4
4
5
等腰三角形
4
5
4
5
6
一般三角形
5
二.黑盒测试技术测试用例:
1).等价类方法:
等价类划分:
等价类输入条件
有效等价类
编号
无效等价类
编号
三
个
正
整
数
正整数
1
一边为非正整数
a为非正整数
10
b为非正整数
11
c为非正整数
12
两边为非正整数
a,b为非正整数
13
a,c为非正整数
14
b,c为非正整数
15
三边均为非正整数
16
三个数
2
只输入一个数
只给a
17
只给b
18
只给c
19
只输入两个数
只给a,b
20
只给a,c
21
只给b,c
22
未输入数
23
构成一般三角形
a+b>c,
且a≠b≠c
3
a+b24
a+b=c
25
a+c>b,
且a≠b≠c
4
a+c
26
a+c=b
27
b+c>a,
且a≠b≠c
5
b+c28
b+c=a
29
构成等腰三角形
a=b,a≠c,且两边之和大于第三边
6
a=c,a≠b,且两边之和大于第三边
7
b=c,a≠b,且两边之和大于第三边
8
构成等边三角形
a=b=c
9
2.1.2等价类的测试用例:
测试用例编号
输入数据
预期输出
覆盖等价类
a
b
c
1
5
6
7
一般三角形
1,2,3,4,5
2
6
6
5
等腰三角形
6
3
6
5
6
等腰三角形
7
4
5
6
6
等腰三角形
8
5
6
6
6
等边三角形
9
6
-5
6
6
不能构成三角形
10
7
6
0
6
不能构成三角形
11
8
6
6
3.6
非法输入
12
9
0
-5
6
不能构成三角形
13
10
5.6
6
-2
非法输入
14
11
6
0
3.5
非法输入
15
12
3.5
5.6
4.5
非法输入
16
13
6
非法输入
17
14
5
非法输入
18
15
5
非法输入
19
16
6
6
非法输入
20
17
6
4
非法输入
21
18
5
6
非法输入
22
19
非法输入
23
20
5
6
15
不能构成三角形
24
21
6
7
13
不能构成三角形
25
22
4
10
5
不能构成三角形
26
23
6
10
4
不能构成三角形
27
24
5
6
15
不能构成三角形
28
25
7
8
15
不能构成三角形
29
2.1.3测试结果截图:
2.2.边界值:
2.2.1测试用例:
测试用例
输入数据
预期输出
a
b
c
1
100
100
1
等腰三角形
2
100
100
2
等腰三角形
3
100
100
100
等边三角形
4
100
100
199
等腰三角形
5
100
100
200
不能构成三角形
6
100
1
100
等腰三角形
7
100
2
100
等腰三角形
8
100
199
100
等腰三角形
9
100
200
100
不能构成三角形
10
1
100
100
等腰三角形
11
2
100
100
等腰三角形
12
199
100
100
等腰三角形
13
200
100
100
不能构成三角形
2.2.2测试结果截图:
2.3决策表
2.3.1分析:
2.3.2测试用例:
测试用例
输入数据
预期输出
a
b
c
1
6
6
15
不能构成三角形
2
6
15
6
不能构成三角形
3
15
6
6
不能构成三角形
4
6
6
6
等边三角形
5
6
6
5
等腰三角形
6
6
5
6
等腰三角形
7
5
6
6
等腰三角形
8
5
6
7
一般三角形
2.3.3测试结果截图: