Erweiterte Suche

Muggl: The Muenster Generator of Glass-box Test Cases

Testing is a task that requires much effort, yet it is essential for developing software. Automated test case generation (TCG) promises to relieve humans of manual work. We introduce Muggl (the Muenster generator of glass-box test cases), which is developed at our institute. Muggl generates test cases for Java bytecode. It symbolically executes code and uses constraint solving techniques. While papers on Muggl have already been published, no comprehensive introduction of the tool exist. This working paper fills this gap.

Titel: Muggl: The Muenster Generator of Glass-box Test Cases
Verfasser: Majchrzak, Tim A.
Kuchen, Herbert
Organisation: European Research Center for Information Systems (ERCIS)
FB 04: Wirtschaftswissenschaftliche Fakultät
Dokumenttyp: Arbeitspapier
Medientyp: Text
Erscheinungsdatum: Februar 2011
Publikation in MIAMI: 29.08.2012
Datum der letzten Änderung: 05.11.2014
Reihe Working Papers / ERCIS - European Research Center for Information Systems ; 10
Schlagworte: software test; testing; test case generation; TCG; test automation; test tool
Fachgebiete: Wirtschaft; Datenverarbeitung; Informatik
Sprache: Englisch
Format: PDF-Dokument
URN: urn:nbn:de:hbz:6-39359452290
Permalink: http://nbn-resolving.de/urn:nbn:de:hbz:6-39359452290
Onlinezugriff:
Inhalt:
1 Introduction ..... 3
2 Related Work ..... 3
3 The Java Virtual Machine ..... 4
3.1 Basic Concepts ..... 4
3.2 Data Types ..... 5
3.3 Architecture and Memory Abstraction ..... 6
3.4 Class Files ..... 7
3.5 Execution Unit ..... 9
3.6 Instruction Set ..... 9
4 Muggl Basics ..... 13
4.1 Execution Principles ..... 13
4.2 Symbolic Execution ..... 17
4.3 Constraint Solving ..... 21
4.4 Test Case Generation ..... 22
4.5 Architecture ..... 23
4.6 Execution example ..... 25
5 Distinct Features ..... 25
5.1 Iterative-Deepening Depth-First Search ..... 26
5.2 Step-by-Step GUI ..... 28
5.3 Configurability ..... 31
5.4 Class File Inspection ..... 34
5.5 Control-Flow and Data-Flow Coverage ..... 34
5.6 Test Case Elimination ..... 37
5.7 Native Wrapper ..... 37
5.8 Dynamic Optimization ..... 38
5.9 Array Generation ..... 39
5.10 Java Class File Representation by Java Classes ..... 40
6 Experimental Evaluation ..... 43
6.1 Tested Examples ..... 43
6.2 Qualitative Results ..... 44
6.3 Quantitative Results ..... 44
7 Ongoing Research ..... 46
7.1 Features in Preparation ..... 46
7.1.1 Combination of Logic and Object-Oriented programming paradigms ..... 47
7.1.2 Data Structure Generators ..... 47
7.1.3 Solver Improvements ..... 48
7.2 Future Work ..... 48
8 Conclusion ..... 49
References ..... 53