这里选用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 industrial applications