• 0
  • 1
分享
  • 你不可不知的敏捷测试:定义,原则,方法和生命周期
  • 恬恬圈 2020-01-02 10:06:03 字数 2726 阅读 2079 收藏 1

随着软件开发过程复杂性的不断增加,客户希望得到新软件的期望周期也越来越短,所以软件测试方法需要不断的发展快速适应新的开发模式,敏捷测试的呼声越来越高,以下是CC先生对敏捷测试的一些思考。

敏捷测试的定义

在CC先生初次遇到敏捷的时候,认为敏捷只是有关于流程和工具,学习了一系列有关于敏捷的流程和自动化测试的工具,随着对敏捷理解的深入,越发能体会到敏捷不仅仅是关于流程和工具,它是关于人和文化的!受到这种认识的启发,CC先生开始深入了解敏捷的历史。

事实证明,人和文化一直是敏捷的核心。敏捷测试也是如此,它不仅是流程和工具的更改,它更倾向于一种新的测试模式,高投入产出比的同时也提供高质量的产品。如果把这些年听到的关于敏捷测试的种类做一个归类的话,它更符合以下3M的说法(参照Matt对敏捷的理解,CC先生对敏捷测试的理解):

QQ截图20200102095437.jpg

不管我们定义为哪一种理解,在敏捷时代,测试人员和开发人员都需要在测试活动中进行更密切的协作。测试人员必须在开发周期中向开发团队提供正确性反馈,这是测试和开发方法之间持续集成的时代。敏捷测试同时是从项目启动开始就持续的一项活动,和以往瀑布开发模式不同的是,它并不是一个顺序阶段性活动,它和开发联系得如此紧密,因为敏捷开发和测试的共同目标都是在合理的时间范围内为客户尽量提供高质量的服务。

敏捷测试的原则

  • 持续测试:敏捷团队持续的进行测试,因为它是确保产品不断进步的唯一方法。

  • 持续反馈 - 敏捷测试持续提供反馈,这就是您的产品满足业务需求的方式。

  • 全员测试:在传统的软件开发生命周期中,只有测试团队负责测试,但在敏捷测试中,开发人员和业务分析人员也会测试应用程序。

  • 测试驱动:在敏捷方法中,测试在代码实现时执行,而在传统过程中,测试在代码实现后执行。

  • 业务参与:业务团队参与敏捷测试和持续反馈的每次迭代,缩短反馈响应的时间。

  • 简约代码:敏捷团队提出的所有缺陷都在同一次迭代中得到修复,有助于保持代码的清洁和简化。

  • 简化文档:敏捷团队使用可重复使用的核对表,团队专注于测试而不是附带的细节。

敏捷测试方法

有各种敏捷测试方法如下:

  • 行为驱动开发(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会议],制定验收测试,包括业务分析师,开发和测试的观点。业务分析师关注的是要解决的问题,开发的重点是如何解决问题,而测试则关注可能出现的问题。验收测试是用户观点的表示,它描述了系统如何运作。它还有助于验证系统是否按预期运行。在某些情况下,验收测试是自动化的。

自动化的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个阶段:

  • 敏捷测试计划

  • 每日站会

  • 敏捷回顾会议

  • 发版准备

  • 影响范围评估

640.webp.jpg

影响范围评估.png

敏捷测试的计划

敏捷测试的计划(严格意义上来说,敏捷测试计划和以往的测试计划没有太大的不同),同样主要包括:

  • 测试范围

  • 待测试的新功能

  • 测试类型/测试级别

  • 性能和负载测试

  • 风险计划

  • 资源规划

  • 可交付成果和里程碑

结论:

敏捷测试是随着敏捷大潮而兴起对测试模式的一种思考,它是一个方法,还是一种思维,甚至是一个运动,全取决于组织对于快速抢占客户市场的决心和竞争的意识。“职责清晰,边界模糊”的职场规则会越来越盛行于以快求稳的组织和团队。


本文为51Testing经授权转载,转载文章所包含的文字来源于作者:CC先生,原文链接:https://www.jianshu.com/p/4d71c5ae820d。如因内容或版权等问题,请联系51Testing进行删除。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 查看结果树查看响应有哪几种方法,可通过左侧面板底部的下拉框选择1、Text查看结果树中请求的默认格式为text,会显示请求的取样器结果、请求、响应数据3个部分内容。取样器结果:默认Raw视图,可以切换为Parsed视图,表单显示更直观。请求:默认Raw视图下,RestquestBody及RestquestHeaders两部分。HTTP显示更直观。输入信息查找,还可以设置区分大小写、正则表达式。响应数据:显示ResponseBody及ResponseHeaders两部分内容。当数据过多时,可通过输入信息搜索,还可以设置区分大小写、正则表达式。2、RegExpTester当需要从上一个请求的响应结...
            14 14 2472
            分享
          • 在天网查上看了一下全国软件公司有1000多万家,其中上市的公司有7万多家,也就是占比0.7%通过这个数据可以发现,大部分公司从实力和规模上都偏向中型或者小型也就说其中的流程不一定很健全,设置没有流程而言。下图窃取了两张数据的图片供参考 为什么要指出这个问题,笔者目前在二线城市,工作10年经历过几家公司,很少有公司把流程指定的很正规和完善基本上的形式是 常规瀑布模式和敏捷模式 相结合,赶上功能已上线,出现Bug时  常见的状态开发快速定位问题进行修改测试抓紧时间进行测试,测完后上线发布 所以得出的结论是流程不重要,重要的是大家同心协力把问题解决,产品快速上线那么问题...
            0 0 1804
            分享
          • 01 WEB自动化测试随着WEB程序的不断演化,WEB程序的功能愈发全面和完善。随之而来的,软件规模和复杂度与日俱增,系统内各组件之间的交互也愈发频繁,从而经常出现修改某一组件的代码,另一个组件功能出现意想不到的异常反应。这就要求测试人员执行大量的回归案例来解决这一问题,确保整个应用程序功能正常。日益复杂的系统和愈发严格用户体验,使得软件测试人员的测试任务愈发繁重。手工测试解决这一矛盾,需要投入大量的人力资源重复执行相似的测试步骤。客观上造成了人力资源的浪费。同时,由于测试人员技能的差异,使得软件测试质量不稳定也不可期。自动化测试是一种把人为驱动的测试行为转化为机器执行测试的方法。相较于传统的...
            1 1 1110
            分享
          • 一、新建目录文件夹二、新建请求(api接口)三、添加请求方法、url、及参数1、选择请求方法为post2、选择传递的参数格式,并填写参数四种常见的POST提交数据方式详解:1、form-data:就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的...
            0 0 1966
            分享
          • 一、什么是静态测试?动态测试?通过运行程序测试软件:动态测试(有白盒和黑盒,从不同角度设计测试用例)通过评审文档、阅读代码:静态测试静态测试方法是指不运行被测程序本身,仅通过分析或检查源代码的语法、结构、接口等来检查程序的正确性。对照需求规格说明书,软件设计说明书,源程序做结构分析,流程图分析。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,如不匹配的参数,不合适的嵌套循环和分支嵌套,不允许的递归,未使用过的变量、空指针的引用和可疑的计算。用于进一步的差错,并为测试用例选取提供指导。二、什么是回归测试?目的是程序有修改的情况下,保证原有功能正常的一种测试策略和方法。测试人员在程序进行测试时...
            12 11 2820
            分享
      • 51testing软件测试圈微信