<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Online Testing of Service-Oriented Architectures to detect State-based Faults</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Delft University of Technology</institution>
          ,
          <addr-line>Delft</addr-line>
          ,
          <country country="NL">The Netherlands</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Service-oriented architectures have found their way into industry to enable better business-to-business cooperations. With this software architecture new challenges for software development and testing appeared. In this proposal we discuss the problem of testing these complex, and distributed systems in dedicated test environments. We argue that state and con guration of the production system can in uence system behavior in an unexpected way, and that test environments do not re ect the nal system adequately. Therefore we propose the development of an online testing method to detect state-based faults, and discuss related research challenges and solutions.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        A service-oriented architecture (SOA) is a software architecture that aims at
reusability and interoperability by exposing functionality as loosely coupled
services, that can be composed to form business processes. Testing such systems
is aggravated by stakeholder separation: third party services are black-boxes
for integration testers, and in uence in their evolution and maintenance is not
permitted. Dynamic features, like ultra-late binding or dynamic composition of
services, allow a exible and dynamic way of composing a concrete system just
at runtime, but restrict the ability to test a priori. The context in which a service
will be used is often unknown at the service's development time, imposing
problems for service testers to predict and foresee possible requirements and usage
scenarios. The limited testability of service-oriented systems imposes the need
of reconsidering and redesigning traditional, and inventing new testing methods
and processes, as mentioned in [
        <xref ref-type="bibr" rid="ref10 ref5 ref7 ref9">5, 7, 9, 10</xref>
        ].
      </p>
      <p>On the other hand, high availability requirements force business critical
systems to be continuously available, and direct them to evolve at runtime as new
requirements come up. The system cannot be shutdown for the deployment
process, and erroneous behavior due to software recon guration has to be detected
while the system is operational, i.e. online. State comprises in our context
information about previous executions, the concrete set of installed and active
programs, as well as history of preceding con guration activities.</p>
      <p>This proposal suggests the development of a method to identify state-based
faults in online recon guration of service-oriented systems. Recon guration
includes evolution of business processes, services, business logic and changes in the
execution environments.</p>
      <p>The proposal is structured as following: First, related work on SOA testing
is summarized. Section 3 states the problem and formulates the research
hypothesis. The related research challenges and possible solutions are discussed
subsequently. The research plan is outlined in Section 5, followed by the
evaluation plan in Section 6. The expected outcomes are exposed in Section 7.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        In uenced by the need of new testing methods and techniques for SOA, many
approaches on unit testing of atomic or composite services, integration and
interoperability, as well as regression testing can be found in literature [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. We are
focusing especially on related work concerning integration and online testing.
      </p>
      <p>
        Bucchiarone et al. discuss in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] integration testing and mention especially
the lack of control of integrated services e.g., to access the service code or to put
a service in test mode, and the lack of information of integrated services e.g., to
generate stubs, as di culties for e ective testing. Tsai et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] introduce the
Coyote framework that allows to specify and execute test scenarios and cases.
      </p>
      <p>
        Research in service-oriented testing has also looked at the eld of online
testing, such as by Bertolino et al. for interoperability testing [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ]. The
problem of online testability is only brie y mentioned, with the remark that test
invocations should be directed to stubs or proxies. How services can provide
runtime-testability has been addressed by Brenner et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. An architecture for
online testing of component-based software has been outlined in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        Tsai et al. propose in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] several testability evaluation criteria for test
support of service-oriented architectures. Especially service integration testability,
including service composition, runtime service re-composition, service controller
and adaptive controller testability evaluation criteria are of matter for the design
of a SOA integration testing framework.
      </p>
      <p>All approaches abstract from the complex and heterogeneous environments
the services are operated in, and do not mention their in uence on systems'
behavior.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Problem Statement and Research Hypothesis</title>
      <p>Testing of SOA systems means testing of organization-spanning
systems-ofsystems. Setting up an accurate test environment, that represents the nal
environments of all involved parties in which services are used is in most cases
unfeasible. Many parts of third parties have to be stubbed or mocked, even if
there is a lack in provided information. Di erent and heterogeneous execution
environments and their con guration have to be recreated, whereas a clean initial
system state still does not re ect the production environment. Beside resource
limitations, also time restrictions hinder adequate set-ups.</p>
      <p>Complete recreation of the execution environments and their con guration
