专访史亮:带你走进探索式测试

发表于:2012-8-24 10:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:史亮    来源:51Testing软件测试网原创

分享:

  51Testing:您认为探索式测试为什么会获得成功?原因在哪?它的价值体现在哪里?

  史亮:在第2个问题中提到了“敏捷测试”,其来源是“敏捷软件开发”。从术语的历史看,“探索式测试”(Cem Kaner提出于1983年)的历史比“敏捷软件开发”(敏捷宣言缔结于2001年)更悠久。近年来,探索式测试受到关注,其根本原因不在敏捷测试,而是具有更深层次的原因。

  第一、越来越多的测试人员意识到线性的(瀑布式的)需求评审、设计评审、测试计划、测试用例设计、测试用例执行、回归测试并不能很好地适应高速变化的软件开发,也不能准确地描述测试人员的真实工作方式。他们在积极地研究更好的测试思路和实践方式。

  测试的本质是面向质量的技术调查,测试人员综合运用行业知识、测试技术、开发技术、批判性思维等多种知识,对产品质量进行采样、评判、分析和综合。从这个角度,软件测试与犯罪现场调查相似。它们都面对众多且复杂的信息源,需要综合运用多种技术和工具,并随时追查可能的新发现和新猜想。侦探不会使用预先编制的脚本去调查,他会收集尽可能多的证据,对其进行综合判读,然后选择有价值的证据进行深入研究,以发现更多的线索。在整个证据收集、判读、研究的循环中,侦探会并行地展开多种调查活动,让它们相互支持。同样,测试人员会有机地组合信息收集、测试分析、测试设计和测试执行。虽然这些活动在理论上是分离的,但是在实践中它们是相互交织、彼此支撑的。这是探索式测试之所以有效的根源——它的指导思想符合领域本质。

  第二、探索式测试有助于“机动性”,该特性在现在比以往任何时候都更重要。随着互联网与Web应用席卷全球,软件竞争比以往更加激烈。开发组织不仅要减少缺陷,还要跟踪不断变化的用户需求和市场需求,在紧迫的时间约束下交付赢得用户的产品。这要求软件企业在业务、研发、营销等方面均保持高机动性。

  探索式测试将许多测试决策置于更合理的时机,从而避免了浪费。面对高变动性的开发过程,测试人员需要将测试设计合理地分配到整个开发周期,根据当前的开发进度和真实的测试反馈,做出恰当的测试决策。这有助于避免在信息不充分的情况下做出错误的决定,从而导致严重的浪费和返工。

  此外,探索式测试不停地根据实际情况,调整测试计划,优化测试策略,因此能够更有针对性地测试。随着对业务领域的认识不断深入,随着逐渐了解产品的设计和弱点,随着对测试技术和工具的更加熟悉,测试人员会不断调整测试策略,使得在整个产品开发过程中,重要错误的发现率都保持在比较高的水平。

  51Testing:谈谈您对探索式测试未来发展的看法。

  史亮:人们研究探索式测试是为了“更好的软件测试”,探索式测试的发展应该针对软件测试所面临的使命与挑战。我认为以下几个方面会持续受到关注。

  测试人员的教育。所有高效的测试都依赖于测试人员的测试技能和行业知识。在知识爆炸、行业高速发展的今天,如何培训测试新、如何培养测试专家、如何传承经验教训,将变得比以往更重要。探索式测试有助于测试人员的快速学习,在此领域会有更重要的作用。

  测试建模。为了更好的测试,测试人员需要建立产品的模型,根据模型选择测试策略,并根据测试反馈,动态地调整模型。虽然,工业界和学术界已经积累了一批模型,但是仍存在许多重要的问题值得研究。例如:在开发技术高速发展的情况下,如何分析新的平台、技术或产品,以高效地构建测试对象的模型 ;在测试资源有限、测试对象复杂的情况下,如何根据模型和其他信息选择测试策略;能否将分离的模型有机地组合起来,使得不同粒度的测试模型(模块级的模型、子系统级的模型、系统级的模型、通用架构的模型)可以相互关联、彼此支持;能否建立测试策略的框架,使测试人员能够更全面地思考,并组合运用多种测试策略。

  测试自动化。近10年来,在测试驱动开发的推动下,自动化单元测试得到了长足的发展。但是,软件系统的复杂性要求更智能、更全面的测试,这使得测试自动化存在巨大的创新空间。而云计算技术的出现,使得测试人员很容易(在短期内)获得几十台甚至上百台(虚拟)计算机。如何开发新的自动化测试以充分利用这些计算机,不但是具有挑战的测试任务,也蕴含着巨大的机会。

  测试工具集。测试工具会影响测试人员的思维,好的工具可以拓展测试人员的能力,坏的工具则束缚测试人员的手脚。目前,测试工具的发展尚落后于开发工具的发展,特别是新开发技术出现时,测试人员常常没有对应的测试工具,甚至在一些开发技术很成熟的领域,测试工具的表现也不尽如意。

  评估度量。项目决策依赖于一系列重要的信息:当前产品的质量如何、测试进度如何、当前测试方案存在哪些缺点、产品的哪些区域还需要深入测试、哪些测试人员需要帮助等。现有的评估方法能提供一些初级的信息(如活跃缺陷曲线、缺陷分布图等),但并不能很好地回答这些问题,有时甚至会得出误导性的结果。基于测程的测试管理是测试管理与评估的重要进展,但是测试行业还需要更多、更好的方法。

  51Testing:给刚开始学习探索式测试的朋友一些学习建议吧。

  史亮:第一,建议阅读我与高翔合著的《探索式测试实践之路》。这本书介绍了探索式测试专家们的理论与方法,传达了正确的观念,回答了常见的疑问。阅读此书,有助于读者了解探索式测试全貌。对此,探索式测试专家James Bach给予了肯定:“此书是第一本总结了探索式测已发表工作的著作”。

  第二,您不需要成为测试专家,才能开始探索式测试。探索式测试的核心实践是“学习”,即获取知识与应用知识的持续过程。在此过程中,测试人员不但更加深入地理解产品,也更深刻地理解测试思想和测试技术。在学习探索式测试的道路上,动手实践并积极反思总是优于等待观望。任何一种方法都需要练习才能纯熟,实战是迈向成熟的第一步。

  第三,您不需要领导批准,才能开始探索式测试。也许您的团队要求详细记录测试设计,但这不妨碍您广泛地收集信息,通过简短的探索式测试或头脑风暴,产生多样化的测试策略和测试用例。也许您的团队要求测试执行遵循脚本,但您总是可以在测试执行中引入新的变化,并根据新发现,即席设计测试用例,来触发更多的变化。

55/5<12345
100家互联网大公司java笔试题汇总,填问卷领取~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号