What is Service Virtualization

Service Virtualization Summary

Service virtualization is a concept used during software development and testing. In simplest terms, the developer or tester is trying to simulate(near real-time) a request & response process to validate something. Service virtualization is better suited for more integration & performance type of tests. You can simulate response times and do negative test scenarios which give this concept an edge over just using mock or stub tests. It is also better to use service virtualization for large organizations that might have multiple development teams. Each team can carry-forward with development & testing to “virtualize” their service calls for the the teams that might behind in development, reducing bottlenecks.

Service Orientated Architecture

In order to understand what service virtualization is, you should be familiar with service orientated architecture. Service orientated architecture is an architecture pattern on how an application should be developed. In regards to integration of service calls between functions within same application or many applications. You typically have a “producer” of a service. This is a team that “owns” the service creation. Then you have a “consumer” of a service. This is the end-user or team that “uses” the service. For example: You send a request to lookup a friend in Facebook app. That friend’s info (response) is then returned back to the user completing a request & response process. The data is likely being transmitted in the form of a service call. You request something to happen, then a response is given.

When to use Service Virtualization for Software Testing?

Many companies that are using service virtualization realize the best uses for when to use service virtualization for software testing. As mentioned in the summary above, the best use for this is for unit, integration, and performance testing of the service. This is typically done on the “virtual” service due to the fact the “real” service is not available or still not consumable yet. It is not advised to try to use virtual services for testing during business user acceptance testing phase as this setup & use is quite technical in nature. In theory tools will continue to advance to make more self-serviceable & user-friendly but still requires a good understanding of application architecture.

Why use Service Virtualization?

The biggest reason for using service virtualization is to save time and money by catching development errors early(shift-left). Finding these issues sooner in software development life-cycle costs less to fix.

Another reason to adopt this concept is because many applications being developed or maintained today are built on service level architecture. It is easier to bring down a service, fix the issue, retest with virtual version, release back to production, then notify your users.

Companies are even looking to leverage a virtual services in production to keep their main or critical applications running. They would flip a switch on a feature and behind the screen, use a virtual service might just keep most of the application running and not losing sales.

How do I start using Service Virtualization?

Service virtualization needs the proper framework and tool setup to operate. It typically requires a front-end web portal or client tool & a backend processing server. There are many tools in the market and depending on your use case, some tools might work out better than others. It is advised to define your use cases and score the capabilities of the tools on the market. Leverage a consultant if you need too as some of the infrastructure & culture change can get a bit complex. It is a journey but can be quite rewarding if implemented correctly.

Good luck and we know you can do it… for the greater good of quality!