基于Scrum的敏捷测试过程中探索式软件测试研究

2018-02-25 11:54张丽杜兰戴丽丽
电子技术与软件工程 2018年11期

张丽 杜兰 戴丽丽

摘要 随着软件行业的发展,敏捷理念在软件开发过程中不断推进和深入实施。采用Scrum方式的特性团队,在一个迭代中完成功能的开发和验证过程。系统测试团队获取交付功能后,在版本发布前如果仍然使用传统测试方法,将很难发现深层次问题。探索式测试为系统测试提供了新的思路,那么如何进行探索则成为了一个关键性的话题。本文主要结合敏捷测试过程阐述探索式测试的概念和过程。

[关键词]Scrum 敏捷测试 探索式测试

1 引言

目前在采用S crum方式的特性团队中,测试活动由特性团队的质量保证(QUALITYASSURANCE,缩写为QA)人员根据测试设计方案完成。但是短平快的迭代周期降低了测试深度,从而直接影响了发布版本质量。要提高版本质量,系统测试必须要做深入的挖掘性测试。探索式测试(Exploratory Testing,缩写为ET)为深入测试提供了一种思路。

2 基于Scrum的敏捷测试

敏捷是以用户的需求为核心,采用迭代、循序渐进的方法进行软件开发的一种方式。敏捷开发具有快速交付、周期短、并且能够及时、快速响应客户需求变动等特点。敏捷测试关注于业务价值和交付满足客户需求的软件。在敏捷测试中,测试人员与技术人员、业务人员进行良好的交流并持续反馈。

Scrum是一种开发创新产品和服务的敏捷方式。Scrum定义的特性团队是跨职能的多面手团队,团队中包括但不限于开发人员和QA,可以在一个迭代中交付有价值的产品的一部分。Scrum项目周期是以一组迭代“Sprints”组成。在每个迭代中,产品的设计、开发和测试全部完成。

然而,采用了Scrum方法后,产品开发周期变短,从原来几个月发布一个版本到现在几周交付版本,而用户需求存在频繁变动的可能。在特性团队移交功能到系统测试团队后,系统产品存在隐含问题的情况。但是由于特性团队已经完成了功能的测试,如果系统测试还要按照测试方案去常规测试,将很能发现问题。因此在系统测试阶段,尝试引入探索式测试,发现系统深层次的隐含缺陷。

3 探索式测试

3.1 概念

探索式测试是一种自由的软件测试风格,强调测试人员同时展开测试学习、测试设计、测试执行和测试结果的评估等活动,以持续优化测试工作。因此在探索式测试过程中,要求测试人员一直保持全身投入。

探索式测试是一种软件测试风格,而不是一种具体的软件测试技术,它强调基于当前的语境选择合适的测试技术,而不局限于特定的测试技术。探索式测试更关注的是测试过程中学习的重要性,它的优势在于测试人员可以并行地实施测试学习、设计、执行和评估。在探索式测试过程中,测试人员不断学习探索,一次探索结束后,总结前一阶段的执行结果,并依此调整下一阶段的执行过程。所以在探索式测试过程中,反馈非常重要,依据这些学习反馈,可以更好地进行下一步的测试。也由此,探索式测试可以不断深入系统,发现深层次问题。

3.2 探索式软件测试方法

3.2.1 测试方法

实践中,测试人员执行探索式测试之前,需要充分考虑软件系统的各个方面,包括质量标准、项目环境、产品元素,基于这些因素,选择合适的测试技术。要求测试人员对被测系统充分了解,掌握相关领域知识,采用启发式的方法思考需要探索测试场景。

3.2.2 测试管理

探索式测试,从表面看很像即兴测试,但是两者不同。即兴测试是随性而发的测试,任何人随时随地都可以去测,或者说是没有准备的、随意地去发现软件缺陷的过程。对于探索式测试需要使用规范化的机制来对测试工作进行组织和管理,Jon Bach和James Bach提出了基于会话的测试管理(Session-basedtest management,缩写为SBTM)方法。这个管理方法将测试任务分解成一系列的会话(Sessions),测试人员在一个会话中完成特定任务的设计、执行、记录和总结,并实时调整下一个会话。

4 基于Scrum的敏捷測试过程中探索式测试方法研究

在实际执行探索式测试过程中,可以按照如流程图l执行。

探索测试的第一个环节是熟悉功能,做功能点梳理,功能点梳理的结果是划分出多个会话。划分完毕后选择Session进行探索测试,直到完成所有Session的测试,最后要进行任务报告阶段,总结本次测试过程和结果,结束探索测试。

首先对需要测试的功能进行分析,梳理功能点。在分析过程中,需要参考用户需求文档、开发设计文档,还需要获取特性团队中QA的测试结果和测试总结,分析功能潜在的风险点;经过分析后,划分出多个Sessions,一个Session是探索式测试工作的基本单位。

每个Session都有具体的任务(Charter),在Charter中描述具体测试主题、测试策略、可能存在的问题、可以使用的资源等。每个Session都需要在一段固定的、不受打扰的时间段内完成,要求测试人员全身心投入,常见的时间可以是九十分钟,也可以是三个小时。

在一个Sesssion测试结束后,测试人员要输出会话单(Session Sheet),描述本次测试过程,内容可以包括测试时间、测试项目、测试结果、发现问题等。在完成一天的测试后,测试人员向测试组中的测试领导、测试专家做任务报告,汇报测试的进展与发现,总结当天的测试情况,并进行头脑风暴,根据这些信息调整下一步的Session、测试时间等。

按照这样的过程执行,直到完成全部Session的测试。

5 总结

探索式测试是一种测试风格,根据上下文选择合适的测试技术。本文主要描述了基于会话的测试管理方法在采用Scrum方式后系统测试阶段的使用方法和使用过程。通过该过程可以看出,探索式测试更注重测试人员在测试中不断学习、反馈和调整,因此使用这种方法会在系统测试中发现更深层次的问题。

参考文献

[1]Kenne th S.Rubin.Scrum精髓[M].北京:清华大学出版社,2014.

[2]史亮,高翔,探索式测试实践之路[M],北京:电子工业出版社,2012.

[3]余久久,张佑生,软件探索性测试研究进展[J].实验室研究与探索,2014, 33 (02): 93-102.

[4]孙常滨,对于电信软件探索性软件测试的探讨[J],电子技术与软件工程.2013 (17):97-97.

[5]谭凤,基于敏捷测试过程的探索性测试方法研究[J],电脑迷,2017 (03):4-5.

[6] James A.Whittaker.探索式软件测试[M],北京:清华大学出版社,2010.

[7]Elisabeth Hendrickson.探索吧!深入理解探索式软件测试[M].北京:机械工业出版社.2011.