使用parasoft c++test以满足sil需求

上传人:kms****20 文档编号:46726677 上传时间:2018-06-27 格式:PDF 页数:10 大小:181.61KB
返回 下载 相关 举报
使用parasoft c++test以满足sil需求_第1页
第1页 / 共10页
使用parasoft c++test以满足sil需求_第2页
第2页 / 共10页
使用parasoft c++test以满足sil需求_第3页
第3页 / 共10页
使用parasoft c++test以满足sil需求_第4页
第4页 / 共10页
使用parasoft c++test以满足sil需求_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《使用parasoft c++test以满足sil需求》由会员分享,可在线阅读,更多相关《使用parasoft c++test以满足sil需求(10页珍藏版)》请在金锄头文库上搜索。

1、 使用使用 Parasoft C+test 以满足以满足 SIL 需求需求 提升电气提升电气/电子电子/可编程电子(可编程电子(E/E/PE)相关系统的功能性安全)相关系统的功能性安全 使用Parasoft C+test以满足SIL需求 1 引言引言 安全功能越来越多地在电气、电子或可编程电子系统中得到实现。这些系统一般都是非常复 杂的,这就使得在实际中完整地判断每个失效模式(failure mode)或测试所有可能的行为成为了不 可能完成的任务。虽然预测其安全方面的性能非常困难,但测试仍然是非常有必要的。关键的挑 战在于设计一种能够预防危险性失效或能在这些失效发生的时候对其进行控制的系统。

2、安全性将是今后电气/电子/可编程电子安全性相关系统中的一个主要课题。新功能越来越多地 触及到了安全性工程的范畴。每个用以限制风险在可接受范围内的功能都可被称作安全功能。为 了实现安全功能,这些功能需要满足安全功能的需求(安全功能的作用)以及安全完整性需求 (该功能以令人满意的方式运行的可能性)。未来对包含安全功能的开发以及集成将更进一步地 提升对安全系统开发过程以及提供满足所有合理性安全对象依据的需求。 随着复杂性、软件的功能以及硬件层面实施日益增加的趋势,系统化的失效以及偶发硬件失 效的风险将越来越多。通过提供可行的需求以及流程,IEC 61508 中包含了将这些风险降低到可 接受程度的指南

3、。 本文档的宗旨在于详细阐述 Parasoft C+test 的使用将如何帮助软件开发团队满足特定 SIL 级别的需求。本文首先介绍了 IEC 61508 标准中所定义的 SIL 的概念。其次将介绍 Parasoft C+test 是为汽车领域软件开发以及测试提供最佳实践的集成解决方案。最后将阐述 Parasoft C+test 如何满足或部分满足特定 SIL 需求的软件开发。 软件完整性级别软件完整性级别 IEC 61508 标准中所定义的安全完整性级别(SIL)是用以度量给定安全功能目标发生危险失 效的可能性的指标(SIL1-SIL4)。每个安全性相关系统中的安全功能都需要指定相应的软件完

4、整 性级别。一般而言,某个特定的 E/E/PE 安全性相关系统中都会实现多个安全功能。如果这些安全 功能的安全完整性需求存在着不同,除非它们之间的实现存在着充分的独立性,否则,这些安全 功能中最高的安全完整性级别将适用到整个 E/E/PE 安全性相关系统中。 根据 IEC 61508 标准,安全完整性级别是根据该设计功能对于某种需求(对于低级别需求模 式操作而言)执行失败或每小时发生危险失效(对于高级别需求或持续模式操作而言)的平均概 率而进行评估的。 IEC 61508 标准中列出了为实现各个安全完整性级别的需求。随着安全完整性级别的提升, 这些需求将变得越来越严苛,从而进一步降低危险的失效

5、发生的可能性。 关于关于 Parasoft C+test Parasoft C+test 是经广泛证明的最佳实践集成解决方案,它能有效提高开发团队工作效率和 软件质量。C+test 能促进: 静态分析静态分析 静态代码分析,数据流静态分析以及度量指标分析 同行代码审查同行代码审查流程自动化准备、提示以及追踪 使用Parasoft C+test以满足SIL需求 2 单元测试单元测试单元测试创建、执行、优化以及维护 运行时错误检测运行时错误检测内存访问错误、泄漏、崩溃以及其它 这为开发团队提供了一种实际的方式来预防、发现以及纠正相关的错误,从而确保其 C 以及 C+代码如预期般工作。为了促进快速修

