丁怀龙 刘海山 樊茜 焦震 宋茜
摘 要随着航天事业的快速发展,嵌入式软件的应用越来越广泛,同时也面临着开发质量低下、低层次问题频出等急待解决的问题,如何确保其质量成为迫切需要解决的问题。本文在深入分析当前嵌入式软件特点及测试现状的基础上,结合多年的软件测试经验,对软件开发方测试技术进行了深入的研究并取得了较好的应用成果,对于提高航天软件测试水平具有较高的参考价值。
【关键词】DSP 嵌入式软件 开发方测试
随着航天型号的不断发展,软件的重要性越发突出,已经成为航天工程中的重要组成部分,成为我国跻身航天强国的关键因素,如何确保航天软件质量是软件研制过程中的一项艰巨而紧迫的任务,因此必须要对其进行严格的测试。
软件测试是软件工程中的重要环节,是提高软件质量,降低软件项目风险的有效手段之一,为了降低软件在研制过程中的风险,提高代码质量,在软件投入运行之前,如何有效的开展软件开发方测试是当前研究的热点,因此一套行之有效的开发方测试技术能够有效提升测试效率,提高软件的可靠性、健壮程度,从而降低软件缺陷,提高软件质量。
1 伺服软件概述和开发方测试现状
1.1 嵌入式伺服软件特点
嵌入式伺服软件实时性越来越强,复杂度越来越高,软件分布在不同的硬件平台下,代码量越来越大,软件本身是伺服系统的一个核心部分,一个微小错误都可能影响伺服系统正常运行。
1.2 开发方测试现状分析
静态分析主要采用人工测试的方式,测试工具闲置一旁,不能被充分利用,单一的分析工具不能够检测所有缺陷问题;代码走查只注重代码审查,忽视文档的正确性,导致需求与代码设计过程反复;
单元测试过程未缺少信息化管理手段,不能对测试问题进行统计、分析和处理,造成测试宝贵资源的严重浪费,不能对测试用例进行有效管理,自动化程度较低,导致测试工作重复,测试效率低下;配置项测试过程中未能搭建真实测试环境,测试的有效性覆盖不全面,测试的创新性发展不迅速;软件测试相关标准不健全,体系建设不完善;软件测试人员水平参差不齐,测试过程缺少专业指导书;
2 开发方测试策略
2.1 静态分析
依据嵌入式伺服软件特点,对GJB5369规则集进行了适应性修改,形成了伺服软件规则集,多个测试工具交叉使用,主要包括:Testbed、Klocwork10、QAC/QAC++,测试内容更全面,涵盖了代码的规则检查、质量度量、缺陷检测、内存分析、安全检查。
2.2 代码走查
代码走查实施过程主要包括:
2.2.1 策划阶段
策划过程在静态分析之后,保障代码中无设计规则问题,确保代码及设计文档来源于受控库且软件无编译错误问题,成立代码走查小组,组长1人,走查专家5人及以上。
2.2.2 代码走查
根据走查专家所在领域及专业为每个人分配不同的任务,对相应的模块和文档进行走查,不但要检查软件设计本身的缺陷还要检查任务书与需求的一致性、需求与软件的一致性、软件与设计说明的一致性。
2.2.3 会议讨论
对走查出的代码和文档问题在会上进行讨论,完善软件和文档的设计工作。
2.2.4 生成报告
按照体系文件要求将发现的问题形成报告,并进行受控,对报告中的问题进行复查,真正实现闭环管理。
2.3 单元测试
针对嵌入式伺服软件代码量大、相似度高的特点,设计并实现单元测试用例的自动化生成及管理系统,使得单元测试的自动化程度显著提高、测试用例全面、规范,不仅提高了单元测试效率和测试质量,同时也提高了对测试用例的复用率,节省人力成本,系统结构图如图1所示。
2.4 配置项测试
根据硬件产品特点和现有条件搭建测试平台,目前主要为半实物仿真测试平台;配置项测试采取动静态结合的方式,测试人员除了进行功能、性能、接口等的测试,还要进行静态分析、代码审查、覆盖率、强度测试等;提交的被测件必须是经过前一级测试修改后的版本,且出自受控库。
测试过程除基本的测试技术及方法外我们还运用了自己的创新技术:
2.4.1 双冗余总线虚拟测试技术
使用虚拟仿真测试软件模拟真实总线上的数据传输,实现各种指令的输入、故障的注入、遥测数据的接收和显示、状态信息的查询、参数的下载等。
2.4.2 故障模拟注入技术
利用需求所要求的基本数据类型和数据值进行测试,以測试软件在正常条件下的能力,还重点对软件的安全性、可靠性进行测试,防止因软件的容错机制、边界和异常数据处理的不完善造成系统崩溃,主要包括软件故障注入、硬件故障注入,数据故障注入,操作故障注入。
半实物仿真测试环境如图2所示。
2.5 制定专业软件测试标准
统一的标准规范是确保软件测试工作正规、有序、有效开展的根木保证。针对当前软件的特点,制定切实、有效的标准,包括:体系标准建设、软件测试的相关标准、软件测试专业指导书等,来指导、规范、约束测试人员开展工作,才能保证各类复杂软件测试的正确性和充分性,同时改进软件验证流程,有效提高软件测试的质量,具体的验证流程如图3所示。
3 结果分析
在开展开发方测试的初期由于软件数量较少、测试能力较低,发现的问题数量相对较少,到2013年软件任务数量急剧增加,软件测试能力有所提高,发现的问题数量也明显增多,经过最近几年的努力,软件问题数量呈下降趋势,软件质量明显提升,应用效果显著,具体数据如图4所示。
对几年来所有被测软件的各类型测试的测试BUG数量进行统计,可以看出软件代码走查发现的问题最多,经过代码走查和单元测试后,在配置项测试时发现的相对较少,由此也可看出,代码走查环节非常有效、非常重要,应高度重视,参考数据如图5所示。
4 结束语
本文对航天伺服软件开发方测试技术进行了全面、深入研究,总结出了一套有效的测试流程和思路,有利于提高软件研制进度和伺服软件设计质量,有效减少了航天伺服软件在测试过程中的错误遗漏,对伺服软件非常适用,未出现外场质量问题。软件开发方测试也需要不断改进和日趋完善,因此,必须尽快改进和完善嵌入式软件测试体系建设和测试流程管理,加强软件测试人员队伍的建设,加大先进软件测试技术和工具的应用,有效提高软件测试的技术能力和管理水平,只有掌握了正确的测试流程和测试方法,才能达到事半功倍的效果。
参考文献
[1]周涛.航天型号软件测试[M].宇航出版社,1999.
[2]李霁.软件测试行业发展对策研究[J].软件导刊,2010,9(03):35-37.
[3]朱少民.全程软件测试[M].北京:电子工业出版社,2007.
作者简介
丁怀龙(1979-),男,硕士学位。计算机应用技术专业,工程师,主要从事软件测试方面的研究。
作者单位
北京精密机电控制设备研究所 北京市 100076