作为整车厂都是-我们有一个美丽的梦想——我的产品功能逻辑完美,性能出众,系统稳定可靠,用户体验棒棒哒!可从现实情况来看,用一句话来形容:理想很完美,现实很残酷。
自动驾驶已然成为汽车行业热词。在大家殷切的期盼下,近几年上市的车型,多少都要有和“自动驾驶”功能相关才能赢得消费者青睐。对国内而言,特斯拉落子上海临港,并宣布新推出车型均配备自动驾驶功能——这无疑犹如鲶鱼效应,更加推动了各家车企的研发进度。
然而常言道,外行看热闹,内行看门道。自动驾驶技术成为车主之间的谈资,炫目的功能固然为赢得市场增色不少,但由于自动驾驶技术尚未成熟,市场上对相关的产品与功能依然抱有一定的疑虑;而技术上,向来新产品的落地,都伴随着诸多不确定性,需要进行更多的验证。
一个好的测试工具,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。行业内的不断输出,带领全球合作伙伴共同创新,推动自动驾驶时代的加速到来。
一次偶然机会,遇到在自动驾驶科技公司的同学。就自动驾驶使用的语言聊了一下。他说与硬件打交道的基本上是C和C++,我问他是如何测试的呢?他说:“我们用日本GAIO公司的CasePlayer2和winAMS,CasePlayer2做静态分析,winAMS做单元测试,两者配合使用,很方便。”
使用winAMS单元测试和形式化方法的六种形式让嵌入式软件安全,日产、空客等跨国高科技公司的开发团队总结了winAMS的6个关键优势。
1. 及时反映给开发人员。winAMS提供详细的信息,如变量在代码具体某一行的范围,潜在的溢出 及其发生的条件和死代码。这些信息可以帮助你 强制遵循如MISRA®的编码规范。
2. 聚焦在单元测试策略。通过证明在所有可能输入的情况下没有严重缺陷,winAMS可以减少并指导单元测试开发工作。
3. 变量同时访问缺陷检测。 winAMS证明多线程 应用程序中没有争用条件(race condition),并且跟踪源代码的缺陷。
4. 数据流和控制流信息记录在案。 winAMS提供详细的控制流和数据流信息,详尽而完善的语义分析。
5. 服从功能安全标准。winAMS使用错误查找,代码验证和标准检查来帮助识别和避免安全漏洞并遵守CERT C,ISO 17961和CWE等标准。它可以证明黑客利用的安全漏洞不存在,例如缓冲区溢出,非法指针解除引用和未初始化的变量。
6. 可作为鉴定标准的证物。winAMS通过了TÜV SÜD鉴定,能够用于如ISO 26262, IEC 61508和 IEC 62304这些需要符合功能安全标准的开发流程。同时,winAMS可作为DO-178B/C可被鉴定的工具。您可以获得包括形式化方法、控制流数据流和数据范围检查鉴定证物,而这些是其他工具无法提供的。
通常嵌入式系统对可靠性的要求比较高。嵌入式系统安全性的失效可能会导致灾难性的后果,即使是非安全性系统,由于大批量生产也会导致严重的经济损失。这就要求对嵌入式系统,包括嵌入式软件进行严格的测试、确认和验证。随着越来越多的领域使用软件和微处理器控制各种嵌入式设备,对日益复杂的嵌入式软件进行快速有效的测试愈加显得重要。
就象修车需要工具一样,好的程序员应该能够熟练运用各种软件工具。不同的工具,有不同的使用范围,有不同的功能。使用这些工具,你可以看到你的系统在干些什么,它又占用什么资源,它到底和哪些外界的东西打交道。让你郁闷好几天的问题可能通过某个工具就能轻松搞定,可惜你就是不知道。那么为什么那么多的人总是在折腾个半死之后才想到要用测试工具呢?原因很多,主要有两个。一个是害怕,另一个是惰性。害怕是因为加入测试用具或测试模块到代码需要技巧同时有可能引入新的错误,所以他们总喜欢寄希望于通过不断地修改重编译代码来消除bug,结果却无济于事。懒惰是因为他们习惯了使用printf之类的简单测试手段。
楼主最近还看过