军用软件的测试与实践方法
- 格式:pdf
- 大小:144.78 KB
- 文档页数:3
Vo1.31.No.9 September,2006 火力与指挥控制 Fire Control and Command Contro 第31卷第9期 2006年9月 文章编号:1002—0640(2006)09—0091—03 军用软件的测试与实践方法 张永强,陈永革,姚立新 (空军工程大学导弹学院,陕西三原71 3800) 摘 要:首先分析了民用软件存在的问题,然后结合军用软件的特点,对影响军用软件可靠性的因素进行分析,最后提出 提高军用软件质量的几种测试与实践方法。 关键词:军用软件,可靠性,软件测试实践 中图分类号:TP31 文献标识码:A Testing and Practice for Military Software ZHANG Yong—qiang,CHEN Yong—ge,YAO Li—xin (The Missile Institute of AFEU,Sanyuan 71 3800,China) Abstract:Firstly analyzing the problem of software for civil use and combining with the character of military software,the article has analyzed the factors that affect the reliability of military software,and eventually proposed several testing and realizing methods of enhancing the quality of military software. Key words:military software,reliability,software testing practice
引 言 1 影响军用软件可靠性的因素 军用软件是指为部队生产的软件,其定义比较 广,可以分为几个子类,例如与武器系统、指挥、控制 相关的软件(通常缩写为C3),以及与后勤系统相关 的软件等,本文提到的军用软件特指前者。现代化战 争武器装备的技术含量与软件质量是成正比的,一 架现代战斗机所包含的软件已经超过250 000个功 能点(功能点是表示软件应用系统尺寸的测量单 位),也就是2 500万行源代码,一艘Aegis级现代 战舰或潜水艇所包含的软件为500 000多个功能 点,也就是5 000万行源代码。如此庞大的源代码数 量要是没有严格的检测措施,可想而知出错率是相 当高的,因此,软件的可靠性工程必定要作为一个十 分重要的因素考虑。
收稿日期:2004—12一O1 修回日期:2005—02—12 作者简介:张永强(1 979一 ),男,甘肃陇西人,硕士,主要 从事空军装备管理研究。 软件可靠性(Software Reliability)是指在规定 的条件下和规定的时间内,软件不引起系统故障的 能力。它不但与软件存在的差错有关,而且与系统输 入和系统使用有关。对于军用软件,还具有实时性、 并发性、结构复杂及运行环境恶劣等特点。 1.1开发过程中存在的问题 软件使用维护过程中出现的问题大多源于开发 过程各个阶段存在的缺陷,早期阶段存在的缺陷会 造成更大的隐患。软件生存周期的各个阶段可能引 入的软件错误或故障比例见表1l_1]。在需求分析和 软件设计阶段发生错误或故障的比重各占55 和 17 9/5,明显高于软件生存周期的其他各个阶段,是影 响软件可靠性的关键阶段。从前期到后期,引入错误 的影响不断减少,所以要尽量把错误消除在开发前 期。 1.1.1 需求分析阶段
需求分析阶段的故障比例几乎占整个软件开发 维普资讯 http://www.cqvip.com ・92・(总第31—764) 火力与指挥控制 2006年第9期 表1 软件的全寿命周期故障比例 阶段名称 故障比例 需求分析 设 计 编码与单元设计 综合与测试 使用维护 55 17 l3 lO 5 过程中故障比例的一半还多,所以该阶段需要加倍 重视,但军用软件有一个特点就是使用环境恶劣,再 加上战场环境复杂,难以预料,所以,软件输入端数 据变化不稳定。对军事环境了解不够的设计人员在 软件需求分析阶段对于战场突发事件的考虑必然不 是很全面,这势必降低软件可靠度。 1.1.2设计阶段 由于软件在设计开发阶段局限于程序员素质, 所以软件一定会存在本身的缺陷和错误。软件在设 计阶段平均错误密度见表2[2]。 表2设计阶段平均错误密度 设计阶段 平均故障密度 编 码 单元测试 系统测试 使 用 0.099 50 O.Ol9 2O 0.006 01 0.O01 48 1.1.3编码阶段 由于我国IT业发展还不成熟,没有十分完善 的程序标准以及检测体系,软件的开发、评审、测试、 交付使用后的维护大都是由编程者来完成,这就意 味着软件必然存在着局限性缺陷,软件“个性化”较 强,非开发者很难介入软件维护,这与军队的特征是 不相适应的。 1.1.4软件调试与测试阶段 所谓软件测试,是通过对源程序及其实际执行 所产生的结果进行检查分析,以找出程序中可能隐 藏的错误的过程,即为了发现程序错误而执行程序 的过程。程序测试过程通常要反复进行多次,直到满 足某种测试策略为止。而现状为,专业的测试机构 少,主要由程序设计者自己测试检验,而且检验样本 量少,缺乏可信度,使软件在设计阶段遗留的缺陷、 错误不能暴露,在使用阶段必然会发生故障。假如故 障在平时发生,尚可修复。但在战时,由于复杂环境 的影响,软件本身的缺陷导致故障发生致使软件失 效,后果将不堪设想。 1.2计算机安全 病毒是计算机的克星,更是软件的天敌。我军目 前采用的计算机多为国外进口,系统软件依赖性比 较强。这些软硬件都留有不为公开的系统漏洞和硬 件隐患。一旦发生战事,国外敌对势力就很可能利用 该弱点向我方计算机终端输入各类病毒,导致我方 软件失效,或者使我方计算机瘫痪,对我军实施致命 打击。 1.3使用管理阶段存在的问题 由表1可知,在该阶段,软件发生故障的比例相 对减少,主要是由于操作不当、不重视维护、没有记 录必要的维护日志、缺乏管理造成的,或是在使用中 发生需求变化而引起的故障。 2 军用软件的测试与实践 军用软件不同于民用软件的一个最显著的特点 是,如果出现故障或缺陷,轻则造成巨大经济损失, 重则导致人员伤亡。如军工试验,由于软件的错误, 导致整个试验失败,又如一些航空航天项目,一次失 误将可能造成数百亿的直接经济损失。在战争中造 成的后果更是不可估量。所以,军用软件在研发过程 中必须根据标准实施,在交付使用之前必须经过严 格的测试。 2.1军用软件质量基准测试 基准测试是指特定软件开发单位之间定量数据 的比较。军用软件的质量基准测试应该包括功能点 分析,只使用代码行数度量标准对于多种语言之间 的比较是不可靠的,同时使用以上两种标准对于基 准测试研究是一种最佳实践。以美国软件业为例,其 平均功能点缺陷数见表3[ 。 表3美国软件业平均每个功能点的缺陷数
军用软件有个特性,就是高质量和高可靠性。例 如,美国军用软件领域的缺陷清除率可达95 ,在 这个方面,只有系统软件可与其相媲美。其中一个原 因就是在这两个领域中,都经常使用一些精细的软 件质量方法,如使用正式的设计和代码审查;使用专
业软件质量保证人员或质量保证部门,其作用包括 维普资讯 http://www.cqvip.com 张永强,等:军用软件的测试与实践方法 (总第31—765) ・93・ 缺陷预估、缺陷测量、正式审查协调等;使用质量预 估工具,预测可能出现的错误个数,以及要使用的缺 陷预防和清除操作;采用风险分析,在需求阶段完成 或基本完成时进行的正式风险分析,需要考虑技术 风险、财务风险和进度风险等。 在军用软件开发过程中要特别注意几个关键因 素:项目管理方法、需求分析方法、设计与规格说明 方法、编码方法、可复用方法、变更控制方法、用户文 档编写方法等。 2.1.1 SEI能力成熟度模型 美国SEM CMM(软件工程研究所能力成熟度 模型即软件开发实践模型),CMM不是静态的,而 是随时间不断进化的。军用软件领域需要达到第三 级或更高水平,见表4、表5。 表4 SEI CMM的五个等级 。
表5 SEI CMM级别潜在缺陷与清除缺陷 妇
2.1.2其他方法 最佳质量的软件只能通过缺陷预防、评估或审 查以及各种类型的测试活动系统化的组合才能取 得。要提高军用软件质量,除以上方法之外,还应该 采用以下两个实践: ①独立确认与验证,指利用第三方或外部公司 调查所有需求是否都满足,所有设计和其他文档是 否满足GJB有关内容。该方法唯一的弊端就是增大 了成本。 ②由第三方完成的独立测试,指聘用军用软件 项目承包商之外的其他公司,在内部测试之后,进行 后期阶段的测试工作。这样可以暴露一些软件在设 计阶段就存在的自身缺陷,保证测试的客观性。 2.2军用软件的编码实践 军用软件领域一个明确的最佳实践,是对武器 和通信系统使用正式的程序结构化技术。其次是使 用正式的代码审查,包括关键应用系统的所有模块, 先进行复杂性分析、模块级缺陷跟踪、正式审查,再 进行修复或重新开发,查找并清除容易出错的模块。 使用缺陷跟踪方法和粒度很小的能够找出容易出错 模块的工具,根据严重程度和来源跟踪缺陷,跟踪到 具体模块,同时根据预测的缺陷数量对比实际缺陷。 还有,使用精细的技术预测、测量和改进软件性 能水平。在编码阶段,要监视武器和通信系统的吞吐 量和响应时间,并进行特殊的性能测试。还可以聘请 性能测试专门人员对有可能降低性能水平的关键模 块或控制路径进行调试。 2.3军用软件的用户文档实践 军用软件的用户文档量一般比较大,最好利用 职业技术文档编写人员、编辑和图表技术人员编写 用户手册和指导材料,也可以聘用职业编辑,但效果 不如前者。此外,软件工程师和用户还要对编好的文 档逐页进行正式的文档审查,作为畅通的拷贝编辑 和事实检查的补充。 3 结束语 本文通过分析民用软件质量存在的问题,结合 军用软件特点,对影响军用软件可靠性的因素进行 了分析,并提出军用软件测试与实践的几种措施。从 文中可以看到,随着科技的不断发展,软件的灵魂地 位逐渐突出,软件的可靠度也随之表现出其重要性, 所以要着重抓好军用软件的质量建设,为打赢高科 技战争创造有利条件。 参考文献: E1] 郑国雄,李英女.军用软件可靠性策略研究EJ].飞行 器测控学报,2003,22(3):75—79. E2] 高晓宁.计算机软件可靠性分析及抗不可靠性方法 EJ].航空计算技术,2003,33(3):73—75. E3] Capers Jones(美)著,韩柯,等译.软件评估、基准 测试与最佳实践EM].北京:机械工业出版社,2003. E4] 刘晓东,张恒喜.飞机可靠性与研制费用相关关系研 究EJ].空军工程大学学报(自然科学版),2000 r1 (】):63—66.
维普资讯 http://www.cqvip.com