第3次作业 105032014005

1、被测代码:http://www.cnblogs.com/ChainYugi/p/6612975.html

2、流程图:

3、测试用例设计:

覆盖方法 用例号 输入 期待结果 实际结果 通过与否 时间
语句覆盖、判定覆盖 1 -5  -6  -3  输入格式错误,请重试   输入格式错误,请重试  √  2017-03-30
2  3  2  1  佣金金额:26.80元 佣金金额:26.80元  √  2017-03-30
3  4  10  100  佣金金额:133.00元   佣金金额:133.00元  √  2017-03-30
4  10  50  100 佣金金额: 280.00元  佣金金额:280.00元  √  2017-03-30
 条件覆盖  5  -1  300  -1  输入格式错误,请重试  输入格式错误,请重试  √  2017-03-30
6  10  -5  50  输入格式错误,请重试  输入格式错误,请重试  √  2017-03-30
 判定条件覆盖   7  -1  -1  -1  输入格式错误,请重试   输入格式错误,请重试  √  2017-03-30
8  10  100  10 佣金金额:  236.00元  佣金金额: 236.00元  √  2017-03-30 
9  10  80  20 佣金金额:  214.00元  佣金金额: 214.00元  √  2017-03-30 
 组合覆盖     10  -5  30  60  输入格式错误,请重试  输入格式错误,请重试  √   2017-03-30
11   20  -3  80  输入格式错误,请重试  输入格式错误,请重试  √   2017-03-30
12   10  40  -20  输入格式错误,请重试   输入格式错误,请重试  √   2017-03-30 
13   -20  -5  30  输入格式错误,请重试  输入格式错误,请重试  √   2017-03-30 
14  28  -20  -10  输入格式错误,请重试  输入格式错误,请重试  √   2017-03-30 
15 -10  80  -30  输入格式错误,请重试  输入格式错误,请重试  √  2017-03-30
16 -2  -4  -8  输入格式错误,请重试  输入格式错误,请重试  √  2017-03-30
17 -1  100  -1  输入格式错误,请重试  输入格式错误,请重试  √  2017-03-30
18 25  2  20 佣金金额: 296.00元 佣金金额: 296.00元  √  2017-03-30
19 -5  2  3 输入格式错误,请重试 输入格式错误,请重试  √  2017-03-30
20 20 100 1 佣金金额: 381.60元 佣金金额: 381.60元  √  2017-03-30
21 100  200  300   佣金金额: 2340.00元 佣金金额: 2340.00元  √  2017-03-30
22 -5  100  300 输入格式错误,请重试 输入格式错误,请重试  √  2017-03-30
23 200  -10  30 输入格式错误,请重试 输入格式错误,请重试  √  2017-03-30
24 40   -200  -5 输入格式错误,请重试 输入格式错误,请重试  √  2017-03-30
路径覆盖 25 1  2  3 佣金金额: 12.40元 佣金金额: 12.40元  √  2017-03-30
26 10  25  1 佣金金额: 108.70元 佣金金额: 108.70元  √  2017-03-30
27 100  210  10 佣金金额: 1896.00元 佣金金额: 1896.00元  √  2017-03-30
28 -1  -2  50 输入格式错误,请重试 输入格式错误,请重试  √  2017-03-30
29 2  -5  20 输入格式错误,请重试 输入格式错误,请重试  √  2017-03-30
30 80  60  -6  输入格式错误,请重试 输入格式错误,请重试  √  2017-03-30

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4、使用单元测试框架:

 

 1 import static org.junit.Assert.*;
 2 
 3 import org.junit.Test;
 4 
 5 public class testcase {
 6 
 7     @Test
 8     public void test() {
 9         assertEquals("输入格式错误,请重试\n",Commission.commission(-5, -6, -3));
10         assertEquals("佣金金额:26.80元\n",Commission.commission(3, 2, 1));
11         assertEquals("佣金金额:133.00元\n",Commission.commission(4, 10, 100));
12         assertEquals("佣金金额:280.00元\n",Commission.commission(10, 50, 100));
13         assertEquals("输入格式错误,请重试\n",Commission.commission(-1, 300, -1));
14         assertEquals("输入格式错误,请重试\n",Commission.commission(10, -5, 50));
15         assertEquals("输入格式错误,请重试\n",Commission.commission(-1, -1, -1));
16         assertEquals("佣金金额:236.00元\n",Commission.commission(10, 100, 10));
17         assertEquals("佣金金额:214.00元\n",Commission.commission(10, 80, 20));
18         assertEquals("输入格式错误,请重试\n",Commission.commission(-5, 30, 60));
19         assertEquals("输入格式错误,请重试\n",Commission.commission(20, -3, 80));
20         assertEquals("输入格式错误,请重试\n",Commission.commission(10, 40, -20));
21         assertEquals("输入格式错误,请重试\n",Commission.commission(-20, -5, 30));
22         assertEquals("输入格式错误,请重试\n",Commission.commission(28, -20, -10));
23         assertEquals("输入格式错误,请重试\n",Commission.commission(-10, 80, -30));
24         assertEquals("输入格式错误,请重试\n",Commission.commission(-2, -4, -8));
25         assertEquals("输入格式错误,请重试\n",Commission.commission(-1, 100, -1));
26         assertEquals("佣金金额:296.00元\n",Commission.commission(25, 2, 20));
27         assertEquals("输入格式错误,请重试\n",Commission.commission(-5, 2, 3));
28         assertEquals("佣金金额:381.60元\n",Commission.commission(20, 100, 1));
29         assertEquals("佣金金额:2340.00元\n",Commission.commission(100, 200, 300));
30         assertEquals("输入格式错误,请重试\n",Commission.commission(-5, 100, 300));
31         assertEquals("输入格式错误,请重试\n",Commission.commission(200, -10, 30));
32         assertEquals("输入格式错误,请重试\n",Commission.commission(40, -200, -5));
33         assertEquals("佣金金额:12.40元\n",Commission.commission(1, 2, 3));
34         assertEquals("佣金金额:108.70元\n",Commission.commission(10, 25, 1));
35         assertEquals("佣金金额:1896.00元\n",Commission.commission(100, 210, 10));
36         assertEquals("输入格式错误,请重试\n",Commission.commission(-1, -2, 50));
37         assertEquals("输入格式错误,请重试\n",Commission.commission(2, -5, 20));
38         assertEquals("输入格式错误,请重试\n",Commission.commission(80, 60, -6));
39         
40     }
41 
42 }

 

5、测试结果:

6、测试小结:

  • 在编写测试用例的时候,特别是组合覆盖的时候,因为要对所有可能条件的组合进行测试,同时满足判定本身结果也至少出现一次,这个情况就比较多,写着写着都有点晕了。经过测试用例的编写,发现语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、组合覆盖、路径覆盖,从左到右,具有被包含的关系,其中语句覆盖最弱,路径覆盖效果最好。
  • 在采用单元测试框架的时候,发现省时省力很多,用JUnit执行测试类/方法,直接调用方法,可以自动执并且检查结果。刚开始用的时候,忽略了被测代码每个输出都有一个换行符,一直测试不通过,后来才发现。感觉单元测试框架会比我们检查结果更为严格。

  

 

posted on 2017-03-30 19:11  005_陈晓华  阅读(362)  评论(0编辑  收藏  举报