论文标题
汽车软件的基于模型的故障分类
Model-based Fault Classification for Automotive Software
论文作者
论文摘要
使用基于模型的方法进行密集测试是证明汽车软件正确性的标准方法。不幸的是,最先进的技术为测试工程师留下了至关重要的劳动力密集任务:在测试中识别错误。我们的贡献是一种基于模型的分类算法,用于在识别错误时有助于工程师的测试失败。它由三个步骤组成。 (i)故障定位重新测试模型上的测试,以识别这两个差异的时刻。 (ii)故障解释然后计算出差异的原因。原因是测试中的动作子集,足以发散。 (iii)故障分类组一起测试,这些测试因类似原因而失败。我们的方法依赖于形式方法的机械:(i)符号执行,(ii)Hoare逻辑和为测试构建的中介主张之间建立了新的关系,以及(iii)Hoare证明之间的新关系。汽车软件中的一个关键方面是时间要求,我们为此开发了适当的Hoare逻辑理论。我们还简要报告了我们在工业项目中为CAS总线统一诊断服务的原型实施。
Intensive testing using model-based approaches is the standard way of demonstrating the correctness of automotive software. Unfortunately, state-of-the-art techniques leave a crucial and labor intensive task to the test engineer: identifying bugs in failing tests. Our contribution is a model-based classification algorithm for failing tests that assists the engineer when identifying bugs. It consists of three steps. (i) Fault localization replays the test on the model to identify the moment when the two diverge. (ii) Fault explanation then computes the reason for the divergence. The reason is a subset of actions from the test that is sufficient for divergence. (iii) Fault classification groups together tests that fail for similar reasons. Our approach relies on machinery from formal methods: (i) symbolic execution, (ii) Hoare logic and a new relationship between the intermediary assertions constructed for a test, and (iii) a new relationship among Hoare proofs. A crucial aspect in automotive software is timing requirements, for which we develop appropriate Hoare logic theory. We also briefly report on our prototype implementation for the CAN bus Unified Diagnostic Services in an industrial project.