软件测试 白盒测试

实验三 白盒测试

1.实验目的
掌握白盒测试方法及会使用Junit进行测试。
2.实验内容
一、使用 java 实现如下功能的程序: 输入三条边 a,b,c,满足 0<=a<=200,0<=b<=200,0<=c<=200,判断是否能构成三角形, 分别输出不能构成三角形、等边三角形、等腰三角形、直角三角形、一般三角形。
(1) 判断三条边是否合法
(2) 判断两条边之和是否大于第三边
(3) 判断三条边是否能够组成三角形
(4) 判断两条边是否相等
(5) 求三角形有几条边相等,返回值:相等边的数量
(6) 判断是否满足两边平方之和是否等于第三边的平方
(7) 判断是否是直角三角形
(8) 判断三角形的类型,返回值: 不能组成三角形 等边三角形 等腰三角形 直角三角形 一般三角形
二、设计该程序的基路径测试用例。
三、使用 Junit 对上述操作进行测试,并得出测试结果。
3.实验步骤
第一步:根据实验内容编写程序。
第二步:根据实验内容设计测试用例,要求是用白盒测试生成测试用例。
第三步:执行测试用例,并记录测试结果。
第四步:编写实验报告,实验报告的内容包括测试用例的测试结果、程序中存在的 bug、以及这种测试用例生成方法对于揭露程序的错误有什么异同点。
4.测试结果
(1)流程图如下:

(2)控制流图如下:

圈复杂度为:6
P1: 1 2 11
P2: 1 3 4 11
P3: 1 3 5 6 11
P4: 1 3 5 7 11
P5: 1 3 5 8 9 11
P6: 1 3 5 8 10 11

(3)测试结果如下:

5.实验结果分析
经过JUnit测试,所有的测试结果都符合预期要求,即初步判断代码无误。
6.实验总结
(1)这次实验是根据白盒测试中的基于控制流的测试方法,首先先画出编写程序的流程图,再根据流程图改写成控制流图,然后计算圈复杂度,算出覆盖的基本路径,最后设计测试用例,编写代码,进行测试。
(2)体会到Junit对于测试的便利,可以批量测试多个测试用例,以及可以通过断言assert能够清晰看到预期值和实际值是否相符,如果不一样,会清晰看到错误的地方。
(3)这次实验掌握了白盒测试的基于控制流的测试方法和Junit的使用方法,对于以后写代码,改代码有很好的帮助。

7.附录代码
package triangle;

import java.util.Scanner;

public class Tri {
public static Boolean legal (int a, int b,int c)
{
if(a<0||a>200||b<0||b>200||c<0||c>200)
{
return false;
}
return true;

}
 public static Boolean trian (int a, int b,int c)
{
	if(a+b>c &&a+c>b && b+c>a)
	{
		return true;
	}
	return false;
	
}
public static int bianshu (int a, int b,int c)
{
	int cnt;
	cnt=0;
	if(a==b)   cnt++;
	if(a==c)   cnt++;
	if(b==c)   cnt++;
	return cnt;
	
}

public static Boolean zhijiao (int a, int b,int c)
{
	if(a * a + b * b == c * c  ||
		a * a + c * c == b * b ||
		b * b + c * c == a * a)
	{
		return true;
	}
	return false;
	
}
public static void print(int a,int b,int c) {
			
	
	if(legal(a,b,c))
	{
		if (trian(a,b,c))
		{
			if(bianshu(a,b,c)==1)
			{
				System.out.print("等腰三角形\n");
			}
			else if(bianshu(a,b,c)==3)
			{
				System.out.print("等边三角形\n");
			}
			else
			{
				if (zhijiao(a,b,c))
				{
					System.out.print("直角三角形\n");
				}
				else
				{
					System.out.print("一般三角形\n");
				}
			}
		}
		else
		{
			System.out.print("不能组成三角形\n");
		}
	}
	else
	{
		System.out.print("不能组成三角形\n");
	}
	
}
public static void main(String[] args)
{
	System.out.print("请输入三边的长度\n");
	 Scanner scan = new Scanner(System.in);
	 int a = scan.nextInt();
	 int b = scan.nextInt();
	 int c = scan.nextInt();
	 print(a,b,c);
}

}
测试代码:
import static org.junit.Assert.*;

import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;

import triangle.Tri;

/**
*
*/

/**

  • @author 小仙女

*/
@SuppressWarnings(“deprecation”)
public class TriTest {

/**
 * @throws java.lang.Exception
 */
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}

/**
 * @throws java.lang.Exception
 */
@AfterClass
public static void tearDownAfterClass() throws Exception {
}


@Test
public void test1() 
{
	Assert.assertEquals(false,Tri.legal(-1,1,0));
	Tri.print(-1, 1, 0);
}
@Test
public void test2() 
{
	Assert.assertEquals(false,Tri.trian(1,2,3));
	Tri.print(1, 2, 3);
}
@Test
public void test3()
{
	Assert.assertEquals(1,Tri.bianshu(1,2,2));
	Tri.print(1, 2, 2);
}
@Test
public void test4() 
{
	Assert.assertEquals(3,Tri.bianshu(6,6,6));
	Tri.print(6, 6, 6);
}
@Test
public void test5() 
{
	Assert.assertEquals(0,Tri.bianshu(3,4,5));
	Assert.assertEquals(true,Tri.zhijiao(3,4,5));
	Tri.print(3, 4, 5);
}
@Test
public void test6() 
{
	Assert.assertEquals(0,Tri.bianshu(6,7,8));
	Assert.assertEquals(false,Tri.zhijiao(6,7,8));
	Tri.print(6, 7, 8);
}

}

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值