GJB5000A体系中基于V模型的软件测试流程
2014-12-18魏银英王焕章皮建军于彦伟
魏银英,王焕章,皮建军,于彦伟
(陕西凌云电器集团有限公司设计所,陕西宝鸡 721006)
与软件开发有过程模型类似,软件测试过程也有模型。软件测试模型是软件测试工作的依据,描述了软件测试过程要开展的主要活动,及彼此之间的相互关系等。另外,由于软件测试是软件开发过程的一个生存周期阶段,因此软件测试模型还需要描述软件测试各项活动与软件开发过程各项活动之间的相互关系。依据测试模型,可以了解测试的相关内容[1]。
V模型是常用和容易被接收的软件测试模型,也适用于GJB5000A二级过程域中所使用的测试模型。V模型由PaulRook在80年代后期提出,它将测试过程分为不同阶段进行,分别对应软件开发的各个阶段。如:单元测试阶段检查软件代码是否符合设计阶段的详细设计要求;集成测试检查各集成部件是否符合概要设计要求;配置项合格性测试阶段检查CSCI是否符合软件需求分析阶段的软件需求规格说明的要求,每个测试阶段在通过评审后才能进入下一个测试阶段。V 模型图如图1所示[2]。
1 软件测试流程
图1 V模型
在GJB5000A二级的贯标实施过程中,软件测试过程可以使用基于V模型的软件测试模型开展。在GJB5000A过程体系中基于V模型的软件测试流程如图2所示。
图2所示,(1)在软件需求规格说明发布后,软件测试人员开始软件配置项合格性测试策划,但策划到何种程度,检查软件配置项合格性测试策划文档的初稿依据,文档内容质量的要求,测试用例设计的进度等均未明确。(2)在执行单元和集成测试时,若被测试软件是由汇编语言等实现的,由于没有合适的测试工具只能进行静态分析、审查,则单元和集成测试是否可合并到配置项合格性测试阶段执行?(3)对于测试过程中发现的测试问题及形成的测试用例应如何管理?测试问题报告单和测试用例集是否可以单独纳入配置管理?(4)测试问题是否由软件设计师一人决定或解决?不能解决或确认不解决且没有影响的问题应该执 行什么样的处理流程?
图2 GJB5000A过程体系中基于V模型的软件测试流程
因此软件测试流程管理并不规范,为提升软件测试效率,达到提高软件产品质量的目的,改善上述软件测试流程是必要的。
3 改进后的软件测试流程
根据以上对GJB5000A过程体系中基于V模型的软件测试流程的介绍和分析,文中对GJB5000A体系中基于V模型的软件测试流程进行了改进,发掘其流程中存在的不足,同时考虑测试过程的合理性和可控性,改进后的测试流程如图3所示。
图3 改进后的GJB5000A过程体系中基于V模型的软件测试流程
图3所示:(1)针对配置项合格性测试文档初稿 制定了检查单,明确了配置项合格性测试文档应完成的工作。(2)明确非C/C++语言实现的软件代码可以把单元及集成测试合并到软件配置项合格性测试阶段进行。而软件源代码和目标码的入受控库时机则由原来的单元测试结束后改为软件源代码同行评审后。(3)针对测试问题和测试用例的管理问题,把测试用例形成测试用例集进行入受控库管理操作,把测试问题报告单入受控库管理。(4)针对测试问题的处理流程,明确不予解决的测试问题通知利益相关方。
4 改进后的软件测试流程及应用
仪表着陆功能软件是某型飞机通信导航识别(CNI)功能子系统仪表着陆(ILS)功能的处理软件。它能为飞机进场着陆提供方位﹑下滑引导,性能满足Ⅱ类着陆要求,当引导信号不正常或不可靠时能产生告警信息[3-5]。
仪表着陆功能软件开发小组共4名成员,采用结构化开发方法进行项目开发,而采用改进后的GJB5000A过程体系中基于V模型的软件测试流程进行软件测试。即软件测试人员在软件需求规格说明发布后开始软件配置项合格性测试策划工作,并接受项目SQA人员使用检查单进行审查,确保软件配置项合格性测试策划工作开展的规范性和有效性;对于C语言实现的DSP软件,在软件编码完成后开展单元测试工作,对于测试中发现的问题经与软件项目主管和软件设计师沟通后,对于确认不解决的问题由项目经理、主管所领导和军代表签字后在单元测试结束时同软件问题报告单一起入受控库,并将测试用例或测试代码也一同入受控库,如此流程开展软件集成测试,直到软件配置项合格性测试结束,对于VHDL语言实现的FPGA存储器软件,则在代码同行评审后把软件源代码和目标码入受控库,直接转入软件配置项合格性测试阶段,但要求软件配置项合格性测试必须进行软件文档和代码审查工作[6]。仪表着陆功能软件在项目组4个成员近3个月的共同努力下,圆满完成了开发及测试任务。表1为收集的该项目使用改进后的软件测试流程前后进行软件测试所产生的平均成效数据。
表1 实施成效
通过表1数据可看出,在GJB5000A体系执行过程中,使用改进后的基于V模型的软件测试流程,不仅可节约软件的开发成本、提高软件的生产效率、提升软件产品的质量,且可提升用户的满意度和软件产品的可维护性。这表明在执行GJB5000A过程体系时,使用改进后的V模型软件测试流程与改进前的软件测试流程相比具有很多的优越性。
5 结束语
分析介绍了软件测试模型中常用的V模型及在GJB5000A过程体系中基于V模型的软件测试流程,在此基础上提出了一种更合理有效的软件测试流程,并应用于无线电军用航空领域某型仪表着陆软件测试中,在实践中取得了良好的效果。
[1]黄龙水,黄诚学.软件测试模型介绍[J].舰船电子工程,2004,24(3):35 -38.
[2]刘超.基于扩展V模型的软件测试[J].玉林师范学院学报,2006,5(10):26.
[3]陕西凌云电器集团有限公司.某型飞机通信导航识别(CNI)功能子系统仪表着陆(ILS)功能软件研制任务书[S].宝鸡:陕西凌云电器集团有限公司,2012.
[4]余俊,张菊萍,赵莉.嵌入式软件测试过程中的并行工程应用[J].电子科技,2008,21(8):57 -60.
[5]黄丽芬.软件测试数据自动生成算法的仿真研究[J].计算机仿真,2012,29(10):245 -247,382.
[6]孟祥丰.软件测试模型及其改进方案[J].电子设计工程,2012,20(23):380 -340.