跳到主要导航 跳到搜索 跳到主要内容

Finding and understanding bugs in software model checkers

  • Chengyu Zhang
  • , Ting Su*
  • , Yichen Yan
  • , Fuyuan Zhang
  • , Geguang Pu
  • , Zhendong Su
  • *此作品的通讯作者
  • East China Normal University
  • Swiss Federal Institute of Technology Zurich
  • Max Planck Institute for Software Systems

科研成果: 书/报告/会议事项章节会议稿件同行评审

摘要

Software Model Checking (SMC) is a well-known automatic program verification technique and frequently adopted for checking safety-critical software. Thus, the reliability of SMC tools themselves (i.e., software model checkers) is critical. However, little work exists on validating software model checkers, an important problem that this paper tackles by introducing a practical, automated fuzzing technique. For its simplicity and generality, we focus on control-flow reachability (e.g., whether or how many times a branch is reached) and address two specific challenges for effective fuzzing: oracle and scalability. Given a deterministic program, we (1) leverage its concrete executions to synthesize valid branch reachability properties (thus solving the oracle problem) and (2) fuse such individual properties into a single safety property (thus improving the scalability of fuzzing and reducing manual inspection). We have realized our approach as the MCFuzz tool and applied it to extensively test three state-of-the-art C software model checkers, CPAchecker, CBMC, and SeaHorn. MCFuzz has found 62 unique bugs in all three model checkers - 58 have been confirmed, and 20 have been fixed. We have further analyzed and categorized these bugs (which are diverse), and summarized several lessons for building reliable and robust model checkers. Our testing effort has been well-appreciated by the model checker developers, and also led to improved tool usability and documentation.

源语言英语
主期刊名ESEC/FSE 2019 - Proceedings of the 2019 27th ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering
编辑Sven Apel, Marlon Dumas, Alessandra Russo, Dietmar Pfahl
出版商Association for Computing Machinery, Inc
763-773
页数11
ISBN(电子版)9781450355728
DOI
出版状态已出版 - 12 8月 2019
活动27th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2019 - Tallinn, 爱沙尼亚
期限: 26 8月 201930 8月 2019

出版系列

姓名ESEC/FSE 2019 - Proceedings of the 2019 27th ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering

会议

会议27th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2019
国家/地区爱沙尼亚
Tallinn
时期26/08/1930/08/19

指纹

探究 'Finding and understanding bugs in software model checkers' 的科研主题。它们共同构成独一无二的指纹。

引用此