计算器软件测试报告
江西工业职业技术学院
毕业综合实践
课题名称:          安卓手机计算器       
     
作  者:    廖杰  学  号:  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  = Int();
38.                    if(m>=0&&m<=100)
39.                    {   
40.                        System.out.println("请输入第二个数:");
41.                        while(true){           
42.                            int n = Int();
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
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.505
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
    }
1.2健壮性测试:
健壮性测试可产生6*2+1=13个测试用例,在上面边界值分析测试用例的基础上再添加(50,-1)、(50,101)、(-1,50)、(101,50)这4个测试用例即可。
                  表2 健壮性测试用例
用例
m
n
  预期输出(+、—、*、/)
        实际输出
  10
50
-1
49.0、51.0、-50.0、-50.0
输入n值不在要求区间
  11
50
101 
151.0、-51.0、5050.0、0.495
输入n值不在要求区间
  12
-1
50
49.0、-51.0、-50月朗天门.0、-0.02
输入m值不在要求区间
  13
101
50
151.0、51.0、5050.0、2.02
输入m值不在要求区间
2、等价类测试:
      规定了输入值m,n的范围[0,100],则
      变量的有效等价类:
        M1={m:0≤m≤100}
        N1={n:0≤n≤100}
      变量的无效等价类:
新车选购
        M2={m:m≤0}
        M3={m:m≥100}
        N2={n:n≤0}
        N3={n:n≥0}
2.1、弱一般等价类测试:
        该测试可用每个等价类的一个变量实现,可生成1个测试用例。                     
2.2、强一般等价类测试:
    该测试基于多缺陷假设,需要1*1=1个测试用例。
 
              表3    强、弱一般等价类测试用例
用例
m
n
  预期输出(+、—、*、/)
        实际输出
WN1,SN1
50
50
100.0、0.0、2500.0、1.0
100.0、0.0、2500.0、1.0

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。