xmlmate

URL

Change Log

When What
March 11, 2015 Donated by Nikolas Havrikov

Reference

Nikolas Havrikov, Matthias Höschele, Juan Pablo Galeotti, and Andreas Zeller. 2014. XMLMate: evolutionary XML test generation. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2014). ACM, New York, NY, USA, 719-722. DOI=10.1145/2635868.2661666 http://doi.acm.org/10.1145/2635868.2661666

Download code

https://www.st.cs.uni-saarland.de/testing/xmlmate/

Link to Data

https://www.st.cs.uni-saarland.de/testing/xmlmate/xmlmate-data.zip

Teaser video

http://youtu.be/-yKom5mbft0

Abstract

Generating system inputs satisfying complex constraints is still a challenge for modern test generators. We present XMLMATE, a search-based test generator specially aimed at XML-based systems. XMLMATE leverages program structure, existing XML schemas, and XML inputs to generate, mutate, recombine, and evolve valid XML inputs.

XMLMATE is a search-based test generator. As sketched in Figure 2, it either takes a population of sample XML inputs or randomly generates one, and then systematically evolves this population over several generations to reach the desired coverage goal. To evolve inputs it applies mutation and crossover operators to individuals and favors the procreation and survival of the fittest according to a fitness function geared towards obtaining coverage and triggering exceptions. Measuring the fitness of an input requires executing the program under test; therefore, the runtime of the approach scales linearly with the runtime of the program.

XMLMATE is a search-based test generator. As sketched in Figure 2, it either takes a population of sample XML inputs or randomly generates one, and then systematically evolves this population over several generations to reach the desired coverage goal. To evolve inputs it applies mutation and crossover operators to individuals and favors the procreation and survival of the fittest according to a fitness function geared towards obtaining coverage and triggering exceptions. Measuring the fitness of an input requires executing the program under test; therefore, the runtime of the approach scales linearly with the runtime of the program.

Over a set of seven XML-based systems, XMLMATE detected 31 new unique failures in production code, all triggered by system inputs and thus true alarms.

Contents

Zip file (46M) divides as follows:

.
├── batik
│   ├── evosuite-tests
│   ├── microsoft-xmlsamplegenerator
│   ├── msv
│   ├── samples
│   ├── test_driver
│   ├── xmlmate(random)
│   └── xmlmate(samples)
├── flyingsaucer
│   ├── evosuite-tests
│   ├── microsoft-xmlsamplegenerator
│   ├── samples
│   ├── test_driver
│   ├── xmlmate(random)
│   └── xmlmate(samples)
├── freedots
│   ├── evosuite-tests
│   ├── microsoft-xmlsamplegenerator
│   ├── msv
│   ├── samples
│   ├── test_driver
│   ├── xmlmate(random)
│   └── xmlmate(samples)
├── jeuclid
│   ├── evosuite-tests
│   ├── samples
│   ├── test_driver
│   ├── xmlmate(random)
│   └── xmlmate(samples)
├── rome
│   ├── evosuite-tests
│   ├── microsoft-xmlsamplegenerator
│   ├── msv
│   ├── samples
│   ├── test_driver
│   ├── xmlmate(random)
│   └── xmlmate(samples)
├── svgimage
│   ├── evosuite-tests
│   ├── microsoft-xmlsamplegenerator
│   ├── msv
│   ├── samples
│   ├── test_driver
│   ├── xmlmate(random)
│   └── xmlmate(samples)
└── svgsalamander
    ├── evosuite-tests
    ├── microsoft-xmlsamplegenerator
    ├── msv
    ├── samples
    ├── test_driver
    ├── xmlmate(random)
    └── xmlmate(samples)