Testing is the dominant software verification technique used in industry; it is a critical and
most expensive process during software development. Along with the increase in software
complexity, the costs of testing are increasing rapidly. Faced with this problem, many
researchers are working on automated testing, attempting to find methods that execute the
processes of testing automatically and cut down the cost of testing.
Today, software systems are becoming complicated. Some of them are composed of
several different components. Some projects even required different systems to work together
and support each other. The XML have been developed to facilitate data exchange
and enhance interoperability among software systems. Along with the development of
XML technologies, XML-based systems are used widely in many domains. In this thesis
we will present a methodology for testing XML-based applications automatically.
In this thesis we present a methodology called XPT (XML-based Partition Testing)
which is defined as deriving XML Instances from XML Schema automatically and systematically.
XPT methodology is inspired from the Category-partition method, which is a
well-known approach to Black-box Test generation. We follow a similar idea of applying
partitioning to an XML Schema in order to generate a suite of conforming instances; in
addition, since the number of generated instances soon becomes unmanageable, we also
introduce a set of heuristics for reducing the suite; while optimizing the XML Schema
coverage. The aim of our research is not only to invent a technical method, but also to attempt
to apply XPT methodology in real applications. We have created a proof-of-concept
tool, TAXI, which is the implementation of XPT. This tool has a graphic user interface
that can guide and help testers to use it easily. TAXI can also be customized for specific
applications to build the test environment and automate the whole processes of testing.
The details of TAXI design and the case studies using TAXI in different domains are
presented in this thesis. The case studies cover three test purposes. The first one is for
functional correctness, specifically we apply the methodology to do the XSLT Testing,
which uses TAXI to build an automatic environment for testing the XSLT transformation;
the second is for robustness testing, we did the XML database mapping test which tests the
data transformation tool for mapping and populate the data from XML Document to XML
database; and the third one is for the performance testing, we show XML benchmark that
uses TAXI to do the benchmarking of the XML-based applications.