首页 > 软件测试 > 如何快速找出软件中的Bug

如何快速找出软件中的Bug

当前用户对软件企业开发出来的软件质量提出了越来越高的要求了。所以在这种大的环境背景下,催生了一个新兴的职业–“软件测试工程师”的职业。尤其是最近2-3年来加入这个职业或者即将加入到这个职业的人也越来越多了。那么作为一名软件测试工程师,我们该如何迅速找到软件中的缺陷Bug呢?

下面结合作者多年的软件测试经验谈谈。按照作者的观点:凡是不符合用户需求的,或者在使用过程中给用户造成不便的,都认为它是Bug.话虽然说的有点极端,但是现实就是如此。那么对于刚入行的软件测试新手迅速找出软件中的Bug思路如下:


1、尽快熟悉公司的产品业务

比如你们公司做ERP软件的,你肯定要迅速熟悉EPR的业务流程;比如你们公司是做法院软件的,那么你一定要熟悉法院审判案件的流程,只有熟悉了产品的业务流程、你才能迅速找出软件中存在的一些重要的缺陷,你发现的软件缺陷才是有价值的。否则即使你能找到一些软件缺陷,那也是纯软件的缺陷,价值不大。

2、把自己当成是用户

把自己当成是用户去使用该系统,比如在使用该系统过程中是这样操作的吗?

2.1 比如在大量要求用户输入的软件界面中,有一些用户喜欢使用Tab键采用全键盘的输入;此时的正确的接口应该采取从左到右,从上到下的顺序。

2.2 比如有的用户喜欢使用快捷键操作等(Ctr+C,Ctr+V,Ctr+F),但是实际情况下一些开发出来的软件的快捷键却根本不起作用。

2.3 比如软件在需要用户输入的信息的时候(特别是在填写个人资料的时候),必填项后面一律要用*等醒目的标示,要让用户知道这个地方时必须填写的。

2.4 下拉框不选值的时候,应该有个默认值;并且要多检查程序中的多处下拉框,因为很多情况下下拉框取不到值。

3、善于怀疑,不要迷信高手

世界上没有绝对正确的,总有错误的地方,具有叛逆心理,别人认为不可能发生的事,我却认为可能发生。别人认为是对的,我却认为不是对的。如果你认为某个或者某些程序员水平很高,他写的这个地方应该没问题吧,那么我要说你错了,这样很容易遗漏软件中的Bug.因为程序开发人员毕竟是普通的人,只要是人就会犯错误的。

4、不要让程序开发人员的观点:“用户不会进行这样的操作”而说服自己

遇到这样的情况,你要坚持你自己正确的想法,以后对方会明白你的。比如在一个录入员工基本信息的系统中,系统中对员工的年龄作为负值、而没有作为判断、也可以保存到数据库中,此时你不要被程序员的用户不会进行这样操作的观点说服自己,你要坚持你正确的观点,把这种现象作为一个Bug吧,勇敢点!你的选择不会不错!

5、在软件测试过程中要跟踪一条数据完整的流程

在软件测试的时候要跟踪一条数据完整的流程,保证数据的正确性这个真的是太重要了:假如你在测试一个销售的类型的软件的时候:你应该先做订货-à入库-à盘点-à销售-à查询。首先你要保证这个数据的流向是正确的无误的。假如你在测试法院审判软件的时候,你要先收案-à立案-à发送审批-à排期—审理审判-à结案判决-à归档-à查询。总之跟踪一条数据的流程,保证数据的正确性。如果经过你测试的软件在用户使用过程中业务流程上都走不通的话,那么这样的软件你说经过你的测试,但是在比人看来与没有测试有什么区别呢?

6、回归测试要注意的细项

程序员提交新的程序版本后,作为测试人员应该立即与程序员沟通这个修改的功能、并且这个新修改的功能影响哪些功能。举个简单的例子来说明一下:比如在一款软件中,程序开发人员修改了某个“会员”的某个字段信息。作为测试人员首先你要测试“会员”的功能这个是你首先需要做的。另外你还要和程序员沟通询问他们新修改的这个会员的字段,会影响会员的销售功能吗?会对会员以前的销售记录的查询有影响吗?如果对这些功能有影响,那么这些功能都是你在回归测试的时候重点测试的地方,也是最容易产生Bug的地方了。

