Insights
Service Virtualization: Tool selection, advantages, and disadvantages of the simulation service
Kapil Natu – Performance Architect, Nitesh Kashi – Sr. Engineer- Quality Assurance, UST BlueConch Technologies
Service virtualization mimics or simulates behaviors of components that are unavailable or difficult to access while testing.
Kapil Natu – Performance Architect, Nitesh Kashi – Sr. Engineer- Quality Assurance, UST BlueConch Technologies
Service virtualization mimics or simulates behaviors of components that are unavailable or difficult to access while testing. It is similar to how pilots use a flight simulator to train instead of a real plane or a boxer using a punching bag. Such components can include devices, databases, APIs, networks, and more.
There are many reasons why resources might be unavailable or difficult to access:
- components may still be under development
- undergoing maintenance
- difficult to set up
- owned by third parties
- costly or restricted
Through virtualization, testers are no longer dependent on these assets or blocked by other teams. They can continuously conduct integrated testing at any point of the software development lifecycle. This allows for more in-depth performance and functional testing that can be done in parallel.
ARCHITECTURE
The key idea of service virtualization is to replace a real service with its virtual counterpart, known as a virtual service. The clients utilizing the service are reconfigured to use the virtual service instead of the real one.
Once the traffic is directed through the virtual service, the virtual service mode determines what will happen with the requests. The virtual service can either respond during simulation or forward the message to a real service. It can even generate requests to a real service simulating client behavior.
REASONS FOR ADOPTING SERVICE VIRTUALIZATION
Typically, organizations adopt service virtualization for the following reasons:
- Agile
As organizations become agile, development timeframes get considerably compressed. By leveraging service virtualization, we can accomplish more in this reduced timeframe because a virtual environment supports us to remove agile bottlenecks arising when dependent APIs are unavailable or unreliable.
- Continuous Testing
Since agile planning considerably accelerates the software development process, modern application testing teams “bear the burden” of this decrease in the cycle time between release iterations. This begs the question: how, in this shortened cycle, do you test the release candidate effectively? Continuous testing suggests testing on-demand, and so instead of waiting until the end of the sprint to run the tests, you test the application continuously.
- Shifting Left
Enabling teams to start their testing efforts earlier has significant advantages, regardless of the development methodologies. Service Virtualization is an essential concept for successful Shift Left Testing. This means testing earlier in the development lifecycle to save costs through identifying issues.
- Performance
It is challenging to isolate performance issues in a large, constantly evolving environment. Service virtualization allows you to simulate the realistic performance of specific components. Additionally, it is hard to provision adequate hardware that performs realistically under load. Virtual services can simulate any application or network performance characteristics without having the actual (usually expensive) infrastructure in place.
SERVICE VIRTUALIZATION TOOL SELECTION
As with many different types of tools, one of the choices to be made in the tool selection process is whether to purchase a commercial tool or go the open-source route. Follow these steps to decide between open source and commercial service virtualization:
- Identify development and testing bottlenecks and decide whether service virtualization is a possible solution.
- Research open source solutions to find whether a tool is available to virtualize dependencies that form the bottleneck
- Compare the tools found to commercial tools that are also able to do this. Base this comparison on the Total Cost of Ownership (TCO), not just on the initial cost.
- Select the most promising tool that achieves and does (in the case of open source) what you plan to. Do request (in the case of COTS) a proof of concept and evaluate whether the selected tool fits the job.
- Continuously implement and periodically evaluate your toolset to see whether the fit is still just as good (or better).
These are some of the popular Service Virtualization tools:
- Micro Focus Data Simulation Software
- Mountebank
- Broadcom Service Virtualization
- Mockintosh
- Hoverfly
- Smartbear ServiceVPro
- Traffic Parrot
- WireMock
SERVICE VIRTUALIZATION TOOLS COMPARISON
ADVANTAGES
- Reduce dependencies and headaches
Dependencies may come in two forms: internal dependencies in which testing cannot proceed if a component is not fully developed, or external dependencies in which a third-party component outside of your control may not be available yet or may have a limited amount of third-party calls. Service Virtualization can simulate these specific components, so you are no longer dependent on these other components.
- Reduced cost
Thanks to service virtualization testing, testing and QA costs have been reduced by up to 67% in surveys and thus resulted in more allocations being made for development teams.
- Shorter time-to-market
With improved testing capabilities, it takes less time for the product to hit the markets when compared to the previous scenario of having to wait for the QA teams to certify every component of the product to be market-ready.
- Improved product quality
Service virtualization creates live replicas of actual product deployment scenarios. It hence is easy for QA teams to identify issues and failures that would have occurred when the product goes live for users. Thus the actual product that users get to use is guaranteed to offer remarkable robustness and fault tolerance.
- Lesser constraints on QA teams
QA teams do not have to wait for the product to be built entirely by the development teams to facilitate integration testing. Virtualization opens up new avenues to test complex products in actual production environments.
DISADVANTAGES
Disadvantages of service virtualization involve cost and implementation:
- Cost -
Budgeting for service virtualization implementation can be difficult because its usage crosses many different departments. It can be not easy to assess who owns testing and who should be in charge of service virtualization.
- Implementation -
Service virtualization doesn't replace complete integration testing with the existing dependent systems. It enables integration testing through the development process, which helps to speed final testing, but a final test process is still necessary.
Conclusion
Based on the above discussion it can be clearly understood that Service virtualization is certainly helpful for enterprises. For detailed information on the use and benefits of the Service Virtualization tool, reach out to us at PreSalesIndia@blueconchtech.com.