• 0
  • 1
分享
  • 你不可不知的敏捷测试:定义,原则,方法和生命周期
  • 恬恬圈 2020-01-02 10:06:03 字数 2726 阅读 1832 收藏 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)有效等价类:对程序规格说明有效的、合理的、有意义的输入集合程序接收到有效等价类数据,应该正确计算、执行2)无效等价类:对程序的规格说明无效的、不合理的、无意义的输入集合(例:错误用户名或密码)边界值分析法:如果需求规定范围或者规定了取...
            0 1 4377
            分享
          • 首先我们来说下接口测试工具如postman,jmeter等的缺点。最大的不足就是接口测试数据的不可控,这个环节接口工具是没有办法完成的。举个例子:比如我们调用商品查询列表或者某个商品详情信息,比如商品列表有50条数据,商品详情比如说是连衣裙,尺码是s,品牌是某某,大家想一下,如果数据库中没有这些数据,那我们怎么验证该接口功能是否正确?所以说,在我们测试接口前,是需要对测试数据进行初始化的操作的,这个初始化的操作也只能通过谢代码的方式来解决。接口工具测试过程: 1、接口工具调用被测系统的接口。 2、系统的接口根据入参向数据库发送请求进行查询。 3、系统的接口得到查询...
            0 7 6703
            分享
          •   在测试行业,一个一直被讨论的问题就是:手工测试没有前途,自动化测试会取代手工测试?  首先说结论:自动化测试不会取代手工测试,这完全是两个维度的事情。为什么不会呢?我们需要从本源上说起。  什么是自动化  世界上有很多职业,比如艺术家、维修人员、销售等等,每种职业都需要人来参与,而每种职业也都有部分工作交给机器来做。  但无论哪种职业,几乎都是人来主导,然后将越来越多的工作交给机器来做,而机器无法实现的工作,比如创新、情感、思维等,只能由每个具体的人来完成。而这些必须由具体的人来完成的事情,我们称之为“手工”,机器完成的部分,我们称之为“自动 化”。  因此,手工、自动化不是测试专属的概念...
            0 0 573
            分享
          •   各位小伙伴们还记上个月小红书APP崩溃闪退,导致大批用户卸载APP重装的事故吗?闪退Bug从凌晨持续到第二天上午。  事发第二天,就有研发在线承认了,因为自己的失误导致了这次事件,评论区也有人担心博主会不会失去工作。  这件事会到此为止吗?有研发人员承认了错误,测试人员还需要负责吗?  也由此引出一个测试人员的最大疑问:  项目上线后出了严重Bug,到底是谁的责任?  目前存在如下两种观点:  Mr.Zhou  Mr.Zhou是企业的研发总监,他看到这个Bug时,确定是测试的锅。  他认为:测试工程师是软件产品质量的最后一个把关者,没有做好更新测试,才导致版本发布上线后APP更新崩溃。因此...
            0 0 948
            分享
          •   盲区预警(BSW blind spot detection)  通过车辆周围排布的传感器及盲点探测器,在超车、换道、大雾、雨天等易发生危险的情况下,通过后视镜以及仪表显示提醒驾驶员。当驾驶员开启该功能时,车速处于20-70km/h的行车工况下,未开启转向时,当同向车道有同速度车辆,进行后视镜显示报警信息,当开启转向时,增加仪表信息显示报警。  车道偏离预警(LDW lane departure warning)  当系统开启时,摄像头会时刻采集车道线,通过图像处理获取车辆的位置参数,当检测到车辆偏离汽车轨道时,传感器会及时手机车辆数据和驾驶员操作状态,发出警报,如果驾驶员打开转向灯,则不发...
            0 0 686
            分享
      • 51testing软件测试圈微信