提升大规模项目的测试效率

为防止在大规模项目中容易产生的开发成本膨胀,我们制定了更高效的测试计划。

知识

背景

大型旅行社的主干系统重建项目

客户端以及公司内部会使用到各种系统,伴随着这些主干系统的老化,各种各样的问题就开始层出不穷。

■客户端系统
无法再应对客户的多样化需求。
(例)外国入境旅客不断增长,但系统不支持多国语言。
(例)酒店、旅行地设施,店内的既有选项无法实现客户定制化服务。
(例)没有现代化的UI,而是传统UI,客户使用不便。

■公司内部系统
业务效率方面开始落后于竞争对手。
(例)在提供旅行商品时,不具备将各种模式组合搭配自动生成产品等的功能。因此,只能根据不同模式,逐个生成旅行商品。

为了解决这些课题,决定重新构建主干系统。
该项目规模达到10亿日元、持续2年时间,规模庞大。

实际推进项目时,发生了测试工时膨胀的课题。

课题

庞大的测试量带来的开发成本/开发期间的膨胀

如背景部分所述,本项目开发规模较大,因此功能测试(集成测试)量也成比例地庞大,开发期间/开发时间也随之膨胀,存在项目进度延迟的风险。

但是测试量和品质是互相牵制的关系,如何权衡选择是个难题。
假如削减测试量,可能会有因测试不足产生系统故障的风险。最终不得不投入大量的测试资源来完成测试,这种案例也屡见不鲜。

为了解决这一课题,我们决定制定一个测试计划。

 

【参考】
■开发规模
约100万SLOC (1,000KSLOC)
■功能测试CASE数的预估
IPA相对应的基准值50.5件/KSLOC(※1)×1,000KSLOC=50,500件
※ 参考:https://www.ipa.go.jp/files/000069381.pdf
图表 7-5-20 ● 各个测试工序的 SLOC 规模相应的测试CASE数、故障检出数的基本统计量

措施

制定测试计划

为避免交期延误、且保证测试品质不下降,我们采取了以下4个方面的措施

 

①品质目标的定义

通过测试可以将品质保证做到何种程度,将明确定义这个目标是第一重要的。
因为想要做到覆盖所有模式下的测试是不可能。 
换句话说,把系统BUG降至0件是不可能实现的。

那么具体的来说,系统BUG的容忍度是多少?这个度就是我们定义的目标所在。

该项目中的案例 
原则上为了控制损失金额较大的系统BUG,我们将目标定义成(图1)所示。

(图1)

 

②将品质目标具体细分到各个功能

按照品质目标,测试可以覆盖到何种程度的加权是很重要的。

因为要做到保证品质同时减少测试量,上述加权是基本立足点。

具体来说,我们重点实施与品质目标直接相关的功能测试, 削减其他非直接相关的功能测试。
测试量削减到哪一步为宜?这个问题我们将在下文解答。

该项目中的案例
从品质目标出发,针对主干系统的各功能,将其品质目标区分为高/低两档。
出于信息保密考虑无法全部记述,大致提炼内容如(图2)所示。

(图2)

 

③为各个品质目标设定测试目标

品质目标较低的项目,即无需全覆盖测试也可以达成品质目标。
也就是说,如果按照(图3)这样的测试方针,能够削减测试工时。
提升测试效率的关键在于采用全对偶测试法(All Pairs) 。

(图3)

 

【全对偶测试法】
大多数的故障都是由于最多不超过2个因子的相互作用而产生的。基于这个考虑,我们采用了覆盖2个项目间的全部组合的测试手法。
※参考:http://www.pairwise.org/

大约7成以上的BUG都是由于2个因子的组合而产生的。
※参考:https://www.atmarkit.co.jp/ait/articles/1505/29/news015.html

 

【可削减的测试CASE数目标】
例如:5个因子(1个因子的模式分别与剩余4个模式组合)的情况下 、  可以削减864个CASE。
●全部组合的情形
4×4×4×4×4=1,024模式
●全对偶测试法的情形 
5C2×16=160模式

 

该项目中的案例 
按上述测试方针执行。 

 

④创建具体的测试CASE

按照品质目标,使用判定表 or 全对偶测试法创建测试CASE。判定表的使用不再赘述

 

【全对偶测试法的最佳实践方案】
使用工具自动生成是全对偶测试法的最佳实践方案。因为全对偶的测试CASE由人手工作业创建是十分困难的,如果不使用工具很容易发生测试CASE遗漏的情况。

 

【自动生成全对偶测试法测试CASE的工具】
2种工具搭配使用(图4)。
工具的使用方法和步骤将在下文中展示(图5,6)。

(图4)


(图5)

(图6)

成果

确保品质的同时,成功降低了测试量。

削减功能测试(集成测试)的量,在预定的开发周期内完成了测试。
同时,也按照预定的BUG密度成功提取了BUG。

■成功之处

在早期阶段计划
在早期阶段(测试计划阶段)提出提高测试效率的想法,并加以实现这点是成功之处。
最终,通过事先与利益相关方共享全对偶测试法的概念,使得项目得以顺利导入。

②工具导入
导入了创建全对偶测试法的测试CASE所需的工具也是成功之处。
最终,实现了测试CASE的高效化创建,防止了测试CASE的遗漏。

单击此处获取视觉咨询的招聘和业务请求