Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1401827.1401833acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Random testing and model checking: building a common framework for nondeterministic exploration

Published: 21 July 2008 Publication History

Abstract

Two popular forms of dynamic analysis, random testing and explicit-state software model checking, are perhaps best viewed as search strategies for exploring the state spaces introduced by nondeterminism in program inputs. We present an approach that enables this nondeterminism to be expressed in the SPIN model checker's PROMELA language, and then lets users generate either model checkers or random testers from a single harness for a tested C program. Our approach makes it easy to compare model checking and random testing for models with precisely the same input ranges and probabilities and allows us to mix random testing with model checking's exhaustive exploration of non-determinism. The PROMELA language, as intended in its design, serves as a convenient notation for expressing nondeterminism and mixing random choices with nondeterministic choices. We present and discuss a comparison of random testing and model checking. The results derive from using our framework to test a C program with an effectively infinite state space, a module in JPL's next Mars rover mission. More generally, we show how the ability of the SPIN model checker to call C code can be used to extend SPIN's features, and hope to inspire others to use the same methods to implement dynamic analyses that can make use of efficient state storage, matching, and backtracking.

References

[1]
http://mars.jpl.nasa.gov/msl/.
[2]
Edmund M. Clarke, Orna Grumberg, and Doron Peled. Model Checking. MIT Press, 2000.
[3]
Matthew B. Dwyer, Sebastian G. Elbaum, Suzette Person, and Ragul Purandare. Parallel randomized state-space search. In International Conference on Software Engineering, pages 3--12, 2007.
[4]
Matthew B. Dwyer, Suzette Person, and Sebastian Elbaum. Controlling factors in evaluating path-sensitive error detection techniques. In Foundations of Software Engineering, pages 92--104, 2006.
[5]
Michael Ernst, Jake Cockrell, William Griswold, and David Notkin. Dynamically discovering likely program invariants to support program evolution. In International Conference on Software Engineering, pages 213--224, 1999.
[6]
Alex Groce, Gerard Holzmann, and Rajeev Joshi. Randomized differential testing as a prelude to formal verification. In International Conference on Software Engineering, pages 621--631, 2007.
[7]
Alex Groce and Rajeev Joshi. Extending model checking with dynamic analysis. In International Conference on Verification, Model Checking, and Abstract Interpretation, pages 142--156, 2008.
[8]
Alex Groce and Willem Visser. Heuristics for model checking Java programs. Software Tools for Technology Transfer, 6(4): 260--276, 2004.
[9]
Richard Hamlet. Random testing. In Encyclopedia of Software Engineering, pages 970--978. Wiley, 1994.
[10]
Richard Hamlet. When only random testing will do. In International Workshop on Random Testing, pages 1--9, 2006.
[11]
Gerard Holzmann and Rajeev Joshi. Model-driven software verification. In SPIN Workshop on Model Checking of Software, pages 76--91, 2004.
[12]
Gerard J. Holzmann. The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley Professional, 2003.
[13]
William McKeeman. Differential testing for software. Digital Technical Journal of Digital Equipment Corporation, 10(1): 100--107, 1998.
[14]
Carlos Pacheco, Shuvendu K. Lahiri, Michael D. Ernst, and Thomas Ball. Feedback-directed random test generation. In International Conference on Software Engineering, pages 75--84, 2007.
[15]
Willem Visser, Klaus Havelund, Guillaume Brat, SeungJoon Park, and Flavio Lerda. Model checking programs. Automated Software Engineering, 10(2): 203--232, April 2003.
[16]
Willem Visser, Corina Pǎsǎreanu, and Radek Pelanek. Test input generation for Java containers using state matching. In International Symposium on Software Testing and Analysis, pages 37--48, 2006.

Cited By

View all
  • (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)How verified (or tested) is my code? Falsification-driven verification and testingAutomated Software Engineering10.5555/3288647.328871225:4(917-960)Online publication date: 1-Dec-2018
  • (2018)How verified (or tested) is my code? Falsification-driven verification and testingAutomated Software Engineering10.1007/s10515-018-0240-y25:4(917-960)Online publication date: 11-Jul-2018
  • Show More Cited By

Index Terms

  1. Random testing and model checking: building a common framework for nondeterministic exploration

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    WODA '08: Proceedings of the 2008 international workshop on dynamic analysis: held in conjunction with the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2008)
    July 2008
    81 pages
    ISBN:9781605580548
    DOI:10.1145/1401827
    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: 21 July 2008

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. dynamic analysis
    2. model checking
    3. random testing
    4. test frameworks

    Qualifiers

    • Research-article

    Conference

    ISSTA '08
    Sponsor:

    Upcoming Conference

    ICSE 2025

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)7
    • Downloads (Last 6 weeks)3
    Reflects downloads up to 03 Oct 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (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)How verified (or tested) is my code? Falsification-driven verification and testingAutomated Software Engineering10.5555/3288647.328871225:4(917-960)Online publication date: 1-Dec-2018
    • (2018)How verified (or tested) is my code? Falsification-driven verification and testingAutomated Software Engineering10.1007/s10515-018-0240-y25:4(917-960)Online publication date: 11-Jul-2018
    • (2018)TSTLInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-016-0445-y20:1(57-78)Online publication date: 1-Feb-2018
    • (2018)An Approximation-Based Approach for the Random Exploration of Large ModelsTests and Proofs10.1007/978-3-319-92994-1_2(27-43)Online publication date: 2-Jun-2018
    • (2017)One test to rule them allProceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3092703.3092704(1-11)Online publication date: 10-Jul-2017
    • (2017)Increasing usability of spin-based C code verification using a harness definition language: leveraging model-driven code checking to practitionersProceedings of the 24th ACM SIGSOFT International SPIN Symposium on Model Checking of Software10.1145/3092282.3092283(60-69)Online publication date: 13-Jul-2017
    • (2016)Model-based Testing of Mobile Systems – An Empirical Study on QuizUp Android AppElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.208.2208(16-30)Online publication date: 25-May-2016
    • (2015)How verified is my code?Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2015.40(737-748)Online publication date: 9-Nov-2015
    • (2015)Model-based testing of NASA’s GMSEC, a reusable framework for ground system softwareInnovations in Systems and Software Engineering10.1007/s11334-015-0254-611:3(217-232)Online publication date: 14-Jul-2015
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media