The experimental results indicate the usability of the
approach.
The main contribution of this work in comparison
to previous work can be summarized as follows: The
proposed method does not rely on an external mech-
anism or framework, it can be easily applied. It does
not assume availability of semantic service descrip-
tion or description of internal mechanism of web ser-
vice. For input generation for web services, it com-
bines data mutation based technique with semantic
dependency analysis among web services. Test score
generation process is performed automatically.
The rest of this paper is organized as follows. In
Section 2, related work is summarized. In Section 3,
general architecture of the proposed web service test-
ing method is described. In Section 4, mutation-based
analysis is presented. In Section 5, semantic based
analysis is given and this is followed by the score gen-
eration described in Section 6. Evaluation results are
presented in Section 7. The paper is concluded in Sec-
tion 8 with an overview and future work.
2 RELATED WORK
Before using the web service by service consumers,
testing is needed to guarantee the correctness and ro-
bustness of web services. The study of Martin et al.
(Martin et al., 2006) is one of studies that empha-
size the robustness testing of web services by using
WSDL. It presents a framework to generate and exe-
cute robustness test cases automatically.
In (Bai et al., 2005), Bai et al. propose an ap-
proach about WSDL-based test generation and test
case documentation to provide reusability of gener-
ated test cases. Test cases are generated in four levels:
test data generation, individual test operation gener-
ation, operation flow generation, and test specifica-
tion generation. Test data is generated by analyzing
WSDL message definitions. In individual test oper-
ation generation level, input parameters of web ser-
vices are analyzed and test operations are generated.
In operation flow generation level, the sequence of the
web services are determined by the analysis of depen-
dencies between the web services. In this approach,
three dependencies are used; input dependency, in-
put/output dependency and output dependency.
Siblini et al. (Siblini and Mansour, 2005) propose
a mutation testing method for web services. The aim
of this approach is to find errors relevant to both the
WSDL interface and the logic of web service pro-
gramming. In their work, mutant operators to the
WSDL document of web services are defined and mu-
tated web service interfaces are generated. With each
modification, a new version of test case is created and
it is called a mutant. Mutant operators are applied
to input parameters and output parameter of web ser-
vices and the data types that are defined in the WSDL
document. .
Obtaining valid inputs and outputs is a tedious
work and often such information is not readily avail-
able. AbuJarour et al. (AbuJarour and Oergel, 2011)
propose an approach to generate annotations for web
services, i.e.., valid input parameters, examples of
expected outputs and tags, by sampling invocations
of web services automatically. The generated anno-
tations are integrated to web forms to help service
consumers for actual service invocations. In this ap-
proach, in order to generate valid parameters, various
resources such as random values, outputs of other web
services that are provided by the same web service
provider and different providers, external data sources
such as WordNet, DBpedia, Freebase, are used.
Although the proposed method have similarities
with (Bai et al., 2005), (Siblini and Mansour, 2005)
and (AbuJarour and Oergel, 2011), as the basic dif-
ference, in this study, the emphasis is on generating
appropriate inputs for testing and generate an overall
test score automatically.
3 GENERAL ARCHITECTURE
The proposed work aims to automatically test web
services that are specified in WSDL. Each service
provider has a WSDL document to specify the infor-
mation about the provided web services. This doc-
ument contains the names of the web services, the
attributes of input and output parameters of the web
services and also user defined types. This document
provides valuable information for service invocation.
However, this information is not sufficient to test the
web services. Since the behavioral information of
web service is not available, only black-box testing
can be performed for validation and testing of web
service.
Within the scope of this work, web service valida-
tion is defined as the process of checking whether the
web service is still alive and accessible or not by in-
voking the web service by simple appropriate param-
eter values. On the other hand, web service testing is
the task of checking whether a web service functions
as it should be. Both processes require generation of
input values for test cases. To this aim, firstly, the
types of the input and output parameters of a given
web service should be identified. As the atomic pa-
rameter types, boolean, character, integer and floating
point number are the most common ones. By using
TestingDiscoveredWebServicesAutomatically
161