If you've spent some time with CA Service Virtualization (LISA Virtualize), you've likely explored the power of virtual service execution modes. The current 7.5 GA release includes 5 execution modes that will change the behavior and routing of requests that are sent from a system under test to virtual service or live system. We recently announced to our Customer Validation testers that we will be expanding on these execution modes in the near future. But for now, let's get a handle on what exists in the product today.
To start out, there are two modes that simply pass transactions through from the system under test to the virtual service.
- Most Efficient mode is the default and fastest mode. It passes the request to the virtual service which sends a response back. It does not pass go, it does not collect $200... (a little Monopoly reference for you).
- Transaction Tracking mode will track events and transaction flow through sessions. It’s best used for troubleshooting a virtual service – for example to find out a why a specific response was chosen for a specific request. When using this mode, a user can access the Session viewing screen to see the requests and responses in real-time. I guess you can say this mode is collecting it's $200 and then some!
These first two modes are obtaining responses only from a virtual service. Now, when we move on to the next few, (not only do my Monopoly references fail completely but) we’re opening up the ability for a system under test to use the virtual service and/or the live service for a response.
- Live System mode, otherwise known as “pass-through” mode, passes requests through to a live system. This can be used when the virtual service is not available, or if a user wants to run the same test against the live system as they did the virtual service. They can do this simply by changing the execution mode and running the request again without taking steps in their application to re-route traffic. For a bit of technical information, this mode uses the “Live Invocation” step of the service model to determine a response to the current request.
Live System mode is helpful, but how can a developer or tester easily figure out the difference in responses between a virtual service and a live system? This is where Image Validation mode comes into play.
- Image Validation mode, also referred to as ‘model healing’ or ‘live healing mode’ is a unique mode that uses both the virtual service and the live system to derive a response to the request. The responses are compared and remembered allowing for both live comparison between responses from either source or future comparison and merging of the correct data. This mode is very helpful when a live system has changed and the virtual service has not yet been updated or to check that the live system and virtual service are in sync when, for instance, another team provides the virtual service (or live system). We like to call this example “enabling horizontal trust” between organizations that may have ownership for different end points.
The last and final mode in the current product enables you to do all of the above.
- Dynamic mode allows the service model to define a different execution mode for each request. This is helpful when a user knows a set of requests will need to be healed or a set of requests are not available in the virtual service so they should pass through to the live system while others should be routed to the virtual service. Although powerful, this mode can get confusing and cause unexpected results if not thoroughly understood.
To expand on this power, we we are planning to introduce up to 3 more execution modes in the next major release of CA Service Virtualization. If you want to hear more about these new execution modes and how they can help your advanced use cases join in the Customer Validation program or meet up with us at CA World 2014 when we officially announce and demonstrate this great new release.
How have you used the power of execution modes? Share with us some use cases and which modes have worked best for you by adding a comment below.