软件安全标准EN 50128源自欧洲电工标准化委员会(CENELEC),它的全称为“铁路应用、通信、信号和处理系统,铁路控制和保护系统软件”,CENECEN EN 50128标准的国际版本是IEC 62279。两种出版物的内容相同。
标准要求所有含有软件的具有安全含义的系统都应分配一个软件完整性级别(SIL),范围从0到4。标准以一些“规范”和“信息”的方式详细描述了为适合于每个SIL而必须开展的软件开发活动以及必须生成的活动完成证据。
EN 50128(第6.1.4.2节)规定,用于测试的工具、硬件或软件应显示为适合此目的。 我们所有的工具都经过SGS-TÜV GmbH的分类和认证,SGS-TÜV GmbH是一家独立的功能安全第三方认证机构,由Deutsche Akkreditierungsstelle GmbH(DAkkS)认证。 每个工具都被归类为T2级工具,可用于开发符合EN 50128:2011的软件安全完整性等级(SW-SIL)4的安全相关软件。
EN 50128的工具认证套件可用于简化客户的认证途径,套件包含证明我们的工具符合EN 50128建议以及帮助您实现合规性的指导所需的一切。
有关工具认证工具包的更多信息,请联系我们。
EN 50128建议进行单元和集成测试。Cantata使开发人员能够在主机和嵌入式目标平台上验证符合EN 50128标准的C和C++代码。
Cantata通过自动化完成以下内容帮助加速符合标准的动态测试要求:
测试框架生成
测试用例生成
测试执行
结果诊断和报告生成
我们的EN 50128标准简报追溯了EN 50128的要求,确定了Cantata支持的范围,并确定了Cantata如何支持这些要求。
请联系我们了解更多关于EN 50128的Cantata的信息
SIL的EN 50128动态测试建议以及Cantata支持的这些建议总结在下表中:
方法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | Cantata |
---|---|---|---|---|---|---|
2. 静态分析 | - | HR | HR | HR | HR | 是 |
3. 动态分析和测试 | - | HR | HR | HR | HR | 是 |
4. 指标 | - | R | R | R | R | 是 |
5. 可追溯性 | R | HR | HR | M | M | 是 |
6. 软件错误效应分析 | - | R | R | HR | HR | 是 |
7. T代码的测试覆盖率 | R | HR | HR | HR | HR | 是 |
8. 功能/黑盒测试 | HR | HR | HR | M | M | 是 |
9. 性能测试 | - | HR | HR | HR | HR | 是 |
10. 界面测试 | HR | HR | HR | HR | HR | 是 |
放法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | Cantata |
---|---|---|---|---|---|---|
1. 功能和黑盒测试 | HR | HR | HR | HR | HR | 是 |
2. 性能测试 | - | R | R | HR | HR | 是 |
方法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | Cantata |
---|---|---|---|---|---|---|
1. 性能测试 | HR | HR | HR | HR | HR | 是 |
2. 功能和黑盒测试 | HR | HR | HR | M | M | 是 |
方法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | Cantata |
---|---|---|---|---|---|---|
1. 静态软件分析 | R | HR | HR | HR | HR | 是 |
2. 动态软件分析 | - | R | R | HR | HR | 是 |
5. 软件误差影响分析 | - | R | R | HR | HR | 是 |
方法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | Cantata |
---|---|---|---|---|---|---|
1. 从边界值执行测试用例 | - | HR | HR | HR | HR | 是 |
2. 从错误猜测中执行测试用例 | R | R | R | R | R | 是 |
3. 从错误预埋测试用例执行 | - | R | R | R | R | 是 |
4. 等价类和输入分区测试 | R | R | R | HR | HR | 是 |
5. 基于结构的测试 | - | R | R | HR | HR | 是 |
方法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | Cantata |
---|---|---|---|---|---|---|
3. 边界值分析 | R | HR | HR | HR | HR | 是 |
4. 等价类和输入分区测试 | R | HR | HR | HR | HR | 是 |
方法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | Cantata |
---|---|---|---|---|---|---|
4. C或C++ | R | R | R | R | R | 是 |
7. 汇编 | R | R | R | R | R | 是 |
方法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | Cantata |
---|---|---|---|---|---|---|
2. 响应时序与内存约束 | - | 是 | 是 | 是 | 是 | 是 |
方法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | Cantata |
---|---|---|---|---|---|---|
1. 信息隐藏 | - | - | - | - | - | 是 |
2. 信息封装 | R | HR | HR | HR | HR | 是 |
3. 参数数量限制 | R | R | R | R | R | 是 |
4. 完全定义的界面 | R | HR | HR | M | M | 是 |
方法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | Cantata |
---|---|---|---|---|---|---|
1. 语句 | R | HR | HR | HR | HR | 是 |
2. 分支 | - | R | R | HR | HR | 是 |
3. 复合条件 | - | R | R | HR | HR | 是 |
4. 数据流 | - | R | R | HR | HR | 是 |
5. 路径 | - | R | R | HR | HR | 是 |
图例
‘M’ = 强制
‘HR’ = 强烈建议
‘R’ = 建议
‘-‘ = 无建议
虽然静态分析在任何EN 50128 SIL中都不是强制性的,但它是唯一可以实施编码标准(SIL 3和4强制要求)的实用方法。
在标准中,章节7.5(软件组件实现)和附录A(技术和测量的选择准则)都涉及软件开发,对软件开发的开始、软件架构设计和软件单元的设计与实现提出了要求。这些是静态分析工具的主要应用区域,但工具产生的信息也可用于后面的阶段,特别是测试阶段。
请联系我们了解更多关于QA-C,QA-C++和QA-MISRA的信息
下表来自规范性附录A,并显示了QA-C和QA-C++工具可用于满足所需技术或测量的位置。
方法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | QA-C | QA-C++ |
---|---|---|---|---|---|---|---|
4. 模块化方法 | HR | M | M | M | M | 是 | 是 |
5. 组件 | HR | HR | HR | HR | HR | 是 | 是 |
6. 设计和编码标准 | HR | HR | HR | M | M | 是 | 是 |
7. 可分析的程序 | HR | HR | HR | HR | HR | 是 | 是 |
8. 强类型编程语言 | R | HR | HR | HR | HR | 是 | 是 |
9. 结构化编程 | R | HR | HR | HR | HR | 是 | 是 |
11. 语言子集 | - | - | - | HR | HR | 是 | 是 |
方法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | QA-C | QA-C++ |
---|---|---|---|---|---|---|---|
2. 静态分析 | - | HR | HR | HR | HR | 是 | 是 |
4. 指标 | - | R | R | R | R | 是 | 是 |
方法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | QA-C | QA-C++ |
---|---|---|---|---|---|---|---|
1. 静态软件分析 | R | HR | HR | HR | HR | 是 | 是 |
方法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | QA-C | QA-C++ |
---|---|---|---|---|---|---|---|
1. 编码标准 | HR | HR | HR | M | M | 是 | 是 |
2. 编码风格指南 | HR | HR | HR | HR | HR | 是 | 是 |
3. 没有动态对象 | - | R | R | HR | HR | 是 | 是 |
4. 没有动态变量 | - | R | R | HR | HR | 是 | 是 |
5. 限制使用指针 | - | R | R | HR | HR | 是 | 是 |
6. 限制使用递归 | - | R | R | HR | HR | 是 | 是 |
7. 没有无条件跳转 | - | HR | HR | HR | HR | 是 | 是 |
8. 限制函数、子程序和方法的大小和复杂性 | HR | HR | HR | HR | HR | 是 | 是 |
9. 函数、子程序和方法入口点/出口点策略 | R | HR | HR | HR | HR | 是 | 是 |
10. 有限使用全局变量 | R | R | R | R | R | 是 | 是 |
11. 限制使用全局变量 | HR | HR | HR | M | M | 是 | 是 |
方法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | QA-C | QA-C++ |
---|---|---|---|---|---|---|---|
3. 控制流分析 | - | HR | HR | HR | HR | 是 | 是 |
4. 数据流分析 | - | HR | HR | HR | HR | 是 | 是 |
方法 | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 | QA-C | QA-C++ |
---|---|---|---|---|---|---|---|
1. 信息隐藏 | - | - | - | - | - | 是 | 是 |
2. 信息封装 | R | HR | HR | HR | HR | 是 | 是 |
3. 参数数量限制 | R | R | R | R | R | 是 | 是 |
图例
‘M’ = 强制
‘HR’ = 强烈建议
‘R’ = 建议
‘-‘ = 无建议