Diploma and Master Theses (authored and supervised):
"Efficient Distributed Computation of Web Services API Coverage Metrics";
Supervisor: S. Dustdar, W. Hummer;
Institut für Informationssysteme, Distributed Systems Group,
final examination: 2014-10-01.
Test coverage is a valuable tool for quality assurance in software development. Coverage is the degree to which a system has been tested or used. Softwaretests aim to achieve a high coverage thus ensuring a high level of quality. In contrast to whitebox approaches, where the
inner structure of a system is known and statements about the coverage of instructions and execution paths can be made, black box approaches focus on a system´s input output behaviour.
This thesis describes concepts and the prototypical implementation of an efficient distributed API coverage computation framework for Web services. The coverage of an API is defined by the amount of distinct invocations actually performed in relation to the amount of possible
distinct invocations. Due to the large amount of possible input parameters a full coverage of nontrivial APIs is infeasible. Hence equivalence classes or partitions are defined upon the domain
of all possible input data.
In the case of Web services the domain of all possible input data is the set of all valid XML messages defined by the XSD within the WSDL. The first contribution of this thesis is an approach to partition the set of all possible Web services messages by computing a synopsis for each message which maps the message into the corresponding quivalence class. The mapping depends on values and structural properties of individual elements in the XML message. Each element in the XSD is assigned a set of userdefined expressions which are evaluated by the system during runtime, partitioning the domain of each schema element. The combination of the individual element partitions yields a partition of the input domain of the Web service.
Computing the API coverage involves processing all elements in a (potentially large) set of historical invocation data. The second contribution of this thesis is a scalable architecture for the framework, which is capable of determining the amount of covered equivalence classes (or domain partition subsets) in a set of invocation messages which is held distributed over multiple data nodes. The major share of the computing workload is carried out next to the data. For an efficient implementation the suitability of various NoSQL databases is discussed whereas the final prototype is implemented on top of an in-memory data grid.
The concluding performance evaluation of the prototype proves the scalability of the approach, providing fast response times even for millions of invocation messages distributed over multiple data nodes.
Created from the Publication Database of the Vienna University of Technology.