for the test environments involves high costs, and even if done carefully, is often
not accurate, leading to the risk that even tested software fails during online
integration in the production environment.</p>
      <p>We want to determine how the state of the services, of the business logic
located behind and of the execution environments can in uence the system
behavior in an unexpected way. Our testing focuses on nding faults that deal with
incorrect state transitions of the con guration of the connected services.</p>
      <p>To conclude, state-based faults cannot easily be revealed during testing of
complex, large, distributed SOA systems in dedicated test environments. A
method for identifying state-based faults during online recon guration of
serviceoriented architectures is needed.</p>
      <p>On account of this the research hypothesis is: \Online testing is an e ective
strategy for detecting state-based faults in service-oriented systems."
4</p>
    </sec>
    <sec id="sec-4">
      <title>Research Challenges and Proposed Solutions</title>
      <p>An e cient online testing method to detect recon guration faults has to address
following challenges.</p>
      <p>What are typical recon guration faults in SOAs, and which state and con
guration produce those, even if software and services have been o ine tested?</p>
      <p>The main challenge is to determine which state and con guration data in
uence program execution in a SOA environment. This has to be narrowed down
by the question: \Which information is often left out in the set-up of test
environments?".</p>
      <p>To de ne possible faults it has to be clear how recon gurations of
servicecentric systems are propagated to local and remote systems. Possible faults have
to be partitioned in those that can easily be detected during o ine testing,
and those that cannot. Latter faults have to be subdivided again, based on the
question: \Which errors are already handled by the middleware, and which have
to be handled by services and systems themselves?"</p>
      <p>Regarding state and con guration, security and authentication policies are
often not known or accurately implemented in a test environment. Many errors,
like service unavailability and deployment errors, will be detected and partly
solved by the middleware. During composition, and service execution, typical
integration faults, like interface, data format, and communication protocol
mismatches are to be expected. Further, dependency errors caused by evolution of
parts of the system can occur, especially if some of the services and systems
involved are stubbed or mocked in the test environment. It is important to
analyze the impact software evolution has on the existing systems, either local or
remote, and which layers of a SOA are a ected. This can reach from changes in
the business process layer, to the business logic layer and also to changes in the
execution environment. Changes in the backend of a service, be it the business
logic or the con guration of the execution environment, can have rippling e ects
on local or even remote systems. These changes can be for instance, policies,
new installed software, changes of database schema or changes of the database
management system. Such modi cations can cause service level agreement
violations, because the network load increases, the new database management system
responses slower, or access is now denied.</p>
      <p>How should an e ective online testing framework for SOA integration and system
testing be designed, and what are the requirements for such a framework?</p>
      <p>Challenging during design and development of an online testing method, are
test isolation, performance, and application enhancement e ort. If a system's
behavior is assessed online, it has to be guaranteed that testing is isolated from
the production system, and no unintended side e ects appear. Test execution
can only take place if no performance decreases or even unavailability of service
are experienced. Enhancement costs for applying online testability mechanisms
have to correspond to the positive impact accompanied with them. This implies
that the tradeo of online testing is corporeal. But how can the e ectiveness of
an online testing method be assessed and measured? Evaluation could be based
on the capability of online testing to reveal faults in contrast to o ine testing.</p>
      <p>Information regarding the state of execution environments and
infrastructures (e.g. application server, messaging bus, etc.) should support online testing
to reveal faults. \But what is an accessible and uniformed way to provide state
information to testing entities?"</p>
      <p>Monitoring capabilities can be used to notify about recon guration changes
in the system. An observer service, installed on each server involved in the SOA
environment, could provide access to this information to interested and
authenticated testing entities.</p>
      <p>How can test cases, oracles, and system models be derived or generated?</p>
      <p>In many SOA environments, abstract business models, business process
models or UML documents, as well as service descriptions are present. Those
represent a good foundation to derive system models, test scenarios and cases.</p>
      <p>One technique would consider the running system to be correct and use it
as test oracle. The new, adapted version of the system is tested, and the test
output is compared with the output of the old, stable system. Capture and replay
techniques can help to increase observability, and controllability of the testing
process, because old input and output sequences are recorded and reused ad
libitum.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Research Plan</title>
      <p>To address the rst research challenge, asking what are typical recon guration
