首页 > 其他分享 >浅谈敏捷开发的测试策略

浅谈敏捷开发的测试策略

时间:2023-08-19 12:55:33浏览次数:49  
标签:策略 迭代 测试人员 开发 测试 敏捷 浅谈

【摘要】 随着敏捷和DevOps的出现,改变了传统的软件开发模式,与此同时测试也面临着不小的挑战,在敏捷开发模式下,短周期迭代交付模式意味着时间变短,拥抱变化意味着变更频繁,用户故事描述需求的方式意味着文档变少,全功能团队中意味着专门的测试人员变少。基于这样的情况,如何让测试也变得敏捷,做好测试工作呢?今天我们就一起聊一下如何做好敏捷开发的测试策略。

前言

随着敏捷和DevOps的出现,改变了传统的软件开发模式,与此同时测试也面临着不小的挑战,在敏捷开发模式下,短周期迭代交付模式意味着时间变短,拥抱变化意味着变更频繁,用户故事描述需求的方式意味着文档变少,全功能团队中意味着专门的测试人员变少。基于这样的情况,如何让测试也变得敏捷,做好测试工作呢?今天我们就一起聊一下如何做好敏捷开发的测试策略。

敏捷开发测试策略

测试策略描述了测试工程的总体方法和目标。描述目前在进行哪一阶段的测试以及每个阶段内在进行的测试种类(功能测试、性能测试、覆盖测试等)以及测试人力安排等。

我们可以按照测试的目的、范围、起止时间、人员安排、工具,即5W1H法来规划合理的测试策略。

  • why:为什么要进行测试,测试的目的是什么?
  • what:测试的内容及范围,测哪些,确定测试重点(RBT基于需求的测试等)
  • when:测试的起止时间,考虑影响时间的因素
  • where:相关文档的存放位置、缺陷的存放、环境地质
  • who :测试人员的安排
  • how:选用何种测试工具及方法进行测试

Why

根据敏捷测试原则,测试的目的是用来预防缺陷,帮助团队构建最好的系统。可以根据业务和项目的特点,设置一个测试的总体目标。

What

根据测试四象限,从业务和技术的角度、以及程序和产品的角度将测试内容进行类划分,如下图所示。

图1 测试四象限

依据敏捷的分层计划原则,测试测试也采用不同级别的测试,可以参考Epic-Feature-Story-Task制定策略。下面可以作为制定策略的参考,业务和产品大多是不相同的,可以根据自己业务和产品的特点进行调整。

敏捷开发过程是由迭代组成的,Epic是由若干个迭代完成,通常为集成测试和端到端的测试;Feature通常若干迭代来实现,通常会进行特性测试、功能测试、UAT、场景测试;Story通常在迭代内完成,通常进行功能测试、用户故事测试;Task为迭代内的测试,通常进行单元测试、模块测试、代码质量测试。其中性能测试会覆盖到Story、Feature和Epic层级。

When

在传统的瀑布开发模式下,测试是一个阶段,程序编写完成后进入测试阶段,如下图所示。

图2 瀑布开发模式

在敏捷开发模式下,测试不只是一个阶段,而是一个活动,每个Sprint都有测试活动。每个迭代都会进行单元测试、代码质量测试、用户故事测试、特性和能力验收测试;从Sprint2开始都要进行一次Sprint级别的回归测试,以自动化测试的形式实现。累积了几个迭代之后,在发布前要进行端到端的集成测试。如下图所示。

图3 Sprint测试活动

Where

尽管敏捷开发中采用轻文档的形式,但同样也要做好相关文档的管理。在测试初始要约定相关测试交付物的管理和存放形式,包括不限于测试策略、测试工件、缺陷、测试数据、虚拟服务和自动化脚本等。通常会在项目管理工具中进行管理,和开发的工作项之间建立关联,这样便于后续进行追溯和查看。以华为云DevCloud为例,可以将文档上传到【Wiki】和【文档】中,然后在工作项中建立关联。

图4 华为云DevCloud示例

Who

敏捷开发中,测试活动为团队的共同工作,而不仅仅是测试人员。其中开发人员做好TDD、单元测试和代码质量测试,同时因为接口测试涉及到接口间的数据交换、传递和控制管理等内部逻辑的问题,也建议由开发人员进行。测试人员包括迭代内的测试人员和跨迭代的技术人员。迭代内的测试人员主要负责迭代测试的设计和执行,包括探索性测试和API、UI测试自动化脚本的开发和执行,还有自动化的回归冒烟测试。跨迭代的测试人员更多专注在协调测试和制定自动化测试策略。

同时,测试人员为团队中的一员,不仅仅执行测试工作,还要参与测试计划、评估和工作安排、回顾及任何其他团队活动。

How

为了能够更好的配合敏捷开发的小步快跑、尽早交付的模式,测试就需要具备快速测试和及早反馈的能力。在敏捷方法紧迫时间的框架下,自动化测试能力必不可少,这样可以极大的缓解测试的压力。根据Mike Cohn的测试金字塔,自动化测试的比例分配为7:2:1,即单元测试占70%,接口测试占20%,UI测试占10%,这样实现分层自动化。在自动化的基础上还要进行手工的探索性测试。

图5 测试金字塔

现在有很多的自动化工具可选,开源工具如UI层的appium、Cucumber、Protractor,API层的POSTMAN、数据库层的DbFit;商业工具如UI层的IBM RFT、LeanFT, API层的SmartBear等。

