• 第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("输入格式错误,请重试
    ",Commission.commission(-5, -6, -3));
    10         assertEquals("佣金金额:26.80元
    ",Commission.commission(3, 2, 1));
    11         assertEquals("佣金金额:133.00元
    ",Commission.commission(4, 10, 100));
    12         assertEquals("佣金金额:280.00元
    ",Commission.commission(10, 50, 100));
    13         assertEquals("输入格式错误,请重试
    ",Commission.commission(-1, 300, -1));
    14         assertEquals("输入格式错误,请重试
    ",Commission.commission(10, -5, 50));
    15         assertEquals("输入格式错误,请重试
    ",Commission.commission(-1, -1, -1));
    16         assertEquals("佣金金额:236.00元
    ",Commission.commission(10, 100, 10));
    17         assertEquals("佣金金额:214.00元
    ",Commission.commission(10, 80, 20));
    18         assertEquals("输入格式错误,请重试
    ",Commission.commission(-5, 30, 60));
    19         assertEquals("输入格式错误,请重试
    ",Commission.commission(20, -3, 80));
    20         assertEquals("输入格式错误,请重试
    ",Commission.commission(10, 40, -20));
    21         assertEquals("输入格式错误,请重试
    ",Commission.commission(-20, -5, 30));
    22         assertEquals("输入格式错误,请重试
    ",Commission.commission(28, -20, -10));
    23         assertEquals("输入格式错误,请重试
    ",Commission.commission(-10, 80, -30));
    24         assertEquals("输入格式错误,请重试
    ",Commission.commission(-2, -4, -8));
    25         assertEquals("输入格式错误,请重试
    ",Commission.commission(-1, 100, -1));
    26         assertEquals("佣金金额:296.00元
    ",Commission.commission(25, 2, 20));
    27         assertEquals("输入格式错误,请重试
    ",Commission.commission(-5, 2, 3));
    28         assertEquals("佣金金额:381.60元
    ",Commission.commission(20, 100, 1));
    29         assertEquals("佣金金额:2340.00元
    ",Commission.commission(100, 200, 300));
    30         assertEquals("输入格式错误,请重试
    ",Commission.commission(-5, 100, 300));
    31         assertEquals("输入格式错误,请重试
    ",Commission.commission(200, -10, 30));
    32         assertEquals("输入格式错误,请重试
    ",Commission.commission(40, -200, -5));
    33         assertEquals("佣金金额:12.40元
    ",Commission.commission(1, 2, 3));
    34         assertEquals("佣金金额:108.70元
    ",Commission.commission(10, 25, 1));
    35         assertEquals("佣金金额:1896.00元
    ",Commission.commission(100, 210, 10));
    36         assertEquals("输入格式错误,请重试
    ",Commission.commission(-1, -2, 50));
    37         assertEquals("输入格式错误,请重试
    ",Commission.commission(2, -5, 20));
    38         assertEquals("输入格式错误,请重试
    ",Commission.commission(80, 60, -6));
    39         
    40     }
    41 
    42 }

    5、测试结果:

    6、测试小结:

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

      

  • 相关阅读:
    webpack入门
    vue 知识记录
    vue 服务端渲染案例
    nodemon的简单配置和使用
    vue 非父子组件通信-中转站
    position笔记
    koa 练习
    笔记
    git push代码时的'git did not exit cleanly (exit code 1)'问题解决
    块级元素的text-align对行内元素和果冻元素(inline-block)的作用
  • 原文地址:https://www.cnblogs.com/ChenXh123/p/6646067.html
Copyright © 2020-2023  润新知