语境驱动测试7原则

发表于:2012-9-04 13:34

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

 作者:liangshi    来源:51Testing软件测试博客

  本文系《探索式测试实践之路》第1.2节,简要的讨论了“语境驱动测试”(Context Driven Testing)的7条原则。

  探索式测试的奠基人和积极实践者Cem Kaner和James Bach都支持语境驱动测试。语境驱动测试的7条基本原则对于正确理解并应用探索式测试具有重要意义。

  原则1:任何实践的价值都取决于其语境(Context)。

  这条原则几乎是不言自明的。中国人很早之前就有相似的认识,“南橘北枳”[ 语出《晏子春秋》,其成书于战国,后经西汉刘向整理。]指相同的种子在不同的环境中会结出不同的果实。因此古人建议“因地制宜”[ 语出《吴越春秋》,成书于东汉。],即根据当地的具体情况,采用合适的措施。

  然而,软件开发者往往会在无意中忘记这条原则。开发团队会照搬以往的经验,却不考虑经验可能已经过时;会不假思索地采用他人建议的开发方法,却不怀疑南橘北枳的可能;会按照高层的指示亦步亦趋,却不思索指令是否合理。更糟糕的是,在感觉到情况不妙后,却将错就错,不思变更。因此,开发团队需要频繁地反思其开发实践是否符合当前的语境,并做出相应调整。

  原则2:在特定语境下存在好的实践,但不存在最佳实践。

  这条原则看似有些武断,毕竟软件研发已经沉淀出一批公认的实践方法,它们是现代软件开发必不可少的核心实践。但是,细细一想便会发现这些方法也需要因地制宜。“持续集成”是公认的最佳实践,但是不同的团队往往有不同的集成频率。对于小型项目,一次签入(Check-in)会触发一次完整的构建;对于大型项目,开发团队可能每天做一次完整构建;对于超大型项目,做一次完整的构建可能需要几天甚至更长的时间。不同的构建频率和构建代价自然会导致不同的签入策略和测试方法。虽然都在实施“持续集成”,但是不同的团队会设计出不同的流程和方法。

  对于测试工作者,这条原则表示任何一种测试方法(包括探索式测试)都不是无条件的最佳选择。测试人员始终要评估当前情况,寻找适合当前语境的测试风格和技术。

  原则3:人,在一起工作的人,是项目语境中最重要的部分。

  这条原则强调了软件开发的社会学因素。软件开发专家Tom DeMarco和Tim Lister指出:“本质上,我们工作中的主要问题,与其说是技术问题,不如说是社会学问题”。而社会学因素的根源是“软件开发是一个创造与沟通的协作游戏(Game[ Game也可以翻译为“博弈”。本书将其翻译为“游戏”是为了突出软件开发的乐趣、协作、沟通与互助。软件开发团队的对手不是团队成员,而是亟待解决的问题。])”。在创造与沟通的过程中,一定是个体和他们的交互(Individuals and Interactions)起主要作用。

  在软件测试中,以下观点反映了人的重要性。

  ● 软件开发是具有挑战性的智力活动,开发人员(包括测试人员)的责任感、技能、状态将强烈影响软件实现和代码质量。因此,招聘、培训、挽留高水平开发人员是软件企业最重要的工作之一。

  ● 软件开发是一种创造与沟通的游戏。软件企业应该营造一种开放、协作的工作环境,使得开发人员能够自如地去思考、去发明、去创造。

  ● 软件测试的核心任务是寻找并传递信息。在寻找信息的过程中,测试人员的能力和相互协作的水平将在很大程度上决定信息的数量和质量。

  ● 软件测试提供信息服务。服务就意味着有客户,测试人员是否成功,主要取决于是否很好地满足了客户的要求和最佳利益[Kaner01]。也就是说,测试人员的重要任务是理解客户,并与他们展开有效的交流。

  原则4:项目的发展往往难以预料。

  在一些语境中,项目的发展是可以预料的。图1.1摘自Steve McConnell所著的《软件估算》,它显示了(对项目范围、代价、功能的)估算值是如何随着项目的进展变得准确的[McConnell06]。随着时间的推移,项目的不确定性逐渐降低,当项目即将结束时,开发团队能够准确预期项目的结局。但是,图1也提示了在项目的开始阶段,项目的不确定性非常高。在初始概念(Initial Concept)阶段建立的估算值可能是实际值的4倍。

  该原则并不是一个悲观的见解,相反它体现了一种实事求是的态度和对软件风险的成熟认知。探索式测试有助于快速获得信息,从而降低软件项目的不确定性。成功的测试团队在整个项目过程中会结合广度优先探索和深度优先探索,在特定的时间选择适合的方法,从而更明智地利用测试资源。

图1 根据日历时间得到的不确定性锥(Cone of Uncertainty)

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号