Scrum中的软件测试指南
导读:本文的目的是分享有关Scrum Agile框架中软件测试活动的想法。本文分为两个主要部分。第一部分着重于解释Scrum方法,谁是参与者,计划如何转化为行动,关键仪式以及Scrum冲刺中会发生什么。在第二部分中,我描述了Scrum方法论中遵循的软件测试过程,以及如何将其集成到Scrum sprint中。
一,引言
敏捷是一种流行且非常成功的软件开发模型,可以将高质量的产品快速交付用户手中。在像Scrum这样的敏捷方法中,高级软件需求或业务需求被分解为称为“史诗”的较小单元,而史诗甚至进一步分为用户故事。每个用户案例都有定义的接受标准。
在基于敏捷的软件开发项目中,团队合作很重要,没有“ I”的概念。敏捷专注于团队合作,因此“我们”喜欢Scrum团队。敏捷项目以冲刺的形式交付。冲刺是一个可能长达2或4周的时间框。在Scrum冲刺期间,将创建可用的和可能发布的软件。稍后我们将详细讨论冲刺期间发生的仪式。
敏捷软件开发将软件测试集成到开发过程中,而不是将其作为一个单独的阶段。包括产品所有者在内的团队负责分析用户案例,以定义每个案例的接受标准。Scrum团队的成员共同为每个冲刺定义冲刺目标。在开发团队开始实施用户案例时,测试专家开始进行测试用例设计,并与产品负责人一起审查以批准。这样可以确保测试范围尽可能完整。在测试用例复审之后,测试人员便开始验证开发的用户案例。测试期间发现的缺陷将被记录并由Scrum团队进行审查。
“软件测试不仅涉及发现应用程序中的缺陷;这是一个过程,可帮助我们从定义软件需求的方式一直到最终用户提高质量”
“测试团队不会破坏软件,测试团队会帮助开发团队修复损坏的软件”
“测试过程应该探索意想不到的事物,而不仅仅是寻找期望的事物”
测试自动化在交付高质量产品中扮演着重要角色。为功能和回归测试实现测试自动化框架对任何基于敏捷的开发项目都是有益的,因为它在软件开发生命周期的早期阶段为识别缺陷带来了价值。建立正确的自动化测试框架取决于与产品和工程团队进行适当的可行性分析,选择正确的工具和框架。在sprint生命周期内确定,确定优先级和执行业务方案将面临许多挑战。Scrum团队应该定义不同风格的软件测试技术以及不同的自动化层,以在短时间内交付高质量的产品。
二。Scrum入门
建立团队
Scrum是一个框架,可以帮助团队一起工作并完成工作。Scrum鼓励团队学习经验,在解决问题时自我组织,并反思自己的得失,以不断提高。Scrum的结构旨在帮助团队自然地适应不断变化的条件和用户要求,并在流程中内置了重新优先级和较短的发布周期,因此您的团队可以不断学习和改进。
在Scrum框架中,每个sprint本身都是一个项目,并且在sprint结束时(通常为2或4周),将“完成”的增量交付给用户以进行实施。未完成或不接受的功能将进行审查,并为以后的冲刺重新排序。
敏捷转型的第一步是以敏捷的心态组建一支正确的团队。
“敏捷并不关乎“流程和工具”,而是关乎“个人和互动”。
“敏捷就是团队成员之间的协作和透明”。
Scrum框架中的三个角色是产品所有者,Scrum主管和开发团队。
产品负责人:以故事的形式翻译用户需求并与Scrum团队紧密合作的人。产品所有者在定义epic和用户story方面起着主要作用。他还负责团队在实现项目目标方面的成功。
Scrum Master:谁负责消除阻碍团队成功的障碍。他还负责团队遵循Scrum原则和规则。Scrum主管与产品负责人和团队紧密合作。他还负责促进每日Scrum会议。
开发团队:负责实际工作的团队。他们负责在每次冲刺结束时完成产品增量。团队负责为冲刺中要完成的工作定义接受标准。软件测试人员是开发团队的一部分。
建立产品路线图
产品负责人与利益相关者共同提出愿景,并将愿景转化为产品策略。产品路线图是一个高层计划,用于传达产品可能如何发展。产品路线图通常涵盖几个主要版本或产品版本,这些版本将细分为sprint。
这是Scrum框架实施中非常重要的一步。产品路线图由产品所有者完成,但也应包括项目中其他利益相关者的投入。在开始计划冲刺之前,必须先确定路线图。
敏捷产品路线图必须保持灵活性,以更好地应对新兴机会。但是,它还必须为您的团队提供明确的方向。这个方向通常通过优先级排序来体现,即清晰地描绘出您的公司认为您的团队今天最喜欢工作的最低要求与未来可能最有价值的最低要求。
产品路线图应支持产品的愿景,并应帮助产品所有者使项目利益相关者保持一致。该路线图还使协调开发工作变得更加容易,并且为实现业务期望提供了透明度。
产品负责人与利益相关者积极合作,创建了一个积压的产品清单,其中包含可以交付价值的需求,并根据市场需求确定其优先级。产品所有者负责产品积压的所有权。产品积压通常包括两种工作项:
Epic – 粗略概述的高级需求,没有太多细节。
故事 – 对应该做什么的更全面的要求。
产品负责人为发布工作软件创建了一个高级计划。敏捷项目将有多个版本,因此您要优先考虑使您首先启动所需的功能。
将计划转化为行动
产品负责人将所有高级要求转换为用户案例,并设置了初始产品积压。一旦产品所有者准备好进行冲刺计划,他就会组织一个积压的整理会话,以针对第一个冲刺细化用户故事并确定其优先级。
产品负责人和团队计划将执行特定任务和目标的冲刺。典型的sprint持续1-4周,并且在整个项目中应保持相同的长度,因为这使团队可以根据先前的sprint绩效更准确地计划未来的工作。
Sprint计划是团队的工作,因此产品负责人和所有团队成员应在场,以表达他们的想法和疑虑。冲刺计划在每个冲刺周期的开始进行。
下图列出了敏捷Scrum框架中的关键仪式。
三,敏捷测试流程
Scrum冲刺会发生什么?
每天都会通过Scrum董事会跟踪sprint进度。Scrum主管组织一次每日站立会议,以识别团队的进度和障碍(如果有)。Scrum主管的作用是消除团队的障碍,并帮助团队前进以实现冲刺目标。
在sprint计划会话中优先的用户故事将被排序并为sprint优先。开发团队(包括测试人员)将具有针对用户故事创建的自己的可交付成果(任务)。
典型的敏捷Scrum板具有流动的阶段,
在sprint计划中优先处理的用户故事将按照定义的等级在sprint待办事项列表(待办事项)中列出。开发团队将开始从事与故事相关的开发任务。一旦开始编码,开发团队便将任务移至“正在执行”状态。经过编码和单元测试之后,故事将被移至“验证”。不符合接受条件的故事将移回“正在做”。与产品负责人一起审查接受标准后,通过测试的故事将移至“完成”阶段。
下图显示了在短短的2或4周的冲刺周期内如何对最低限度的可爱产品进行优先级排序,开发,验证和发布。
如前所述,敏捷中的测试活动在开发过程中进行。测试应该从用户故事阶段开始。作为一个团队,每个用户故事都应至少具有定义,审查和批准的接受标准。测试方案将基于定义的验收标准得出。
敏捷测试中的关键原则
在修饰时提出正确的问题,不要假设。
缩小差距
开箱即用,通过您的测试方案为业务带来价值。
像用户一样思考和测试。
探索意外。
以所有可能的方式进行测试-正面,中间和背面。
将结果回放给产品负责人。
对结果保持透明,有效地进行分类。
帮助开发人员解决问题
不要错过任何价值
VI。Sprint中的测试自动化
在Scrum冲刺中实现测试自动化有其优点和缺点。关键部分是确定要自动化的区域。自动化应该与开发齐头并进。您可以构建自动测试的不同层,重点放在单个组件,集成和可视化测试上。下图显示了如何实现不同的层,每个层的目的是什么以及覆盖的范围。
设置ü p 自动化测试框架
关键目标是建立一个支持连续集成的健壮且可重用的测试自动化框架。该框架应具有足够的灵活性,以适应不同的被测应用程序(AUT)模块,并执行涵盖功能,API,UI / UX和端到端回归的不同级别的自动化测试,这将大大减少人工工作并增加测试范围。
当今市场上,我们拥有低代码自动化框架,例如Tosca,Katlon等。这些工具可帮助我们在较短的时间内建立并运行测试框架,因为这不涉及繁重的编码。这些是基于模型的测试自动化框架,这些框架使用记录或内置UI来轻松设置可重用的页面对象。
如果您的组织坚持使用开源框架,那么仍然可以使用诸如Selenide,Geb等的预定义框架来快速设置测试自动化框架。即使它们需要一些编码,也可以节省大量时间来进行初始设置。
如何在冲刺中实现自动化?
识别自动化测试
制定策略
合作并确定优先顺序
捷径并使用API
根据需要构建对象
软件测试人员与产品负责人一起确定业务方案,并将业务方案转换为具有接受标准的可测试方案。每个方案都应具有测试步骤以及每个步骤的预期结果。作为Scrum团队进行讨论,并制定每项要求的战略并确定以更简单的方式实现自动化的方法,例如:使用API。
与产品负责人合作,为每个测试用例定义优先级,并根据优先级开始工作。分析每个测试方案并构建页面对象,以用于测试用例,而不是为页面中所有可用元素构建页面对象。确保开发人员为每个页面元素使用唯一的ID,以节省构建Xpath的时间。
五,结论
Scrum框架支持协作工作模型,任何人都可以共享他们的想法,意见以改进流程。敏捷更多是一种思维定势和一种文化。从头开始实施像Scrum这样的敏捷方法将面临许多挑战。Scrum是一个框架,在sprint生命周期的早期阶段带来了获得产品反馈的好处。通过在冲刺生命周期内和冲刺周期之外,通过已定义的过程和敏捷仪式并遵循上述过程,您可以更快地将最低限度的可爱产品投放到用户手中。测试和测试自动化在开发质量代码中起着重要作用。软件测试应该从头开始。测试不是要发现缺陷,