在自动化工具选择上,要从实际情况出发情况,从成本预算、支持平台、支持语言、可测的应用、技术要求等多方面去考虑。开源工具节省成本,商业工具成本高;在开源工具的选择上也要结合团队成员的代码能力情况,开源也有技术难易之分;工具的后续支持程度也要考虑进去,在使用的过程中不可避免的会遇到问题。

测试策略示例

一个产品通常是由若干个发布组成,如下图所示。

图6 敏捷开发

以一个发布周期为例,按照时间线我们看一下测试的安排:

图7 测试策略示例

在制定测试策略的时候,要注意安排合理的测试节奏和周期,同时最好的测试,是全自动化的每天测试。

后记

上面给出了制定测试策略的5W1H可以作为参考,最重要的是要牢记测试的目的是为了预防缺陷,帮助团队构建最好的系统,交付给客户有价值的产品。因此要把质量左移的测试策略作为最重要的项目管理核心理念之一贯穿到整个软件生命周期的交付中,通过缺陷预防将质量移向全生命周期的前端,通过制定基于风险的测试策略驱动,尽早发现重大缺陷。

标签:策略,迭代,测试人员,开发,测试,敏捷,浅谈
From: https://www.cnblogs.com/zgq123456/p/17642342.html

相关文章

  • 自动化测试+性能测试套餐, 挑战高薪
    想要成为一名优秀的软件测试工程师,除了基本的软件测试技能外,掌握自动化测试和性能测试技能也是必不可少的。这些技能可以帮助您更快速、准确地测试软件,并保证软件质量。自动化测试是指使用自动化工具和脚本执行测试。相比手动测试,自动化测试可以显著减少测试时间和成本,并提高测试的......
  • 模拟应用网关下游系统的一些场景测试接口
    场景:构造一个返回请求参数(表单入参),请求header,设置响应header的测试demo接口框架:springboot@ResponseBody@RequestMapping("/test/api/v1")publicMapserverPostTestv1(HttpServletRequesthttpRequest,HttpServletResponsehttpResponse,@RequestHeaderMultiValueMap<Str......
  • 怎样成功转行做软件测试?
    软件测试的门槛低没错,但如果100个人竞争同一岗位,企业方一定会选择更优秀的那个应聘者,而没有工作经验、0基础的小白只是充当了陪跑的角色。所以建议转岗做软件测试的小伙伴,一定要提前做好这些准备:1、了解软件测试岗位的前景:确定是否符合自己的期望,避免再次离职;2、总结个人优势:转......
  • 日志等级类的测试
    日志等级类的测试枚举这里并没有什么要测试的地方,主要测试的地方就是转换的接口,上面报错的地方也就是说tostring是类的成员函数,使用的时候需要先定义一个类的对象出来,但是这个函数不需要传递this指针,所以可以定义成static静态成员函数打印:再对头文件进行修改,防止重复包含:/......
  • 敏捷项目管理实践管理方法
    ​Leangoo领歌是一款永久免费的专业敏捷研发管理工具,提供敏捷研发解决方案,解决研发痛点,打造成功产品。帮助团队实现需求、迭代、缺陷、任务、测试、发布等全方位研发管理。敏捷产品路线图管理:产品路线图是一个高层次的战略计划,它描述了产品在未来一段时间可能会如何发展和壮大......
  • RISC-V公测平台发布· CoreMark测试报告
    一.CoreMark简介CoreMark是一款用于评估CPU性能的基准测试程序,它包含了多种不同的计算任务,包括浮点数、整数、缓存、内存等方面的测试。CoreMark的测试结果通常被用来作为CPU性能的参考,它可以帮助开发人员和系统管理员评估不同处理器和系统的性能,比较不同处理器之间的性能差异,也......
  • 浅谈架构
    1     引言    笔者从事架构师工作多年,发现虽然软件开发人员人人都知道架构,但架构真正做什么,确很少有人能说的清楚。    大部分普通开发人员所想到的架构是框架的搭建以及各种架构技术比如缓存、消息队列、多线程等等,笔者曾经面试过一个应聘架构师岗位的......
  • 负载均衡压力测试的方法
    四层负载均衡采用开源软件LVS(LinuxVirtualServer)结合Keepalived的方式实现负载均衡,七层负载均衡由Tengine实现负载均衡。压力测试建议在进行压力测试时,配置建议如下:压测负载均衡转发能力建议使用短连接。一般来说压测除了验证会话保持和均衡性等功能外,主要是验证负载均衡的......
  • 8月18日测试总结
    8月18日测试总结触手(xyx)题目大意:给定\(n\)个柱子,每一次只能刷相邻的\(x\)个柱子,在这\(x\)个柱子中,只能刷到其中高度最低的,问最大的粉刷面积及其最少操作次数思路:首先,用一个单调队列维护可能的操作高度,然后,再用一个单调队列维护当前位置的最终高度,也就是所有操作高度......
  • 测试 | CICD | JEKINS 持续
    #Jenkins持续集成##介绍: *持续集成CI *jenkins介绍 Jenkins是开源的java语言开发的持续集成工具,支持CI(持续集成),CD(持续交付项目)。集成Jenkins可以用于一些测试和项目部署。##jenkins安装配置 *1.下载war包放到一个没有中文的目录下 *2.使用指令启动jenkins服务--bs架......