在DO-178C标准下对军用信息系统软件测试的考虑

2020-10-14 00:47陈汉一刘春明韩小波
网络安全技术与应用 2020年10期
关键词:测试用例软件测试军用

◆陈汉一 刘春明 韩小波

在DO-178C标准下对军用信息系统软件测试的考虑

◆陈汉一 刘春明 韩小波

(中国电子科技集团公司第28研究所 江苏 210007)

DO-178C标准是在民航领域对机载软件进行适航认证的权威标准。本文首先对DO-178C标准针对软件测试提出的目标要求进行了阐述,之后考虑在军用信息系统软件测试中参考实施DO-178C标准中强调的几方面内容,初步应用到测试计划、开发、执行、覆盖分析这几个阶段,期望通过加强软件测试来提升软件的可靠性。

DO-178C;软件测试;测试目标

在军用信息系统软件的研制过程中,越来越重视软件的安全性、可靠性,对软件测试工作的要求也随之变高。目前,国内军用软件研发工作主要遵循GJB5000A《军用软件研制能力成熟度模型》,标准强调规范软件研发过程,通过加强对过程管理控制提高软件的质量。

DO-178《机载系统和设备合格审定中的软件考虑》是一套应用于民航领域,对机载软件进行适航认证的权威标准,与2011年12月发布了最新版本DO-178C。DO-178C针对不同安全等级的软件分别提出了目标要求,通过审定确认目标的完成,确保软件实现预期的功能,在安全性上满足适航的要求。文献[1]将DO-178C与GJB5000A进行了比较。

软件测试是对软件验证的重要途径,为了提高软件的安全可靠性,本文研究了DO-178C标准对软件测试提出的目标,考虑在军用信息系统软件的测试过程中实施。

1 DO-178C标准定义软件安全等级

DO-178C标准定义了几种失效状态,分别为灾难性失效状态、危险性/极其重要的失效状态、重要的失效状态、轻微的失效状态以及无安全影响的失效状态。依据软件失效带来的危害等级,将软件分成以下5个安全等级[2]:

A级:异常状态会引发系统灾难性失效状态的软件;

B级:异常状态会引发系统极其严重失效状态的软件;

C级:异常状态会引发系统重要失效状态的软件;

D级:异常状态会引发系统轻微失效状态的软件;

E级:异常状态会引发系统功能的失效,但并没有给飞机工作能力或机组工作负荷带来任何影响的软件。

软件级别越高,在软件开发和验证过程中,要求达到的目标也越多。

2 DO-178C标准对软件测试的要求

2.1 基于需求的测试目标

基于高层和低层需求的测试是DO-178C符合性要求的主要活动。表1中列出了DO-178C标准总结的基于需求的测试目标。

表1 基于需求的测试目标[2]

●该目标满足独立性

○该目标应得到满足

空白:目标的满意度由申请人自行判断

2.2 测试方法

DO-178C聚焦于基于需求的测试,以保证需求得到满足且仅需求得到满足[3]。DO-178C提出了以下三种基于需求的测试方法[2]:

(1)软硬件集成测试:在目标计算机上执行软件测试,识别软件在其执行环境中运行的错误。这种测试方法的目标就是要保证在目标计算机上运行的软件能符合高层次的需求。

(2)软件集成测试:这种测试方法的重点在软件的相互关系,以保证软件部件之间正确交互,并满足需求和体系结构。

(3)低层测试:该方法重点在于测试低层需求的符合性。

DO-178C还提出了正常测试用例和健壮性测试用例的开发,并针对各等级的软件提出了要求,A,B,C级软件需要覆盖高层需求和低层需求的正常、健壮性要求,低层次需求对D级软件不作要求。

2.3 测试覆盖分析

DO-178C标准对测试的覆盖性也提出了一系列目标,主要包括需求覆盖分析、结构覆盖分析。

2.3.1需求覆盖分析

DO-178C标准对需求的覆盖性提出了目标:达到高层次需求的测试范围、达到低层次需求的测试范围,确保所有的需求都得到了测试。D级软件测试不要求覆盖低层需求。

2.3.2结构覆盖分析

DO-178C标准针对不同的软件等级,也提出了对结构覆盖的相关要求,如表2所示,A级软件需要满足语句覆盖、判定覆盖、修改的条件/判定覆盖。结构覆盖分析是为了识别在基于需求的测试中没有得到执行的代码结构。

表2 结构覆盖要求

DO-178C标准还要求高安全等级的软件要保证在基于需求的测试中执行了软件部件之间的数据耦合和控制耦合。DO-178C中给出了数据耦合和控制耦合的定义[2]:

