Service Testing and Virtualization
Vinit 110000B38V Visits (2004)
Many years ago, we used to talk to our customers about the need for automated testing. Test teams built long lists of manual tests and struggled to finish their testing on time, not to mention the difficulty they had with managing these tests. These days however, software development organizations do a reasonable job of automating their testing because there are has been a reemphasis on the importance of quality. Unfortunately, there are still other significant challenges being faced by testers.
The first major one is that testing today’s applications involves the set up of various pieces of middleware, databases, third party systems, connections, etc. These are not components that are being tested but rather services that are needed by the application under test. So testers spend a lot of time setting up test environments and configuring software before they actually get to run their automated tests. Integration testing cycles can thus take a long time. Imagine an Agile project – how agile would each iteration be if setting up external services took up most of the time allocated for testing? Another issue is how we view testing. Take for example a web application. The way the average tester would test it is to run functional tests against the web UI. In general, this is a valid case since you would need to ensure that the web UI was functional. Suppose, however, that the core functionality expressed in that web application came from a specific web service. Now how would you plan your testing? It would make sense to be able to test the web service specifically, without having to set up the UI or in many cases, waiting for a developer to create the UI in order to test the service. An error on a web page might have come from the web service itself and it would be nice to detect that as early as possible.
Enter service testing and virtualization. This approach first of all allows us to test our services individually without having to set up a “front end.” Secondly, it enables us to quickly begin testing our complex applications by virtualizing the behavior of dependent services. What does this give us? The ability to test our software much earlier on in the lifecycle, without having to wait for an integration testing cycle to find all our defects. We all know that defects found early in the lifecycle are cheaper to fix than those found later. Why not find out that your web service returns the wrong result early on instead of when the UI has been created? How about getting to test your application without relying on a third party service to be set up? This is the sea change that our customers are seeing with service testing and virtualization. Testing can begin earlier on which leads to a dramatic improvement in quality. Furthermore, the work needed to set up the entire application is significantly reduced through service virtualization. For example, a major telecomm carrier reduced testing time by 50%, saving $800K over 3 years. Another example is a leading global financial company which reduced test environment set up time and was able to reduce testing times from approximately 10 days to 10 minutes. This is certainly a game changer for software development teams!
To learn more about IBM’s service testing and virtualization
capabilities, please visit http