skip to main content
10.1145/3092282.3092283acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Increasing usability of spin-based C code verification using a harness definition language: leveraging model-driven code checking to practitioners

Published: 13 July 2017 Publication History

Abstract

Due to its capabilities to integrate well with C code, Spin has been used for C code verification based on environment models that describe the context, in which the software under verification is expected to run. In practice this approach requires an in-depth knowledge of Promela and the underlying technology. Moreover environment models tend to be verbose and exhibit heavily intertwined statements of Promela and C code. Thereby, writing and understanding such hybrid models is difficult and error-prone. Alleviating this problem we develop a specialized language for expressing environment models used in verification harnesses. Our language harmonizes the use of Promela and C in a homogeneous way that is suitable for practitioners. We show how a small number of language concepts is sufficient to define environments for a wide variety of commonly encountered software components written in C. The approach is integrated in the development platform mbeddr, a technology stack for embedded programming and formal verification developed on top of JetBrains’ MPS language workbench.

References

[1]
P. Baudin, P. Cuoq, J.-C. Filliâtre, C. Marché, B. Monate, Y. Moy, and V. Prevosto. ACSL 1.4 : ANSI/ISO C specification language. Technical report, CEA LIST, 2010.
[2]
D. Beyer. Reliable and reproducible competition results with benchexec and witnesses report on SV-COMP 2016. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), 2016.
[3]
Z. Brezocnik, B. Vlaovic, and A. Vreze. SpinRCP: the Eclipse rich client platform integrated development environment for the Spin model checker. In International Symposium on Model Checking of Software (SPIN), 2014.
[4]
C. Cadar, D. Dunbar, and D. Engler. KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs. In Operating Systems Design and Implementation (OSDI), 2008.
[5]
E. M. Clarke, D. Kroening, and F. Lerda. A tool for checking ANSI-C programs. In Tools and Algorithms for the Construction and Analysis of Systems (TACAS), 2004.
[6]
B. de Vos, L. C. L. Kats, and C. Pronk. EpiSpin: An Eclipse plug-in for Promela/Spin using Spoofax. In International Workshop on Model Checking Software (SPIN), 2011.
[7]
A. F. Donaldson and S. J. Gay. ETCH: An enhanced type checking tool for Promela. In Workshop on Model Checking Software (SPIN). Springer, 2005.
[8]
A. Groce and R. Joshi. Random testing and model checking: Building a common framework for nondeterministic exploration. In International Workshop on Dynamic Analysis (WODA), 2008.
[9]
A. Groce and J. Pinto. A little language for testing. In NASA Formal Methods (NFM), 2015.
[10]
J. Holmes, A. Groce, J. Pinto, P. Mittal, P. Azimi, K. Kellar, and J. O’Brien. Tstl: the template scripting testing language. International Journal on Software Tools for Technology Transfer, pages 1–22, 2016.
[11]
G. Holzmann, R. Joshi, and A. Groce. Model driven code checking. Automated Software Engineering, 2008.
[12]
G. J. Holzmann and R. Joshi. Model-driven software verification. In Workshop on Model Checking Software (SPIN). Springer, 2004.
[13]
Y. Mali and E. V. Wyk. Building extensible specifications and implementations of Promela with AbleP. In Workshop on Model Checking Software (SPIN), 2011.
[14]
Z. Molotnikov, M. Völter, and D. Ratiu. Automated Domain-Specific C Verification with mbeddr. In International Conference on Automatic Software Engineering (ASE), 2014.
[15]
D. Ratiu, M. Voelter, B. Kolb, and B. Schätz. Using language engineering to lift languages and analyses at the domain level. In NASA Formal Methods Symposium (NFM), 2013.
[16]
D. Ratiu, M. Voelter, B. Schaetz, and B. Kolb. Language engineering as enabler for incrementally defined formal analyses. In Proceedings of the Workshop on Formal Methods in Software Engineering: Rigorous and Agile Approaches (FORMSERA’2012), 2012.
[17]
T. C. Ruys. Low-fat recipes for spin. In International Workshop on SPIN Model Checking and Software Verification. Springer, 2000.
[18]
M. Sulzmann and A. Zechner. Model checking dsl-generated C source code. In International Workshop on Model Checking Software (SPIN), 2012.
[19]
M. Voelter, D. Ratiu, B. Kolb, and B. Schätz. mbeddr: instantiating a language workbench in the embedded software domain. Automated Software Engineering, 2013.

Cited By

View all
  • (2019)FASTEN: an open extensible framework to experiment with formal specification approachesProceedings of the 7th International Workshop on Formal Methods in Software Engineering10.1109/FormaliSE.2019.00013(41-50)Online publication date: 27-May-2019
  • (2019)An integrated environment for Spin-based C code checkingInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-019-00510-w21:3(267-286)Online publication date: 1-Jun-2019
  • (2018)Automated testing of DSL implementations--experiences from building mbeddrSoftware Quality Journal10.1007/s11219-017-9390-626:4(1483-1518)Online publication date: 1-Dec-2018

Index Terms

  1. Increasing usability of spin-based C code verification using a harness definition language: leveraging model-driven code checking to practitioners

        Recommendations

        Comments

        Information & Contributors

        Information

        Published In

        cover image ACM Conferences
        SPIN 2017: Proceedings of the 24th ACM SIGSOFT International SPIN Symposium on Model Checking of Software
        July 2017
        199 pages
        ISBN:9781450350778
        DOI:10.1145/3092282
        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Sponsors

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        Published: 13 July 2017

        Permissions

        Request permissions for this article.

        Check for updates

        Author Tags

        1. Spin
        2. domain-specific languages
        3. model checking
        4. testing

        Qualifiers

        • Research-article

        Conference

        ISSTA '17
        Sponsor:

        Upcoming Conference

        ICSE 2025

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)2
        • Downloads (Last 6 weeks)1
        Reflects downloads up to 25 Jan 2025

        Other Metrics

        Citations

        Cited By

        View all
        • (2019)FASTEN: an open extensible framework to experiment with formal specification approachesProceedings of the 7th International Workshop on Formal Methods in Software Engineering10.1109/FormaliSE.2019.00013(41-50)Online publication date: 27-May-2019
        • (2019)An integrated environment for Spin-based C code checkingInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-019-00510-w21:3(267-286)Online publication date: 1-Jun-2019
        • (2018)Automated testing of DSL implementations--experiences from building mbeddrSoftware Quality Journal10.1007/s11219-017-9390-626:4(1483-1518)Online publication date: 1-Dec-2018

        View Options

        Login options

        View options

        PDF

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        Figures

        Tables

        Media

        Share

        Share

        Share this Publication link

        Share on social media