(1)数据耦合:软件部件对不是完全置于该部件控制下的数据的依赖性;

(2)控制耦合:一个软件部件影响另一个软件部件运行的方式和程度。

3 对军用信息系统软件测试工作的考虑

在国军标中目标较常用的军用信息系统软件测试级别为单元测试、配置项测试、系统测试,可对应到DO-178C中的底层测试、软件集成测试、软硬件集成测试。DO-178C标准对软件测试工作强调:测试聚焦于需求、开发正常测试用例和健壮性测试用例、测试覆盖分析。本文考虑在军用信息系统软件的软件测试工作中融合DO-178C标准中强调的这几个方面。

3.1 测试计划

在测试计划阶段,对测试进行需求分析与策划,由软件测试师和软件负责人根据软件需求、总体技术方案、项目开发计划等文档确定计划执行的测试范围、测试项等,其他需要在测试计划中制定的事项可参见文献[4]。在配置项测试中,计划的测试项应完全覆盖被测软件配置项的功能、性能和外部接口;系统测试中,计划执行的测试项应完全覆盖被测软件系统的功能、性能和外部接口。为了确保需求的覆盖率,在每项需求和测试用例之间建立双向追踪,不能覆盖需求时,须在测试计划中给出合理说明。

3.2 测试开发

测试用例基于软件需求,在设计开发测试用例时,强调设计正常测试用例和异常测试用例。

异常测试用例的设计要点通常有:异常数据、异常数据类型、异常数据组合、异常数据序列、异常前提约束、非常规操作、最大负载、低配置、软件硬件故障等。

依据不同的软件安全等级,在单元测试中,要求覆盖功能、接口的正常情况和异常情况;在配置项测试中,软件配置项的每个特性都应被经过评审的正常测试用例和异常测试用例覆盖;在系统测试中软件系统的每个特性应被经过评审的正常测试用例和异常测试用例所覆盖。

3.3 测试执行

测试执行过程应按照测试规程要求进行,根据测试规程中的评估标准评估测试结果,测试执行之后需要对测试结果进行评审,确保测试结果的正确性,对无法评估的测试用例进行分析。

系统测试通常需要在目标计算机上执行,如果需要用目标计算机模拟器来执行测试,需要评估模拟器与目标计算机之间的差别,表明可替代性。

3.4 覆盖性分析

根据软件设计文档中对软件的安全等级划分,在单元测试中对软件进行结构的测试覆盖,包括语句覆盖、判定覆盖、修改的条件/判定覆盖。不同级别的软件需要满足不同的覆盖率,对D级软件不作要求。由于军用信息系统软件较一般的机载软件程序逻辑更复杂,覆盖修改的条件/判定需要耗费过多的工作量,可考虑在软件设计时对A级软件进行细化,识别出A级软件中的关键重要部件,对A级软件中的关重件要求覆盖修改的条件/判定。

可通过工具验证结构覆盖率,在分析覆盖率之前,需要根据需求编写和评审测试。需求覆盖率和结构覆盖率不是完全独立的,应先从低层需求着手,输入符合需求的数据进行测试。针对没有得到执行的代码,需要进行分析,并将分析结果写入测试报告。

为了确保基于需求的测试得到充分的执行,还需对A、B、C级软件进行数据耦合、控制耦合分析。可通过工具或人工代码审查的形式完成分析。

4 结束语

本文研究了DO-178C标准对软件测试工作的目标要求,包括基于需求的测试目标、测试方法以及测试覆盖性分析,并考虑将DO-178C标准中的一些目标要求运用到军用信息系统软件测试的测试计划、测试开发、测试执行以及测试分析过程中,希望从测试角度促进软件质量的提升。

[1]蔡喁,蔡开元. 机载软件适航标准DO-178B/C研究[M]. 上海:上海交通大学出版社,2013.

[2] RTCA DO-178C,Software Consideration in Airborne System and Equipment Certification[S]. Washington:RTCA Inc, 2011.

[3]Leanna Rierson著. 崔晓峰译. DO-178C标准实践指南[M]. 北京:电子工业出版社,2015.

[4]GJB/Z 141-2004. 军用软件测试指南[S]. 中国人民解放军总装备部,2004.

猜你喜欢
测试用例软件测试军用
软件测试方向人才培养“1+X”融合研究
基于相似性的CITCP强化学习奖励策略①
测试用例自动生成技术综述
大话军用卡车
威力无比的军用霰弹枪
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
EXCEL和VBA实现软件测试记录管理
猜谜
军用公文写作中语言的运用