白盒测试实验报告——三角形
一、实验目的
(1)巩固白盒测试技术,能熟练应用控制流覆盖方法设计测试用例;
(2)学习测试用例的书写。
二、实验内容
判断三角形类型
输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。
要求:
为测试该程序的方便,请将三角形判断的算法尽量放入一个函数中。
(1)画出程序的流图;
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖设计测试用例,并写出每个测试用例的执行路径
要求:设计测试用例时,每种覆盖方法的覆盖率应尽可能达到100%
(3)请采用基本路径测试方法对程序进行测试,并给出具体测试用例信息。
(4)通过你的测试,请总结你所使用测试方法发现的Bug。
三、实验要求
(1)根据题目要求编写测试用例
(2)撰写实验报告
(3)有关的实现程序请附到实验报告中
(4)实验报告命名规则:学号后两位+姓名_白盒实验
四、实验报告
(1)程序代码:
(2)程序的流图:
(3)语句覆盖;
(4)判定覆盖;
(5)条件覆盖;
(6)判定/条件覆盖;
(7)组合覆盖;
(8)基本路径覆盖;
附录:测试用例书写格式(语句覆盖为例)
测试用例表
第二篇:白盒测试实验报告-三角形形状-山东大学
实 验 报 告
一、实验目的
运用白盒测试中的条件覆盖和判定覆盖检查程序中内部动作或者运行是否符合规范,各部分内容是否按照规定正常运行。
二、实验内容
1、题目
输入三角形的三条边,判断三角形的类型,并返回三角形的详细类型,同时判断游戏是否结束,如果为结束,可以继续进行测试。
代码如下:(被测函数为类Trinagle中的returnType)
package 白盒测试;
import java.util.Scanner;
public class Triangle {
/**
* @赵得山
*/
public static void main(String[] args) {
String g="y";
Scanner scan=new Scanner(System.in);
while(g.equalsIgnoreCase(g))
{
System.out.println("请输入三个数字:");
int[] num=new int[3];
for(int i=0;i<3;i++)
num[i]=scan.nextInt();
//对三条边进行插入排序
for(int i=2;i>=1;i--)
for(int j=0;j
if(num[j]>num[j+1]){
int temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
for(int i=0;i<3;i++)
System.out.print(num[i]+" "+Math.pow(num[i], 2)+" ");
System.out.println(returnType(num[0],num[1],num[2]));
//是否继续输入测试数据
System.out.println("是否继续输入数据?y/n");
if(!scan.next().equals("y"))
{
System.out.println("测试结束!");
System.exit(0);
}
}
}
/**
* 返回三角形的类型
*/
static String returnType(int a,int b,int c){
String type="";
if(a+b<=c||b+c<=a||a+c<=b)
{
System.out.println("请重新输入测试数据");
type="不是三角形";
}
else if(a==b&&a==c)
{
type="等边三角形";
}
else if(a==b||a==c||b==c)
{
if(Math.pow(a, 2)+Math.pow(b, 2)==Math.pow(c, 2))
type="等腰直角三角形";
else if(Math.pow(a, 2)+Math.pow(b, 2)>Math.pow(c, 2))
type="等腰锐角三角形";
else if(Math.pow(a, 2)+Math.pow(b, 2)
type="等腰钝角三角形";
}
else if(Math.pow(a, 2)+Math.pow(b, 2)==Math.pow(c, 2))
type="一般直角三角形";
else if(Math.pow(a, 2)+Math.pow(b, 2)
type="一般钝角三角形";
else if(Math.pow(a, 2)+Math.pow(b, 2)>Math.pow(c, 2))
type="一般锐角三角形";
return type;
}
}
2、测试用例设计
1)程序流程图如下:
1)判定覆盖测试用例及测试结果
注:已覆盖所有的判定,由于条件太多,所以这里未列出判定的路径,还请老师见谅.
2)条件覆盖测试用例及测试结果
注:已覆盖所有的条件,所有条件的真假都取了一次,由于条件太多,所以这里未列出判定的路径,还请老师见谅. 三、总结与体会
通过这次实验,我对于白盒测试有了更加深刻和直观的认识,因为代码是自己编写的,同时也重新锻炼了自己的动手编码能力。发现的问题,对于判定覆盖,有时会忽略条件为“或”时的情况,对于条件覆盖测试,保证每个条件真假都取一次的用例可以有很多种,但是不一定保证所有的判定都被覆盖,这可能会导致程序的一些逻辑错误无法发现。