6、复,每个检测到的问题都基于可配置的严重级别分配进 行排序,并自动分发到相应代码的开发者处,同时分配到他或她的 IDE 环境中,并配以该问题代 码处的直接链接以及如何修正该问题的描述。 对于嵌入式以及交叉平台开发而言,C+test 可以同时用在基于宿主机以及基于目标平台的代 码分析以及测试流程中。 自动进行代码分析以监测是否遵守标准自动进行代码分析以监测是否遵守标准 采用合适的编码策略可以建立预防性的编码习惯,从而消除整类编码错误的发生。C+test 对 这些代码进行静态分析,以检测其是否遵守相应策略。如需配置 C+test 以增强某个团队或组织 专用的编码标准策略,用户可以使用内建以及自定义规

7、则来建立自己的规则集。代码分析报告可 以按不同的形式生成,包括 HTML 以及 PDF 格式。 数百条的内建规则包括 MISRA、MISRA 2004、全新的 MISRA C+标准的实现,HIS 源 码度量指标、Meyer 在Effective C+以及Effective STL等书中推荐的以及来自其它主流源 码的准则有助于从使用不当的 C/C+ 语言识别潜在缺陷,实施最佳编码实践,以及提升代码 的可维护性和可重用性。通过图形化的 RuleWizard 编辑器创建的自定义规则,可以增强标准 API 的使用并防止单个缺陷被发现后类似的应用程序缺陷重复出现。 在不运行软件的情况下识别运行时缺陷在不

8、运行软件的情况下识别运行时缺陷 作为 C+test 先进的数据流静态分析模块,BugDetective 能模拟可行的应用程序执行路径 这些路径可能会跨越多个函数和文件并判断这些路径是否会触发特定类别的运行时缺陷。 能够发现的缺陷包括使用未初始化或无效的内存、空指针解引用、数组及缓存溢出、除零、内存 和资源泄漏以及各种无效代码(dead code)。这种不运行软件即可发现运行时错误的能力对于嵌 入式代码是尤其有价值的,因为在嵌入式开发中要进行详细的运行时分析以检测这些错误往往是 无效或不可能的。 由于在开发者的 IDE 环境中提供了对潜在缺陷的完整路径追踪,C+test 极大地简化了缺陷 分析过

9、程。自动化到代码的交叉链接能帮助用户迅捷地跳转到某段高亮显示的分析路径中的任意 一点上。 合理化的代码审查合理化的代码审查 代码审查被认为是发现代码缺陷最有效的方法。不幸的是,由于认为代码审查会耗费大量额 外的精力,很多组织都未充分使用代码审查。C+test 的代码审查 (Code Review)模块能自动地准 备、提示以及追踪同行代码审查,从而建立起非常高效的面向团队的审查流程。所有代码审查的 状态,包括审查者所添加的所有注释都会被 C+test 的基础设施1加以维护并进行自动分配。 C+test 支持两种典型的代码审查流程: 1 译注:测试基础设施指机构中与测试相关的各种硬件、软件、服务及

10、数据通信设施等的总和。(Infrastructure) 使用Parasoft C+test以满足SIL需求 3 提交后代码审查提交后代码审查。该模式是通过自定义的源码控制器接口来自动识别代码库中的代码更改 而实现的,并基于预设的更改代码与审查者的映射关系创建代码审查任务。 提交前代码审查提交前代码审查。用户可以在桌面上选择某一文件集并分配到审查者进行审查,或者自动 地检测所有本地更改源代码的方式来初始化代码审查。 团队代码审查的效果可以通过 C+test 的静态分析能力进一步地增强。由于自动监视团队的 编码策略,从而消除了对逐行审查代码的必要性。一旦代码被提交进行审查,相应的违例就已经 被发现

11、并清除了。这样,审查者就可以更加注重对算法的检查,对设计本身的审查,以及查找那 些自动化工具无法检测到的隐蔽的错误。 监测应用程序以发现内存问题监测应用程序以发现内存问题 应用程序内存监测是用于消除严重的内存相关缺陷并具有零误报率的最著名方法。对正在运 行的应用程序进行监测以查找某类特定问题诸如内存泄漏、空指针、未初始化内存以及缓存 溢出等测试过程一旦结束后,结果将会立即可见。 无需进行高级并且耗时的测试活动,被插装的应用程序为进行监测添加了额外的代码 将通过标准的功能测试并标注出所存在的所有问题。应用程序可以在目标设备、模拟的目标平 台或宿主机上执行。收集到的问题将直接显示在开发者的 IDE

