What is service virtualization?
Service virtualization is a simulation technology that lets testers automatically execute tests even when an application’s dependent system components can’t be easily accessed or configured for testing. By simulating these dependencies, service virtualization technologies ensure that tests will be based on appropriate dependency behavior and data, each and every time the test is run.
Service virtualization is typically used when a test needs to interact with dependent system components that are:
- Unreliable, evolving, or not yet finished
- Outside the scope of the tester’s control or operated by another company or division
- Available for testing only at inconvenient times or in limited capacities
- Difficult to provision or to configure in a testing environment
- Too restricted or too costly to use for automated regression testing
- Simultaneously required by multiple testers using different test data setups and other requirements
When to use service virtualization
Service virtualization can be an invaluable tool in specific situations.
Assistance with negative testing
Negative tests evaluate an application’s performance when unexpected data is input or when unforeseen conditions are present. Because it’s often impossible to replicate these conditions or input in a live environment, testers can use service virtualization to identify and fix potential problems.
Simulating specific behavior
Some applications are built with specific behavior that’s difficult to replicate and manipulate in production environments. Service virtualization allows testers to re-create this behavior easily to accelerate the speed of software testing.
Facilitating automated testing
Automated testing requires all dependent systems to be available with the appropriate configuration, functionality, and test data at any time a test is run. Service virtualization makes it possible to accurately recreate these dependencies, enabling testing to proceed as needed.
Types of tests for service virtualization
Service virtualization can play a role in many types of software testing.
- Application testing – use service virtualization to stress test individual components of applications
- Component testing – testers can isolate application components earlier in the SDLC
- Mainframe testing – eliminate testing constraints for development of mainframe applications
- Chaos testing – service virtualization can enable negative testing scenarios that are difficult to replicate in live production
- Third-party API testing – using service virtualization allows testers to remove access constraints and reduce costs
Benefits of service virtualization
Service virtualization enables testers to test highly interconnected systems at any time, without needing to wait for access to dependent components that are not yet implemented, that are still evolving, or that are under control of a third-party. By enabling multiple testing teams to test systems simultaneously, service virtualization helps accelerate testing and development timelines.
With the ability to start testing whenever an application is ready, testers can expose defects earlier in the software development lifecycle when they are easier, faster, and cheaper to fix.
Many modern applications are dependent on third-party services that charge a fee every time the service is used or accessed. By simulating the behavior of these services, service virtualization allows tests to be executed and incorporated into continuous integration without worrying about having to pay exorbitant, recurring service fees.
Tricentis Tosca Service Virtualization
Tricentis dramatically accelerates software delivery by taking a new and fundamentally different approach to software testing . Tricentis solutions are totally automated, fully codeless, and intelligently driven by AI. By addressing the needs of Agile development and complex enterprise apps, Tricentis increases software delivery speed, reduces costs, accelerates cloud migration, and improves the quality of each iteration.
Tricentis Tosca’s Service Virtualization (SV) enables you to simulate the behavior of dependent systems, components and services that might be unavailable, costly to deploy or not yet built. This removes one of the major sources of testing delays, enabling automated tests to run at any time. With Tosca’s SV, you drastically accelerate your end-to-end testing, while reducing testing costs, and catching 60-90% more defects in the development lifecycle.
Tosca SV works by recording messages exchanged between software being tested and its constrained dependencies, automatically learning the expected interactions by “listening in” on these messages. Its model-based approach enables users with limited expertise to quickly create and run reliable virtualized environments for more than 100 technologies and protocols.
Tosca SV automatically flags messages that are improperly formed or sent in the incorrect order, eliminating the need to manually check thousands or millions of messages.
Along with Tosca SV, Tricentis offers a suite of testing solutions from unified test management, end-to-end testing, data integrity testing, app-native testing, performance and load testing, including smart impact analysis. It even supports every flavor and type of testing from black box testing, white box testing, exploratory testing, regression testing and chaos engineering.