1、修正流程图
2、测试用例设计
覆盖方法 | 用例号 | 输入 | 期待结果 | 实际结果 | 通过 | 时间 |
语句覆盖 | 1 | -1 23 11 | 输入数量不满足要求 | 23.8 | 未通过 | 2017.03.29 |
语句覆盖 | 2 | 5 10 32 | 75.6 | 75.6 | 通过 | 2017.03.29 |
语句覆盖 | 3 | 11 10 33 | 186.6 | 186.6 | 通过 | 2017.03.29 |
判定覆盖 | 4 | "" 11 22 | 输入数量不满足要求 | -9.8 | 未通过 | 2017.03.29 |
判定覆盖 | 5 | 11 -3 9 | 输入数量不满足要求 | 92.2 | 未通过 | 2017.03.29 |
判定覆盖 | 6 | 9 5 10 | 85.0 | 85.0 | 通过 | 2017.03.29 |
判定覆盖 | 7 | 15 6 5 | 195.0 | 195.0 | 通过 | 2017.03.29 |
判定覆盖 | 8 | 32 10 11 | 549.6 | 549.6 | 通过 | 2017.03.29 |
条件覆盖 | 9 | 1 6 -9 | 输入数量不满足要求 | 6.8 | 未通过 | 2017.03.29 |
条件覆盖 | 10 | 1 6 9 | 21.2 | 21.2 | 通过 | 2017.03.29 |
条件覆盖 | 11 | 16 5 9 | 210.3 | 210.3 | 通过 | 2017.03.29 |
条件覆盖 | 12 | 30 12 20 | 536.0 | 536.0 | 通过 | 2017.03.29 |
判定/条件覆盖 | 13 | "" "" "" | 输入数量不满足要求 | -9.8 | 未通过 | 2017.03.29 |
判定/条件覆盖 | 14 | 12 | 输入数量不满足要求 | -9.8 | 未通过 | 2017.03.29 |
判定/条件覆盖 | 15 | -2 -1 3 | 输入数量不满足要求 | -14.6 | 未通过 | 2017.03.29 |
判定/条件覆盖 | 16 | 12 -2 -3 | 输入数量不满足要求 | 91.6 | 未通过 | 2017.03.29 |
判定/条件覆盖 | 17 | 10 1 2 | 82.6 | 82.6 | 通过 | 2017.03.29 |
判定/条件覆盖 | 18 | 18 10 6 | 238.2 | 238.2 | 通过 | 2017.03.29 |
判定/条件覆盖 | 19 | 22 21 8 | 406.8 | 406.8 | 通过 | 2017.03.29 |
组合覆盖 | 20 | 11 11 | 输入数量不满足要求 | -9.8 | 未通过 | 2017.03.29 |
组合覆盖 | 21 | -1 22 -5 | 输入数量不满足要求 | 10.0 | 未通过 | 2017.03.29 |
组合覆盖 | 22 | -2 -4 -1 | 输入数量不满足要求 | -20.8 | 未通过 | 2017.03.29 |
组合覆盖 | 23 | 33 20 34 | 622.4 | 622.4 | 通过 | 2017.03.29 |
路径覆盖 | 24 | 22 a "" | 输入数量不满足要求 | -9.8 | 未通过 | 2017.03.29 |
路径覆盖 | 25 | 12 c 23 | 输入数量不满足要求 | -9.8 | 未通过 | 2017.03.29 |
路径覆盖 | 26 | 4 5 6 | 41.8 | 41.8 | 通过 | 2017.03.29 |
路径覆盖 | 27 | 17 10 8 | 228.6 | 228.6 | 通过 | 2017.03.29 |
路径覆盖 | 28 | 30 11 22 | 537.2 | 537.2 | 通过 | 2017.03.29 |
3、单元测试框架
import static org.junit.Assert.*;import org.junit.Before;import org.junit.Test;public class CommissionTest { Commission commission = new Commission(); @Before public void setUp() throws Exception { } @SuppressWarnings("deprecation") @Test public void testCommission() { assertEquals(21.2,commission.commission(1, 6, 9),0.0001); //0.0001为结果允许误差 assertEquals(-1,commission.commission(-1,6,9),0.0001); //-1表示输出数量不满足要求 assertEquals(210.3,commission.commission(16, 5, 9),0.0001); assertEquals(195.0,commission.commission(15, 6, 5),0.0001); assertEquals(537.2,commission.commission(30, 11, 22),0.0001); }}
4、测试结果
5、测试小结
在编写测试用例时,应该按照流程顺序进行用例安排,从第一个验证点到最后一个验证点,组成流程的开始到结束,方便用例的执行。相比于调用main()方法,采用单元测试框架可以更方便的写出测试代码,还提供了便捷方法。调试时为了证明程序的正确,它必须不断的排除错误,而测试注重发现错误,是一种挑错的过程。测试的输出是可预知的,而调试的输出大多是不可预见的,需要调试者去解释、去发现产生的原因。