使用验证技术定位故障

S. Dutta
{"title":"使用验证技术定位故障","authors":"S. Dutta","doi":"10.1145/3511430.3511445","DOIUrl":null,"url":null,"abstract":"In model-based fault diagnosis, it is assumed that a correct model of each program being diagnosed is available. That is, these models serve as the oracles of the corresponding programs. Differences between the behaviors of a model and the actual observed behaviors of the program are then used to find bugs in the program. However, these techniques normally require test cases and user-specified assertions to localize the fault. In this paper, we aim to localize faults in a faulty program without user-specified assertions and without executing the programs, and therefore, without using test cases. Instead, given the faulty and the correct versions of a program, a product code is automatically constructed and assertions are automatically generated. This is a fully automatic, model-based static approach to fault localization. The proposed method reduces the fault search space by removing equivalent regions from the product code using verification techniques. We demonstrate the effectiveness of the proposed method using the Siemens TCAS benchmark. We observe that the method can successfully localize the wrong safety check bug produced by LLVM compiler.","PeriodicalId":138760,"journal":{"name":"15th Innovations in Software Engineering Conference","volume":"61 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-02-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Localizing Faults Using Verification Technique\",\"authors\":\"S. Dutta\",\"doi\":\"10.1145/3511430.3511445\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"In model-based fault diagnosis, it is assumed that a correct model of each program being diagnosed is available. That is, these models serve as the oracles of the corresponding programs. Differences between the behaviors of a model and the actual observed behaviors of the program are then used to find bugs in the program. However, these techniques normally require test cases and user-specified assertions to localize the fault. In this paper, we aim to localize faults in a faulty program without user-specified assertions and without executing the programs, and therefore, without using test cases. Instead, given the faulty and the correct versions of a program, a product code is automatically constructed and assertions are automatically generated. This is a fully automatic, model-based static approach to fault localization. The proposed method reduces the fault search space by removing equivalent regions from the product code using verification techniques. We demonstrate the effectiveness of the proposed method using the Siemens TCAS benchmark. We observe that the method can successfully localize the wrong safety check bug produced by LLVM compiler.\",\"PeriodicalId\":138760,\"journal\":{\"name\":\"15th Innovations in Software Engineering Conference\",\"volume\":\"61 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2022-02-24\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"15th Innovations in Software Engineering Conference\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3511430.3511445\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"15th Innovations in Software Engineering Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3511430.3511445","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

摘要

在基于模型的故障诊断中,假定被诊断的每个程序都有一个正确的模型。也就是说,这些模型充当相应程序的预言器。模型的行为和实际观察到的程序行为之间的差异,然后被用来发现程序中的错误。然而,这些技术通常需要测试用例和用户指定的断言来定位故障。在本文中,我们的目标是在没有用户指定的断言和不执行程序的情况下定位错误程序中的错误,因此,不使用测试用例。相反,给定程序的错误版本和正确版本,将自动构建产品代码并自动生成断言。这是一种全自动的、基于模型的静态故障定位方法。该方法利用验证技术去除产品代码中的等效区域,从而减小故障搜索空间。我们使用西门子TCAS基准验证了所提出方法的有效性。我们观察到,该方法可以成功地定位LLVM编译器产生的错误安全检查错误。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Localizing Faults Using Verification Technique
In model-based fault diagnosis, it is assumed that a correct model of each program being diagnosed is available. That is, these models serve as the oracles of the corresponding programs. Differences between the behaviors of a model and the actual observed behaviors of the program are then used to find bugs in the program. However, these techniques normally require test cases and user-specified assertions to localize the fault. In this paper, we aim to localize faults in a faulty program without user-specified assertions and without executing the programs, and therefore, without using test cases. Instead, given the faulty and the correct versions of a program, a product code is automatically constructed and assertions are automatically generated. This is a fully automatic, model-based static approach to fault localization. The proposed method reduces the fault search space by removing equivalent regions from the product code using verification techniques. We demonstrate the effectiveness of the proposed method using the Siemens TCAS benchmark. We observe that the method can successfully localize the wrong safety check bug produced by LLVM compiler.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信