实验报告
实验名称: 程序黑盒测试实验
实验地点: 一实验楼404
实验日期: 20##-4-28_ ___
指导老师:_王科老师_______
学生班级:_0906401 ___
学生姓名:_吴 朋 发_______
提交日期:_20##-5-2________
黑盒测试
1.实验目的:
理解黑盒测试的基本方法,掌握等价类划分法和边界值方法设计测试用例。
2.实验配置:
(1)主流PC机一套,要求安装windows操作系统、Virtul Studio6.0、java等工具;
(2)理解等价类划分法、边界值分析法的思想,划分依据;
(3)熟悉上述方法测试用例设计的理论。
3.实验内容:
1)输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。要求输入三个整数a、b、c,必须满足以下条件:1≤a≤100;1≤b≤100;1≤c≤100。
要求: a.大家用自己熟悉的编程语言,实现上面问题的描述。
b.请用等价类设计测试用例。
2) 程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12、1≤day≤31、1900≤ year ≤2050。),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上下一天的日期。例如,输入为20##年11月29日,则该程序的输出为20##年11月30日。请用黑盒测试方法的边界值设计测试用例。
4.实验步骤:
(1)三角形问题
1) 编写程序,实现三角形问题。
2)设计测试用例
用等价类分析法设计测试用例。
按照输入条件和输出形式划分等价类
输入条件:可以从以下四个方面划分等价类:三个数,整数,非0数,正数
输出条件:可以划分为一个等价类,一般三角形,等腰三角形,等边三角形,不构成三角形。
写出测试报告,如下表所示:
代码如下:
import java.awt.*; import javax.swing.*; import java.awt.event.*;
public class TriangleFrame extends JFrame implements ActionListener{
JLabel lb1; JLabel lb2; JLabel lb3; JLabel lb4; JButton btn1; JTextField txt1; JTextField txt2; JTextField txt3; JPanel cp;
TriangleFrame(){
super("三角形判定");
lb1 = new JLabel("三角形判定问题"); lb1.setBounds(new Rectangle(153, 26, 95, 22)); lb2 = new JLabel("第一个参数a:"); lb2.setBounds(new Rectangle(44, 70, 104, 27));
lb3 = new JLabel("第二个参数b:"); lb3.setBounds(new Rectangle(44, 113, 104, 27));
lb4 = new JLabel("第三个参数c:"); lb4.setBounds(new Rectangle(44, 152, 104, 27));
txt1 = new JTextField(20); txt2 = new JTextField(20); txt3 = new JTextField(20);
txt1.setBounds(new Rectangle(132, 72, 168, 23));
txt2.setBounds(new Rectangle(132, 155, 168, 23));
txt3.setBounds(new Rectangle(132, 113, 168, 23));
btn1 = new JButton("判定"); btn1.setBounds(new Rectangle(152, 217, 96, 33));
btn1.addActionListener(this);
setSize(400,300); setVisible(true); cp = (JPanel) getContentPane();
cp.setLayout(null); cp.add(lb1); cp.add(lb2); cp.add(txt1); cp.add(lb3); cp.add(txt2); cp.add(lb4); cp.add(txt3); cp.add(btn1);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == btn1){
try{ Integer t1 = Integer.parseInt(txt3.getText());
Integer t2 = Integer.parseInt(txt2.getText());
Integer t3 = Integer.parseInt(txt1.getText());
if (t1 < t2 + t3 && t2 < t1 + t3 && t3 < t1 + t2 && t1 == t2 && t2 == t3) {
JOptionPane.showMessageDialog(null, "此三角形为等边三角形!");
} else if (t1 < t2 + t3 && t2 < t1 + t3 && t3 < t1 + t2 && (t1 == t2 || t2 == t3 || t3 == t1)) {
JOptionPane.showMessageDialog(null, "此三角形为等腰三角形!");
} else if(t1 < t2+t3 && t2 < t1+t3 && t3 < t1+t2 && t1 != t2 &&t2 != t3){
JOptionPane.showMessageDialog(null,"此三角形为一般三角形!");
} else{
JOptionPane.showMessageDialog(null,"输入的数据不能构成三角形!");
}
}catch(NumberFormatException e1){
JOptionPane.showMessageDialog(null,"数据为空或者输入不符合要求!");
}
}
}
public static void main(String[] args){
TriangleFrame f = new TriangleFrame();
}
}
(2)NextDate问题
1) 编写程序,实现NextDate三角形问题。
2)设计测试用例
使用黑盒测试方法的边界值设计用等价类分析法设计测试用例。
a. 分析各变量的取值
Month取1,2,6,11,12
Day取1,2,15,30,31
Year曲1900,1901,1975,2049,2050
b. 测试用例数
有3个变量,会产生13个测试用例。
c. 设计测试用例
NextDate问题的测试用例
代码如下:
import java.awt.*; import javax.swing.*; import java.awt.event.*;
public class TriangleFrame extends JFrame implements ActionListener{
JLabel lb1; JLabel lb2; JLabel lb3; JLabel lb4; JButton btn1; JTextField txt1; JTextField txt2; JTextField txt3; JPanel cp;
TriangleFrame(){
super("三角形判定");
lb1 = new JLabel("三角形判定问题"); lb1.setBounds(new Rectangle(153, 26, 95, 22)); lb2 = new JLabel("第一个参数a:"); lb2.setBounds(new Rectangle(44, 70, 104, 27));
lb3 = new JLabel("第二个参数b:"); lb3.setBounds(new Rectangle(44, 113, 104, 27));
lb4 = new JLabel("第三个参数c:"); lb4.setBounds(new Rectangle(44, 152, 104, 27));
txt1 = new JTextField(20); txt2 = new JTextField(20); txt3 = new JTextField(20);
txt1.setBounds(new Rectangle(132, 72, 168, 23));
txt2.setBounds(new Rectangle(132, 155, 168, 23));
txt3.setBounds(new Rectangle(132, 113, 168, 23));
btn1 = new JButton("判定"); btn1.setBounds(new Rectangle(152, 217, 96, 33));
btn1.addActionListener(this);
setSize(400,300); setVisible(true); cp = (JPanel) getContentPane();
cp.setLayout(null); cp.add(lb1); cp.add(lb2); cp.add(txt1); cp.add(lb3); cp.add(txt2); cp.add(lb4); cp.add(txt3); cp.add(btn1);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == btn1){
try{ Integer t1 = Integer.parseInt(txt3.getText());
Integer t2 = Integer.parseInt(txt2.getText());
Integer t3 = Integer.parseInt(txt1.getText());
if (t1 < t2 + t3 && t2 < t1 + t3 && t3 < t1 + t2 && t1 == t2 && t2 == t3) {
JOptionPane.showMessageDialog(null, "此三角形为等边三角形!");
} else if (t1 < t2 + t3 && t2 < t1 + t3 && t3 < t1 + t2 && (t1 == t2 || t2 == t3 || t3 == t1)) {
JOptionPane.showMessageDialog(null, "此三角形为等腰三角形!");
} else if(t1 < t2+t3 && t2 < t1+t3 && t3 < t1+t2 && t1 != t2 &&t2 != t3){
JOptionPane.showMessageDialog(null,"此三角形为一般三角形!");
} else{
JOptionPane.showMessageDialog(null,"输入的数据不能构成三角形!");
}
}catch(NumberFormatException e1){
JOptionPane.showMessageDialog(null,"数据为空或者输入不符合要求!");
}
}
}
public static void main(String[] args){
TriangleFrame f = new TriangleFrame();
}
}
5.实验总结:
通过实验,我对软件测试有了进一步的认识和学习,对黑盒测试流程有了较清楚的了解,发现了很多问题,同时也收获了很多。
第二篇:实验2 黑盒测试
实验2 黑盒方法测试
实验目的:
1. 使学生能够更进一步理解黑盒测试方法。
2. 掌握黑盒测试中设计测试用例的基本方法(等价类划分、边界值分析和因果图等方法)。
3. 进一步熟悉测试报告的写法。
实验环境:
Windows系统平台和学生熟悉的某一个开发环境。
实验学时:
2学时
实验内容:
某程序的逻辑设计如下图所示,分析并构建黑盒测试的前提条件,并按照测试用例测试程序,完善测试用例各项内容的填写。
实验步骤:
1. 选择二到三种方法构建测试用例。
划分等价类:(1)有效等价类划分:x>80 , Y>80,x+Y>140
X<80 ,Y>80,X+Y>140
X<80,Y<80,X+Y>140
X<80,Y<80,X+Y<140
X>80,Y<80,X+Y>140
X>80,Y<80,X+Y<140
(2) 无效等价类:X Y 超出int型的范围
X Y 为小数
2. 依据测试用例测试程序。
(1) x=81 y=81 x+y=162
(2)X=79 Y=81
(3) x=79 y=79
(4) x=69 y=69
(5) x=81 y=79
(6) x=81 y=58
3.无效等价类
(1) x=80.1 y=80.1
(2) x=2147483648
实验总结:
通过黑盒测试实验,我学习到了黑盒测试中的等价类划分以及边界值分析等测试方法,理解了软件测试在软件开发阶段所占的重要地位。