软件验证目标与软件等级的关系
——DO-178B/ED-12B学习笔记之十七
DO-178B/ED-12B附件A表A-5对软件编码过程规定了6个目标,A级和B级软件要满足这6个目标,而对C级软件只规定了5个,其中第3个目标由申请方决定。
表A—5 软件编码和集成过程输出的验证
| 目标 | 软件等级 | 输出 | 控制类别 | ||||||||
| 说明 | 参考 | A | B | C | D | 说明 | 参考 | A | B | C | D |
3 | Source Code is verifiable. 源代码是可验证的 | 6.3.4c | ○ | ○ |
|
| 软件验证结果 | 11.14 | ② | ② |
|
|
6.3.4c的内容是:
c. 可验证性:该目标确保源代码不包含不能被验证的语句和结构,且不必改动即可对其测试。
再看表A-7的相关目标。
表A—7 验证过程结果的验证
| 目标 | 软件等级 | 输出 | 控制类别 | ||||||||
| 说明 | 参考 | A | B | C | D | 说明 | 参考 | A | B | C | D |
7 | Test coverage of software structure (statement coverage) is achieved. 软件结构覆盖(语句覆盖)达到要求 | 6.4.4.2a 6.4.4.2b
| ● | ● | ○ |
| 软件验证结果 | 11.14 | ② | ② | ② |
|
8 | Test coverage of software structure (data coupling and control coupling) is achieved. 软件结构覆盖(数据耦合和控制耦合)达到要求 |
6.4.4.2c
| ● | ● | ○ |
| 软件验证结果 | 11.14 | ② | ② | ② |
|
对A级和B级软件既规定了源代码可验证性的目标,又规定了软件结构覆盖达到要求的目标,为什么对C级软件只规定了软件结构覆盖达到要求的目标,但不规定源代码可验证性的目标?
查找了DO-248B,觉得FAQ#6也许可以解释上述疑问。FAQ#6解释为何附录A中D级软件的有些目标似乎不一致。例如:
l 表A-2的目标3、4、5要求软件设计符合条款5.2.1,但表A-4只要求满足软件设计过程输出的验证的13个目标中的一个目标,即确认软件分区完整性。
l 表A-2的目标4、5要求开发低层需求,但没有验证低层需求的目标。
l D级软件没有表A-3的目标4(高层需求是可验证的),但有表A-6的目标1(可执行目标代码符合高层需求)、目标2(可执行目标代码对高层需求是健壮的),以及表A-7的目标3(高层需求的测试覆盖达到要求)。
DO-248B的FAQ#6指出,应考虑DO-178B第6章的以下指南:
【参考译文】注:软件等级越低,对如下方面的强调越少:
a) 低层需求的验证
b) 软件体系结构的验证
c) 测试覆盖程度
d) 验证规程的控制
e) 软件验证过程活动的独立性
f) 软件验证过程活动的重叠,即多种软件验证活动的每一种活动都能检测到同一类错误
g) 健壮性测试
h) 对预防错误或检测错误有间接作用的验证活动,如与软件开发标准的遵循
表A-2到表A-7体现了上述指南,因此不存在不一致性。