KTFlow在嵌入式软件测试过程管理中的应用
2012-09-11林晓欲
石 磊,林晓欲
(中国空空导弹研究院,洛阳 471009)
1 引言
随着计算机技术的快速发展,软件产品在航空武器装备中的地位越来越重要,软件测试已成为型号研制不可或缺的活动,但军工行业的软件测试起步较晚,往往关注于测试技术,而忽视了测试过程管理。实践表明,软件测试过程管理是测试项目成功的重要保证,也是保障嵌入式软件质量的有效途径之一[1]。
为了提高嵌入式软件测试过程的管控能力,总装备部发布了GJB 2725A-2001《测试实验室和校准实验室通用要求》[2]和 GJB/Z 141 -2004《军用软件测试指南》[3],对嵌入式软件测试过程提出了明确的管理要求。因此迫切需要一种工具能够在嵌入式软件测试过程管理中依据军用软件标准或规范对软件测试过程进行管控,实现军方对航空武器装备软件测试过程管理的要求。
2 测试过程模型
现在流行的软件测试过程模型主要有V模型、W模型和H模型等[4],提供了软件测试的流程和方法。但实际测试工作复杂而繁琐,可能不会有模型完全适用于实际测试工作。尤其是军用软件产品测试,其目的是对高可靠性、高安全性、高健壮性的软件进行有效、充分的验证,是一项复杂的系统工程,涉及测试技术、测试方法、测试资源以及测试管理等诸多方面[5]。
所以,通过对测试过程模型的研究与分析,依据总装备部标准或规范,并结合实际工程经验,将嵌入式软件测试过程划分为5个阶段:测试需求分析、测试策划、测试设计与实现、测试执行和测试总结,其模型如图1所示。
该模型主要完成如下功能:
(1)梳理测试依据,分析被测对象,对每个测试对象划分测试类型;
(2)定义测试软/硬件环境,合理安排测试的组织、成员与职责,明确测试进度和项目终止准则;
(3)依据计划设计测试用例,描述用例的初始化、输入、操作、期望输出、评价准则和通过准则等要素;
(4)在测试环境下执行测试用例,记录测试结果;
(5)对测试结果进行分析,确定软件缺陷,形成报告。
图1 嵌入式软件测试过程模型
3 工程应用
下面以实际工程为例来说明KTFlow在嵌入式软件测试过程管理中的作用。
3.1 测试准备
为便于测试过程管理,需做如下工作:
(1)创建测试项目数据库,定义数据库信息;
(2)创建项目组成员,分配测试角色和权限,如测试负责人、分析员、设计员、执行员、综保人员等;
(3)定制项目信息,包括测试项类型和优先级、测试用例和激励类型、测试类别和级别以及标识定义;
(4)定制测试计划、说明、记录、报告和问题单文档模板,为自动化生成报告做准备。
3.2 测试需求分析
依据软件研制任务书、软件需求规格说明、软件概要设计说明和软件详细设计说明,对软件需求进行逐层分解,细化分解测试依据,描述依据的出处及其说明。单元测试的依据为软件详细设计说明,部件测试的依据为软件概要设计说明,配置项测试的依据为软件需求规格说明,系统测试的依据为软件研制任务书,测试依据见图2所示。
图2 测试依据
梳理测试依据的主要目的是建立测试依据与测试项的追踪关系,通过轮次定义,明确项目的技术状态,确保正确给出测试依据与测试项的双向追踪关系。测试依据建立后,对每个被测对象的测试类型进行测试项定义,确定测试名称、测试要求、测试策略、优先级和追踪关系,测试项基本信息见图3所示。
图3 测试项基本信息
3.3 测试策划
依据测试需求,设计软件测试环境,包括软件项、硬件项和其他项。例如单元测试的静态测试和动态测试工具,配置项测试的被测产品、仿真系统以及激励设备等,如表1所示。
表1 软件测试环境表
规划测试策略,例如功能测试、性能测试、边界测试、接口测试以及可靠性测试等,为每位测试项目成员分配测试任务和职责,如表2所示。
表2 软件测试人员分配表
项目终止准则主要有以下三项:
(1)正常终止条件:在前置条件满足的情况下,测试用例按照设计步骤全部输入完毕;
(2)异常终止条件:前提条件不能满足,导致无法完成输入;
(3)前提条件可以满足,但输入无法完成。
3.4 测试设计与实现
依据测试计划和软件设计文件设计测试用例,单元、部件测试采用“先功能后逻辑”的测试策略,即先满足基于功能的测试(功能测试覆盖100%),再满足基于逻辑的测试(语句、分支、调用覆盖率100%)。配置项、系统测试采用基于功能的测试策略,测试用例主要包括名称、标识、初始化、前提和约束、输入、预期输出、通过准则、追踪关系、终止条件、用例类型和设计人员等信息,如图4所示。
3.5 测试执行
依据所设计的测试用例,在测试环境下执行测试用例。测试过程中可增加、删除、变更测试用例,记录测试结果,对每个测试用例的执行情况(完整执行、未完整执行和未执行)进行说明,对执行结果进行说明(通过或未通过),如发现软件缺陷,则填写软件问题报告单,如图5所示。
3.6 测试总结
该阶段的主要工作就是基于客观翔实的记录,对测试过程中测试用例的设计数目、完整执行数目、部分执行数目、未执行数目、执行结果、软件缺陷以及进度等信息进行统计与分析,如图6所示,为最终 对软件品质进行客观、公正的评价提供数据支撑。
3.7 报告自动生成
KTFlow的一个重要功能就是测试报告自动生成功能,其完全符合GJB 2725A-2001《测试实验室和校准实验室通用要求》和GJB/Z 141-2004《军用软件测试指南》对文档格式和内容的要求,允许测试团队根据被测项目特点,定制所需报告的模板,如封面、字体字号、页眉页脚、表格式、段落格式、章节编排和内容删减,能够完全实现测试过程不同阶段对不同报告的要求,可以自动生成测评大纲、测试需求规格说明、测试计划、测试说明、测试记录、软件问题报告单和测试报告,大大提高了嵌入式软件测试过程的效率和质量。
4 结束语
工程应用中嵌入式软件测试过程管理是一项复杂的系统工程,其涵盖了所有软件测试活动。通过有效利用KTFlow工具,实现了测试活动与工具的有机融合,极大提高了测试管控能力,消除了组织、人员间的障碍,实现了协同工作,确保了测试的充分性。同时也发现了工具存在的一些问题,如对单元、部件测试支持相对较弱,有些测试结果尚需手工输入,自动化程度偏低的问题,需进行适应性修改,以满足实际工程需要。
[1]朱少民.全程软件测试[M].北京:电子工业出版社,2007.
[2]闫宇华,李谊,黄宁,等.GJB 2725A-2001,测试实验室和校准实验室通用要求[S].北京:中国人民解放军总装备部,2001.
[3]许聚常,朱国庆,尹平,等.GJB/Z141-2004,军用软件测试指南[S].北京:中国人民解放军总装备部,2004.
[4]陈静.软件测试过程模型和管理理念探讨[J].舰船电子对抗,2007,30(4):99 -100.
[5]金先仲,任宏光,李建军,等.空空导弹研制系统工程管理[M].北京:国防工业出版社,2007.