军工电子装备软件质量管控平台建设及应用
2022-03-09陈晓鹏柳溪李昊
陈晓鹏, 柳溪, 李昊
(南京电子技术研究所, 江苏 南京 210039)
0 引言
近年来, 以信息技术与制造技术深度融合为显著特征的新一轮科技革命正在孕育兴起, 国防科技工业和武器装备建设进入了高质量发展的新时代,练兵备战强度不断加大, 军工电子装备体系化、 信息化、 自主化和实战化新特征不断凸显[1-2], 装备研制、 生产、 鉴定和使用不断深化, 软件质量已成为影响军工电子装备的质量及综合效能发挥的关键因素[3]。
随着工业4.0、 工业互联网等背景下的深化与升级应用, 军工院所的软件质量和软件工程化体系需要进一步地落实军用软件成熟度对定量和优化提出的要求。 《中华人民共和国国民经济和社会发展第十四个五年规划和2035 年远景目标纲要》 中也明确提出以数字化转型整体驱动装备研制方式和质量治理方式变革[4], 新时代装备质量管理面临新机遇新挑战。
在软件质量保证和评价体系建设方面, 传统的软件质量管控过程难以满足新的特点要求, 主要问题有:
1) 软件质量信息采集自动化程度低, 人力资源浪费严重, 软件质量管控与研发流程脱节, 各类软件质量数据孤立;
2) 对软件质量信息和资源缺乏有效的整理和利用, 软件质量知识未形成有效的组织资产[5]。
这些问题使得军工电子系统装备定型和交付时, 对软件质量信心不足, 潜在软件缺陷多, 给装备综合效能的发挥构成了很大的威胁。
1 原理与目标
当前, 军工电子装备朝着软硬件高度集成和软件定义装备的方向快速发展, 软件成为了军事电子装备的核心和灵魂[6]。
现代企业级的测试管理工具大多采用项目级的管理方式, 数据分析也均采取项目维度进行度量和管控。 在软件研制、 测试和质量保证过程中, 各个阶段的检查工具、 管理平台和检查结果互相孤立,不同平台、 工具之间的数据需要人工录入、 导出和分析。 软件质量数据管控平台将有效地解决测试实施过程中的难题。 为有效地提升装备软件质量管控的能力, 以量化、 自动化和可预测为发展目标, 以软件研制和质量管理流程为主线, 贯通需求、 设计、 编码、 测试、 联试和维护保障全过程, 构建装备软件质量信息管控体系。
软件质量管控平台能够多维度、 动态地监管所有项目的质量行为, 可以驱动质量检测工具、 管理工具, 实现软件动态监测, 可以采集数据, 自动地生成测试过程报告并生成标准化测试报告; 提供工具全过程数据汇聚透视功能, 持续地提供研发数据的优选解决方案。 软件质量管控平台系统以知识为基础、 测试为驱动、 质量为目标, 基于智能科学的技术和方法, 采用自动化和数字化技术与工具, 利用大数据、 机器学习等手段, 整合和优化利用测试数据资源, 实现数据流、 管理流和应用流的高度集成与融合。
平台设计时遵循以下基本原则。
a) 架构合理
平台应该采用结构模块化设计。 这不仅有利于平台的进一步扩充, 而且也有利于平台的修改和维护。
b) 良好的操作性能
平台应设计一定的检测程序, 如状态检测和诊断检测, 以便平台发生故障时, 及时地查找故障部分。
c) 高安全性
平台在设计时采用严格的权限控制, 所有的接口均须使用加密认证方式, 以保证数据的高安全性。
2 平台设计与实现
当前军工电子装备软件质量数据贯穿需求分析、 设计编码、 测试验证、 外场调试和定型实验全过程, 涉及过程检查、 文档审查、 代码测试和软件测试等主要环节[7]。 软件质量数据管控平台以相应的自动化辅助手段, 贯穿软件需求、 设计、 编码、 测试、 外场调试、 定型实验和维护保障全流程, 覆盖档案管理、 配置管理、 计划管理和定型审查等管理系统, 联通典型缺陷库、 典型测试用例库、 软件模型库和典型场景库等软件测试知识库,通过监视测量, 实现软件质量数据采集, 并将数据统一管理在软件质量数据管控平台中, 以便随时可以进行分析和反馈, 如图1 所示。
图1 软件质量数据管控平台架构
在软件研制过程适当的时机, 当特定的条件满足时(如归档、 审批、 评审和转阶段), 与相应配置的管理、 计划、 调试和档案平台互联, 自动地启动基于文档、 代码、 计划和需求等项目的检查和分析工具, 生成检查和分析结果, 将信息自动地导入软件质量数据管控平台。 同时, 基于各种商用、 自研测试工具, 利用工具接口、 测试数据管理平台应用 程 序 接 口 ( API: Application Programming Interface) 和数据库, 打通测试工具输入信息提取及测试结果保存自动化通道。 针对当前各种软件管理平台、 软件检查和测试工具数据孤立的问题, 实现软件质量信息的互联互通, 完成全流程软件质量管控的自动化。
2.1 平台架构与设计
软件数据质量管控平台主要分为项目管理、 测试中心、 文档生成、 质量中心、 质量态势和知识工程等几个模块。 每个模块提供相应的服务功能, 通过远程过程调用 (RPC: Remote Procedure Call)来实现页面可视化展示。 平台整体架构设计如图2 所示。
图2 平台整体架构设计
软件数据质量管控平台采用模块化的设计, 每个模块提供不同的服务功能, 由分布式服务框架Dubbox (即Dubbo Extensions, 一种分布式服务框架) 统一协调各个服务模块, 各个模块可以统一部署到一台物理机上, 也可以部署在不同的物理机上; 随着后期平台功能的不断丰富, 只需要增加相应的功能模块即可。
软件集成整体设计采用基于面向 服 务 编 程 ( SOA: Service Oriented Architecture) 总 线 思 想。SOA 思想在软件测试工具集成平台发挥了不可或缺的作用。 这种系统模型能很好地对软件系统解耦, 达到松耦合的实现目标。 同时, 在对松散的软件系统进行软件集成时, 通过将原有的软件系统接口或API 作为服务发布, 较高效地集成在同一平台之下。 软件测试工具集成过程中主要采用Web应用程序组件服务(Web Services) 技术来具体实施, 通过超文本传输协议(HTTP) 发送和接收基于简单对象访问协议 (SOAP: Simple Object Access Protocol) 的 可 扩 展 标 记 语 言 (XML:Extensible Markup Language) 数据。 Web Services服务通过因特网向外发布自己的可接入信息, 通过可接入信息就能访问到系统模块提供的功能服务。
2.2 平台实现
项目开始阶段通过快速开发出工具原型进行专家讨论并确定了系统需求, 之后采用迭代模型的开发模式开发系统, 通过不断的迭代改进而实现了平台系统。 平台主页如图3 所示。
图3 软件质量数据管控平台
该平台采用SOA 服务架构能够有效地降低各个模块的耦合度, 同时能够实时地监控各个模块的运行情况, 支持分布式的部署, 满足实际的部署要求, 以及方便后期功能的扩展; 在不改变、 不停止当前系统的运行情况下只需要将新的功能模块注册到服务治理模块上即可, 提高了系统的可拓展性。将不同的服务模块部署在单独的物理机上能够有效地提高运行速度, 也可统一部署在一台物理机上。
平台具有如下特点:
1) 平台采用B/S 架构(Browser/Server 结构),具有良好的可扩展性、 可维护性和开放性;
2) 具备多维度数据管控, 能够基于现有的行业领先的软件测试管理平台应用程序生命周期管理(ALM: Application Lifecycle Management) 进一步地形成多个维度数据的管理, 进而实现多项目联合管控和分析, 如基于领域、 令号等;
3) 支持部门的业务功能, 平台应当支持文档审查、 SQA 等功能, 具备对测试过程中衍生的数据自动跟踪管控的功能;
4) 集成测试工具, 能够在线驱动Testbed (一种软件代码检查工具)、 VLinter (一种FPGA 代码检查工具) 等测试工具完成代码检查、 接口测试等测试验证, 支持定制化的在线测试报告和提供原生报告下载;
5) 测试过程文档自动生成, 能够根据军工的报表格式需求进行自动生成测试计划、 测试说明和测试报告等过程文档, 符合GJB 438B、 总装等标准的测试文档的集中管控;
6) 数据检索分析, 能够提供强大的数据检索分析功能, 可以从每个执行的过程中进行日、 月、年等维度分析, 也可以采取产品多项目维度、 或者同类型的产品系列进行质量可视化度量、 分析;
7) 可进行工作量统计, 平台提供基于多个数据视角的人员工作量统计视图;
8) 集成软件质量度量模型[5]、 知识图谱[8]等智能化手段进行软件质量数据分析。
通过装备软件质量数据管控平台的建设, 形成以量化、 自动、 智能为特征的装备软件质量管控模式, 从而实现:
1) 从人工为主的软件测试和质量保证, 向自动化为特征的软件质量管控转变;
2) 从定性、 孤立的软件质量评价方式, 向定量、 协同的软件质量管控转变;
3) 从通用软件质量方法论研究, 向工具支撑的软件质量工程应用转变。
3 应用及成果
近年来, 通过不断迭代优化来实施装备软件质量管控平台建设, 实现了产品软件整体质量水平的持续提升。 软件静态分析/代码审查发现缺陷密度逐年下降明显, 软件原始质量逐步地提升, 编码规范缺陷密度下降90%; 各个软件研发部门对软件测试通过率的重视程度日益提高, 加强自检自查工作, 产品软件测试一次通过率稳步地提升到95%以上; 依托工具平台软件测试能力进一步地提升,产品软件质量问题数和缺陷密度不断地下降, 降幅达35%; 用户和外场反馈软件故障问题数逐年下降, 问题数下降约55%。 软件质量问题年度统计情况如图4 所示。
图4 软件质量问题统计情况
此外, 产品软件质量保证(SQA) 问题数、 软件文档审查问题数等趋于稳定、 软件质量态势稳中向好, 装备软件成熟度和软件研制效率不断地提高, 产品软件研发周期缩短30%以上; 参加重大试验和保障任务的武器装备软件未出现严重问题,重大任务保障成功率达100%, 有效地保证了重大试验软件“零故障”、 产品交付软件“零缺陷”, 持续地改进提升产品软件质量和用户满意度。
装备软件质量管控平台的建设能推动系统软件质量管控转型升级, 有力地提升装备系统软件质量。 可以在通信、 电子战和导航等国防电子行业软件测试和质量管控中推广和应用, 具有示范意义和推广价值。
4 结束语
本文对军工电子装备的软件质量管理现状进行了分析, 基于现状与问题, 以量化、 自动和可预测为发展目标, 以装备软件全过程协同研制为抓手,以软件研制和质量管理全生命周期为主线, 构建了贯通需求分析、 设计与实现、 软件测试和运维保障全过程的装备软件质量信息管控体系。 通过对所在单位雷达系统装备软件的实践使用, 有效地提高了产品软件质量和研发效率, 取得了较好的雷达软件质量管理效果。
未来工作中, 笔者将进一步地研究利用软件质量数据进行多维度软件质量分析, 为装备软件项目管理、 开发和测试提供更智能化辅助决策、 信息咨询和测试应用等服务。