测试杂感:测试只是反馈信息?(2)

发表于:2012-07-12来源:博客园作者:liangshi点击数: 标签:软件测试
好的 软件测试 人员会向重视软件价值的人提供有关于价值的关键信息,他的职责类似于书籍审稿人或电影评论家。 Great software testers make aesthetic judgments

  好的软件测试人员会向重视软件价值的人提供有关于价值的关键信息,他的职责类似于书籍审稿人或电影评论家。

  Great software testers make aesthetic judgments about the suitability of entire approaches to software development itself.

  伟大的软件测试人员对于全体软件开发方法的适当性做出美学的判断。

  “审稿人”隐喻带给软件测试全新的视角:不仅发现错误,而且驱动软件向更好的方向发展。审稿人也是“反馈信息”,她不会代替作者去写作,但是她会对文章主题、篇章结构、论述逻辑、研究方法、实验结果、引用文献等提出深刻的、富有洞察力的问题。要回答或解决这些问题,作者必须通盘考虑整篇文章,从架构到细节都作出深思熟虑的改进或重组。一个好的审稿人能够推动作品向更高层面发展。

  作为曾经的学术论文审稿人,我在不同的会议审稿中三次读到同一篇论文。这意味着该论文至少被拒稿过两次。第一次投稿时,该稿件的质量已经不错,但是被拒绝了。后来,作者作出了重大修改,再次投稿,无奈再次被拒稿。于是,他再次大幅度修改。第三稿可谓脱胎换骨,质量远胜第一稿。我不禁感叹:如果在第一稿的时候就让它通过,那么就错失了一篇更佳的稿件,作者就丧失了反复锻炼并提升自我的机会,审稿人的把关和反馈何其重要!

  软件开发自然有其独特的规律,不能反复地大幅度修改,但是将测试推向更高层面,全面且深刻的洞察软件产品和开发过程,无疑是测试的发展方向之一。

  此外,测试还有一个不容忽视的使命:帮助测试者和团队成长。测试专家James A. Whittaker提出了一种测试实施方法:Bugs → Patterns → Test Automation。

  Bugs:找到软件缺陷(Bug)。

  Patterns:分析出缺陷的根本原因(Root Cause),编写出一个模式(Pattern),用它捕获相似的缺陷。一个模式是一个结构化的攻击手段,它包含如下内容。

  何时实施该攻击?

  该攻击会捕获何种错误(Fault)?

  利用该攻击如何识别软件失败(Failures)?

  如何指导攻击?

  样例和分析。

  Test Automation:识别出攻击过程中重复的、费力的(Laborious)部分,编写一个工具去自动化模式的使用。这里的测试自动化,不是常见的自动化执行测试用例,而是提供计算机辅助(Computer Assisted)工具,让测试者可以充分地利用他的头脑(Mind)。

  按照James的方法实施软件测试,测试者和测试团队可以积累一批有效的软件测试方法和测试辅助工具。这可以帮助他们更有效、更高效地测试现在和未来的项目。也就是说,有积累的测试能够帮助测试者成长。如果他将经验和工具分享给测试团队,整个团队可以得到提高。如果他秉持“不二过”的精神,将所获得的典型错误总结之后分享给开发团队(这里有一个技术案例),那么可以提高开发团队的水平,让他们在编程时就避免一些典型的错误。

  可见,不断反思与积累的测试过程有助于培养好的测试者和开发者,有助于打造一支更好的开发与测试团队。而更好的团队将有更大的可能去创造更佳的产品。

  最后,我希望有更多的人去仔细阅读和思考荣浩先生的《关于测试的八个问答》,那确实是一篇值得反复体会的佳作。在阅读过程中,不妨大胆地与作者展开“讨论”。这世界上并不存在“神”,在软件实践中也不存在刻在石板上的“箴言”。大师们尚在不停地反思、不停地否定过去的自己,我辈更应该努力求索。

原文转自:http://www.ltesting.net