[摘要] 随着软件系统规模和复杂度日益升高,越来越多的软件项目明确提出软件的可靠性要求。而涉及高可靠性软件开发的软件企业也越来越意识到,软件测试在这些项目开发过程中绝不是一种辅助性工作,而是从软件质量控制角度保证软件工程过程质量的最有效方法。有鉴于此,本文以CraftGS航天项目模型为例,系统地介绍了一套行之有效的软件测试方案,该方案对同类高可靠性软件项目测试工作的开展具有一定的参考意义和指导作用。
[关键词] 高可靠性 软件测试 软件验证技术 软件确认技术 软件测试管理
1 引言
高可靠性软件泛指一类软件:该类软件运行过程中若出现故障会引发重大灾难性事故或经济损失。通常航天型号软件、银行系统软件、医疗行业软件、通讯行业软件等均属此范畴。目前,越来越多的软件企业涉及高可靠性软件项目,如何保证软件质量成为众多企业面临的一个很重要的课题。这篇文章结合某航天项目地面应用系统模型(本文命名为 CraftGS ),重点讨论如何从软件测试的角度保证此类产品的软件质量。
2 CraftGS 项目简介
CraftGS 是一个很经典的卫星地面应用系统模拟项目。它分为 5 个子系统:数据接收子系统 (DAS) 、数据预处理子系统 (DPS) 、运行管理子系统 (OMS) 、数据管理子系统 (DMS) 以及数据产品实现 (DPRS) 子系统。 CraftGS 的总体可靠度要求是 0.95 。各分系统分配到的可靠度指标是如下:
| 分系统名 |
可靠度指标 |
| DAS | 0.99994 |
| DPS |
0.99865 |
| OMS |
0.99910 |
| DMS | 0.99950 |
| DPRS |
0.99502 |
CraftGS 的业务逻辑是 Data Package 从卫星传入 DAS , DAS 负责解包,将解包后数据传入 OMS 及 DPS , OMS 通过 DAS 传来的数据检测卫星是否正常运行并负责卫星飞行姿态调整; DPS 负责调制 DAS 传来的数据,转换成有意义的逻辑数据。 DPS 处理后的逻辑数据传入 DMS 以及 DPRS 。其中 DMS 负责数据备份、数据查询及数据链路维护等操作; DPRS 负责将 DPS 处理过的逻辑数据分门别类地转换成数据产品,并封装发布。
考虑到项目固有的可靠性安全性要求, CraftGS 系统采用 Java+Unix 技术架构实现。该架构从编程语言级和系统级对软件产品质量做了保证。为了控制软件产品开发过程中的质量,笔者推荐采用如下软件测试方案。
3 测试方案:软件验证技术 + 软件确认技术 + 软件测试管理
CraftGS 系统的软件测试方案由三个部分组成,即软件验证技术、软件确认技术和软件测试管理技术。它们内涵及相互之间的关系如下图所示:
|
CraftGS 测试方案 | ||
|
测试技术层面 |
测试管理层面 | |
|
软件验证技术 |
需求规格说明验证 |
软件测试团队组织管理 |
|
设计规格说明验证 | ||
|
代码验证 |
软件测试计划管理 | |
|
交付验证 | ||
|
软件确认技术 |
单元测试 |
软件缺陷(错误)跟踪管理 |
|
集成测试 | ||
|
系统测试 |
软件测试件管理 | |
|
交付测试 | ||
其中,软件验证技术着眼于排除软件开发文档中的错误。验证活动涉及的文档按开发流程主要涉及需求规格说明、设计规格说明(包括概要设计规格说明、详细设计规格说明、数据库设计规格说明)、编码规格说明、产品交付文档等一系列书面材料。目前验证技术的实施在很大程度上是依靠测试人员手工完成的。验证活动视实际需要有时还会涉及到开发人员和目标客户,需要得到他们必要的理解和支持。验证测试采用的主要测试手段有:面对面质询、文档抽查、非正式会议、同行评审等等。

