这里选用MicroC/OS-II嵌入式操作系统和Infineon C167微控制器,进行操作系统鲁棒性的探究。首先需要我们建立软件故障注册机制(software fault injection),这样我们才能产生测试用例。我们不去修改和了解MicroC/OS-II的源码,采用黑盒方法,但为了进行故障和非法值注入,我们需要在OS和Application之间建立一个Meta-Kernel层,通过这个层,可以对系统调用参数进行故障和非法值注入,从而实现测试用例的产生和输入。
那么如何破坏系统调用参数呢?通过bit翻转和替换无效值进行fault injection。下面是测试结果分类:
Events after injection
|
|——OS Error
|——Infineon C167 Error
|——Application Error
|——Nothing happened
|——system hang
|_
可见黑盒不仅用于应用软件的测试,也在操作系统鲁棒性研究中起到重要作用,不同的是,在软件测试中我们更关注在不同测试用例下是否会出错,而在鲁棒性研究中我们是要发现都会产生哪些错误。
注:翻译来源COMPSAC’04论文
Pardo, J., Campelo, J.C, Serrano, J.J. ,Robustness study of an embedded operating system for industrialapplications