曾经项目中遇到的错误:
java大项目中编写一个简单的网上银行系统,其中有一个转账功能,转账金额不超过50元,手续费在本人账户中扣除0.1%。
在测试的时候,用了这几个情况去测试:
1、转账输入20(默认单位都是元)
2、输入—30
3、输入0
4、输入30.56
5、输入字母ab
6、输入600(账户余额是300)
7、输入70
在数据库中查看账户金额变化,根据执行结果与预期的比较,测试结果如下:
1正确;2、3、6、7都是预期结果不合理;4、5导致了系统崩溃
分析原因:
1、对于2、3、7这三种错误情况,首先对于数字输入的范围没有控制,应该判断输入的金额数值范围在大于0和不超过50,如果不在范围内则跳出提示;
2、 对于6这种情况,在后台修改数据库中金额之前,先预算一下看是不是余额不足,如果余额足够,在修改数据库,如果余额不足则跳出提示不执行操作;
3、对于4情况,可能是数据库类型定义整数,或者前后台传值部分定义的整数,所以带小数的无法处理。
4、对于5这种情况,应该提示不符合格式,应该在前端用js控制输入,或者后台增加异常处理。
错误造成的影响:
2、3、6、7得到了不合理的结果,比如转账是负数,以及余额变成负数、转账金额是0之类的不合理的结果。4、5则因为异常直接导致了系统的崩溃。
怎么去检测错误处:
1、根据功能需要设计几个不重复的不同种类的测试案例;2、判断测试案例执行结果是否符合预期;如果不符合,分析原因;3、找可能错误的地方,设断点;4、设置函数向控制台传数据,判断相应的可疑语句是否以及是否正确地修改了数据库;5、结合网页提示的错误;6、修改程序,再次重复以上步骤知道测试案例都符合预期。
解决建议:
可以后台增加异常处理,但是在前台判断更好,前台用js判断输入格式,好处一个是数据不用传到后台就可以判断提高了速度,二是减少了后台代码复杂度,三是可以更好的提示,页面美观使用感受更好,更有软件友好度
结合这次经历与软件测试的体会:
测试案例的设计要设计不同情况,同一种的可以不重复。软件测试很有必要,否则容易出现异常崩溃但是作者还不知道。软件测试中掌握一定得方式和方法会提高有效性和效率。在软件测试方面我们缺乏专业性的知识,目前还是主要靠经验。我们还需要学习专业的软件测试方法。