[Test]让测试敏捷起来吧

九 24th, 2011

     在敏捷开发红遍大江南北的同时,敏捷测试的相关讨论而相对逊色很多。对于敏捷测试,大多数人都存在这样或那样的疑问,”什么是敏捷测试?”,”敏捷测试中,测试人员做什么?”, 在揭开这个谜题之前,我们还是先了解一下敏捷宣言吧。

个体与交互 重于 过程和工具

可用的软件 重于 完备的文档

客户协作 重于 合同谈判

响应变化 重于 遵循计划

     敏捷测试继承了上述的敏捷宣言和其准则,而且,在关于敏捷测试最早的PPT中,定义了敏捷测试的两个主要特点:遵循敏捷宣言的测试实践,将开发当成是测试的客户”(Testing practice that follows the agile manifesto, treating development as the customer of testing),以及“在使用敏捷技术的项目中的测试实践”(Testing practice for projects using agile methodologies)。

What is it?

那么到底什么是敏捷测试呢?这里的确很难给出一个明确的定义,但是可以借鉴一下网络上流传的一种定义,”在敏捷开发的软件过程中的测试就是敏捷测试”。而且,敏捷测试更多的是一种理念,而不是一种过程。对敏捷测试的理解不能与传统的测试流程相混淆。

实行敏捷测试的过程不是一个独立的过程,它应该是和开发紧密相连的,在产品的生命周期中,处处都应该存在它的影子。所以,敏捷测试应该是一个integration的任务,在不同的层面(UNIT Test,function test,E2E…),都需要按照敏捷的方式组织测试,目的就是符合敏捷测试方法的价值观。至于敏捷测试这个敏捷开发的同源产物,自然也会继承其中的“目标驱动”而不是“过程驱动”的特性。

敏捷测试与传统测试的不同点在于:

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

How We Do it?

实际上,敏捷过程中与测试相关的任务很多,概括说来有如下一些:

  1. 建立不同级别的测试验收标准,包括单元测试、集成测试、系统测试等各个层面的验收标准;
  2. 推动整个团队的质量文化,保证整个团队的成员在质量责任与目标方面达成一致;
  3. 通过技术或是管理的手段,保证产品、代码具有良好的可测试性;
  4. 通过自动化测试手段缩短每个产品发布周期中测试所需的时间;
  5. 确认出可接受的软件质量标准,并建立针对此标准的验收测试;
  6. 深入了解应用系统和业务需求,通过探索性测试方法设计有效的测试用例,发现产品中的缺陷;
  7. 建立对整个团队可见的质量度量体系,保证整个团队能够随时看到产品的质量度量值。

鉴于,我们当前的项目比较大,而且要求公司全面做出改动是没有希望的,但是我们可以改变我们平时工作中的一些理念,让测试工作开展起来更具有效力。

1. Conversational Tests Creation

测试活动不仅仅只是测试人员的事情,我们需要与dev,pm多沟通,多交流,这样可以减少文档更新不及时造成的信息不匹配等问题。

2. Coaching Tests

  • a. 开发之前,思考并提出可测试性需求,不要在开发完成后才发现测试起来有难度。
  • b. 测试案例的开发需要多与开发和PM交流,这样对案例的质量的提升有很大的帮助。
  • c. 测试之前,我们需要准备做到以下几点要求: 
            1.  有明确的质量目标和测试指导说明规范。                                                      
            2.  要具备快速的反馈能力,对新feature和改动能够及时获取到并做出相应的响应。                   
              3.  测试进度是可以被测量的,这就需要有合理的计划安排和可视的进度安排。
  • d. 测试过程中,要有明确的测试规范: 
            1.  测试案例要足够清晰,并能让开发人员读懂。  
            2.  Bug的描叙要清晰明确,能够帮助开发人员快速定位。 
            3.  有完善的测试框架方便开发测试案例,并执行案例。 
            4. 测试的结果报告一定要易懂。

    3. 测试的交互模型

    clip_image002

    经过上面的一些介绍,我觉得作为测试工程师,我们应该具备的技能就应该有以下几个方面:

    1. 良好的沟通和协作能力;
    2. 良好的设计和代码能力,至少可以和开发工程师在同一水平上讨论具体的设计和代码实现;
    3. 快速学习和总结的能力;
    4. 对自动化测试有深刻的理解(至少要能清楚的认识到自动化测试不等于UI自动化测试,也不等于用自动化测试工具进行录制和回放);
    5. 快速的风险分析和判断能力(在许多情况下都不会有足够的时间开展full regression,如何判断风险和决定相应的对策至关重要)。
      (全文完—-)




    除非注明,本站文章均为原创。本文基于 BY-NC-SA 协议进行授权,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名 metaboy(包含链接).

    本文链接地址: http://blog.wangyuxiong.com/archives/51308

    订阅本站:http://www.wangyuxiong.com/feed

    分类: 技术尝新 测试技术         标签: , , ,
    目前还没有任何评论.

    无觅相关文章插件,快速提升流量