Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1109/ASE.2019.00132acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
research-article

mCUTE: a model-level concolic unit testing engine for UML state machines

Published: 07 February 2020 Publication History
  • Get Citation Alerts
  • Abstract

    Model Driven Engineering (MDE) techniques raise the level of abstraction at which developers construct software. However, modern cyber-physical systems are becoming more prevalent and complex and hence software models that represent the structure and behavior of such systems still tend to be large and complex. These models may have numerous if not infinite possible behaviors, with complex communications between their components. Appropriate software testing techniques to generate test cases with high coverage rate to put these systems to test at the model-level (without the need to understand the underlying code generator or refer to the generated code) are therefore important. Concolic testing, a hybrid testing technique that benefits from both concrete and symbolic execution, gains a high execution coverage and is used extensively in the industry for program testing but not for software models. In this paper, we present a novel technique and its tool mCUTE1, an open source 2 model-level concolic testing engine. We describe the implementation of our tool in the context of Papyrus-RT, an open source Model Driven Engineering (MDE) tool based on UML-RT, and report the results of validating our tool using a set of benchmark models.

    References

    [1]
    2016. A Collection of Well-Known Software Failures. http://www.cse.psu.edu/~gxt29/bug/softwarebug.html. Accessed: 2016-8-25.
    [2]
    2018. RTist. https://www.hcltech.com/products-and-platforms/rtist. Accessed: 2019-01-10.
    [3]
    Reza Ahmadi and Juergen Dingel. [n. d.]. Concolic Testing for Models of State-based Systems. In The 27th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (FSE'19).
    [4]
    Reza Ahmadi, Nicolas Hili, and Juergen Dingel. 2018. Property-aware unit testing of uml-rt models in the context of mde. In European Conference on Modelling Foundations and Applications. Springer, 147--163.
    [5]
    Reza Ahmadi, Ernesto Posse, and Juergen Dingel. 2018. Slicing UML-based Models of Real-time Embedded Systems. In International Conference on Model Driven Engineering Languages and Systems (MODELS'18).
    [6]
    Daniel Balasubramanian, Corina S Pasareanu, Michael W Whalen, Gábor Karsai, and Michael Lowry. 2011. Polyglot: modeling and analysis for multiple statechart formalisms. In Proceedings of the 2011 International Symposium on Software Testing and Analysis. ACM, 45--55.
    [7]
    Jacob Burnim and Koushik Sen. 2008. Heuristics for scalable dynamic test generation. In 23rd IEEE/ACM International Conference on Automated Software Engineering, 2008. ASE 2008. IEEE, 443--446.
    [8]
    Duncan Clarke, Thierry Jéron, Vlad Rusu, and Elena Zinovieva. 2002. STG: A symbolic test generation tool. In TACAS, Vol. 2280. Springer, 470--475.
    [9]
    Madeleine Faugere, Thimothee Bourbeau, Robert De Simone, and Sebastien Gerard. 2007. MARTE: Also an uml profile for modeling aadl applications. In Engineering Complex Computer Systems, 2007. 12th IEEE International Conference on. IEEE, 359--364.
    [10]
    Sanford Friedenthal, Alan Moore, and Rick Steiner. 2014. A practical guide to SysML: the systems modeling language. Morgan Kaufmann.
    [11]
    Patrice Godefroid, Nils Klarlund, and Koushik Sen. 2005. DART: directed automated random testing. In ACM Sigplan Notices, Vol. 40. ACM, 213--223.
    [12]
    Patrice Godefroid, Michael Y Levin, and David Molnar. 2012. SAGE: whitebox fuzzing for security testing. Queue 10, 1 (2012), 20.
    [13]
    Amal Khalil and Juergen Dingel. 2015. Incremental symbolic execution of evolving state machines. In Model Driven Engineering Languages and Systems (MODELS), 2015 ACM/IEEE 18th International Conference on. IEEE, 14--23.
    [14]
    Yunho Kim, Dongju Lee, Junki Baek, and Moonzoo Kim. 2019. Concolic testing for high test coverage and reduced human effort in automotive industry. In Proceedings of the 41st International Conference on Software Engineering: Software Engineering in Practice. IEEE Press, 151--160.
    [15]
    George H Mealy. 1955. A method for synthesizing sequential circuits. Bell Labs Technical Journal 34, 5 (1955), 1045--1079.
    [16]
    George C Necula, Scott McPeak, Shree P Rahul, and Westley Weimer. 2002. CIL: Intermediate language and tools for analysis and transformation of C programs. In International Conference on Compiler Construction. Springer, 213--228.
    [17]
    Bran Selic. 1998. Using UML for modeling complex real-time systems. In Languages, compilers, and tools for embedded systems. Springer, 250--260.
    [18]
    Koushik Sen and Gul Agha. 2006. CUTE and jCUTE: Concolic unit testing and explicit path model-checking tools. In International Conference on Computer Aided Verification. Springer, 419--423.
    [19]
    Koushik Sen, Darko Marinov, and Gul Agha. 2005. CUTE: a concolic unit testing engine for C. In ACM SIGSOFT Software Engineering Notes, Vol. 30. ACM, 263--272.
    [20]
    Nikolai Tillmann and Jonathan De Halleux. 2008. Pex-white box test generation for .net. In International Conference on Tests and Proofs. Springer, 134--153.
    [21]
    Willem Visser, Corina S Pasareanu, and Sarfraz Khurshid. 2004. Test input generation with Java PathFinder. ACM SIGSOFT Software Engineering Notes 29, 4 (2004), 97--107.
    [22]
    Karolina Zurowska and Juergen Dingel. 2012. Symbolic Execution of UML-RT State Machines. In Proceedings of the 27th Annual ACM Symposium on Applied Computing. ACM, 1292--1299.

    Cited By

    View all
    • (2020)MReplayerProceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings10.1145/3417990.3422003(1-5)Online publication date: 16-Oct-2020

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ASE '19: Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering
    November 2019
    1333 pages
    ISBN:9781728125084

    Sponsors

    In-Cooperation

    • IEEE CS

    Publisher

    IEEE Press

    Publication History

    Published: 07 February 2020

    Check for updates

    Author Tags

    1. Concolic testing
    2. MDE
    3. UML
    4. state machines
    5. unit testing

    Qualifiers

    • Research-article

    Conference

    ASE '19
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 82 of 337 submissions, 24%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)3
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 27 Jul 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2020)MReplayerProceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings10.1145/3417990.3422003(1-5)Online publication date: 16-Oct-2020

    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