当前位置 > 首页 > Asp.net

敏捷测试感悟(之一)

2009-11-6 22:41:00来源:Asp.net

  阅读: 246 评论: 0 作者: 关河 发表于 2009-11-06 19:03 原文链接

Agile testing(敏捷测试)基本上是伴随着敏捷开发的概念成长起来的,但在受关注程度上,远远不及敏捷开发本身。自然,开发队伍从数量和活跃度上来讲大于测试队伍,是其中的一个原因;除了这个原因之外,“敏捷测试究竟如何在项目中发挥作用”这个问题可能也是导致敏捷测试概念的流行度远远不如敏捷开发的原因之一。

关于敏捷测试,我能找到的较早的比较系统化的描述文档应该是2002年的这份PPT:http://www.io.com/~wazmo/papers/agile_testing_20021015.pdf,这份PPT定义了敏捷测试的两个主要特点:“遵循敏捷宣言的测试实践,将开发当成是测试的客户”(Testing practice that follows the agile manifesto, treating development as the customer of testing),以及“在使用敏捷技术的项目中的测试实践”(Testing practice for projects using agile methodologies)。敏捷开发宣言中提到了敏捷开发的四个核心价值观:简明(Simplicity)、沟通(Communication)、反馈(Feedback)、勇气/决断(Courage)─ 如果我的翻译有错,请指正 ─毫无疑问,从开发的角度来说,很容易理解这四个核心价值观对应的行为(敏捷开发的best practice),但从测试的角度来说,“简明”和“勇气”就很难对应到具体的测试行为中。

既然难以清楚的寻找敏捷测试的实践行为,我们先尝试来寻找另一个问题的答案:“敏捷开发究竟会给测试带来哪些改变(相对于传统的测试)?”如果可以找到这个问题的答案,我们应该可以顺藤摸瓜的找到敏捷测试中对应的best practice。这里有一段有趣的视频,是在某个敏捷开发大会上对许多嘉宾的采访,采访的主题就是“How does Agile affect testing”,从回答中你会发现,似乎没有任何人能够准确的回答这个问题。从采访片段中我听到的观点有:

  1. 敏捷开发有不同模型,不同的模型会以不同的方式影响测试(废话─我的comment)
  2. 敏捷测试需要工具的支持…(貌似卖工具的厂商喜欢隐晦的这么表达)
  3. TDD方法要求测试优先,其实除了测试优先外,我认为测试也可以和开发同时进行;
  4. 敏捷过程中的测试是一个integration的任务,在不同层面(单元测试,集成测试,系统测试,用户验收测试)均需要按照敏捷的方式组织测试,目的是符合敏捷方法的价值观。

在这些观点中,我最喜欢的是第4个观点,这也是一直以来我的认识,其实敏捷本质上并非是一个过程,而是一种理念。至于敏捷测试这个敏捷开发的同源产物,自然也会继承其中的“目标驱动”而不是“过程驱动”的特性。

个人认为,敏捷测试和传统测试观点最大的不同在这几个地方:

  • 敏捷测试并不倾向于严格区分开发和测试角色,全体工程师对于质量具有同等的责任,测试任务由开发和测试工程师共同完成;
  • 敏捷测试的迭代周期很短,为了在很短的迭代周期中完成测试任务,要求建立“足够好”的验收测试,建立足够的自动化测试;
  • 敏捷测试不严格依赖于文档(需求,设计等),测试角色必须和其他成员以及客户有良好的沟通,以保证建立的质量标准符合用户的需求,以及能够使用项目中的相关知识建立合理的测试框架;
  • 关于底层测试和关于代码质量是敏捷测试中的一个非常好的实践。

