Key Capabilities to Choose the Best Service Virtualization Tool For Your Team
A modern technology that helps teams simulate dependent services that are out of your control for testing, service virtualization is a key enabler to any test automation project. (What is service virtualization? Learn more here.)
By creating stable and predictable test environments with service virtualization, your test automation will be reliable and accurate. But there are several different approaches and tools available on the market. What should you look for in a service virtualization solution to make sure that you’re maximizing your return on investment?
The Service Virtualization Tool Landscape
What are the best service virtualization tools? I like to break down the service virtualization tooling landscape into two main types of software, lightweight tools and enterprise tools.
Lightweight Service Virtualization Tools
Free or open-source tools are great tools to start with because they help you get started in a very ad hoc way, so you can quickly learn the benefits of service virtualization. Some examples of lightweight tools include Traffic Parrot, Mockito, or our free version of Parasoft Virtualize. These solutions are usually sought out by individual development teams to “try out” service virtualization, brought in for a very specific project or reason.
While these tool are great for understanding what service virtualization is all about and helping individual users make the case for broader adoption across teams (and whole organizations), the downside of these lightweight tools is that it's often challenging for those users to garner full organizational traction because the tools lack the breadth of capability and ease-of-use required for less technical users to be successful. Additionally, while these tools are free in the short term, they become more expensive as you start to look into maintenance and customization.
Enterprise Service Virtualization Tools
More heavyweight tooling is available through vendor-supported tools, designed to support power users that want daily access to create comprehensive virtual services.
You can read the most recent comparison of enterprise-scale service virtualization tools from industry analyst Theresa Lanowitz to look at all the players -- Theresa's summary chart is shown to the left.
These enterprise-grade solutions are designed to align better with deployment and team usage in mind. When an organization wants to implement service virtualization as a part of their continuous integration and DevOps pipeline, enterprise solutions integrate tightly through native plug-ins into their build pipelines. Additionally, these solutions can handle large volumes of traffic while still being performant. On the downside of these solutions, of course, is cost -- enterprise solutions and the customer support that comes with them are far from free.
How to choose the best service virtualization tool for you?
Most organizations won’t self-identify into a specific tooling category such as lightweight or enterprise, but rather have specific needs that they need to make sure they get from their solution. Whether it's specific protocol support or a way to efficiently handle lots of application change, the best way to choose a service virtualization solution that’s right for you is to look at the different features and capabilities that you may require and ensure that your tooling choice has those capabilities.
As opposed to trying to focus on generic pros and cons of different solutions, I always try and stress to clients the importance of identifying what you uniquely need for your team and your projects. It's also important to identify future areas of capabilities that you may not be ready for now, but will just be sitting there in your service virtualization solution for when your test maturity and user adoption grows. So what are those key capabilities?
Key Capabilities of Service Virtualization
Ease-of-use and core capabilities:
- Ability to use the tool without writing scripts
- Ability to rapidly create virtual services before the real service is available
- Intelligent response correlation
- Data-driven responses
- Ability to re-use services
- A custom extensibility framework
- Support for authentication and security
- Configurable performance environments
- Support for clustering/scaling
Capabilities for optimized workflows:
- Record and playback
- AI-powered asset creation
- Test data management / generation
- Data re-use
- Service templates
- Message routing
- Fail-over to live system
- Stateful behavior emulation
- CI integration
- Build system plugins
- Command-line execution
- Open APIs for DevOps integration
- Cloud support (EC2, Azure)
Management and maintenance support:
- Environment management
- A process for managing change
- On-premise and browser-based access
- REST API virtualization
- SOAP API virtualization
- Asynchronous API messaging
- MQ/JMS virtualization
- IoT and microservice virtualization
- Database virtualization
- Webpage virtualization
- File transfer virtualization
- Mainframe and fixed length
- EDI virtualization
- Fix, Swift, etc.
I've expanded on all of these capabilities in detail in Parasoft's guide to service virtualization solutions, to help walk new (or maturing) service virtualization users through this. It explores all of the service virtualization features listed above, so you can identify and determine the capabilities that are most important to you now, and what might be useful in the future. To read it, click here, or on the big image below:
A Product Manager at Parasoft, Chris strategizes product development of Parasoft’s functional testing solutions. His expertise in SDLC acceleration through automation has taken him to major enterprise deployments, such as Capital One and CareFirst.