SOA QA Challenges
The componentized approach of an SOA makes it easy to adopt changes within business solutions. However this approach affects testing, Charitha said, “It demands quicker testing cycles and more frequent releases. You have to provide feedback quickly to stakeholders. It demands a different type of testing mechanism.”
According to Charitha, when developers define a testing methodology, it is important to have a very good understanding of the three elements that serve as the building blocks of an SOA. The services container provides services for individual units of logic; the broker conducts message mediation, and the process coordinator allows for composition functionality.
Additional principles of SOA are the reuse of services and loose coupling—in which a service acquires knowledge of another service while remaining independent. This has some direct implications on testing, Charitha explained. If developers wait until they have developed the end-to-end SOA solution before beginning testing, any corrections to bugs may potentially break other services. With reusable components that are not tested properly in the beginning, there is also the risk of coming across the same issues again.
“You need to make sure things are running properly before going through with other integrations,” Charitha advised.
A Different Type of Testing
SOA testing requires another type of testing mechanism because it differs from traditional software. In traditional applications, developers conducting QA testing are basically dealing with several user interfaces, Charitha explained. In service-oriented solutions, there a separate components that are either autonomous or loosely coupled. Therefore in SOA testing, developers need to implement a bottom-up test execution model that starts at the component level.
Equally important, Charitha said, "Your QA team and development team should work together and carry out testing. That is the core principle of doing testing in SOA. Because of the depth of functionality and complexity of solutions, you cannot outsource your testing into a separate testing team. Everyone should be responsible for quality.”
Finally, an SOA should have automated testing, Charitha advised; “If you do not have it, you will surely fail in SOA testing.” He added that, "You should have a proper set of automated tests to ensure quicker delivery cycles and accommodate different changes into solutions that need adapting. Just by testing applications manually, you cannot achieve these objectives.”
To learn more about QA best practices in an SOA, view Charitha’s full presentation here.