记一次曾经项目中遇到的错误

曾经项目中遇到的错误:

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判断输入格式,好处一个是数据不用传到后台就可以判断提高了速度,二是减少了后台代码复杂度,三是可以更好的提示,页面美观使用感受更好,更有软件友好度

结合这次经历与软件测试的体会:

测试案例的设计要设计不同情况,同一种的可以不重复。软件测试很有必要,否则容易出现异常崩溃但是作者还不知道。软件测试中掌握一定得方式和方法会提高有效性和效率。在软件测试方面我们缺乏专业性的知识,目前还是主要靠经验。我们还需要学习专业的软件测试方法。

时间: 2024-11-10 08:35:59

记一次曾经项目中遇到的错误的相关文章

WCF项目中出现常见错误的解决方法:基础连接已经关闭: 连接被意外关闭

原文:WCF项目中出现常见错误的解决方法:基础连接已经关闭: 连接被意外关闭 在我们开发WCF项目的时候,常常会碰到一些莫名其妙的错误,有时候如果根据它的错误提示信息,一般很难定位到具体的问题所在,而由于WCF服务的特殊性,调试起来也不是那么方便,因此往往会花费不少时间来进行跟踪处理.本文介绍我在我在我的框架里面使用WCF服务的时候,出现的一个常见错误的处理方法,它的提示信息是:基础连接已经关闭: 连接被意外关闭.这种情况我碰到的有两种,一种是返回DataTable的时候出现的,一种是返回实体类

在项目中遇到的错误——软件测试第一次作业

在上学期<操作系统>这么课中,我们学习了锁的机制.所谓锁,就是把一个资源用一个锁锁起来,不允许其他任务使用.换句话说,就是防止多个任务竞争共享资源,导致程序出错. 项目中,我们需要做的是通过对公共资源进行加锁来实现对资源的限制访问,但是在实现锁的过程中,发生了错误. 我发现加了锁之后,其他任务在程序运行过程中一直无法使用这些公共资源.经过查询资料和查看编译器报错原因,发现是由于加锁后没有相应的写出解锁动作.导致上锁资源无法被其他任务使用. 相应加锁和解锁伪代码如下 Lock lock = ne

类库(DLL)项目中引用WebService错误:找不到引用协定“Abcds.XXXXSoap”的默认终结点元素。解决办法

错误提示案例:在 ServiceModel 客户端配置部分中,找不到引用协定“PutMCCases.PutMCCasesSoap”的默认终结点元素.这可能是因为未找到应用程序的配置文件,或者是因为客户端元素中找不到与此协定匹配的终结点元素. 答疑如下: 类库项目中添加了WebService之后,会默认生成一个app.Config文件,里面是WebService的配置信息 假设我的文件内容如下: <?xml version="1.0" encoding="utf-8&qu

vue项目中net::ERR_CONNECTION_TIMED_OUT错误

我出错的原因时network地址与我本机ip地址不一致 Network: http://192.168.13.30:8080/ 处理方法: 在vue项目中新建一个vue.config.js文件 配置上: module.exports = { devServer: { host: '0.0.0.0', port: 8080, } } 这样重启项目,地址改为自己ip地址就可以了 原文地址:https://www.cnblogs.com/zhangshengxiang/p/10170768.html

Visual Studio 2015在.NET Core RC2项目中的一个错误。

更新了.NET Core RC2 之后,VS的Web Tools更新为“Preview 1”了. 这个版本有一个问题,害我折腾了一个下午. 就是在项目界面的“依赖项 - NPM”上面错误地显示了不必要的“未安装”. 当时我看见这个大叹号和“未安装”三个字,就开始各种折腾,清空.更新NPM.逐个删除包,后来就定位到webpack这个包,把它去掉,就显示正常了. 但是让人纳闷的是,npm的安装日志里并没有什么错误,当时webpack都已经安装成功了啊,而且都能用的. 再后来就发现webpack依赖的

iOS学习(项目中遇到的错误1)

1.[AppModel copyWithZone:]: unrecognized selector sent to instance 0x7ffda9f4cf70 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[AppModel copyWithZone:]: unrecognized selector sent to instance 0x7ffda9f4cf70' *

1000多个项目中的十大JavaScript错误以及如何避免

通过统计数据库中的1000多个项目,我们发现在 JavaScript 中最常出现的错误有10个.下面会向大家介绍这些错误发生的原因以及如何防止. 对于这些错误发生的次数,我们是通过收集的数据统计得出的.Rollbar 会收集每个项目中的所有错误,并总结每个错误发生的次数,然后通过各个错误的特征进行分组. 下图是发生次数最多的10大 JavaScript 错误: 下面开始深入探讨每个错误发生的情况,以便确定导致错误发生的原因以及如何避免. 1.   Uncaught TypeError: Cann

项目中遇到的bug、问题总结

1. Cannot set property 'captcha' of undefined 在node项目中使用svg-captcha生成验证码报错 captcha的代码,这里有一个session.captcha,检查app.js,发现session没设置 exports.captcha = async(req, res, next) => { // 创建验证码 const captcha = svgCaptcha.create() // 验证码文本 req.session.captcha =

记一次项目中yaml文档引发的惨案 (#yaml文档格式#yaml中&#39;-&#39;的作用)

项目已经在收尾阶段了,然后老大让我去把dockerCompose.yaml文件中公用配置给抽取一下,就是说以后改配置啊什么的就可以直接在抽出来的公用变量里面改就行了, 不用一个模块一个模块地去改(我们这个项目是微服务项目,十多个模块),本来是个很没技术含量的活儿,但是呢,引发了一场切(diao)尸吊的话题,来看下原始的配置 文件: 看下官网的语法: 我抽取的: 然后当然就是报错啦, 再然后就是各种检查顺序啊,检查有没有空格的尝试,然后无果,我就和老大汇报说抽不了,如果能抽我切尸吊俩厘米,然后我老