对于很多新入行测试的同学来说想快速的切入项目寻找Bug往往会比较痛苦,经常会遇到以下问题:
- 一轮测试完成只发现了很少的Bug,怀疑自己的测试质量。
- 发现的Bug都是很基础的问题,没有成就感。
- 不能确认是否是Bug,需要反复与同事或研发人员确认。
- 自己测试Pass后,还经常被别人发现其它遗留的缺陷。
那么在日常工作中如何快速的去定位找到Bug呢?结合日常的一些实践与经验积累,我们来整理下:
1、尽早开展测试
尽早参与测试,尽早发现Bug。从需求阶段就参与测试,测试人员可以更了解被测产品需求的背景以及设计原理,从而发现较多设计与实现不符的缺陷。一方面缺陷越早的暴露,后期研发的维护成本越低,另一方面根据自己的测试经验来看测试周期中发现Bug的曲线图是一个不对称的抛物线,测试周期越长后期发现Bug的概率越低。
2、熟悉测试模块
除了一些比较容易发现的问题外,很多Bug的发现都依赖于测试人员对模块的熟悉度。要找文档资料和请教同事尽快熟悉自己所测试的模块,才能迅速找出软件中存在的一些重要的缺陷和一些潜藏Bug,这样发现的软件缺陷才是有价值的。
3、Review别人的Bug
一是因为Bug具有连带效应,一段程序已经发生的错误越多,其中存在的错误概率也就越大,因此对发生错误较多的程序段,要进行更深的测试。发现一个Bug之后如果能举一反三则可以尽早发现更多类似的Bug。
二是因为Bug也是有共性的,可以从其他人提的Bug中吸取一些经验,了解别人的测试思维,丰富自己的测试思路。
三是因为Bug的修复往往会引入新的Bug,应该着重测试与该问题相关的业务。为了修复Bug提交新修改而被影响到的功能是最容易产生Bug的地方,同时也是在回归测试中优先重点测试的地方。
4、关注产品的边界值
软件问题经常出现在一些“边界”场景或环境下,即非常规场景。比如:边界值、非法输入、接口测试、随机测试、兼容性测试、并发测试、压力测试、安全测试、组合测试、长链路测试等这些场景发现缺陷的频率是比较高的,所以作为测试人员一定要在边界值上多投入一些测试时间。
5、编写自动化测试代码
如果每天都去做同样的事情,那样太没有意思了,简直就是对我们测试人员智慧的侮辱。但是一旦我们不进行这些测试就可能出现这种情况,突然有一天我们发现我们的产品以前能够很好工作的功能突然就不工作了,于是大家乱作一团,有人急着修复它,有人在找是谁Check in的。所以我们可以通过自动化代码对产品进行全面测试,定期对历史功能进行构建,从而主动发现新需求、新改造对历史功能的影响,从而发现问题。
6、掌握开发套路
软件中80%的Bug存在于20%的代码中,这要求测试人员对产品的业务及内部逻辑比较了解,知道哪一块的代码容易出问题。通过查看产品代码,你往往能找到一些逻辑上的Bug,这些Bug常常是你无法通过手工测试找到的。
7、把自己当成是用户
测试作为一手使用者,更容易从用户视角出发去发现问题,也有助于我们准确有效的判断Bug,有些问题只有测试阶段才能发生或者只有具备测试思维的人才能发现。在测试过程中要把自己当成用户去使用该软件产品,比如在试用软件的过程中,思考用户大概会是怎样操作呢。
8、保持怀疑的心态
要对软件产品持怀疑的心态,因为世界上没有绝对完美的东西,总会有错误的地方,因此作为测试人员要具有逆推心理。也不让开发人员拿“用户不会这样操作”的观点说服自己,我们要坚持自己正确的观点,坚持把Bug作为事实依据的结果拿出来说服开发去修改。
9、学习他人经验
俗话说:三人行必有我师焉。多和同事交流测试经验对我们的测试工作将会是一个很大的帮助。
总结:无缺陷的产品是不存在的,对测试人员而言,在有效的时间内发现更多的缺陷就显得异常重要。理论知识掌握之后就要不断的参与到项目中来,锻炼自己发现Bug的能力。相信每个测试人员都有自己的一套方法,也欢迎大家多多探讨。