`
kuwoleft
  • 浏览: 1086939 次
文章分类
社区版块
存档分类
最新评论

敏捷测试的启示

 
阅读更多

敏捷测试的启示

陈能技

2007-9-7

最近,好像整个软件开发界都在讨论和实践敏捷方法,做什么事情都要敏捷,开发要敏捷,测试也要敏捷。

什么是敏捷?

敏捷宣言:个体和交互比过程和工具更有价值;能工作的软件比全面的文档更有价值;顾客的协作比合同谈判更有价值;及时响应变更比遵循计划更有价值。- www.agilemanifesto.org

敏捷开发是递增式的、迭代的、不断调整的开发模式。在敏捷开发中,工作被分解成“故事”,也叫特性或用例,组合成任务分派给不同的程序员。敏捷开发讲求合作,结对进行编程,避免个人拥有专门的知识,代码属于项目组共有。在敏捷开发中不存在回退,讲究持续地集成,单元测试(通常使用测试驱动的开发方式),持续地进行回归测试。

敏捷测试是指在敏捷开发模式中的测试。敏捷测试包括单元测试(通常由程序员完成)和可接受性测试(通常由测试人员完成)。

如何应对敏捷?

敏捷来了,测试人员何去何从?有人认为在敏捷的团队中,在实行极限编程方式的团队中,测试员应该被“废掉”!有人认为,测试员应该拥抱敏捷,不要管什么测试计划、不要测试报告!

对于第一个论点,我们很容易就能推翻。即使是在一个完全采用XP方式的团队中,测试员还是必不可少的。只不过是测试员在XP中扮演的角色与传统软件开发模式中扮演的不大一样了。

在敏捷开发中,测试是整个项目组的“车头灯”,它告诉大家现在到哪了,正在往哪个方向走。测试员为项目组提供丰富的信息,使得项目组基于这些可靠的信息作出正确的决定。测试人员不再作出发布的决定。测试员不保证质量,而是整个项目组的每一个人都要对质量负责。测试员不跟开发人员纠缠错误,而是帮助他们找到目标。

对于第二个论点,我们要分析一下,问一下自己,你现在是在一个怎样的团队中工作的,工作得怎样?如果你是在一个传统开发模式的团队中工作,而且工作得挺好的,则第二个论点对于你来讲是错误的。

因为在传统的软件开发模式中,项目文档不仅仅是驱动项目前进的必要条件,而且很多企业的客户,尤其是软件的军方客户,对于产品的最终配套文档,还有阶段性文档都是很看重的;另外,对一些外包的软件也需要有完整的文档。而敏捷模式抛弃文档的做法在这些企业是行不通的。

传统的开发模式中,测试人员可能要兼任测试和质量保证、甚至配置管理的工作。那么按照谁负责谁决定的原则,则你作为质量方面的负责人,必须对产品的质量把关,做好“守门员”,对产品的放行有绝对权威的发言权。

敏捷测试的启示

对于我们测试员来说,如果你是在一个敏捷的团队,采用完全的XP方法,则你应该按照敏捷测试的原则,调整自己的角色,让自己成为一名真正的敏捷测试员。在敏捷的团队中,测试工作的核心内容是没有变的,就是不断地找BUG。只是你要调整好自己的心态,一切以敏捷的原则为主。更多的采用探索性测试方法,更多地采用上下文驱动的测试方法论,更多地采用敏捷自动化测试原则。

如果你是在一个传统的开发团队中,你不可能背叛整个团队的一贯做法,自己去“拥抱敏捷”,毕竟很多公司按照ISOCMM的做法也在不断地成熟。那么我们需要做的是多吸收一些敏捷的思想,优化一下自己的测试流程。

敏捷提出的用户故事的说法,其实是把需求规格说明书敏捷化了,那么其实它是指出了需求文档冗长和管理不当的问题,那么通过一些控制工具是否能解决问题呢?同时也给我们一个启示,敏捷测试为什么能在缺乏文档的环境下工作?我们为什么就非要依赖文档呢?测试员是否能自动地寻找和挖掘更多的关于软件的信息来指导我们的测试呢?探索性测试,这种强调同时设计、测试和学习被测试系统的测试方式是我们可以借鉴的。

敏捷讲求合作,其实是指出了我们传统工作方式沟通上的毛病,开发人员与测试人员往往都比较对立,我们传统的方式过分依赖书面的沟通,文档驱动,缺乏很多面对面的交流,我们能否主动点,多与开发人员聊聊需求、讨论设计、一起研究BUG出现的原因呢?

敏捷测试认为要持续地测试,不断地回归测试,快速地测试。其实是指出我们传统的测试阶段过于冗长、没有根据项目的上下文作出调整,速度太慢,过分依赖手工测试。那么我们能否多点借鉴上下文驱动测试的方法,适当自动化我们的测试呢?

分享到:
评论

相关推荐

    软件沉思启示录

    1. **敏捷开发**:ThoughtWorks是敏捷开发的倡导者,书中可能会介绍敏捷方法如Scrum和Kanban的实践,强调迭代和适应变化的重要性。 2. **持续集成与持续交付(CI/CD)**:这是现代软件开发流程的关键组成部分,用于...

    敏捷开发合集

    本合集提供的资源为学习和实践敏捷开发提供了丰富的材料,无论你是初学者还是经验丰富的敏捷专家,都能从中找到有价值的信息和启示。通过深入理解和应用这些知识,可以提高团队的生产力,实现更快、更高质量的软件...

    微软软件测试之道

    1. 测试基础:书中首先会介绍软件测试的基本概念,包括测试的目的、类型(如单元测试、集成测试、系统测试和验收测试)以及测试方法论(如敏捷测试、TDD和BDD)。这些基础知识为理解微软的测试策略奠定了基础。 2. ...

    软件测试技术,很值得一学

    1. 敏捷测试:采用敏捷开发方法,测试成为迭代过程的一部分。 2. DevOps:强调开发和运维的紧密协作,测试贯穿整个软件生命周期。 九、测试文档 包括测试计划、测试用例、测试报告等,它们是测试过程中必不可少的...

    软件测试教材 软件测试从零开始 软件开发的科学和艺术之软件测试

    这本书可能探讨了测试与开发的关系,如何构建测试驱动的开发环境,以及如何通过敏捷方法进行高效的测试。它可能还会涉及风险管理、质量保证、缺陷管理等方面,旨在提升读者对整个软件生命周期中测试角色的理解。 ...

    软件测试(第二版中文).rar

    在快速变化的软件开发环境中,适应敏捷测试的方法对于保持产品质量至关重要。 总之,《软件测试(第二版中文)》是一本全面覆盖软件测试领域的教材,无论你是软件开发新手还是经验丰富的专业人员,都能从中获得宝贵的...

    赢在测试 中国软件测试先行者之道

    这本书针对的读者群体广泛,无论是准备踏入软件测试行业的新人,还是已经在该领域有所建树的专业人士,都能从中获得宝贵的知识和启示。 软件测试作为软件开发过程中的重要环节,对于保证产品质量、降低风险和提升...

    测试大杂烩

    无论是对于初入测试行业的新人,还是希望深入学习测试技术的从业者,都能从中找到宝贵的信息和启示。通过深入学习和实践,我们可以不断提升自己的测试技能,为构建高质量的软件产品贡献更大的力量。

    软件测试经验与教训

    在软件开发过程中,软件测试是不可或缺的一环,它...通过阅读《软件测试经验与教训》这本书,无论是初级测试工程师还是经验丰富的测试专家,都能从中获得宝贵的启示,提升自己的测试水平,并避免在实际工作中重蹈覆辙。

    《敏捷软件开发:原则、模式与实践》

    此外,书中还涵盖了测试驱动开发(TDD)和重构,这两者都是敏捷实践中不可或缺的部分。TDD鼓励开发者先编写测试用例,然后编写最小化实现这些测试的代码,以此确保代码质量。重构则是改善代码结构而不影响其外部行为...

    软件测试经验与教训软件测试经验与教训

    这篇《软件测试经验与教训》集合了300名软件测试人员的实际经验,旨在为那些有一定经验的软件测试人员和开发人员提供宝贵的启示。下面,我们将深入探讨其中涵盖的一些关键知识点。 1. **测试策略**:软件测试不只是...

    敏捷软件开发:原则、模式与实践

    综上所述,《敏捷软件开发:原则、模式与实践》是一本全面介绍敏捷开发的宝典,无论你是初学者还是经验丰富的开发者,都能从中获得宝贵的启示和实用的技巧,为你的软件开发事业提供强大的理论支持和实践指导。

    DevOps需要敏捷教练2022DevOps顶级峰会(脱敏

    DevOps涵盖了自动化构建、测试、部署、监控等多个环节,旨在通过持续集成和持续交付(CI/CD)实现快速响应市场变化。 2. **敏捷教练**:敏捷教练是帮助组织或团队理解和实施敏捷原则和实践的专业人士。他们不仅具备...

    一份较为完整的软件测试PPT

    4. Agile测试:敏捷开发中,测试与开发紧密协作,测试驱动开发(TDD)和行为驱动开发(BDD)是常见的实践。 **质量管理** 1. ISO 9000系列标准:提供质量管理框架,确保持续改进和客户满意度。 2. CMMI(能力成熟...

    敏捷软件开发:原则、模式与设计

    这本书不仅适用于初学者,也对经验丰富的开发者有着宝贵的启示作用。下面我们将详细解析其中的关键知识点。 1. **敏捷开发原则**: - **个体和互动高于流程和工具**:强调人际关系和沟通对于项目成功的重要性,而...

    敏捷软件开发原则、模式与实践 C#版

    第一部分 敏捷开发 第1章 敏捷实践 第2章 极限编程概述 第3章 计划 第4章 测试 第5章 重构 第6章 一次编程实践 第二部分 敏捷设计 第7章 什么是敏捷设计 第8章 SRP:单一职责原则 第9章 OCP:开放-封闭原则 第10章 ...

    敏捷软件开发:原则、模式与实践(带书签,源码)

    总的来说,《敏捷软件开发:原则、模式与实践》是一本深入探讨敏捷开发理念和实践的书籍,它不仅适合初学者,也对有经验的开发者有着宝贵的启示。通过阅读这本书,读者可以了解到如何运用敏捷开发方法提高项目效率,...

    2017 Gdevops全球敏捷运维峰会北京站.rar

    【2017 Gdevops全球敏捷运维峰会北京站】是一个重要的行业盛会,汇集了全球在运维和开发领域的专家和从业者。...通过研究会议资料,我们不仅可以了解到当时的行业动态,也能为当前和未来的DevOps实践提供启示。

    The.Art.of.Software.Testing.2Ed

    通过阅读《软件测试的艺术》第二版,无论是初学者还是经验丰富的测试工程师,都能从中获得宝贵的指导和启示,提升软件测试的专业水平。书中丰富的实例和实践经验,使理论知识更具可操作性,为实际工作中遇到的问题...

    Lessons Learned in Software Testing A Context-Driven Approach

    9. **持续集成与持续测试**:如何在敏捷开发环境中实现持续集成和持续测试,以尽早发现问题。 10. **测试团队协作**:建立有效的沟通机制,促进测试团队与其他开发团队的协作。 11. **学习与改进**:强调从测试...

Global site tag (gtag.js) - Google Analytics