下面是一些我在测试工作中的总结,如何预防 Bug 或者是如何提高工作效率的一些实践:
1.作为 QA,全方位参与整个软件开发过程,例如当 BA 和开发人员 kick off 一个卡的时候,QA 参与讨论,提出一些需要程序员自测时候可能会忘记测试的点,此外,QA 往往对业务更熟悉,可以提供建议给程序员,那些业务细节不能够忽视,以防止这些地方出现 bug。
2.当开发人员做完卡时候,需要把卡 sign off 给 QA,在这个过程中,会在开发本地环境演示,期间如果出现缺陷,开发人员会重新把卡放到 in dev 列进行修复。直到开发人员本地环境都没有问题后,QA 才开始正式测试。
3.把 Jmeter 的性能测试脚本加入到 CI 中,每次提交代码会跑一遍性能测试脚本,确保每次新代码的提交,不会破坏产品关键流程的性能。
4.建议团队使用代码缺陷扫描工具,避免一些通用的 bug 的出现。
5.建议团队的把单元测试覆盖率提高到一定程度,例如 80%,可以减少新的功能代码对原有功能的破坏。
6.建议团队根据实际情况去使用 BDD 的方式(Cucumber)去写自动化测试用例,可以让项目的 PM,BA,Dev,QA 等人对业务有一致的理解,减少由于业务理解不止出现的 Bug。
7.多写一些测试 blog 发布在公司内网发布,帮助开发人员了解哪些地方容易出现 Bug。
8.我如果碰到了一些比较有趣或者通用的 bug,会在团队的每天早上站会,或者下午 code review 时候,跟大家分享,这样大家都会知道这种类型的 bug。
9.有些开发认为开发出的界面和设计稿有一定偏差问题不大,但是我建议界面尽量按照设计稿做,因为几个像素的偏差,一个按钮位置的不同,一块区域透明度不够等,都会造成整体美感的下降。经过和团队合作一段时间后,大家实现的界面和设计稿更加贴近或者完全一致。
10.建议开发把重要的,或者一些特殊的实现思路,以及一些需要别人知道的细节,记录在 Jira 的卡中。因为敏捷团队中,文档比较少,而 Jira 卡中记录了这些信息后,将来任何人拿到这个卡,都能很快了解上下文和这个卡有无特殊实现等。我自己做测试时候,如果碰到一些比较有趣的卡,也会记录下测试思路和测试数据。
11.建议开发和 QA 结对测试,传递测试的方法和思路。因为在探索性测试过程中,使用结对测试的方法,可以比较有效的传递知识。
12.有些开发缺少横向对比同类产品的意识,因此开发出来的功能会不易使用。建议每个人都应该关心和对比同类产品的优缺点,这样才能让自己做出的功能模块来更有竞争力,更好使用。
13.当 QA 测试的非常仔细的时候,开发自测的仔细程度也会相应提高很多。例如,刚进入团队时候,有些开发自测时都很少考虑多浏览器兼容性测试,于是浏览器上经常会出现 bug。我告诉大家,我每次测试都会在所有需要测试的浏览器上进行测试,而且每次出现 bug 后,我都会把卡挪回开发重新处理。因此在和团队一起工作一段时间后,大家在不同浏览器上自测的力度就越来越大了。