安全关键嵌入式系统测试经验分享
在安全关键的嵌入式系统开发中,测试是确保系统可靠性和安全性的关键环节。下面将详细介绍相关的测试要点和方法。
1. 高风险项的特定测试活动
在包含安全方面的项目中,“正常”的测试活动当然也适用,但有一些特定的关注点需要额外注意。
1.1 硬件缺陷
硬件并非总是完美运行的,它会随着时间磨损,可能在生产后立即出现故障(即早期失效),也可能因环境变化(如温度)而表现出性能差异。与硬件交互的软件需要能够处理这些缺陷,检测并报告硬件故障,并采取相应的措施。
测试硬件缺陷在系统层面可能既困难又耗时。开发过程中使用的硬件原型质量通常较高,硬件故障发生的频率较低,但原型也可能出现各种故障,增加了测试的复杂性。
一种解决方案是在软件的最低层(甚至更好的是在硬件本身)模拟硬件缺陷。这样可以测试软件对这类错误的处理能力。是否模拟某些缺陷需要在工作量和风险降低之间进行权衡。
这是提高系统可测试性的一个例子,称为可测试性设计。
1.2 软件措施
一般原则是尽可能多的安全预防措施应在硬件中实现,但软件仍然起着重要作用。例如,软件负责测量硬件部件的状态,如温度,并向用户报告,避免因硬件预防措施突然中断用户操作。
软件中还包含断言,即开发者在代码中定义的前置条件。在本项目中,决定在最终测试和发布阶段保留断言,因为一个安全停止的系统比一个处于未定义状态下运行的系统更好。但在某些对系统可用性要求高于质量的环境中,可以选择禁用断言。
1.3 测试技术
在产品开发过程中,使用了多种测试技术,以下三种技
超级会员免费看
订阅专栏 解锁全文
1494

被折叠的 条评论
为什么被折叠?



