On the Relationship between Code Verifiability and Understandability

Kobi Feldman, Martin Kellogg, Oscar Chaparro

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Proponents of software verification have argued that simpler code is easier to verify: that is, that verification tools issue fewer false positives and require less human intervention when analyzing simpler code. We empirically validate this assumption by comparing the number of warnings produced by four state-of-the-art verification tools on 211 snippets of Java code with 20 metrics of code comprehensibility from human subjects in six prior studies. Our experiments, based on a statistical (meta-)analysis, show that, in aggregate, there is a small correlation (r = 0.23) between understandability and verifiability. The results support the claim that easy-to-verify code is often easier to understand than code that requires more effort to verify. Our work has implications for the users and designers of verification tools and for future attempts to automatically measure code comprehensibility: verification tools may have ancillary benefits to understandability, and measuring understandability may require reasoning about semantic, not just syntactic, code properties.

Original languageEnglish (US)
Title of host publicationESEC/FSE 2023 - Proceedings of the 31st ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering
EditorsSatish Chandra, Kelly Blincoe, Paolo Tonella
PublisherAssociation for Computing Machinery, Inc
Pages211-223
Number of pages13
ISBN (Electronic)9798400703270
DOIs
StatePublished - Nov 30 2023
Event31st ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2023 - San Francisco, United States
Duration: Dec 3 2023Dec 9 2023

Publication series

NameESEC/FSE 2023 - Proceedings of the 31st ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering

Conference

Conference31st ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2023
Country/TerritoryUnited States
CitySan Francisco
Period12/3/2312/9/23

All Science Journal Classification (ASJC) codes

  • Artificial Intelligence
  • Software

Keywords

  • Verification
  • code comprehension
  • meta-analysis
  • static analysis

Fingerprint

Dive into the research topics of 'On the Relationship between Code Verifiability and Understandability'. Together they form a unique fingerprint.

Cite this