Improve Service-Oriented Architecture Development with Agile QA Testing Practices

Service-oriented architectures (SOA) promise to address many technical challenges by allowing developers to incrementally deliver new business capability while leveraging existing assets. By using agile practices during QA testing, SOA development teams can turn potential roadblocks into opportunities.

There is little question that today's development teams are facing numerous new challenges and that often these challenges are being driven by business rather than technology considerations. Companies are under considerable market pressure to roll out new products or services, putting developers under increasing pressure to build and deploy the IT systems and applications necessary for success. Service-oriented architecture (SOA) promises to address many of these challenges by allowing developers to  incrementally deliver new business capability while leveraging existing assets. But developers must beware: one of the most notable areas where roadblocks and bottlenecks can occur if development teams are not careful is in the quality assurance (QA) and testing process, which unfortunately, is one of the last considerations in the development and deployment of enterprise systems. By using agile practices during QA and testing, SOA teams can turn these roadblocks into opportunities.

Unfortunately for developers, businesses are finding that the market is more dynamic than ever, creating an ever-moving target and a consistently changing set of IT requirements. Fortunately for these stressed out developers, there are a few different methods companies are adopting to address these serious challenges and to promote greater IT and business agility. Development teams are increasingly distributed, taking advantage of in-house, outsourced and offshore resources to alleviate resource constraints and bolster productivity. In addition, the movement to SOA, which leverages the use of loosely coupled, reusable services to more rapidly build and deploy composite applications, is gaining momentum. However, neither distributed development teams, nor SOA, should be considered a panacea. If not approached thoughtfully and carefully, any loosely-coupled architecture and/or development organization can introduce even greater hindrances and roadblocks to the business and technical agility being sought.

SOA Addresses A Multitude Of Challenges

While there is little question that distributed development teams can alleviate resource constraints, the process can also introduce unforeseen problems. Geographically distributed {sidebar id=1} teams are often isolated from each other, working on discrete requirements without always having the benefit of knowing the larger scope of the project. Couple this with an organization moving to SOA, and you may be faced with a development team building services that will eventually be used by other services or end-applications that do not yet exist. In turn, these services will likely rely on other services and applications that are still in development. These dependencies between various components or services can result in serialized development, complicating the testing process and adding unnecessary delay to the entire project should any team fall behind schedule. 

SOA is not simply about building reusable services from scratch. One of the considerable strengths of SOA is the ability to more easily leverage existing systems and applications in response to changing business dynamics. Key to the success of this computing model is the ability for functionality already present and working in the enterprise to be brought to bear against new business challenges. But this considerable strength can create complications in the QA and testing process if not prepared for in advance. Development teams building new applications and using new technology often find it difficult to test against systems that are already in production and to test across the multiple middleware technologies found in the typical enterprise. Add to this the complications that arise from system interfaces that are ambiguous, incomplete or out of date (or all three), and your ability to test new services against existing systems becomes increasingly complex.

SOA Eases QA And Testing

The good news for developers working in SOA environments is that the very principles that enable this computing paradigm to be possible can also significantly improve the testing

About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.