Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Expo on Google News


2008 West
DIAMOND SPONSOR:
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
GOLD SPONSORS:
Appsense
User Environment Management – The Third Layer of the Desktop
Cordys
Cloud Computing for Business Agility
EMC
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Intel
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Sensedia
Return on Assests: Bringing Visibility to your SOA Strategy
Symantec
Managing Hybrid Endpoint Environments
VMWare
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
PLATINUM SPONSORS:
Appcelerator
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
GOLD SPONSORS:
ICEsoft
How Can AJAX Improve Homeland Security?
Isomorphic
Beyond Widgets: What a RIA Platform Should Offer
Oracle
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
SYS-CON.TV
Top Links You Must Click On


SOA Testing Framework
A framework to test your services in service-oriented development

Service-oriented architecture (SOA) has become today's technology buzz and it's rapidly becoming a mainstream approach to enterprise systems design. Beyond the buzz of SOA, organizations face several challenges as they attempt to truly effectuate the paradigm shift towards SOA. One critical challenge is: How can we assure the quality of the business services that we build? Can the services we build withstand the test of rapid organizational change? One way to address this challenge is through the use of effective testing methodologies and tools for the services deployed under an organization's SOA fabric.

A new development methodology - services-oriented development of applications (SODA) - is emerging to accompany the paradigm shift toward SOA. Today's agile software teams need effective tools to smoothen the transition. This article analyzes, designs, and demonstrates a tool that can prove invaluable to organizations implementing SODA: an automated services testing framework.

This article will demonstrate an automated SOA testing framework. Founded upon J2EE, XML, and SOAP as well as open source frameworks including Ant, JUnit, and XMLUnit, this powerful tool can prove invaluable to the agile organizations that are implementing SOA. Using the tool, organizations can both unit test for fine grained, "atomic" services as well as integration test loosely coupled, coarse grained business services that orchestrate the granular services. Since change is constant, development teams can automatically execute the services' original set of test cases to ensure quality immediately as peripheral changes are continually being made. The framework has the following features:

  • Completely XML configurable
  • Advanced test input configuration (XML input, database state management)
  • Sophisticated output verification capabilities (for both success cases and errors)
  • Complete integration with Ant builds
  • Automated JUnit code generation and execution
  • Easy-to-read HTML report generated as output
The Need for Automated Services Testing
In any software development project, testing requires significant time, effort, and discipline. The following common steps should be followed to assure proper and efficient testing:
  • Define a test plan that outlines the testing process and exit criteria
  • Derive test cases from use cases or business requirements
  • Generate test data and/or scripts for each test case
  • Outline the expected results for each test case
  • Execute the test cases
  • Verify whether the results of the test cases match the expected results
  • Generate reports to measure the software's quality against the test cases
  • Fix/resolve remaining defects in the software
  • Continue executing/verifying/fixing until all test cases succeed and defects are resolved
With the advent of extreme programming and agile development methodologies, organizations are advancing their testing efforts dramatically. Rather than employing error-prone, time-consuming manual tests at the end of development, many teams are now automating testing during - and often before - development. Code is integrated nightly and run against suites of automated tests to continuously verify quality.

Testing services in a SODA environment is not very different from testing ordinary software components; the main difference is that services are generally reusable implementations of business processes that orchestrate the functionality within lower-level components and other finer-grained services.

Services are highly amenable to testing. Services have well-defined interfaces and hence well-defined inputs and output. Their behavior is therefore predictable enough to apply commonly used black-box testing methods that are very amenable to automated testing.

Automated testing of services will become crucial to organizations that are undertaking SOA initiatives. Enterprise environments are constantly changing. For example, at one time, an organization may use JD Edwards as its ERP for managing orders. Then a merger happens, and suddenly, the underlying ERP is standardized to the parent company's Oracle ERP. In an SOA world, the underlying implementations of the order management services will have to be swapped. However, the service interfaces should remain the same. (More commonly, O/S patches are frequently installed, service packs are applied to application servers, small fixes and enhancements are developed, and so on...)

Because change is constant, development teams should be able to automatically execute the services' original set of test cases to ensure the quality immediately as changes are being made. This will save untold time and effort, and will remove the error-prone elements of the process.

Typically, from the broad business requirements, individual service use cases are created. This will lead to service design and implementation. In a Test Driver Development (TDD), test cases are created from the use cases or service design well before the construction of the services. Test cases should be generated to test out a number of things such as decision points, validation rules, varying system states, business rules, and other expectable conditions. Figure 2 shows the transformation from service design to test cases to account for all of these parameters. Typically hundreds of test cases could be created to test the system thoroughly. Any changes to any of these parameters will mean it's necessary to run all of the tests all over again. This clearly warrants the need for the automated testing.

Requirements for a Testing Framework
A framework that can effectively meet the needs of software teams that develop and test services in a SODA environment should have the following capabilities to allow you to:

  • Test services at a unit and integration test level (a unit test of a coarse-grained "composite" service naturally serves as an integration test for fine-grained services that are orchestrated by the composite service)
  • Invoke target services using a standards-based approach (SOAP)
  • Be very flexible and configurable to perform only the necessary steps in testing
  • Allow test cases to be configured - rather than coded - through a user-friendly XML configuration file
  • Leverage proven open source build/test technologies and frameworks (e.g., Ant, JUnit, XMLUnit)
  • Auto-generate test case classes/code based upon XML configuration
  • Provide options to adjust the underlying state of the service ecosystem as an alternate and corollary "input" to a test case (e.g., to test for different service behavior based on variances of data in the database)
  • Verify XML output of a service against the expected XML output defined for a test case
  • Ignore specific XML nodes/elements during output verification (for variable like sequence numbers or date/time)
  • Handle error conditions gracefully and return the error message to the caller in a standards-based way
  • Provide the ability to set the state automatically for every test case run
  • Verify error conditions against expected error code(s)
  • Execute all necessary testing actions from a single command line
  • Support running a batch of tests or one specific test at a time
  • Generate well-formatted, human-readable reports about the test results
  • Have the ability to integrate with automated build and testing frameworks like Cruise Control
About Anbarasu Krishnaswamy
Anbarasu Krishnaswamy has over 15 years of IT industry experience, nine of which were with BEA. In his current role as the Enterprise Architect Lead, he leads the enterprise architecture and SOA practices for the central region professional services at BEA. As a SOA practitioner, he has helped several customers with SOA transformation and implementation. His experience also includes design and development of Java/J2EE applications, client/server computing, Web development, and enterprise application integration (EAI). Anbarasu holds a MBA from NIU and an MS in computer science and engineering.

About Ravi Nagubadi
Ravi Nagubadi is a principal consultant at Sofbang LLC. He brings eight years of rich technology experience with a strong focus on solutions to critical business issues. He has consulted in a diverse set of industries such as healthcare, government, education, insurance, and financial services. His expertise includes portals, commerce, content management, business integration, and enterprise architecture.

About Rajeev Mahajan
Rajeev Mahajan is a practice manager with BEA and brings 15 years of deep IS technology experience to his skill of linking business drivers to technology. He has broad industry experience in healthcare, high tech, financial services, manufacturing, and retail. He also has implementation experience with portals, content management, CRM, e-Business, and enterprise application integration.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Good article. Automated service testing is a vital component of SOA which is often forgotten.

Robert
soaprobe.blogspot.com

I need more details on the same.. can you also provide me with a sample example of the same..Iam implementing a test framework for insurance domain..

My email id is gvanishree@gmail.com


Your Feedback
Robert Morschel wrote: Good article. Automated service testing is a vital component of SOA which is often forgotten. Robert soaprobe.blogspot.com
vani wrote: I need more details on the same.. can you also provide me with a sample example of the same..Iam implementing a test framework for insurance domain.. My email id is gvanishree@gmail.com
Enterprise Open Source Magazine Latest Stories . . .
Apache Deltacloud, the Red Hat-contributed ReSTful API that abstracts differences between clouds so services on any cloud can be managed – provided of course there’s a driver – has graduated from the Apache Foundation’s incubator and is now a full-fledged Top-Level Project (TLP). The...
With Cloud Expo 2012 New York (10th Cloud Expo) just four months away, what better time to start introducing you in greater detail to the distinguished individuals in our incredible Speaker Faculty for the technical and strategy sessions at the conference... We have technical and st...
AMD said late Tuesday that its chief sales officer Emilio Ghilardi had left the company and that CEO and president Rory Read is going to do his job while a replacement is sought. AMD didn’t say why Ghilardi left but it’s assumed Read wants his own people. Read is relatively new to th...
During the lifespan of M3 (Monitis Monitor Manager) there has always been something lacking – timers. M3 execution procedure was outlined in this previous article. The execution mentioned in the latter was a one-time-execution, whereas server monitoring requires periodic invocati...
Red Hat is putting its bought-in Gluster scale-out NAS storage technology, acquired in October, on the Amazon cloud. It’s styled Red Hat Virtual Storage Appliance for Amazon Web Services and other clouds are supposed to follow in short order.
A new episode of the screencast series is now available at the OpenNebula YouTube Channel. This screencast demonstrates the new easily-customizable self-service portal for cloud consumers. Its aim is to offer a simplified access to shared infrastructure for non-IT end users. The scree...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON Featured Whitepapers
ADS BY GOOGLE