12、 中,并提供了解以及修复该问题的 详细信息(包括内存块大小、数组索引、分配/释放堆栈的追踪等)。 覆盖率度量指标将在应用程序执行时进行收集。这些指标可以用来说明哪部分应用程序经过 了测试,以及调整回归单元测试用例集(作为功能测试的补充)。 运行时错误检测允许用户: 通过简单的功能测试查找复杂的内存相关问题例如内存泄漏、空指针、未初始化内存 以及缓冲溢出等 通过应用程序运行来收集代码覆盖率 通过在真实目标环境中执行被监测的应用程序来提升测试结果的精确性 具有覆盖率分析的单元及集成测试具有覆盖率分析的单元及集成测试 C+test 的自动化能力极大地提升了测试新开发或既有代码的正确性和可靠性的效率。

13、 C+test 自动地生成完整的测试套件,包括测试驱动以及用于各个独立函数的测试用例,这些测试 套件都是以类似 CppUnit 格式的纯 C 或 C+代码的形式提供的。这些测试套件,无论是否进行修 改,都可以用于对代码的功能行为进行初始化验证。通过使用边界用例条件,这些自动生成的测 试用例同样能检测函数对未预期输入的相应状况,从而发现潜在的可靠性问题。 通过一组实用的 GUI 小工具来简化测试的创建和管理。图形化的测试用例向导(Test Case Wizard)能帮助开发者为选中的功能快速创建黑盒功能测试套件,而不必要担心它们之间的内部 运作或嵌入数据的关联性。数据源向导(Data Sourc

14、e Wizard)能协助参数化测试用例以及桩函 数使开发者以最少的努力提升测试范围和覆盖率。桩函数视图(Stub View)能促进桩函数的 分析以及生成,在该视图中,将显示出代码中所用到的所有函数并允许用户为任何在测试范围内 不可用的函数创建桩函数或为某个特定测试目的更改既有函数功能。测试执行以及分析集中 在测试用例浏览器(Test Case Explorer)中,该浏览器统一管理所有既有项目测试套件并提供明 确的通过/失败状态。这些功能对于支持自动化的持续性集成和测试“随工程进度而测试”的开发 是非常有帮助的。 使用Parasoft C+test以满足SIL需求 4 通过自动记录运行时测试结

15、果的测试断言来捕捉既有的软件行为,自动生成和用户编写的测 试用例都可以用来生成回归测试用例的基础。随着代码库的演进,C+test 重新运行这些测试并将 当前测试结果与最初捕捉到的“黄金集”进行比较。C+test 可以轻松地配置为使用不同的执行配 置、测试用例以及桩函数以支持在不同环境中的测试(例如不同的持续性集成阶段、测试未完成 的系统或测试已完成系统中的某个特定部分)。 多重度量指标测试覆盖率分析器,包括语句、分支、路径以及 MC/DC 覆盖率,能帮助用户评 估测试套件的效率以及完成度,同时还能显示测试以及验证需求的遵从性,例如 DO-178B。测试 覆盖率是通过所支持的所有覆盖率度量指标中

16、高亮显示的代码来表示的在 GUI 中或以不同颜 色标注列举出的报告。覆盖率摘要报告包括文件、类以及函数数据可以不同的格式生成。 可配置的详细报告可配置的详细报告 C+test 的 HTML、PDF 以及自定义格式的报告可以通过 GUI 控件或选项文件来进行配置。 标准的报告中包含代码分析以及测试结果通过/失败概要信息、已分析文件列表以及代码覆盖率概 要信息。这些报告可以通过自定义设置以包含当前可用的静态分析检测列表、对于测试中扩展测 试输出的通过/失败状态、关键度量指标的趋势图参数以及带颜色标注的所有代码覆盖率结果的完 整代码列表。通过基于角色的邮件发送过滤器,生成的报告可以自动通过电子邮件进行发送。除 向相关标注缺陷代码的开发者直接发送数据之外,C+test 还会向管理人员和团队负责人发送概要 报告。 高效的团队部署高效的团队部署 C+test 能建立一种高效的流程来确保软件验证任务能够

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号