APP下载

敏捷测试技术在Web系统中的应用

2022-04-29魏郧华

计算机应用文摘 2022年21期

魏郧华

关键词:敏捷开发模型Scrum;敏捷测试;Web系统

1敏捷开发模型Scrum

随着IT行业的发展,用户应用的业务系统愈来愈复杂多变。用户要求业务系统上线时间快,传统的软件开发测试模型已经无法适应市场的变化,日寸下流行的敏捷开发测试技术模型Scrum应运而生。

Scrum模型是典型敏捷开发模型的具体实践形式。在该模型中,涉及的角色可以分为三大类——第一类是产品负责人,该角色将在整个产品开发中负责完成前期规划工作,以及产品需求分析;第二类是软件开发人员,包括前端和UI开发人员、后端和数据库开发人员、测试人员。Scrum开发团队对成员的岗位素质、技术技能、沟通能力要求相对较高。一个结构合理的开发团队成员人数在6~9人。测试人员作为开发团队中的一员,需要完成开发测试、并行推进等任务,以及懂得更多的专业开发知识和技能,从而更好地和开发人员进行对接和交流:第三部分是整个流程管理协调人员,也称Scrum master[1]。

Sprint也是Scrum模型中非常重要的一个概念。Scrum本质上就是一种持续迭代、持续交付、增量式的产品开发模型,其中被开发软件产品被分解成若干个相对独立的Sprint项目。在开源禅道敏捷项目管理平台中,将被开发软件理解为产品,Sprint理解为项目。软件产品的最终实现,其实就是多个Sprint项目迭代交付的结果,一个Sprint项目的最终输出必须满足可运行、可用和可交付发布等特点。每一个Sprint项目开发测试时间周期在1~4周,具体周期需要开发团队依据软件产品的需求用户故事点多少而确定。

2敏捷测试解析

敏捷测试就是顺应敏捷开发方法、力求达到质量和效率平衡的一系列测试实践。敏捷测试是一套解决方案、一类测试操作与管理的框架、一组实践或由一定顺序的测试活动构成的特定的测试流程。通常我们把敏捷软件开发过程中开展的测试称作敏捷测试(Agiletesting)。敏捷测试是遵循敏捷宣言的一种测试实践。目前,并没有完整的敏捷测试定义。事实上,敏捷测试随着敏捷开发的出现而诞生。和传统软件测试相比,敏捷测试主要在工作方式、工作流程上有了很大的变化。

众所周知,软件测试的核心之一是测试用例的设计,传统软件测试用例需要把测试数据、操作步骤、预期结果罗列清晰,软件需求也以软件需求规格说明书的形式非常明确地表述出来,测试用例设计只需要把软件需求规格说明书的每一项技术指标的测试设计成测试用例,就能很好地完成一定覆盖率和测试精度的测试用例设计。敏捷测试虽然也需要测试用例,但是繁简程度不同,需求则是以用户故事的形式表述出来,可能没有十分清晰、明确的需求,用例格式也不是关注重点。测试人员需要针对产品需求来表述用户故事,敏捷测试用例可以简化为“谁”如何“操作”系统,完成什么“目标”,即使是业务事务描述性需求,也可以写成一条测试用例。用户故事可“粗线条”合并描述,也可细化分解描述。

3敏捷测试技术在Web应用软件系统中的应用

本节以Web应用软件——森林防火运行管理平台为例,详细介绍敏捷测试在Web应用软件测试流程中的主要测试活动。

3.1项目背景

森林防火运行管理平台1.0是根据林草局森林防火业务的需求描述,构建森林防火平台应用系统,实现火灾监控的信息化和智能化。该系统采用B/S结构,最终用户有三类——单位用户,如林草局各级防火机构;系统管理员,一般有多位成员,对本系统极其了解,具有对系统添加、修改、删除的权利,可及时更新系统数据;超级管理员,具有对本系统的系统参数定义、维护等权限[2]。

3.2敏捷开发和测试的主要活动

典型的敏捷开发和测试主要由三部分构成:(1)用户故事设计和发布计划;(2)几次Sprint周期的迭代开发和测试;(3)最后的产品发布。

敏捷开发的每个时间段都有相应的测试活动,敏捷开发与敏捷测试主要活动如表1所列。

3.3森林防火运行管理平台1.0的用户故事和发布计划阶段

