一、软件验证、测试工具:
1、软件名:PolySpace
功能:用于检测代码中的运行时错误(即需要程序运行起来之后才可能显现的错误),如指针越界、数据溢出等。主要错误如下图所示。
描述:需要在MATLAB中运行
2、软件名:QAC
功能:是用于代码规则检查的自动化工具,代码审查主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面;可以发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。
C语言的编码规范:
MISRA、CERT、CWE、自定义规则
C++的编码规范:
MISRA、AUTOSAR C++、CERT、CWE、High Integrity C++、JSF AV C++、自定义规则
①QAC自动化强制实施代码编程标准,比如MISRA,保证代码的合规性;
②MISRA C是由汽车产业软件可靠性协会(MISRA)提出的C语言开发标准。其目的是在增进嵌入式系统的安全性及可移植性。针对C++语言也有对应的标准MISRA C++。
③C和C++的CERT®安全编码标准,针对不安全编码实践和可能导致可利用漏洞的未定义行为,提供了规则和建议。由软件工程研究所(SEI)为嵌入式开发人员创建。软件工程研究所是由美国国防部和国土安全部主要资助的研究和开发中心。SEI的CERT分部由卡内基梅隆大学运营,负责发布这些标准。CERT® C和C++编码标准是对20多年来记录的软件漏洞案例研究的结果。
④CWE常见缺陷列表(Common Weakness Enumeration)是MITRE公司(一个非盈利机构)继CVE(Common Vulnerabilities and Exposures)之后的又一个安全漏洞词典。通过这一词典,Mitre希望提供识别、减轻、阻止软件缺陷的通用标准。CWE也可以作为人们购买软件的安全衡量标准,尤其是在购买旨在阻止或发现具体安全问题的安全工具时。CWE目前最新版本是2.3,于2012年10月30号发布,共有909个缺陷。
3、工具名:Tessy
功能:进行单元、集成测试的工具,它可以自动化地执行测试、评估测试结果并生成测试报告。
二、代码编辑、阅读工具:
1、Beyond Compare
功能:
三、代码测试知识:
1、软件产品(行业应用软件、嵌入式软件)进行功能性、性能效率、兼容性、易用性、可靠性、信息安全性、维护性、可移植性、用户文档集测试。