faults in SOA-based systems, we have implemented an online testing method
providing test isolation in a case study. We could gain a rst insight in state-based
faults, mainly caused by missing required packages, or wrong class bindings. To
develop a method for identifying state-based faults in online recon guration,
we have to understand better which state and con gurations are relevant in
SOA systems, and how these in uence the testing e ectiveness and accuracy.
In the coming year, we plan to set up a SOA laboratory in order to examine
con guration and state information signi cant during system recon guration.
Based on the results we want to develop a fault taxonomy for faults caused by
evolutions in distributed, heterogeneous runtime environments.</p>
      <p>In the next year, our online testing method has to be enhanced to identify
these faults, and to be applicable in industrial SOA environments (e.g., IBM
product suite).</p>
      <p>Subsequently, we will explore capabilities to reduce the application
enhancement e ort. This will include automatic generation of test cases, and of
testability artifacts allowing runtime service assessment. With this outcome, the online
testing method will be extended to an open source online testing framework,
providing support for test generation and execution.</p>
      <p>Throughout the research, the outcomes will be evaluated based on industrial
case studies.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Evaluation Plan</title>
      <p>The SOA laboratory is a network of distributed servers, on which services,
installed on di erent execution environments, form actual applications, inspired
by industry. Communication is handled by a centralized service registry and bus.</p>
      <p>
        This laboratory will be used to conduct representative case studies, following
Yin [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], to evaluate our online testing method. Update scenarios of di erent
parts of the system will function to determine the accuracy of the test
environment to prevent failures, and the fault nding capabilities of our method.
      </p>
      <p>In collaboration with our industrial partner, we also want to assess the e ort
to prepare an application, with support of our framework, for online testing.
For that, we will measure, for example, the required time and the number of
necessary changes in the existing system. A comparison of e ort and fault nding
capabilities should indicate if online testing has a positive tradeo .
7</p>
    </sec>
    <sec id="sec-7">
      <title>Expected Outcomes</title>
      <p>The resulting contributions of the doctoral studies include:
1. A new approach for online testing to detect state-based faults.
2. A series of fault models classifying faults that appear especially in the
production environments.
3. Empirical evidence concerning the e ectiveness of the proposed approach.
4. An open source tool for online test support, including generation and
execution of test cases.</p>
      <p>Our results should corroborate the hypothesis by indicating the e ectiveness
of online testing to detect state-based faults during system recon guration.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>A.</given-names>
            <surname>Bertolino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Frantzen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Polini</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Tretmans</surname>
          </string-name>
          .
          <article-title>Audition of web services for testing conformance to open speci ed protocols</article-title>
          .
          <source>In Architecting Systems with Trustworthy Components</source>
          , pages
          <fpage>1</fpage>
          <lpage>{</lpage>
          25. Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Antonia</given-names>
            <surname>Bertolino</surname>
          </string-name>
          , Guglielmo Angelis, Lars Frantzen, and
          <string-name>
            <given-names>Andrea</given-names>
            <surname>Polini</surname>
          </string-name>
          .
          <article-title>The plastic framework and tools for testing service-oriented applications</article-title>
          . pages
          <volume>106</volume>
          {
          <fpage>139</fpage>
          , Berlin, Heidelberg,
          <year>2009</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Daniel</given-names>
            <surname>Brenner</surname>
          </string-name>
          , Colin Atkinson, Oliver Hummel, and
          <string-name>
            <given-names>Dietmar</given-names>
            <surname>Stoll</surname>
          </string-name>
          .
          <article-title>Strategies for the run-time testing of third party web services</article-title>
          .
          <source>In SOCA '07: Proceedings of the IEEE International Conference on Service-Oriented Computing and Applications</source>
          , pages
          <volume>114</volume>
          {
          <fpage>121</fpage>
          , Washington, DC, USA,
          <year>2007</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>A.</given-names>
            <surname>Bucchiarone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Melgratti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Gnesi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Bruni</surname>
          </string-name>
          .
          <article-title>Testing service composition</article-title>
          .
          <source>In Proceedings of the 8th Argentine Symposium on Software Engineering (ASSE'07) Mar del Plata</source>
          , Argentina, pages
          <volume>29</volume>
          {
          <fpage>31</fpage>
          ,
          <year>August 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Gerardo</given-names>
            <surname>Canfora</surname>
          </string-name>
          and
          <article-title>Massimiliano Di Penta</article-title>
          .
          <article-title>Testing services and service-centric systems: Challenges and opportunities</article-title>
          .
          <source>IT Professional</source>
          ,
          <volume>8</volume>
          (
          <issue>2</issue>
          ):
          <volume>10</volume>
          {
          <fpage>17</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Gerardo</given-names>
            <surname>Canfora</surname>
          </string-name>
          and
          <string-name>
            <given-names>Massimiliano</given-names>
            <surname>Penta</surname>
          </string-name>
          .
          <article-title>Service-oriented architectures testing: A survey</article-title>
          . pages
          <volume>78</volume>
          {
          <fpage>105</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Schahram</given-names>
            <surname>Dustdar</surname>
          </string-name>
          and
          <string-name>
            <given-names>Stephan</given-names>
            <surname>Haslinger</surname>
          </string-name>
          .
          <article-title>Testing of service-oriented architectures a practical approach</article-title>
          .
          <source>In Object-Oriented and Internet-Based Technologies</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Alberto</given-names>
            <surname>Gonzalez</surname>
          </string-name>
          , Eric Piel, and
          <string-name>
            <surname>Hans-Gerhard Gross</surname>
          </string-name>
          .
          <article-title>Architecture support for runtime integration and veri cation of component-based systems of systems</article-title>
          . In 1st International Workshop on Automated Engineering of Autonomous and
          <article-title>run-time evolving Systems (ARAMIS</article-title>
          <year>2008</year>
          ), pages
          <fpage>41</fpage>
          {48,
          <string-name>
            <given-names>L</given-names>
            <surname>'Aquila</surname>
          </string-name>
          , Italy,
          <year>September 2008</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Michaela</given-names>
            <surname>Greiler</surname>
          </string-name>
          ,
          <string-name>
            <surname>Hans-Gerhard Gross</surname>
          </string-name>
          , and Khalid Adam Nasr.
          <article-title>Runtime integration and testing for highly dynamic service oriented ICT solutions { an industry challenges report</article-title>
          .
          <source>In TAIC-PART '09: Proceedings of the Testing: Academic &amp; Industrial Conference on Practice And Research Techniques</source>
          , pages
          <volume>51</volume>
          {
          <fpage>55</fpage>
          ,
          <string-name>
            <surname>Windsor</surname>
          </string-name>
          , UK,
          <year>2009</year>
          . IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Michael</surname>
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Papazoglou</surname>
            , Paolo Traverso, Schahram Dustdar, and
            <given-names>Frank</given-names>
          </string-name>
          <string-name>
            <surname>Leymann</surname>
          </string-name>
          .
          <article-title>Service-oriented computing: State of the art and research challenges</article-title>
          .
          <source>Computer</source>
          ,
          <volume>40</volume>
          (
          <issue>11</issue>
          ):
          <volume>38</volume>
          {
          <fpage>45</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. W. T. Tsai,
          <string-name>
            <given-names>Jerry</given-names>
            <surname>Gao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Xiao</given-names>
            <surname>Wei</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Yinong</given-names>
            <surname>Chen</surname>
          </string-name>
          .
          <article-title>Testability of software in service-oriented architecture</article-title>
          .
          <source>In COMPSAC '06: Proceedings of the 30th Annual International Computer Software and Applications Conference</source>
          , pages
          <volume>163</volume>
          {
          <fpage>170</fpage>
          , Washington, DC, USA,
          <year>2006</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. W. T. Tsai, Ray Paul, Weiwei Song, and
          <string-name>
            <given-names>Zhibin</given-names>
            <surname>Cao</surname>
          </string-name>
          .
          <article-title>Coyote: An xml-based framework for web services testing</article-title>
          .
          <source>In HASE '02: Proceedings of the 7th IEEE International Symposium on High Assurance Systems Engineering, page 173</source>
          , Washington, DC, USA,
          <year>2002</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>R. K.</given-names>
            <surname>Yin</surname>
          </string-name>
          .
          <source>Case Study Research, Design and Methods</source>
          . Sage Publications, Beverly Hills, CA, second edition,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>