TESTING IN A SERVICE-ORIENTED WORLD



Similar documents
Assurance in Service-Oriented Environments

A standards-based approach to application integration

Service Virtualization: Managing Change in a Service-Oriented Architecture

A Quick Introduction to SOA

Reducing SOA Identity Fatigue through Automated Identity Testing

Air Force SOA Enterprise Service Bus Study Using Business Process Management Workflow Orchestration for C4I Systems Integration

Introduction to Testing Webservices

Six Strategies for Building High Performance SOA Applications

A Service Oriented Security Reference Architecture

Service-Oriented Architecture and its Implications for Software Life Cycle Activities

Introduction to Service Oriented Architectures (SOA)

Research on the Model of Enterprise Application Integration with Web Services

Use service virtualization to remove testing bottlenecks

Levels of Software Testing. Functional Testing

Run-time Service Oriented Architecture (SOA) V 0.1

Enterprise Application Designs In Relation to ERP and SOA

Business Process Management Enabled by SOA

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence

Autonomic computing: strengthening manageability for SOA implementations

Service-oriented architectures (SOAs) support

Service Oriented Architecture (SOA) An Introduction

How service-oriented architecture (SOA) impacts your IT infrastructure

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Accelerate your SOA Projects through Service Simulation

Web Services Testing. Mark Lewis-Prazen Web Services Fall, 2006

Service Oriented Architecture

Figure 1: Illustration of service management conceptual framework

Service Oriented Architecture

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

What You Need to Know About Transitioning to SOA

Service Mediation. The Role of an Enterprise Service Bus in an SOA

AN APPROACH TO DEVELOPING BUSINESS PROCESSES WITH WEB SERVICES IN GRID

Designing an Enterprise Application Framework for Service-Oriented Architecture 1

A Survey of Quality Assurance Frameworks for Service Oriented Systems

Developers Integration Lab (DIL) System Architecture, Version 1.0

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

Getting started with API testing

API Management Introduction and Principles

SOACertifiedProfessional.Braindumps.S90-03A.v by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture

E-Business Suite Oracle SOA Suite Integration Options

Service Computing: Basics Monica Scannapieco

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

Analyses on functional capabilities of BizTalk Server, Oracle BPEL Process Manger and WebSphere Process Server for applications in Grid middleware

API Architecture. for the Data Interoperability at OSU initiative

Service Oriented Architecture 1 COMPILED BY BJ

SOA Fundamentals For Java Developers. Alexander Ulanov, System Architect Odessa, 30 September 2008

Enterprise Service Bus: Five Keys for Taking a Ride

Service-Oriented Computing and Service-Oriented Architecture

Federal Enterprise Architecture and Service-Oriented Architecture

10 Years of Hype Cycles - Do We Forget Knowledge?

1 What Are Web Services?

SOA CERTIFIED JAVA DEVELOPER (7 Days)

Table of Contents. 1 Executive Summary SOA Overview Technology Processes and Governance... 8

Integration Using the MultiSpeak Specification

Ce document a été téléchargé depuis le site de Precilog. - Services de test SOA, - Intégration de solutions de test.

SOA Success is Not a Matter of Luck

Service Virtualization

Monitoring services in Service Oriented Architecture 1

Ensuring Web Service Quality for Service-Oriented Architectures. An Oracle White Paper June 2008

An Oracle White Paper October Maximize the Benefits of Oracle SOA Suite 11g with Oracle Service Bus

Service-Oriented Architecture: Analysis, the Keys to Success!

Service-Oriented Software Testing Platform *

Combining Service-Oriented Architecture and Event-Driven Architecture using an Enterprise Service Bus

Getting Things Done: Practical Web/e-Commerce Application Stress Testing

Prerequisites for Successful SOA Adoption

WEB SERVICES. Revised 9/29/2015

T13 TESTING SOA SOFTWARE: THE HEADLESS DILEMMA. John Michelsen itko, Inc. BIO PRESENTATION 10/19/2006 1:30:00 PM

The case for service oriented architecture in realising trusted, interoperable, pan-european egovernment services.

ESB as a SOA mediator: Minimizing Communications Complexity

Testing Web Services Today and Tomorrow

SOA Myth or Reality??

SaaS in the Enterprise

Next-Generation Performance Testing with Service Virtualization and Application Performance Management

Oracle Service Bus Examples and Tutorials

SOA CERTIFIED CONSULTANT

Introduction to Service-Oriented Architecture for Business Analysts

Automating Security Testing. Mark Fallon Senior Release Manager Oracle

e-gov Architecture Architectural Blueprint

Web Service Testing. SOAP-based Web Services. Software Quality Assurance Telerik Software Academy

1 What Are Web Services?

Extend the value of your core business systems.

Extending SOA Infrastructure for Semantic Interoperability

SOA, Cloud Computing & Semantic Web Technology: Understanding How They Can Work Together. Thomas Erl, Arcitura Education Inc. & SOA Systems Inc.

Software as a Service (SaaS) Testing Challenges- An Indepth

Leveraging Service Oriented Architecture (SOA) to integrate Oracle Applications with SalesForce.com

Service-Oriented Architecture and Software Engineering

JOURNAL OF OBJECT TECHNOLOGY

Creating new university management software by methodologies of Service Oriented Architecture (SOA)

Service-Oriented Architectures

Testing a SOA Application

Unlocking the Power of SOA with Business Process Modeling

A Case Based Tool for Monitoring of Web Services Behaviors

BMC Software Inc. Technical Disclosure Publication Document Enterprise Service Bus (ESB) Insulation Service. Author. Vincent J.

SOA REFERENCE ARCHITECTURE: SERVICE TIER

Service-oriented architecture in e-commerce applications

Service Oriented Architecture and Its Advantages

Technical Track Session Service-Oriented Architecture

Business Process Management In An Application Development Environment

The Service Revolution software engineering without programming languages

WAIT-TIME ANALYSIS METHOD: NEW BEST PRACTICE FOR APPLICATION PERFORMANCE MANAGEMENT

Transcription:

21 23 September 2007, BULGARIA 1 Proceedings of the International Conference on Information Technologies (InfoTech-2007), September 21-23, 2007, Bulgaria vol. 1 TESTING IN A SERVICE-ORIENTED WORLD Lachezar Ribarov 1, Ilina Manova 1, Sylvia Ilieva, Ph.D 2 1 Rila Solutions EAD, Acad. G. Bonchev Str., Building 27 1113 Sofia, Bulgaria, {Lachezar.Ribarov. Ilina.Manova}@rila.com 2. Sofia University St. Kliment Ohridski, 5 James Bourchier blvd. 1164 Sofia, Bulgaria, sylvia@acad.bg Abstract: Service-oriented architecture (SOA) is the latest attempt to better link the business with technology. Testing a SOA applications become more and more complex, as it should be continuous, not just in development and integration, but in deployment, because an SOA by nature is never a static application. Even if each service in a SOA application is tested thoroughly and carefully the quality of the final application may suffer because testing is not enough after the integration of the services. This article presents the challenges and problems that test teams experience when testing SOA applications. It also summarizes how the testing of SOA is carried out now and gives some ideas on further improvements. Key words: testing, SOA, ESB, services, monitoring SOA 1. INTRODUCTION The complex nature of software that is built today and the speed with which the new software is required to be available inevitably leads to mistakes / oversights occurring. Testing the software definitely reduces the likelihood of failure and if it is undertaken in a professional manner the end solution will meet the users specified requirements when it is delivered. However, software development is evolving continuously in order to meet business requirements as quick and as agile as possible. The result of such evolution is Service Oriented Architecture (SOA). This style of architecture promotes reuse at the macro (service) level rather than micro level (objects). With its promised benefits of service reuse, business agility, and alignment of business and IT goals, SOA is reaching a critical point of maturity and credibility, leading to increasing implementations by large and small organizations worldwide. But as these implementations increase, significant new challenges are emerging. These challenges are connected with the testing of SOA

2 PROCEEDINGS of the International Conference InfoTech-2007 applications. Given that SOA is a dynamic, always-on environment, organizations should be able to ensure quality and reliability without taking any individual components offline. This dynamic and adaptive nature of SOA makes most testing techniques not directly applicable to test services and service oriented systems. As an example, most traditional testing approaches assume that one is always able to precisely identify the actual piece of code that is invoked at a given call-site. Or, as in the case of object-oriented programming languages, that all the possible (finite) bindings of a polymorphic component be known. These assumptions may not be true anymore for SOA, which exhibit run-time discovery in an open marketplace of services and ultra late binding. [8] Another benefit of SOA is the ability to develop complex business applications just with fast implementation of a functional core which communicates with already developed, existing services. But one result of the fast development coupled with increased complexity is that while development effort decreases, testing increases. As a result a larger fraction of the SOA application development effort is dedicated to testing, with its challenges on every level of the development life cycle, which we will discuss further. Up to date, SOA testing has not yet received adequate attention from the research community, with only a few works available [16], most of which are adaptations of the techniques known for testing of component-based systems [17]. The rest of the paper is organized as follows: Section 2 makes brief overview of the Service oriented architecture, Section 3 discuss the challenges when testing SOA functional characteristics, Section 4 present the problems that may occur when testing SOA non-functional characteristics. Section 5 summarizes the paper and outline directions for future research. 2. SERVICE ORIENTED ARCHITECTURE To clarify the Service Oriented Architecture, we need a clear understanding of the term service. Similarly to objects and components, the service is a fundamental building block that: Combines information and behavior. Hides the internal workings from outside intrusion. Presents a relatively simple interface to the rest of the system. Unlike traditional components, though, services have a number of unique characteristics that allow them to participate as part of a Service Oriented Architecture. One of these qualities is complete autonomy from other services. This means that each service is responsible for its own domain, which typically translates into limiting its scope to a specific business function / group of related functions. [3] There is no widely-agreed upon definition of Service Oriented Architecture other than its literal translation that it is an architecture that relies on serviceorientation as its fundamental design principle. OASIS (Organization for the Advancement of Structured Information Standards) defines SOA as "an architectural

21 23 September 2007, BULGARIA 3 style whose goal is to achieve loose coupling among interacting software agents / services"[1]. SOA is an evolution of component based architecture, object-oriented systems and distributed systems of the 1990s, such as DCOM, CORBA, J2EE, etc. In these systems, the functions of user interface, application logic, and data management are separated so that each can be implemented using the platforms and technologies best suited to the task. With SOA, these functions most typically, the application logic are decomposed still further. For example, instead of implementing business logic in a monolithic application server, an SOA-based system can transparently incorporate services running on different software platforms, even services hosted externally by a third-party service provider. [2] The figure 1 shows the basic components of SOA service provider, service consumer and service repository and their relations. Service Repository Service consumer1 Service consumer2 Service provider1 Service provider2 Fig. 1. Basic components of Service Oriented Architecture The concept of loosely coupled and platform independent services is further advanced by the use of an Enterprise Service Bus (ESB). The ESB is the infrastructure which underpins a fully integrated and flexible end-to-end serviceoriented architecture (SOA). Among other things, an ESB serves as the "glue" between services that use different data and message formats, network protocols, and programming languages. The ESB serves as a level of indirection between a service consumer and a service provider, enabling the deployment of mediations that apply quality of service to an interaction, or to perform required data transformations [4]. 3. CHALLENGES IN TESTING SOA Generally, the purpose of testing is to assess applications quality. This not only involves the final solution, but also begins early in the project with the assessment of the architecture and continues through the assessment of the final solution delivered. Clearly, many approaches existing for traditional software systems can be adapted or even reused for service-oriented systems. Service-oriented testing has many similarities with component-based testing, since a service can be thought of as a

4 PROCEEDINGS of the International Conference InfoTech-2007 component executed on a remote host. As for components, it makes sense providing a service with built-in tests that can be reused from the service user for regression testing purposes. [5] We will examine SOA testing at the different levels of the development life cycle unit, integration and system testing, and discuss the challenges and possible solutions at each level. 3.1 Unit Testing Unit testing services is obviously a critical activity in ensuring the functional integrity of an SOA application. To a great extent the unit testing of services is similar to testing regular software components. We won t go to unit testing at code level here, we will refer unit testing to testing the service as an unit. This kind of testing should come at first place, before integrating the services into whole working application. Tests should be built and performed based on the services descriptions, and if it is possible, any type of testing techniques can be applied. 3.1.1 Challenges The following characteristics of the services, taking part in SOA introduce unique testing challenges: Services do not have user interface. This means that QA team should have good development skills to create appropriate test harnesses that provide test data to the tested objects. The developers of services consumer components typically only have access to interfaces and lack access to code of the services. 3.1.2 Solution As unit testing services is very similar to unit testing regular software components, plenty of research is done and lots of working solutions exist. Service description can be exploited to automatically generate test cases for black box functional testing. Techniques such as constraint programming or genetic algorithms (GA) can be used, starting from WSDL descriptions or, if any, from semantic annotations. [5] In fact, this area is generally covered by the automated SOA testing tools offered on the market. Almost all of the SOA testing automated tools up to date actually do unit testing of the services. They are able to read services descriptions and create tests based on these descriptions. Further more, these tools provide appropriate user interfaces for creating tests, organizing them in positive and negative test suites, feeding the tests with suitable test data. So the problems with unit testing services could be solved easily and fast by using some of the off-the-shelf tools, and the only

21 23 September 2007, BULGARIA 5 challenge left for the testing teams is selection of the automated testing tool that best fits the project needs. The leading companies in this area are IBM and Mercury with their IBM Rational Tester for SOA Quality and Mercury Service Test tools, which enable test teams to conduct both functional and performance testing of the services. [13, 14] Other useful tools are Parasoft s SOAtest, and ITKO s Lisa. Of course this does not mean that only the commercial tools are the best ones there are lots of free for use and open source tools like TestMaker, WS Chess, SoapUI, etc. [15] 3.2 Integration Testing All the problems encountered for integration testing of object-oriented systems seem to be amplified when performing the integration testing of a service-oriented system. Testing services should take into consideration some specifics of an SOA application dependency of 3 rd party services, late binding, possible missing of services in the moment of testing. [9] 3.2.1 Challenges Services are intrinsically distributed and can run on different platforms and can be written in different languages. Despite the numerous tools on the market, which provide mainly unit testing the services, there is less research on how distributed services, spread around several different machines can be tested. Sometimes services can be chained with dependencies on other 3 rd party services that can change without notice. Hopefully in a SOA environment the interfaces that newer services expose should be the same as these in the older version, but it is necessary to provide means to automatically check whether the services continue to behave according to the user s assumptions. Another recurring problem with integration testing is that not all the components needed to test are available. Whether the missing application is an internal module, a vendor application, or a 3 rd party service, waiting creates substantial timing and coordination delays in integration projects. In presence of late binding, in fact, it is not possible to establish which particular service is invoked in correspondence of a call site. If our system needs to invoke a temperature service, at run time it may choose the cheapest, the fastest or maybe the most precise one. However, this poses serious testing concerns. Ideally, the caller should be tested against any possible service called. In the practice, heuristics should be identified to reduce the testing effort. [5] 3.2.2 Solution Proper integration strategy should be developed in the very beginning of the SOA projects, during the planning phase. Without an effective strategy for integration

6 PROCEEDINGS of the International Conference InfoTech-2007 testing, the testing of critical logic is usually left until the end of a project. The result is generally substantial re-work that results in overruns and delays. An integration testing strategy can eliminate these problems making SOA projects more predictable to deliver. [12] The problem with unavailable components should be taken into consideration in the integration testing strategy. The ability to simulate unavailable systems, services or components is a must to keeping SOA testing on track. [12]. Development of test stubs for replacement missing components affects project time and requires skilled test team. Luckily there are tools on the market that can handle easily this problem. Some of them are amongst the mentioned the previous section [13, 14]. It remains again management decision if proper tools should be bought or developed in-house. As proposed in [8], integration problems can be checked also at run-time using automated monitoring mechanisms. When a binding changes, the new end-point should preserve the post-condition held for the old end point. If this does not happen, an alternative service should be chosen automatically. Service 1 Service 2 Service 3 TS TS TS ESB Fig.2. Test-enabled Enterprise Service Bus Another way to address the problems during integration is creation of suitable testing environment, containing components which can act as proxy between the communicating services. These components can read and manipulate the communication messages between the services. We are currently working on this idea in collaboration with international partners. The rationale of the proposed testing environment is test-enabled enterprise service bus (ESB), an automated testing framework and methodology, and a mix of tool-supported technologies to enhance the testing of services. The Test-Enabled ESB, as can be seen in Figure 2, enables intercepting and controlling the communications between the ESB and the services and applications. An intercepted message can be delivered with a delay, hence changing the apparent QoS and causing temporal contention on resources. The delivered message may be modified, which enables both fault injection and test generation. The message can be recorded, which enables debugging, visualization, many forms of analysis, and other forms of black box test generation.

21 23 September 2007, BULGARIA 7 Test-enabled ESB is an enhancement of a regular ESB that provides hooks to be used by testing services. The hooks enable white box testing capabilities. The interaction between the services and the bus can be modified and delayed using the APIs provided by the hooks, thus simulating different behavior of the services during integration into SOA. 3.3 Functional System Testing System testing concerns the way a whole service oriented system is tested in its integrity. System testing involves both functional and non-functional testing. 3.3.1 Challenges The functional testing of (Web) services poses a number of problems. Clearly, the main part of functional testing is to provide requests to the service and then analyze the responses received to determine if they are correct. In line with testing in conventional software engineering, it has to be accepted that for all but the simplest of services, it will be impossible to exhaustively test every possible input and output. Service oriented systems are often asynchronous and testing can be very challenging. Testing of such systems therefore, often goes hand in hand with setting up test systems performing some message exchanges and to analyse the results. This is very time consuming and inefficient, as manual intervention is needed. [5] Another challenge is the knowledge of the SOA application. SOA applications quickly grow larger than any one team can understand or administer. A SOA testing strategy will need to arm testers with the knowledge and tools they need to support their process-driven scenarios without requiring them to know the ins and outs of every individual system. 3.3.2 Solution Up to date there is no end-to-end automated system testing solution for SOA on the market. As discussed in the previous sections, despite the word SOA in their names, most of the automated testing tools are oriented to unit testing of the services in the SOA. Hopefully, very soon these tools will evolve into more complex and proper working solutions which will manage to integrate into the SOA application itself and provide constant testing during development and monitoring during deployment at all system levels. [18] The Test Enabled ESB, mentioned in the section 3.2, can be used into the functional system testing phase also. With such Test Enabled ESB proper test cases and test data can be generated to examine the system functionality. Having test services connected to different places in the ESB, will help tracing the test data through the system and easily identify the problems sources. Generating test cases

8 PROCEEDINGS of the International Conference InfoTech-2007 automatically, localizing faults, and testing continuously will contribute to a substantial cost reduction of the testing phase. It is very difficult to test asynchronous applications and still there is no good automated solution for testing such applications out on the market. Currently the solution in this area could be semi-automatic or manual. Test teams could use some of the mentioned tools to automate creating of tests; provide the services with appropriate test data and tests execution. Of course, localizing the possible defects is mostly done manually, ant it can be very problematic and time consuming but this could be solved with proper management of the testing activities in the software project. [19] The problems with managing the knowledge in a SOA project can be resolved easily by applying effective requirements management process. There are lots of automated solutions for requirements management like Rational Requisite Pro [14], DOORS [20], GatherSpace.com, which, if used properly, can be of great benefit for all software development projects. Of course, documents as a natural format for recording requirements can be used as well. 4. NON-FUNCTIONAL SYSTEM TESTING Functional testing is definitely the core of any testing effort, but a number of testing dimensions need to be considered above and beyond that. These include nonfunctional characteristics of the systems such as; reliability, efficiency, usability, maintainability, portability, etc. Тhis is a very large area for discussion, so we will take into consideration the reliability as it is very important especially in the context of SOA applications. This non-functional characteristic is mostly covered by performance and security testing. 4.1 Challenges With web services deployed on the Internet, it is often impossible to accurately predict the workload. A web service can become very popular and the number of concurrent requests per second can surge above and beyond the predicted levels. Therefore, a testing plan for web services should incorporate tests that reveal what happens when the system reaches its saturation point. Service Level Agreements (SLAs) typically require that the services be available 95% to 99.99% of the time. Testing services should therefore incorporate tests that run for prolonged periods of time and check whether system performance degrades with time. Sometimes the problems may due to the network latencies and that should be taken into consideration when creating the tests. Security is another pressing issue in SOAs because the SOA stresses machineto-machine interaction, while most IT security is based on human-to-machine

21 23 September 2007, BULGARIA 9 interaction. Authentication and authorization become more challenging in this environment. It is virtually impossible to block unauthorized use of web services in an unsecured SOA; it is quite simple for an unauthorized user to access web services. Web services have no innate ability to track who is using them or who is permitted to use them. And you cannot stop unwanted listening in and message interception. [11] SOAs implemented via web services have very similar security challenges to those which web applications face (for example cross site scripting, buffer overflows, SQL injection etc). The greatest security challenge is in web services which are open to public access where the universe of users is unlimited (contrary to the enterprise scenario where users are limited and can be authenticated). [7] 4.2 Solution Luckily, most of the tools out on the market, can deal with performance testing the services, taking part into SOA [13, 14, 15]. Of course, as in any performance testing project, the tool itself is not enough. Proper work load model should be defined in the planning phase, which is able to violate time-related QoS constraints, i.e. constraints on attributes such as response time, maximum number of clients accepted per second, etc. These constraints have been fixed by the service provider because of the service capabilities, or in the SLA. Tests execution should be followed by appropriate results analysis. To trace the root cause of the bottleneck, following options can be pursued: The problem should be isolated by identifying and directly testing each service in the chain with specific test cases. Disable downstream services and substitute the disabled services with similar test services with known performance characteristics. Using such simulated downstream services, the behavior of the line-of-sight web services can be determined accurately. [10] Testing SOA security also should follow centralized management approach. In the last three years, a number of new standards related to Information Security have been developed. The most recognized of these are Web Services Security (WSS), the Security Assertion Markup Language (SAML), and the Extensible Access Control Markup Language (XACML). To ensure the SOA applications security, standards like these should be adopted early in the development. Another way to resolve security problems is implementing proper SOA security solution that enables SOAP message monitoring; federated authentication; application proxy; certificates, keys, and encryption; and audit logging as discussed in [11]. This SOA security solution will have to connect to and communicate with the existing security infrastructure. 5. CONCLUSION

10 PROCEEDINGS of the International Conference InfoTech-2007 This paper reviews the challenges on different levels of development life cycle which test teams can run into when testing SOA applications. Solutions discussed include: automation of the testing process, as one of the purposes of the SOA applications is fast development; proper management of the testing process during integration and functional and non-functional system testing as this is always the key factor for successful delivery of a quality product. Some of the solutions presented here will evolve in the near future into new and powerful tools for automating the testing of SOA during integration phase and final system testing phase. The benefit of the paper is that it provides analysis on the problems that exist and presents possible solutions when testing SOA applications. It can be useful for the test teams on their first SOA project to find proper solution on how to perform the testing. The directions for our further research are related to generalize the existing solutions, their possible automation and methodology for application. The main focus will be on testing of the non-functional characteristics of the SOA applications. This includes much broader research on services security, interoperability, portability and last but not least the Quality of Service (transporting data without loss, with predictable end-to-end delay and within negotiated uptime). 6. REFERENCES [1] www.oasis-open.org [2] http://www.adobe.com/enterprise/pdfs/services_oriented_architecture_from_adobe.pdf [3] Thomas Erl, (2004), Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services, 3, Prentice Hall. [4] http://www-128.ibm.com/developerworks/websphere/techjournal/0602_tost/0602_tost.html [5] Unisannio (2005), State of the Art - Service Engineering (Testing) [6] http://www.softwaremag.com/l.cfm?doc=0206-thoughtleadership-r-millal [7] AppLabs (2006), Testing SOA Applications [8] Gerardo Canfora and Massimiliano Di Penta, (WS-MaTe 2006), SOA: Testing and Self-Checking [9] Serge Lucio (2005), Don't Wait to Test SOA Applications, http://websphere.sys-con.com/read/98059.htm [10] Mamoon Yunus and Rizwan Mallal, Crosscheck Networks (2007), Watch your SOA Testing Blind Spots [11] Eric Pulier and Hugh Taylor (2006), Solutions to SOA Security [12] Lori Gipp (2005), Getting the Most Out of Integration Testing [13] http://www.mercury.com/ [14] www.ibm.com/ [15] http://www.infoworld.com/article/07/05/11/19tcwebservicetest_3.html [16] G. Canfora and M. Di Penta. Testing Services and Service-Centric Systems: Challenges and Opportunities. IT Professional, vol. 8, no. 2, 2006, pp. 10-17 [17] Bertolino, A., Marchetti, E., Polini, A.: Integration of "components" to test software components. ENTCS 82 (2003) [18] Kyle Gabhart (2007), SOA World Product Review, SYS-CON Media, [19] Alexandre R.J. Fran cois (2005), Architecting Distributed Asynchronous Software Systems, University of Southern California [20] http://www.telelogic.com/products/doors/index.cfm