7、与使用者互动的缺陷

7.1 如填写资料错误应的时候,应该能够提示错误的位置,让用户知道是这个地方输入数据不对。

7.2 删除数据之前给一定要给出是否删除确认提示。

7.3 不要在软件中使用中英文混合的提示比如:比如对于用户某个操作的错误提示,不要一会用“error”、一会用“错误”;一会用“succeed”另一会用“成功”,总之要统一。

7.4 另外要对程序员出现错别字进行检查,比如把“登录”写成“登陆”.

7.5 另外,在软件中不要对用户使用很专业的术语比如“记录”、“字段”等。

7.6 新增/修改信息保存提交后系统给出“保存/提交/修改成功”提示信息,并自动更新显示。

7.7 在用户进行大量的输入后,点击“保存”按钮,仅仅是因为某个地方的输入选择不正确,点击确定后发现所有的输入的内容都全部被清空了,花费很长时间的输入、仅仅是某个地方的输入不正确,而把该用户的所有输入的其他内容也清空了,假如你是这个软件的使用者、你肯定感觉挺挺恼火的。

7.8 对于软件中的查询功能,测试的时候设置开始时间>大于结束时间看看能否查询出记录,这也是程序员容易犯的一个错误。

8、软件边界值

软件最容易在边界值上发生问题了。众所周知软件最容易在边界值上出现问题了,所以作为测试人员一定要在边界值上多测试,比如测试用户输入框中的数值的最大数和最小数,以及为空时的情况。

9、非法容错性

比如在需要输入数字的地方输入字母;在需要输入字母的地方输入数字;在需要用户输入的文本框中拷贝字数很多的整篇文章到这里测试看看软件是如何做处理的;在含有除法的计算中把除数设为0等等来检验软件的容错性。

10、软件接口的测试

如果软件不同部分是由多个程序员共同完成的,那么要在他们程序接口相关联的地方多检查,因为有时候在接口的地方,A程序员认为B程序员做了处理;B程序员认为A程序员做了处理;但是事实上他们双方都没有做处理。笔者的亲身经历:曾经做过一款销售类型的软件,A程序员做订货、B程序员做入库,他们每个人的程序都能单独运行,结果集成到一起就出现了错误,这个问题在测试过程中居然没有被发现,在用户的实际使用环境中用户发现报表查询出来的结果不准确,才发现了这个问题。

11、兼容性检测

软件测试要在不同的硬件、软件(包括操作系统、IE浏览器)下的测试

11.1 硬件:有时候软件在配置很高的机器上,有时候会隐瞒一些错误,比如CPU过快的时候,很多现象一闪而过,发现不了缺陷。

11.2.软件:比如笔者最近测试的一款软件在不同的浏览器下看到的菜单权限不一样,下图中同一个用户在IE6.0和IE7.0下看到的菜单权限不一样(大家可以看一下在IE7.0下明显少了很多东西),这肯定是软件中的一个Bug了。

12、软件在压力之下容易出错

软件在压力之下容易产生的错误,作为一个有经验的测试人员一般都知道:把你的软件在压力之下长时间运行测试,然后看看软件能否在压力之下经的住考验。

13、随机测试

即使测试经过大量的充分的测试,也不能发现软件中的所有缺陷,所以测试人员在测试的时候可以做一些随机的测试,比如胡乱的在软件界面上乱点一通有时候也会发现一些意想不的软件缺陷。

14、学习他人的经验

最后,作为一名软件测试人员你可以查看公司里的软件缺陷库(比如Jira、bugzilla和TD等)看看别人报告的软件Bug,从别人的报告Bug思路中你可以学习测试的经验,迅速找出软件中的缺陷。

除非注明,文章为IT热血青年原创,欢迎转载!转载请注明本文地址,谢谢。
本文地址:http://blog.itblood.com/how-to-quickly-find-a-bug.html

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.