淮海工学院(计算机工程学院)课内实验报告实验名称:黑盒测试
专业名称:软件工程
班级:Z软件161
姓名:陈真杰
学号:2018140539
指导教师:陈艳艳
实验日期:2019年3月13
一、实验目的与环境
1.实验目的:
(1)理解黑盒测试的含义以及基本的测试方法。
(2)采用等价类划分法设计测试用例。
(3)掌握用等价类划分法设计测试用例的方法。
(4)掌握用因果图设计测试用例的方法。
(5)掌握用边界值分析法设计测试用例的方法。
2.实验环境:C语言、Java语言、Python语言等。
二、实验内容
1.三角形问题:输入3个整数a、b、c,分别作为三角形的3条边,通过程序判断由
3条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形或者3条边不构成三角形。
2.现有一个学生标准化考试批阅试卷、产生成绩报告的程序。
其规格说明为:程序的
输入文件有80个字符的记录组成,分为试题部分和学生答卷部分,具体内容如图所示。
试题部分包括如下内容:
(1)标题。
这一组只有一个记录,其内容为输出成绩报告的名字。
(2)标准答案。
每个记录在第80个字符处标以数字2。
第一个记录的第1~3个字符为“试题数”,用于标示题目编号;第10~59个字符给出第1~50题的答案,以此类推。
学生答卷部分包括内容:每个记录的第80个字符均为数字3。
第1~9个字符给出学号,第10~59字符给出第1至第50题的答案,以此类推。
程序的输出有4个报告:
(1)按学号排列的成绩单,列出每个学生的成绩、名次。
(2)按学生成绩排序的成绩单。
(3)平均分数及标准偏差的报告。
(4)试题分析报告。
按试题号排序,列出各题学生答对的百分比。
3.售货机软件若投入1.5元硬币,按“可乐”“雪碧”或“红茶”按钮,送出相应的饮
料;若投入的是2元硬币,在送出饮料的同时退还5角硬币。
请用因果图设计测试用例。
三、方案设计
1.等价类划分
输入3条边a、b、c必须满足以下条件:
条件1 1≤a≤100 条件4 a<b+c
条件2 1≤b≤100 条件5 b<a+c
条件3 1≤c≤100 条件6 c<a+b
如果输入值a、b、c满足条件1、条件2和条件3,则输出下列4种情况之一:
(1)如果不同时满足条件4、条件5和条件6.则程序输出为“不构成三角形”。
(2)如果3条边相等,则程序输出为“等边三角形”。
(3)如果恰好有两条边相等则程序输出为“等腰三角形”。
(4)如果3条边都不相等则程序输出为“一般三角形”。
2.边界值分析法
输入条件和输出条件详见测试用例设计部分。
3.因果图
执行以下操作:
投入硬币。
按按钮。
如果执行了以上两个操作中的一个或两个,则会出现以下3种情况之一:
(1)给出提示信息
(2)送出商品
(3)找零并送出商品
四、测试数据及运行结果
1.等价类划分
等价类划分如表1所示。
表1等价类划分表
根据等价类划分设计测试用例,如表2所示。
表2等价类测试用例
用例(a,b,c) 覆盖等价类预期输出实际输出Test1 (4,5,6) (1)~(6) 一般三角形null
Test2 (0,1,2) (7)
不构成三角形不构成三角形
Test3 (2,0,3) (8) 不构成三角形
Test4 (0,3,4) (9) 不构成三角形
Test5 (2,3,6) (10) 一般三角形
Test6 (6,2,3) (11) 一般三角形
Test7 (2,3,6) (12) 一般三角形
Test8 (4,4,5) (1)~(6),(13) 等腰三角形等腰三角形
Test9 (6,5,5) (1)~(6),(14) 等腰三角形等腰三角形
Test10 (6,7,6) (1)~(6),(15) 等腰三角形等腰三角形
Test11 (3,4,5) (1)~(6),(16) 一般三角形一般三角形
Test12 (4,4,4) (1)~(6),(17) 等边三角形等边三角形
Test13 (4,5,4) (1)~(6),(18) 等边三角形等腰三角形
Test14 (5,5,4) (1)~(6),(19) 等边三角形等腰三角形
Test15 (4,5,5) (1)~(6),(20) 等边三角形等腰三角形测试结果如图1所示。
图1测试用例测试结果
2.边界值分析法
表为输入条件及相应的测试用例。
输入条件测试用例
输入文件空输入文件
标题没有标题
输出条件及相应的测试用例如表所示。
3.因果图
步骤1:原因和结果分析。
原因(输入):
(1)投入1.5元硬币。
(2)投入2元硬币。
(3)按“可乐”按钮。
(4)按“雪碧”按钮。
(5)按“红茶”按钮。
中间状态:
(11)已投币。
(12)已按钮。
结果(输出):
(21)退还5角硬币。
(22)送出可乐。
(23)送出雪碧。
(24)送出红茶。
步骤2:画出因果图,如图所示。
图2因果图
步骤3:设计决策表。
根据因果图设计决策表,如表所示,这里只有11个,而不是2=32个,这是因为图中有很多限制条件导致某些情况不可能出现。
表1.1 决策表
步骤4:设计测试用例。
根据决策表设计测试用例,如表所示。
并执行了相关测试,得到的结果如表所示。
五、总结
通过本次软件测试我学到了很多东西,也有了很多的体会,使我想到有一句话说的是“从已知现象解决未知问题!”这句话很好的概括了黑盒测试。
我对黑盒测试的理解是:站在用户的角度去思考使用程序的所有情况,完全摒弃代码部分的逻辑结构。
这样测试,通过结果去推断出现问题的原因,这个过程是程序员对自己代码的重新梳理,还可以对代码的逻辑结构进行优化。
是一个很好的测试方法,但这只是黑盒测试中的一个小部分,我还会继续学习其它的黑盒测试方法,并去思考和总结的。
六、附录:源代码
import java.util.Scanner;
public class Triangle_test {
public static void main(String[] args)
{
Scanner ss=new Scanner(System.in);
float a=1,b=1,c=1;
while(a!=1000||b!=1000||c!=1000)
{
System.out.println("请输入三角形的三边a,b,c的值:");
a=ss.nextFloat();
b=ss.nextFloat();
c=ss.nextFloat();
System.out.println(test(a,b,c));
}
}
public static String test(float x,float y,float z)
{
String k=null;
if(x>0 && x<101 && y>0 && y<101 && z>0 && z<101)
{
if(x+y>z && x+z>y && y+z>x)
{
if(x==y && y==z)
{
k="是等边三角形";
}
else if(x==y || x==z || y==z) //调整并列关系
{
k="是等腰三角形";
}
else{
k="是一般三角形"; //调整并列关系
}
}else{
k="不构成三角形"; //添加补充条件
}
}
else{
k="不构成三角形";
}
return k;
}
}。