一、流程图
(注:a是headphone,b是shell,c是protector)
二、测试用例设计
覆盖方式 | 用例号 | 输入 | 期待结果 | 实际结果 |
通过 | 时间 |
语句覆盖 | 1 | 2 2 2 | 19.6 | 19.6 | 通过 | 2017.3.21 |
语句覆盖 | 2 | 2 2 2 | 19.6 | 输入有误 | 未通过 | 2017.3.21 |
判定覆盖 | 3 | 2C2c2 | 输入不满足要求 | 19.6 | 未通过 | 2017.3.21 |
判定覆盖 | 4 | 2.02 2 | 输入不满足要求 | 19.6 | 未通过 | 2017.3.21 |
判定覆盖 | 5 | 2.2 2 | 输入不满足要求 | 19.6 | 未通过 | 2017.3.21 |
判定覆盖 | 6 | -2 2 2 | 输入不满足要求 | 输入有误 | 通过 | 2017.3.21 |
判定覆盖 | 7 | -2 -2 -2 | 输入不满足要求 | 输入有误 | 通过 | 2017.3.21 |
三、测试结果
程序完整,能满足一定输入可以成功,但输入判断部分考虑不够完善。无用代码过多。
四、代码优化建议
(1)输入三种物品数量时,可以分别输入,一次性输入情况太多需要考虑的太多;
(2)建议规定输入的格式;
(3)input = input.replaceAll("\\D", ",").replace("_+", ",");中的\\D已经把所有非数字部分全部转化为",",所以后面判断是否为负数的情况已经用不到
(4)考虑到可能会出现错误情况时,尽量使用try{}catch{} 语句。