【软件测试-实验-5】单元测试(junit的使用测试案例)
(一)实验目的
1、理解单元测试的目的、内容和过程;
2、熟悉JUnit测试环境配置;
3、掌握使用JUnit进行单元测试的过程。
(二)实验内容
1.针对乘法计算器,完成单元测试
源码如下:
public static int multiply(int x,int y)
{
int result;
if(x>=9 || x<=-9)
System.out.println("输入的参数值必须大于-10同时小于10");
else if(y>=9 || y<=-9)
System.out.println("输入的参数值必须大于-10同时小于100");
else
result=x*y;
return result;
}
测试结果
2.根据所提供的年份和月份(为函数的两个参数),返回该月的天数(为函数返回值)。
要求:
1) 使用Eclipse编写实现函数的源程序。
2) 使用黑盒测试方法或者白盒测试方法完成该函数的测试用例的设计。
3) 使用JUnit完成整个测试过程,并分析记录测试结果。
1) 使用Eclipse编写实现函数的源程序。
public class CalDay {
public int getDayByYearAndMonth(int year, int month) {
int days = 0;
boolean isLeapYear = false;
if(year<=0) {
System.out.println("年份输入必须大于0");
return 0;
}
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
System.out.println("--------------------闰年-------------------");
isLeapYear = true;
} else {
System.out.println("--------------------非闰年-------------------");
isLeapYear = false;
}
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
if (isLeapYear) {
days = 29;
} else {
days = 28;
}
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
System.out.println("输入月份必须在1~12之间");
break;
}
return days;
}
}
2) 使用黑盒测试方法或者白盒测试方法完成该函数的测试用例的设计。
使用白盒测试——语句覆盖
使每条语句都执行一次
测试用例
3) 使用JUnit完成整个测试过程,并分析记录测试结果。
使用JUnit完成整个测试
3.用Java语言编写程序判断闰年,设计测试用例并用Junit进行测试
1)编写测试方法
public int getyear(int year) {
if(year<=0) {
System.out.println("年份输入必须大于0");
return -1;
}
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
System.out.println("--------------------闰年-------------------");
return 1;
} else {
System.out.println("--------------------非闰年-------------------");
return 0;
}
}
2)采用白盒测试——语句覆盖
采用白盒测试——语句覆盖
3)测试结果:
(三)实验总结
通过本次实验,使我熟悉了junit的用法,实验中遇到感觉困难的就是测试用例的设计了,是选择黑盒测试,还是白盒测试,黑盒测试用不用画因果图,白盒测试用不用给每条语句编号。在这些问题上比较纠结,后来还是选择了比较简单的白盒测试——语句覆盖