计算器软件测试报告
- 格式:doc
- 大小:179.57 KB
- 文档页数:16
江西工业职业技术学院
毕业综合实践
课题名称:安卓手机计算器
作者:廖杰学号:20112715 分院:电子与信息工程分院
专业:计算机网络技术
指导老师:占华为专业技术职务讲师
2013年 11 月 14日
一、问题描述:
用Java实现求两整数的加、减、乘、除运算结果,要求两整数的范围都是[0,100]。从键盘输入数m,数n,判断他们的范围,若不在[0,100]范围内,则输出提示语,要求重新输入,并且在做除法运算时,当除数为0时,输出提示语,说明除数不能为0。
将两数的范围定在[0,100],以更好的进行边界值分析,等价类测试等黑盒测试方法;为充分体现白盒测试的特点,有些地方故意用了if-else语句,while循环;另外,加、减、乘、除运算分别用了四个函数来计算,这样既可以在主函数中调用,又可以在Junit框架中分别对这四种运算进行测试。
二、程序源代码:
1. import java.util.Scanner;
2. public class Computer {
3. private int a;
4. private int b;
5. public Computer (int x,int y) //构造函数,初始化
6. {
7. a=x; //注意:Juint中需要输入测试值在0~100范围内
8. b=y;
9. }
10. public double add() //加法
11. {
12. return a+b;
13. }
14. public double minus() //减法
15. {
16. return a-b;
17. }
18. public double multiply() //乘法
19. {
20. return a*b;
21. }
22. public double divide() //除法,要求除数不能为0,否则输出提示语
23. {
24. if(b!=0)
25. return a/b;
26. else
27. System.out.println("除数不能为0!");
28. return 0;
29. }
30. public static void main(String[] args)
31. {
32. Scanner scanner = null;
33. scanner = new Scanner(System.in);
34. System.out.println("请输入0~100的两个m,n整数:");
35. System.out.println("请输入第一个数:");
36. while(true){ //若输入值不在要求范围内,则有循环直到输入正确为止
37. int m = scanner.nextInt();
38. if(m>=0&&m<=100)
39. {
40. System.out.println("请输入第二个数:");
41. while(true){
42. int n = scanner.nextInt();
43. if(n>=0&&n<=100)
44. {
45. Computer cpt=new Computer(m,n);
46. System.out.println("运算结果是:");
47. System.out.println("加法:"+m+"+"+n+"="+cpt.add());
48. System.out.println("减法:"+m+"-"+n+"="+cpt.minus());
49. System.out.println("乘法:"+m+"*"+n+"="+cpt.multiply();
50. System.out.println("除法:"+m+"/"+n+"="+cpt.divide());
51. }
52. else
53. System.out.print("输入n值不在要求区间,请重新输入n:\n");
54. }
55. }
56. else
57. System.out.print("输入m值不在要求区间,请重新输入m:\n");
58. }
59. }
60. }
三、黑盒测试:
1、边界值测试:
1.1、边界值分析:
输入要求是0~100之间的整数,因此产生了0和100两个边界,边界值分析可产生4*2+1=9个测试用例。可构造(50,0)、(50,1)、(50,50)、(50,99)、(50,100)、(0,50)、(1,50)、(99,50)、(100,50) 这9组测试用例。
表1 边界值分析测试用例
用例m n 预期输出(+、-、*、/) 实际输出(+、-、*、/)
1 50 0 50.0、50.0、0.0、除数不为0!50.0、50.0、0.0、0.0
2 50 1 51.0、49.0、50.0、50.0 51.0、49.0、50.0、50.0
3 50 50 100.0、0.0、2500.0、1.0 100.0、0.0、2500.0、1.0
4 50 99 149.0、-49.0、4950.0、0.50
5 109.0、-9.0、2950.0、
0.5050505050505051
5 50 100 150.0、-50.0、5000.0、0.5 150.0、-50.0、5000.0、0.5
6 0 50 50.0、-50.0、0.0、0.0 50.0、-50.0、0.0、0.0
7 1 50 51.0、-49.0、50.0、0.02 51.0、-49.0、50.0、0.02
8 99 50 149.0、49.0、4950.0、1.98 149.0、49.0、4950.0、1.98
9 100 50 150.0、50.0、500.0、2.0 150.0、50.0、500.0、2.0
在该测试时,发现(50,0)这个测试的除法的预期输出和实际输出不一致,是因为代码中return 0;当除数n=0时,实际返回的是0.0。
public double divide()
{
if(b!=0)
return a/b;
else
System.out.println("除数不能为0!");
return 0; //出现Bug
}