4.2 Troubleshooting
什么是Troubleshooting?Trouble的含义是困难,Shooting的含义是瞄准、射击。直译:困难瞄准。专业说法是分析定位问题。
对于从事IT技术的各种工种,都需要有足够的分析定位问题的能力,测试人员、开发人员和技术支持人员都需要。Troubleshooting是一种能力,它对IT技术人员的意义,类似于艺术家的创作灵感,销售人员对客户需求的理解能力。分析定位问题能力是每一个IT技术人员必备的能力,尤其对软件测试人员要求会更高。
为什么对软件测试人员要求会更高呢?
当软件测试人员发现了一个bug后,首先就应该确认是否可以重现该bug,而重现bug的前提就需要测试人员能分析自己的测试步骤是如何触发bug的,并定位到重现bug的最小操作集。
其次,软件测试人员会经常进行各种测试环境的搭建,并使用很多测试工具来辅助搭建测试环境。而在搭建测试环境时,常常会遇到各种各样的环境故障,排除这些环境故障就必须依赖测试人员的分析定位能力。
最后,软件测试人员要得到开发人员的尊重和信任,就必须能与开发人员一起分析定位各种bug,在讨论分析过程中,测试人员不但展现了自己的能力,而且还担任着一个系统级bug的定位总负责人的责任。例如:在压力测试过程中,某测试人员发现了一个协议状态异常的bug,因此他请来了协议开发人员,进行共同定位发现协议异常引发原因来源于驱动。于是测试人员又请来了驱动开发人员,与驱动开发人员一起讨论分析定位后,发现问题来自硬件。接着测试人员又请来硬件开发人员,并将前期所进行的所有分析定位过程和分析定位的结果向硬件开发人员描述,最后帮助硬件开发人员定位到了具体的硬件问题。
所以,对于软件测试人员而言,掌握和具备较强的分析定位问题的能力,无论对于解决测试环境搭建的问题,找到重现bug的方法,还是协助各类开发人员定位到bug产生的原因都是非常重要的必备能力。
那么对于一些不易重现的问题应该如何进行问题的分析定位呢?下面笔者和大家分享一点个人的经验。
(1)首先确保被测试目标的软件版本是发现问题时的版本——版本不一致就没有分析定位问题的前提了。
(2)如果被测试设备是硬件设备,要确保重现问题时是同一台硬件设备、同一张硬件板卡——因为有可能问题就是由某种硬件板卡的个性故障引起的。
(3)搭建测试环境的辅助软件和辅助设备要与发现问题时是同一台设备及同一软件版本——因为问题有可能是由于辅助软件和辅助设备的故障所引起的,或者由于辅助软件和辅助设备的某个异常才触发了被测试设备的问题。
(4)所有测试环境的硬件条件都确保一致后,就需要确保测试目标的功能配置及参数与发现问题时的数据是一致的,特别是输入值应该与出现问题时一样。
(5)完成前面4步准备工作后,至少要让一名开发人员陪同你一起开始重现问题,因为他会从实现内部原理的角度给你提供很多提高重现工作效率的意见和建议。同时,他还可以通过在测试过程中不断查看各种重要的系统数据来找到一些可帮助快速突破的蛛丝马迹。
(6)如果在第(5)步中没有找到可以定位问题的原因,就需要再回忆第一次遇到问题时的所有场景,查看自己有无遗漏信息,并继续坚持去尝试重现。因为确实有些问题是小概率发生的,是多种瞬间状态临界值的交集。即使定位到了触发条件和原因,在操作上也很难每次都掌握到那个临界状态。只有不断尝试和坚持才能把问题重现出来,帮助开发人员修改该问题。
下一节我们将结合实例讲述Troubleshooting。
本文选自《51Testing软件测试作品系列》之四的《软件测试精要》。
本站经电子工业出版社和作者的授权,近期将进行部分章节的连载,敬请期待!
版权声明:51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
相关阅读: