某火炮武器系统电气控制软件测试实践
2010-01-20周云卿
周云卿,李 锋,顾 涛,马 斌
(西北机电工程研究所,陕西咸阳 712099)
某火炮武器系统电气控制软件测试实践
周云卿,李 锋,顾 涛,马 斌
(西北机电工程研究所,陕西咸阳 712099)
针对火炮武器系统软件的特点,利用Testbed和RTInsight搭建了嵌入式实时系统的软件测试平台,通过将Testbed软件测试工具的静态分析与代码插装技术和RTinsight实时数据采集分析设备相结合的方式,以某火炮电气控制软件为测试实例,对其进行了静态分析、文档审查与动态测试。为提高火炮武器系统软件的测试效率和有效性提供了借鉴方法。实践表明,此方法对提高火炮武器系统软件的质量及可靠性具有实际的应用价值。
计算机应用;火炮,嵌入式软件测试;静态分析
随着武器装备技术的不断更新和发展,嵌入式系统已应用到武器装备的各个层面。嵌入式软件作为嵌入式应用的核心,为武器系统提供了各种控制、计算与管理功能,其复杂度越来越高、规模越来越大。因此,嵌入式软件的质量与可靠性往往决定着武器装备的质量和作战效能。以软件测试工作为切入点,严格按照GJB5000的相关规范,在武器装备研发过程中贯彻软件工程化的思想,是保证军用软件产品高可靠性的有效措施[1]。
本文通过研究软件测试技术在火炮武器系统软件测试中的应用,以某型火炮武器电气控制软件为测试实例,对火炮武器系统软件测试的内涵、测试策略及方法进行了探讨。
1 被测系统概述
某火炮软件系统由随动系统、火控系统、导航系统、电气控制、任务终端和初速测量雷达等软件组成,通过CAN2.0总线进行信息的交互。被测系统运行于电气控制系统中,是全炮电气控制系统中的重要组成部分,主要完成随动系统高低方位驱动器的供电和与全炮电气控制系统的信息交互。系统采用8051系列单片机,编程语言为8051 C语言,仿真器采用伟福SP51,系统结构与被测系统连接方式如图1所示。
2 测试内容及方案
软件测试工作开始阶段需确定测试范围、测试项目和制定测试方法。根据被测软件的特点和组成。首先应对代码进行静态分析,按照国军标的相关规范标准对被测代码进行相关的静态技术分析,包括代码走查、代码审查以及质量度量标准分析等。
在此基础上,对部分重要模块进行单元测试,以验证重要模块功能与实现;接下来的集成测试中,则对各模块之间的关联性予以验证。
最后对配置项进行软件需求规格中所要求的需求点的测试,并对所提交的文档按照完整性、一致性和准确性来进行检查,对其与代码设计中实现的功能追逐关系进行梳理。在相关问题修改后,需对问题更改单中所变动的部分进行回归测试[2]。
3 测试工具及仿真测试环境的搭建
Testbed是为应用软件的确认和验证提供源代码测试和分析的质量控制工具,不仅适合于主机平台软件测试,同时也适合于嵌入式平台的软件测试,支持多种开发语言。RTInsight是一款定时硬件数据采集设备,它通过与被测试系统的总线连接实时监控系统的总线读写情况,配合 Testbed使用实现覆盖率分析,时间性能分析等功能。依据被测软件的运行及开发环境,采用主机/目标机的测试方式搭建测试环境[3],如图2所示。
4 测试实例
4.1 静态测试
使用Testbed进行静态分析后,工具可提供:代码评审报告;度量报告;线性代码序列和跳转覆盖报告(LCSAJ)以及静态调用图和控制流图等。依据报告进行了代码审查、静态质量分析和代码走查等工作。在代码审查中参照GJB 5369-2005中强制项的要求对源程序进行检查,对不符合项进行人工筛选以《问题报告单》的形式进行记录;代码静态质量分析主要对文本度量、注释度量、扇如数、扇出数、圈复杂度、基本圈复杂度、出口度量和不可达语句等项进行检查,涉及到局部变量与函数参数时需进入源程序内进行检查,并进行记录。最后,代码走查则根据前两项检查的结果采用人工方式对所发现的问题予以分析确认,并对问题进行错误严重程度划分。
4.2 文档审查
根据GJB 2786A-2009《军用软件开发通用要求》、GJB 438B-2009《军用软件开发文档通用要求》及软件开发过程质量管理等方面的规定,对软件需求规格说明书、软件开发计划书等进行审查。软件需求规格说明书中主要对需求内容是否满足产品技术协议书或软件研制任务书的要求,质量要求是否满足系统定义,是否明确了对软件可靠性和安全性的要求,是否明确了对软件的维护性的要求等进行了检查;软件开发计划书中则主要对软件开发阶段划分是否明确,计划是否明确、合理、可行和软件配置管理的要求是否明确等进行检查。文档审查采用文档审查单的形式,在测试需求分析与策划阶段即开始对文档的相关审查内容进行记录汇总,形成文档审查报告[4]。
4.3 动态测试
4.3.1 RTInsight的硬件链接
由于8051系列CPU地址总线和数据总线复用的特殊性,RTInsight无法将CPU的地址总线分离出来。因此,RTInsight与被测系统间需要连接一个仿真器,其作用是将地址总线从CPU内部引出。在进行连接时,由于系统程序是固化在CPU内部存储器中的,CPU在进行指令读写时其外部总线上不会产生相应的信号。结合测试时系统使用的SP51仿真器,经过分析,需将RTInsight Probe置于仿真器的CPU与主板之间,才能完成相关信息的监控[5]。其连接方式如图3所示。
4.3.2 覆盖率测试
采用Bitmap插装技术可将插装代码对软件执行率的影响减到最小,其原理为:将插装后代码在目标机运行时的相应特征信息存放到一个固定大小的数组中,当需要对覆盖率信息进行分析时,通过开发调试环境读取数组中的内容提供给Testbed进行覆盖率分析。覆盖率信息对应一个bitmaparr[] 数组,定义为 unsignedintbitmaparr[(qqqbranches/8)+1]。其中qqqbranches为程序的分支数且该数组的大小也由分支数决定。当代码插装完成下载到目标机运行后,插装点所形成的覆盖信息将被写入数组 bitmaparr[]中,代码为bitmaparr[((i一 1)/8)]I=(1<<((i一1)%8));式中:i为分支的索引[6],代码部分如图4所示。
在程序的运行过程中,从Rtview上可以清晰地观察到语句覆盖率、分支覆盖率和调用覆盖率的动态分布过程。此外,还可精确地查看到哪些语句、分支被执行,哪些函数被调用;如图5所示。
4.3.3 性能分析
利用平台提供的性能分析手段可分析记录程序中每个函数的最大运行时间,最小运行时间,总的运行时间以及运行次数,或者任意两点间的运行时间。对本次被测软件时间性能分析结果如图6所示。
4.4 测试结果分析
静态测试中多数的错误是由编程人员的不良编程习惯造成,例如:不匹配的参数、不适当的循环嵌套和未使用的变量空指针等。只要编程人员养成良好的编程习惯就可解决此类错误。
覆盖率测试中,首次测试覆盖率并未达到预期的效果,分析其原因是:测试用例设计不够所致,根据结点覆盖信息重新对测试用例进行了补充之后再次进行测试,相关覆盖率达到了要求;性能分析方面,考虑到代码插装对其性能的影响,在插装对系统实时性影响不大的情况下,可采用RTInsight所自带的性能分析软件进行分析。反之,则需采取其他手段,如利用系统仿真器所具有的性能监测功能进行相关分析。
5 结 论
静态分析通过采用人工和工具辅助的手段不但可以提高测试效率,测试结果还可以图文的方式方便地给出,使测试人员在较短的时间对被测软件有一个大概的了解,从而根据测试结果确定需要重点分析和走查的内容,为软件编写人员的修改提供了参考。
覆盖率测试是嵌入式软件测试的难点,针对嵌入式软件系统的软硬件资源相对缺乏、覆盖测试数据难以采集和代码插装对执行效率的影响等特点,采用Testbed结合RTInsight的方式使测试人员可监视和分析到已测或未测、覆盖或未覆盖的语句和分支,在必要时通过覆盖信息启发测试人员补充测试用例以达到测试的充分性。通过使用多种测试技术与手段相结合的方法使火炮型号软件的编程更加规范,为软件的后续测试、系统验收和交付打下了坚实的基础,对保证火炮武器系统软件的质量和可靠性具有非常重要的现实意义。
References)
[1]李锋,温波,张洪海,等.武器研发过程软件工程化实施研究[C].见:兵器装备信息化、智能化技术发展与应用论文集.北京:中国兵工学会计算机技术与应用专业委员会,2009:235-239.
LI Feng,WEN Bo,ZHANG Hong-hai,et al.Weapons research and development process of the implementation of software engineering[C].In:A Release Notes of The Developing and Application of Digitization and IntelligentizeofOrdnanceArming.Beijing:Computer Technology and Applications Speciality Committee of China Ordnance Society,2009:235-239.(in Chinese)
[2]池云.嵌入式软件测试研究[J].中国科技信息,2009(2):80-81.CHI Yun.Application of software test of embedded software Test[J].China Seicen and Technology Information,2009(2):80-81.(in Chinese)
[3]丁旭,崔吉岗,刘春裕.军用嵌入式软件结构覆盖测试技术[J].指挥控制与仿真,2008,30(3):120-122.
DING Xu,CUI Ji-gang,LIU Chun-yu.Test technology of procedure structure cover for military embedded software[J].Command Control&Simulation,2008,30(3):120-122.(in Chinese)
[4]高卫兵.嵌入式软件测试及军检验收[J].现代电子工程,2004(4):52-57.
GAO Wei-bing.Embedded software testing and military test collection[J].M odern Electronic Engineering,2004(4):52-57.(in Chinese)
[5]杜延,刘从越.嵌入式实时系统软件测试实践[J].微计算机信息,2006,22(9-2):31-33.
DU Yan,LIU Cong-yue.Testing method for embedded realtime system software[J].Control&Automation,2006,22(9-2):31-33.(in Chinese)
[6]陈策,赵春霞,赵绍彩.TESTBED在某型高炮火控软件测试中的应用[J].测试技术学报,2009,23(2):123-128.
CHEN Ce,ZHAO Chun-xia,ZHAO Shao-cai.Application of testbed to fire control software test of certain antiaircraft artillery[J].Journal of Test and Measurement Technol,2009,23(2):123-128.(in Chinese)
Test Practice of Electric Control Software of A Certain Gun Weapon System
ZHOU Yun-qing,LI Feng,GU Tao,MA Bin
(Northwest Institute of Mechanical&Electrical Engineering,Xianyang 712099,Shaanxi,China)
Aimed at the features of gun weapon system software,a kind of test platform of embedded real-time system software was constructed by use of Testbed and RTInsight.Combined static analysis of Testbed software test tool with code plug-in mounting technologies and devices of RTInsight real-time data acquistion and analysis,taking the electric control software of a certain gun system as an actual test example,its static analysis,document examination and dynamic test were carried out.The results of study can provide reference method for improving test efficiency and validity of gun weapon system software.The practice showed that this method has actual application value for improving quality and reliability of gun weapon system software.
computer application;gun;embedded software test;static analysis
TJ306
A
1673-6524(2010)04-0028-04
2010-05-21;
2010-07-12
周云卿(1981-),男,硕士研究生,主要从事计算机软件工程研究。E-mail:jayyunqing333@163.com