【工作随笔】一个黑盒测试很难测到的缺陷-BigDecimal除不尽导致报错
问题背景:
昨天加班做公司项目的冒烟测试,在测试导入包店陈列计划文件时,本应该成功导入的文件导入失败。 这个活动文件导入的逻辑中由一条:导入的记录平均金额不能超过100(每一行记录都由一列记录着金额)。我的测试文件里由3行记录,这3行记录的金额之和是200且其他数据符合导入要求,按照逻辑来讲,200/3小于100,那么导入能成功。结果页面只显示“导入失败,系统异常”。 通过日志看了下,这个错误就是开发使用BigDecimal.divide(param)时,没有考虑这个数字能不能被入参这个数字整除。
解决方案:
测试时,如果发现某个数字来源是平均数或者是逻辑里会校验平均值,可以采取下列措施之一:
1. 在开发之前将这种情况告知开发,做到提前避免。
2. 测试过程中,造数据要造不能整除的情况。