那天,我们的一位实习学生过来问我,我平时没有什么时间来找bug,为什么能在所有的人中找到最多的Bug,怎么样才能找到更多的Bug,当时一下子真的不知道该怎么回答,找Bug这种事情是需要创造力的,更加没有所谓的万能钥匙。不过事情总是有规律的,我回头想了想,要做一个好的Bug Finder,可以考虑以下的一些因素。
1、熟悉你做的产品
不管你是Dev、Test或者PM,熟悉自己开发的产品越多越好,你不但应该熟悉自己开发的模块,也应改熟悉和自己模块相关的其他模块,他们之间是怎样协作的。比如数据库中的某个字段,是如何被各个模块使用的,这利于你在设计阶段就能够找到Bug,把修复的成本降到最低。
同样,你需要熟悉这个产品以前的版本,因为无法向后兼容和升级的产品恐怕很难获得用户的认可。在测试过程中,如果你发现你的产品和以前不兼容或者不一致,80%的情况,这是一个Bug。
2、尽早的去发现Bug
我们大家都知道,Bug修复的成本是和Bug被找到的时间成指数关系的。越早开始找Bug,你能找到的Bug也就越多,对项目的贡献也就越大。
3、每天Review别人的Bug
如果你的团队没有每日的Bug Report,我建议你们建立一个,其实技术上应该没有任何的难度,通过Bug追踪系统的API或者数据库,你完全可以得到你要的数据,这样,整个团队通过学习每天察看别人的Bug,你可以更加容易发现Bug,也不会发现那种Duplicated Bug。现在经常有人跑过来问我,某个Bug是不是一个已知的问题,因为我每天都看Bug Report。
4、在你的日常生活中多准备一些测试的模式
模式是一个很时髦的词,因为它很有用。在日常的测试中,多准备一些测试模式,你会有非常大的惊喜,有时候一个使用一个模式,你可以找到10来个Bug也不是不可能的。比如,使用特殊字符作输入数据;断开网络看UI是否会Crash;在本地化版本中,各个字符串提示是否被本地化;
5、多测试各个模块之间的合作
各个模块之间的测试往往是我们测试中的薄弱点,对于用户来说模块间的合作却至关重要。往往一个数据在模块A中是合法的,在B中却是非法的,一定要找出这些数据,往往者都是Bug
6、编写自动测试代码
你肯定不原意每天都去做同样的事情,那样太没有意思了,简直就是对你的智慧的侮辱。但是一旦我们不进行这些测试,突然有一天早上,我们发现我们的产品以前能够很好工作的功能突然就不工作了,于是大家乱作一团,有人急着修复它,有人在找是谁Check in的。
7、查看产品代码
通过查看产品代码,你往往能找到一些Dead Code或者逻辑上的Bug,这些Bug常常是你无法通过手工测试找到的。