转:你不可不知的敏捷测试-定义,原则,方法和生命周期

随着软件开发过程复杂性的不断增加,客户希望得到新软件的期望周期也越来越短,所以软件测试方法需要不断的发展快速适应新的开发模式,敏捷测试的呼声越来越高,以下是CC先生对敏捷测试的一些思考。
  敏捷测试的定义
  在CC先生初次遇到敏捷的时候,认为敏捷只是有关于流程和工具,学习了一系列有关于敏捷的流程和自动化测试的工具,随着对敏捷理解的深入,越发能体会到敏捷不仅仅是关于流程和工具,它是关于人和文化的! 受到这种认识的启发,CC先生开始深入了解敏捷的历史 - 事实证明,人和文化一直是敏捷的核心。敏捷测试也是如此,它不仅是流程和工具的更改,它更倾向于一种新的测试模式,高投入产出比的同时也提供高质量的产品。如果把这些年听到的关于敏捷测试的种类做一个归类的话,它更符合以下3M的说法(参照Matt对敏捷的理解,CC先生对敏捷测试的理解):

  不管我们定义为哪一种理解,在敏捷时代,测试人员和开发人员都需要在测试活动中进行更密切的协作。 测试人员必须在开发周期中向开发团队提供正确性反馈,这是测试和开发方法之间持续集成的时代。敏捷测试同时是从项目启动开始就持续的一项活动,和以往瀑布开发模式不同的是,它并不是一个顺序阶段性活动,它和开发联系得如此紧密,因为敏捷开发和测试的共同目标都是在合理的时间范围内为客户尽量提供高质量的服务。
  敏捷测试的原则:
  持续测试:敏捷团队持续的进行测试,因为它是确保产品不断进步的唯一方法。
  持续反馈 - 敏捷测试持续提供反馈,这就是您的产品满足业务需求的方式。
  全员测试:在传统的软件开发生命周期中,只有测试团队负责测试,但在敏捷测试中,开发人员和业务分析人员也会测试应用程序。
  测试驱动:在敏捷方法中,测试在代码实现时执行,而在传统过程中,测试在代码实现后执行。
  业务参与:业务团队参与敏捷测试和持续反馈的每次迭代,缩短反馈响应的时间。
  简约代码:敏捷团队提出的所有缺陷都在同一次迭代中得到修复,有助于保持代码的清洁和简化。
  简化文档:敏捷团队使用可重复使用的核对表,团队专注于测试而不是附带的细节。
  敏捷测试方法:
  有各种敏捷测试方法如下:
  行为驱动开发(BDD)
  验收测试驱动开发(ATDD)
  探索式测试
  行为驱动开发(BDD)
  行为驱动开发(BDD)改善了项目利益相关者之间的沟通,以便所有成员在开发过程开始之前正确理解每个功能。开发人员,测试人员和业务分析师之间存在基于示例的持续沟通。这些示例称为场景,以称为Gherkin Given / When / Then语法的特殊格式编写。这些方案包含有关给定特征在具有不同输入参数的不同情况下应如何表现的信息。这些被称为“可执行规范”,因为它包括自动测试的规范和输入。
  在实际执行过程中,BDD也可说是一种沟通方式,不要单一的看成是自动化测试的手段。
  典型的BDD框架示例如下:
```
  *** Keywords ***
  Login with Valid Credentials
  [Arguments] ${username} ${password}
  GIVEN Open Browser To Login Page
  WHEN Input Username And Password ${username} ${password}
  THEN Login Success
  ```
  验收测试驱动开发(ATDD)
  ATDD专注于让具有不同观点的团队成员参与进来,例如客户,开发人员和测试人员。召开[Three Amigos会议](http://www.edgetesting.co.uk/news-events/blog/three-amigos-in-the-world-of-agile),制定验收测试,包括业务分析师,开发和测试的观点。业务分析师关注的是要解决的问题,开发的重点是如何解决问题,而测试则关注可能出现的问题。验收测试是用户观点的表示,它描述了系统如何运作。它还有助于验证系统是否按预期运行。在某些情况下,验收测试是自动化的。
  自动化的ATDD也可利用robotframework+seleniumLibrary来实现,还是需要再次说明,在实际执行过程中,ATDD更多的是一种和业务确定需求的沟通方式,不要单一的看成是自动化测试的手段。
  典型的ATDD框架示例如下:
```
  *** Settings ***
  Documentation Test google search with specific word
  Resource ../keywords/common_resources.txt
  *** Variables ***
  ${search_text} amazon
  ${result_text} amazon.in - Amazon - India‘s Largest Online Store
  *** Test Case ***
  Scenario: Search specific word in google search engine
  Given www.google.co.in has been launched in firefox browser
  When I entered ${search_text} as search text
  Then I can see the search results containing the entered word ${result_text}
  Then I close the browser window
  ```
  探索式测试
  在这种类型的测试中,测试设计和测试执行阶段齐头并进。探索式测试强调工作软件而非综合文档。个人和互动比过程和工具更重要。客户协作比合同谈判具有更大的价值。探索式测试更适应变化。在此类测试中,测试人员通过真正的不断挖掘用户的需求来制定测试案例和执行测试计划。
  敏捷测试的优点
  它节省了时间和金钱
  敏捷测试可减少文档
  它灵活,适应变化
  它提供了一种从最终用户接收定期反馈的方法
  通过日常会议更好地确定问题
  敏捷测试的生命周期
  敏捷测试的生命周期可以划分为以下5个阶段:
  敏捷测试计划
  每日站会
  敏捷回顾会议
  发版准备
  影响范围评估

  敏捷测试的计划
  敏捷测试的计划(严格意义上来说,敏捷测试计划和以往的测试计划没有太大的不同),同样主要包括:
  - 测试范围
  - 待测试的新功能
  - 测试类型/测试级别
  - 性能和负载测试
  - 风险计划
  - 资源规划
  - 可交付成果和里程碑
  结论
  敏捷测试是随着敏捷大潮而兴起对测试模式的一种思考,它是一个方法,还是一种思维,甚至是一个运动,全取决于组织对于快速抢占客户市场的决心和竞争的意识。“职责清晰,边界模糊”的职场规则会越来越盛行于以快求稳的组织和团队
http://www.51testing.com/html/10/n-4462710.html

原文地址:https://www.cnblogs.com/beiyue/p/11652376.html

时间: 2024-10-06 02:22:16

转:你不可不知的敏捷测试-定义,原则,方法和生命周期的相关文章

Maven的核心概念:maven仅仅定义了抽象的生命周期,具体的任务都是交由插件完成的

一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1.2.Maven坐标主要组成 groupId:组织标识(包名) artifactId:项目名称 version:项目的当前版本 packaging:项目的打包方式,最为常见的jar和war两种 样例: 1.3.Maven为什么使用坐标? Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范. 拥有了统一规范,就可以把查找工作交给机器. 二.依赖管理 2.1.依赖配置 依赖配置主要

【软件生命周期&&测试工作流程】软件生命周期和测试工作流程

******软件生命周期:********* ******测试工作流程:******** 原文地址:https://www.cnblogs.com/l-pan/p/12177740.html

敏捷测试的方法和实践

文 / 朱少民 有一次,当开发人员完成当前Sprint 任务的代码之后,测试人员.开发人员和产品经理一起来浏览产品.从头到尾走一遍,产品经理发现了问题,认为需要对功能进行比较大的修改.这时开发人员估计需要两天时间才能完成代码,但测试人员反对这样做,我们本来只有5天测试时间,加上这次新做的功能比较多.开发代码质量不高,验收测试已经很紧张.如果再延迟两天,测试没法完成.产品经理说,你们不是在用敏捷测试方法,应该测得很快,三天应该能完成测试工作啊! 什么是敏捷测试呢?敏捷测试当然不能简单地理解为测得更

究竟什么是敏捷测试

时至今日,还讨论这样一个老话题,是否感觉老调重弹?因为两年前(2010年底)时任谷歌中国测试经理的段念先生就写了一篇文章<什么是敏捷软件测试>, 就已经谈到这个话题,“敏捷软件测试更多的是一种理念,而非过程”.在2011年,我自己也写了一篇文章<敏捷测试的思考和新发展>,谈到“在BDD.ATDD和TDD最根本的.共同的思想基础上,构成一个全新的.更完善的敏捷测试框架”.而更早的时候(2010年10月),写了一篇<敏捷测试的方法和实践>,开始的那一小节就在讨论 “什么是敏

从一个实例详解敏捷测试的最佳实践

简介: 敏捷软件开发是目前十分流行,并在业界逐步推广的软件开发模式.不同与传统的软件开发模式,敏捷开发模式有着自己鲜明的价值和方法.其中,敏捷测试部分也同以往的软件测试流程有所不同.这对测试人员提出了新的要求,带来了新的挑战.本文将结合一个软件项目实例,基于项目开发的不同阶段,详细介绍每个阶段的主要测试活动.文中将分析每个主要测试活动的前提条件和目标任务,并根据实例推荐最佳的解决方案. 第一部分:敏捷软件开发简介 敏捷软件开发(Agile Software Development)初起于九十年代

自动化测试——敏捷测试的基石

作为被冠以敏捷名称的测试,敏捷测试同样以快为目标.在敏捷测试中,快有三个方面的含义: 团队能够通过测试快速获知系统当前所处的状态,了解距离可工作的软件还有多远: 能够在一个迭代周期中快速完成回归测试和对新功能的测试: 开发工程师能够从持续的测试中得到快速的关于提交代码反馈. 简而言之,敏捷测试要求测试能够测试在短的时间间隔内持续发生且能够在短时间内完成.考虑到纯粹的依赖人工测试基本不可能达到短的时间间隔内持续发生和短时间内完成这两个目标,而自动化测试在执行效率方面具有天然的优势,在敏捷测试中使用

【敏捷开发】详解敏捷测试

 敏捷软件开发是目前十分流行,并在业界逐步推广的软件开发模式. 不同与传统的软件开发模式,敏捷开发模式有着自己鲜明的价值和方法. 其中,敏捷测试部分也同以往的软件测试流程有所不同.这对测试人员提出了新的要求,带来了新的挑战. 第一部分:敏捷软件开发简介 敏捷软件开发(Agile Software Development)初起于九十年代中期.最早是为了与传统的瀑布软件开发模式(waterfall model)相比较,所以当时的方法叫做轻量级方法(Lightweight methods).二十世纪初

《敏捷测试的最佳实践》学习笔记

第一部分:敏捷的实质 敏捷开发有益于个人发展 就测试而言,测试人员就是好比一辆跑车里的唯一的驾驶员,项目就好比这辆跑车,测试人员需要及时修正行驶方向的偏差,确保这辆车在正确的道路上稳步前行.如果,测试人员没有具备足够的责任心和领导力,只是人云亦云,恐怕这种测试要与不要没什么分别,敏捷项目的质量也更让人担忧,而敏捷也就失去了原有的意义.因此,作为唯一的测试人员,他(她)将拥有对测试的所有权,计划.设计并且执行所有的测试工作.而也因为拥有了更多的主人翁精神,积极的工作热情,测试人员勇敢的面对工作中的

我在华为做敏捷测试的那些流程

一.开发和测试的通性困扰? 面对复杂性(客户):不断地修改计划.不断地增加预算.低劣的产品质量…… 面对复杂性(项目组成员):经常加班到深夜.提交的产品不合格…… 二.敏捷开发中的敏捷测试目的: 敏捷宣言 个体和交互比过程和工具更有价值:能工作的软件比全面的文档更有价值:顾客的协作比合同谈判更有价值:及时响应变更比遵循计划更有价值. 其核心是:以人为本,发挥人的主观能动性. 三.传统测试和华为敏捷测试区分: 3.1.传统的测试 1.守门员:质量保证者,阻止那些不可靠的.无效的.充满BUG的版本发