标签:计算方法 void 分享 lsp 流程图 equal 漏洞 三次 log
被测试代码的地址:http://www.cnblogs.com/leezoey/p/6530136.html
测试流程图:
根据代码的编译方式为:
测试用例设计
测试函数 |
耳机数量 |
外壳数量 |
护膜数量 |
预期结果 |
实际结果 |
Charge |
11 |
11 |
11 |
True |
True |
-1 |
11 |
11 |
False |
False |
|
11 |
-1 |
11 |
False |
False |
|
11 |
11 |
-1 |
False |
False |
|
Ex |
11 |
11 |
False |
报错 |
|
11 |
Ex |
11 |
False |
报错 |
|
11 |
11 |
Ex |
False |
报错 |
|
11ex |
11 |
11 |
False |
报错 |
|
11 |
11ex |
11 |
False |
报错 |
|
11 |
11 |
11ex |
False |
报错 |
|
commission |
1 |
1 |
1 |
9.8 |
9.8 |
10 |
10 |
10 |
98.0 |
98.0 |
|
100 |
100 |
100 |
1820.0 |
0.0 |
根据这个所写的Junit测试代码:
@Before
public void setUp() throws Exception {
}
@SuppressWarnings({ "static-access"})
@Test
public void testCharge() {
assertEquals(true,monyCount.charge("11","11","11"));
assertEquals(false,monyCount.charge("-1","11","11"));
assertEquals(false,monyCount.charge("11","-1","11"));
assertEquals(false,monyCount.charge("11","11","-1"));
assertEquals(false,monyCount.charge("11ex","11","11"));
assertEquals(false,monyCount.charge("11","11ex","11"));
assertEquals(false,monyCount.charge("11","11","11ex"));
assertEquals(false,monyCount.charge("ex","11","11"));
assertEquals(false,monyCount.charge("11","ex","11"));
assertEquals(false,monyCount.charge("11","11","ex"));
}
@SuppressWarnings("static-access")
@Test
public void testCommission() {
assertEquals(9.8,monyCount.commission("1", "1", "1"),0.01);
assertEquals(98.0,monyCount.commission("10", "10", "10"),0.01);
assertEquals(1820.0,monyCount.commission("100", "100", "100"),0.01);
}
但是测试的结果进行到测试用例
assertEquals(false,monyCount.charge("11ex","11","11"));便报错,原因为这个方法是会因为输入的不合法(即数据为带字母或者符号)而中止报错
更改测试代码为
@Test
public void testCommission() {
assertEquals(9.8,monyCount.commission("1", "1", "1"),0.01);
assertEquals(98.0,monyCount.commission("10", "10", "10"),0.01);
assertEquals(1820.0,monyCount.commission("100", "100", "100"),0.01);
}
发现前两个测试还是可以进行,但是第3个结果与预期不符合
修改建议:
建议添加对字母和符号的判断以及防崩溃的函数
总的数据计算方法有巨大漏洞,估计为方法上的if(money>=1800)这个判断条件变量写错导致total数据在大于1800的时候变为0
标签:计算方法 void 分享 lsp 流程图 equal 漏洞 三次 log
原文地址:http://www.cnblogs.com/HSing1225/p/6649118.html