Improve Service-Oriented Architecture Development with Agile QA Testing Practices

[article]
Summary:
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

TechWell Contributor's picture TechWell Contributor

The opinions and positions expressed within these guest posts are those of the author alone and do not represent those of the TechWell Community Sites. Guest authors represent that they have the right to distribute this content and that such content is not violating the legal rights of others. If you would like to contribute content to a TechWell Community Site, email editors@techwell.com.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!

Upcoming Events

May 04
May 04
May 04
Jun 01