在此阶段,项目经理和产品经理会根据客户的需求,制定概要的产品发布日程计划。测试人员可以和开发人员一起学习新的功能,了解客户的需求。此阶段有两个主要活动,即寻找隐藏的假设和设计概要的验收测试用例。

用户故事从终端用户的维度出发,描述用户期望实现的业务过程,其中包含三个要素:首先是身份角色,即功能或业务流程的使用对象:其次是活动,即角色期望实现的功能或业务流程;最后是商业价值。

以森林防火运行管理平台注册功能为例,ueserstory可以表述如下:林草局单位防火机构用户或机构系统管理员通过注册功能可以进入森林防火运行管理平台系统。森林防火运行管理平台登录功能用户故事表述如下:user storyl、各林草局防火机构已注册用户输入正确的用户名和密码,可登录系统。若userstory2、各林草局防火机构系统管理员已注册用户输入错误的用户名或错误的密码,系统会拒绝登录,并给出“用户名或密码错误”的相应提示,以保证系统的安全。森林防火运行管理平台部门查询功能用户故事表述如下:各林草局防火机构已注册用户输入部门名称等正确信息,可以查询部门相关信息。如此一来,通过用户的角度将完整的软件需求分解为若干个用户故事,然后将每个用户故事作为一个短期(一般1~4周)内实现并可以发布交付的项目实施。这里的用户故事也是后期测试用例设计的重要原始依据。

3.4森林防火运行管理平台1.0的几次Sprint周期迭代开发和测试

针对森林防火运行管理平台系统,采用Scrum开发模型,并分解为多个Sprint。比如,第一个Sprint可以包含平台涉及的用户注册、登录、修改个人信息、用户管理需求点以及对应的用户故事。当第一个Sprint完成后,再进行第二个包含森林防火运行管理平台系统其他用户故事需求的Sprint开发测试,以此类推,直至所有Sprint完成。表2列举了一些依据用户故事的测试用例。

3.5森林防火运行管理平台1.0的发布

前期,经过几轮的迭代开发测试后,基本完成森林防火运行管理平台的系统测试,并由发布人或项目经理、产品经理根据发布计划交付给客户[3]。

4Web系统敏捷测试在禅道上的应用配置和管理

禅道是现阶段敏捷开发项目管理使用频率和用户体验评价都非常高的一款开源软件,在禅道上管理整个敏捷开发软件产品,有一整套的操作流程,快捷高效。

针对森林防火运行管理Web系统的敏捷开发测试,在禅道上可以把被开发测试Web系统定义为产品。

(1)产品经理可以把产品名称和产品代号、产品负责人、测试负责人、发布负责人以及产品简介等相关信息输入产品页面并保存。比如,产品名称为“森林防火运行管理Web系统1.0”,产品代码可以设置为SLfh1.0。

(2)产品经理可以根据需要添加功能模块,将产品结构整体信息传递给团队成员,这也是之后用户故事需求分解和测试用例归类的重要依据。森林防火运行管理Web系统分为以下功能模块:用户管理、角色管理、权限管理、部门管理、日志管理和行政区域划分管理。后期,相关模块可以随着需求变更进行维护、编辑、修改,不是固定不变的,这也是敏捷开发测试独有的特点之一。

(3)产品经理建立Sprint项目,完成项目团队构建和任务分配。在禅道的新建项目页面可以完成相关数据的提交和保存。产品经理以项目覆盖需求点功能来编写用户故事,在提需求页面,根据需求大纲完成需求页面信息的输入和保存。這在页面验收标准中非常重要。除了产品经理,产品需求开发工程师也可以编写用户故事以及提交需求,而测试工程师只需要引用项目功能需求和用户故事来设计测试用例。有了明确、清晰的需求,开发人员便开启开发流程,测试人员紧随其后开启测试流程。测试用例页面可以新建用例、删除用例、复制用例、执行用例等。综上所述,禅道平台为Web系统敏捷开发测试工作提供了科学、高效的管理手段。

5结束语

在“互联网+”时代,敏捷开发与测试有着非常广阔的应用前景。许多互联网公司都在采用敏捷开发与测试模式。在该模式下,敏捷测试工程师属于敏捷开发团队中的一员,软件测试不再和软件开发分离,而是相伴相生。