前言
bug像是一个被过分宠爱的小孩子,得到了特别多的关注。它们在开发者的IDE里悄然无声的诞生,但在现身之刻却引来一片喧闹“——bug的一生(作者:James Whittaker)。
对于测试人员来说,bug的生命周期一般分为:发现bug—>提交bug—>验证bug,那在这三个阶段中如何体现测试的专业度呢?
第一阶段:发现bug
场景:
"测试不就是发现bug吗,有什么技术含量?”
思考:
当发现一个bug,除了尽快报告问题以外,我们还能做哪些事情?
回答:
测试人员发现bug,花些时间细细品味
1. 这个bug复现的必要条件是什么?
2. 除了发现bug的这条路径,是否还有更多的路径也会导致相同的问题?
3. bug是否存在可能影响其它数据或者其它应用的副作用?
4. 其它功能模块是否也存在类似问题?
5. bug的复现路径是否在用户可达之路上?
6. 复现bug的路径是否在测试用例中?有没有可借鉴性?
通过以上分析,我们可能获得以下额外收获:
1. 通过bug的定位,确认必现路径、可能的原因,帮助开发快速定位、解决问题
2. 通过bug的路径、影响范围等分析,发掘更多的隐藏bug
《探索式测试》-恶邻测试法:重灾区往往会有更多的bug
3. 通过分析操作路径,补充测试用例,扩展测试用例范围、思路
第二阶段:提交bug
场景:
一个阳光明媚的下午,小白正在测试一个用例的时候,突然app异常退出了,再重复进行以上步骤,问题没有复现。他意识到这是个bug,于是他赶紧提交给开发。没过一会,开发大神怒气冲冲的过来说“你这bug也没必现步骤,也没日志,这怎么修改!”。小白心里一阵嘀咕“本来就是一个bug,你应该想办法解决呀,我怎么知道”
思考:如何才能提交一个有效的bug?
回答:
1. 确保bug有效。
1)不要因为环境问题或者是操作错误引起“bug”
2)不要提交一些重复的bug
2. 写好bug描述。
1)bug描述精确、没有歧义,详细简洁的测试步骤。
2)保证各个字段内容与实际现象一致。比如:版本、复现率等
3)对于复现率低的问题,尽可能提供一些可参考信息:截图、视频、日志、可能的步骤、可能原因等(如果你能通过各种手段定位到问题的原因,开发大神也会对你刮目相看的)
4)对于特殊的测试场景,附带相关的数据,比如1024kb的图片等
第三阶段:验证bug
场景:
当我还是一个测试新手的时候,对于bug验证,往往是按照步骤验证复现,如果没有问题就关闭了(不知道现在还有多少人跟我当初一样~)
思考:如何做好bug的回归验证?
回答:
1. 确认好bug的复现前提及操作步骤。
2. 确认bug产生的原因及修复方法。
1) 明确bug产生的原因,触类旁通,分析其他模块可能存在的问题
2 ) 通过bug产生的原因,积累测试经验,扩展测试思路
3) 通过bug的修改方法,分析修改是否能修复问题?是否回引发其他问题?
4) 积累bug经验,在后续相关问题发现时,快速定位问题,提供解决思路
3. 确认bug的回归范围及用例。
在了解清楚bug产生的原因及修复方法基础上,再根据业务关联、功能模块关联确认回归范围,确保bug修复全面且没有引起新的bug
最后
一个小小的bug,多多思考也是能发掘隐藏在背后的问题、测试工具、测试知识,从而提高自己的测试能力、专业度。
在人生中多想几步是重要的,“埋头苦干”固不可少,但也不能忽视了“抬头看路”,不但不会浪费时间,还会使自己对未来拥有一份更充分,全面的了解和把握,从而更接近成功的目标。