软件测试细节决定成败
发布时间:2019-06-25

 

       戏剧舞台上的生旦净末丑是不同的角色,其表演方式具有明显的特征,这是由于角色决定的。同样,软件测试工程师的角色,在软件项目开发中也存在如何定位和表现自身的行为和责任的问题。
 

       测试工程师的角色应该承担什么任务呢?这没有统一的答案。因为,这与软件公司的规模,软件项目管理制度,公司领导和项目经理的管理风格,以及具体软件项目自身的特点有很大关系。需要强调的一点是,测试工程师需要站在客户的使用和需求角度测试软件,向软件的用户报告问题。需要向项目经理或是测试组长报告测试工作进度和发现的问题,尤其是严重的问题。为了便于程序员重现错误,尽量提供良好的软件问题报告,以便程序员可以更快的修复软件错误。因此,提出问题和解决问题的能力,不仅是工作质量和效率的体现,更可能是工作能力高低的评估。
 

       1、遇到自己明白的问题
 

       遇到自己明白的问题,当然很容易解决。但怎么的问题才算是“自己明白的问题”,这才是关键。
 

       比如,对于软件缺陷或错误来说,可以按以下的标准来判断:
 

       1.有没有归纳出准确的再现手顺,测试数据是否翔实易于追溯?
 

       2.问题发生的环境如何,在其他的环境下能否再现?
 

       3.是既存的问题还是在新的机能变更中发生的问题,还是其它软件缺陷修正后引出的新问题?
 

       又比如,在环境测试中遇到问题,可以按以下标准来提问:
 

       1.是新环境产生的问题还是程序本身的问题,测试环境配置是否充分细致?
 

       2.如果是环境带来的问题,能否捕获系统日志并监测系统状态?是否和既有的环境进行了比较验证?
 

       3.怎样的设定可以帮助用户解决或回避该问题?
 

       总之,多问自己几个为什么,然后找出准确的答案,并归纳出问题的解决方法。
 

       2、遇到自己不明白的问题
 

       作为测试工程师,找到的问题大多是在自己解决的能力范围之外的,需要借助他人的力量来解决问题。这个时候我们就需要向以下人员报告问题:测试组长和项目经理,或是开发人员,或是验收用户。
 

       (一)报告前
 

       在报告问题之前,请确认自己是否做了以下事情:
 

       1.尝试阅读用户需求文档和系统/概要/详细设计文档以找到答案
 

       2.尝试阅读以往资料库上的FAQ(常见问题)文档以找到答案
 

       3.尝试自己检查或试验以找到答案
 

       4.尝试请教有经验的同事以找到答案
 

       5.尝试搜索互联网以找到答案
 

       一定要做到以上几点,在报告时,表述你进行了以上的调查,可以帮助更好更快速地解决问题。同样的,对自己的能力的提高也有帮助。
 

       (二)报告时
 

       1.使用清晰、语法与拼写正确的语句。经验告诉我们,粗心与草率的作者通常也粗心与草率地思考和评价。很少有人愿意为这些粗心与草率的思考者回答问题,他们宁可将时间花在其它地方。
 

       2.描述问题应准确且有内容。一定要基于事实进行汇报,这是测试的基本。如果提问基于错误的假设或是情报,别人多半会一边想“愚蠢的问题”,一边简单的按照字面进行回复。更糟糕的是,如果把错误的情报报告到了用户那边,甚至会造成无法挽回的损失。
 

       仔细、清楚地描述问题的症状:描述问题发生的环境,描述提问前做过的研究及其理解,描述提问前为确定问题而采取的诊断步骤,描述最近对计算机或软件配置的任何相关改变,做到条理清晰有内容。这样可以帮助开发人员缩小范围,更快的判断原因。
 

       3.多不等于准确。简单地将一大堆文字或代码“倾倒”在求助消息中达不到目的。尽可能通过自己的调查缩小范围。这样可以让他人看到你的努力,你也更有可能得到有用的回复,或者更可能在自己的调查中找到解决问题的方法。
 

       4.描述问题症状而不是猜测。确保只是报告问题的原始症状,而不是你的解释和理论,让开发者来调查和诊断。如果你认为陈述你的猜测很重要,清楚地说明这只是你的猜测并描述它们有何作用。
 

       5.先描述目的,再写清步骤。先告诉别人你想说明什么,再一步步详细解说。这是有条理的思考的体现。
 

       6.完成后,读一遍自己的作品。重要的是,在做成问题的说明文档后,自己要从阅读者的角度来读一遍,进行换位思考。考虑别人看到自己写的问题报告后,会如何判断,考虑,提出意见。这样做通常能够发现报告中内容不足或错误的地方。有的话,就需要及时纠正。
 

       7.问题解决后追加一条简要说明。问题解决后向所有帮助过的人追加一条消息,让他们知道问题是如何解决的并再次表达感谢。
 

       3、遇到他人不明白的问题
 

       如果你是测试组长或者是负责某个项目,那一定会遇到组员对自己无法确认的问题来和你进行请教。如果你在某个项目上有一定经验,其他项目组的人员可能会慕名前来对他们不明白的问题进行询问。如何才能更好的回复他人的问题?
 

       1.态度和善一点。压倒对方并不能帮助解决问题。
 

       2.对初犯者私下回复。帮助新人成长是重要的。对那些坦诚犯错之人没有必要当众羞辱,一个真正的新手也许连怎么搜索或在哪找FAQ都不知道。
 

       3.如果你不确定,一定要说出来!一个听起来权威的错误回复比没有还要糟,别因为听起来象个权威专家,而轻易就给别人乱指路。要谦虚和诚实,给提问者与同行都树个好榜样。
 

       4.探索性的反问以引出更多的细节。如果你做得好,可以帮助提问者学到更多业务和技术知识,你也可以从中获益。试试将很差的问题引导为好问题,别忘了我们都曾是新手。
 

       5.指出文档的位置。也许你会对那些不去查阅文档,冒然提问的人报怨一声,但是为他们指出文档的保存位置,检索关键字的方法会更行之有效。
 

       6.如果你决意回答,给出好的答案。不能敷衍别人的问题。如果对别人说这个问题是以前就有,不需对应不予理会,这是不负责任的表现。应该为别人指出或推荐更好解决方法。
 

       7.帮助你的团队从问题中学习。当回复一个好问题时,问问自己“如何修改相关文档,或者在合适的地方记录,以免再次解答同样的问题?”,并积极去实施。
 

       8.展现你的技巧而不是直接端出结果。如果你的确是在研究一番后才做出的回答,展现你的技巧而不是直接端出结果。毕竟“授人以鱼,不如授人以渔”。教会别人方法对以后的工作更有效果。
 

       4、结束语
 

       其实解决问题没有固定的模式,但是细节决定成败,在软件测试工作中尤为重要。遵守以下两个原则,多问几个为什么,谦和有礼地请求他人帮助。毕竟初级测试工程师也是从零开始,慢慢积累业务和技术能力才能够进阶为高级测试工程师。当然,我们必须在软件测试开始前,制定完整的测试用例,辅以详细的测试数据,并明确测试数据的操作步骤和每一步的预期结果,这样才能快捷有效地重现和定位错误,有的放矢地报告问题。
 

文章来源:网络  版权归原作者所有
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8103),我们将立即处理。
 
相关阅读
/