其中,对传统测试观点最大的冲击是第1和第3点,打破测试角色和开发角色之间的严格限定,用沟通而不是文档作为建立测试的基础,这些的确会让一个熟悉传统测试环境的测试工程师骤然间不知所措。拿我来说,N年前我自认为对敏捷测试有一定的了解,结果真正进入到一个敏捷测试项目的时候才发现仍然需要一段时间来改变自己的工作方式和习惯。不过一旦习惯了这种方式,我转变成了一个彻底的敏捷测试的鼓吹者 ─ 毕竟,敏捷测试为产品质量产生的价值,让团队成员得到的成就感和喜悦是实实在在能够看得到的。

-------------------------------------------不怎么华丽的分隔线--------------------------------------

借用一休哥的台词:“就到这里吧”,下一次我的主题是“敏捷过程中的测试角色”,希望这个系列完成的请留个言,我好知道有多少人对这个主题系列感兴趣,谢谢。

  发表评论


新闻频道:暴雨娱乐加入瑞星云安全计划

推荐链接:Windows 7专题发布

网站导航:博客园首页  个人主页  新闻  社区  博问  闪存  知识库



  • 对于校内网的消息提醒功能的想法

    2009-10-8 23:36:00

    摘要: s相信大家都知道校内网或开心网的消息提醒功能,只要有人留言给你,就会在已经打开的页面的右下角弹出提示,对于这个,我想自己实现。想出了如下方案:1.前提是不用定时器轮询机制,利用ajax+ja

  • O/R Mapping Share Your Ideas for Code Camp

    2007-4-15 10:08:00

    Frans , Alex and I are planning to meet up to discuss the content for the upcoming Code Camp . Fr

  • MSDN Ultimate Subscription Giveaway

    2010-7-7 8:22:00

    If anyone is interested, we are giving away a free subscription to MSDN Ultimate (which has kindly

  • 一步一步教你玩转.NET Framework的配置文件app.config

    2010-12-17 17:17:00

    在一般的项目中,为了使你的代码更加灵活,更方便调整,减少不必要的hard code,我们都在config中添加许多配置信息,一般可以选择.NET自带的配置文件形式app.config或者web项目中

  • [原创]Linq之动态排序(字符传入)

    2009-10-27 11:56:00

    阅读: 654 评论: 6 作者: 我-大熊 发表于 2009-10-27 08:41 原文链接   本文只代表作者在一定阶段的认识与理解 。    最近项目比较忙,没有时间

  • 有关WrapPanel组件的研究——Silverlight学习笔记[35]

    2009-9-23 0:23:00

    摘要: WrapPanel组件作用是从左至右或从上至下依次安排位于其中的元素的位置,当元素超过该组件边缘时,它们将会被自动安排至下一行或列。该组件一般用于文本布局、拾色器、图片选择等。本文将为大家介

  • ICE专题:实现简单的聊天室(一)

    2007-5-9 22:59:00

    目标:实现一个简单的聊天室。本文实现的聊天室仅出于演示ICE的多播功能,即由一个Client发送的消息,广播至注册的其他Client上。以后的系列文章,将逐步完善这个例子,使其成为一个现实意义上可用

  • c#扩展方法奇思妙用变态篇一:由Fibonacci数列引出“委托扩展”及“递推递归委托”

    2009-8-10 10:33:00

    先回顾一个数列的概念:按一定次序排列的一列 数 称为数列...(请参见百度百科: 数列 ) 几个简单的数列: 1, 1, 1, 1, 1, 1, 1... //数列1 0, 1, 2, 3, 4,

  • OCS2007R2部署之二准备AD及扩展

    2009-7-16 11:16:00

    OCS2007R2 部署之二准备 AD 及扩展 在企业版的部署页面中,分为环境准备和准备AD和创建企业版池,和配置池三个大项目,图比较大,故一一列举,此篇为环境准备中的准备AD

  • Pingf的stm32学习笔记之GPIO_Part1[0830]

    2009-8-30 16:41:00

    摘要: Pingf的stm32学习笔记之GPIO_Part1配置完之后[见前面的文章],就可以写个简单的gpio程序了,但是在此之前还要了解一些基本知识。最起码应该知道stm32的电源与时钟的相关知