Definition

service virtualization

Contributor(s): Nick Moore

Service virtualization is the process of creating replicas of systems that new applications depend on, in order to to test how well the application and systems integrate. It is primarily used for  integrating applications that depend on cloud and service-oriented architectures (SOA), or applications that communicate with third-party data and application program interface (APIs.) Examples of these systems include customer relationship management (CRM) services such as Salesforce Service Cloud, enterprise resource planning (ERP) services such as SAP ECC, and internal systems that are still in development.

Developers can implement a virtualized replica of the dependent system so integration testers can see how well their application integrates. This allows development teams to save money and time by testing throughout the development process. Otherwise, they would need to wait to test integration until these dependent systems are available, which might take a long time because a third party controls them or they are still in development.

Unlike server virtualization, service virtualization only replicates specific interfaces, interactions and behaviors -- situations wherein a server might interact with an application -- rather than a complete server.

How does service virtualization work?

Service virtualization tools monitor traffic between the dependent system and the application. They use log data to build a model that can replicate the dependent system's responses and behavior, using inputs such as SQL statements for databases and Extensible Markup Language (XML) messages for web services. As developers test the new application, the virtualized service produces the same responses that the real one would.

Developers use this simulation to test how a new application, service or feature integrates with existing infrastructure. Service virtualization removes a significant development bottleneck by ensuring testers don't have to wait to begin testing. This allows teams to release products with fewer defects, on time without disrupting service.

Testers can also build in special cases that simulate high traffic volume or slow connections. Once the application is ready for integration, developers can replace the simulation with the real thing.

Service virtualization vendors and products

Parasoft developed one of the first products with service virtualization functionalities in 2003, but iTKO invented the term in 2007. Major players have since developed or acquired their own service virtualization tools; IBM acquired Greenhat, CA Technologies acquired iTKO and Hewlett Packard Enterprises developed its own technology. Other companies that offer service virtualization tools include Hoverfly, MockLab, Traffic Parrot, WireMock and SmartBear.

Benefits of service virtualization

Service virtualization benefits are most acute in rapid deployment and continuous delivery scenarios. It allows teams to rapidly iterate on test results throughout the development process, which can be a boon to DevOps and Agile teams. Service virtualization helps these teams prevent bugs during development, build better systems with fewer defects and share responsibility for testing the quality of the product across departments.

service virtulization testing
Figure A. Service virtualization enables testing throughout development and shared responsibility for quality.

Benefits of service virtualization extend to companies outside of these rapid workflows, too. For example, if an organization wants to upgrade its back-end systems, it might risk downtime-causing integration problems once those systems come back online. With service virtualization, developers can test the back end as they improve it, and test its interactions with the front end before full integration.

Service virtualization allows developers to keep up with application development even when there are missing components. Before service virtualization, testers needed to wait for applications that were nearly complete. Different teams with different schedules, priorities and requirements would often need to finish and assemble the application before the testers could access it.

The rapid, integrated testing that service virtualization enables helps development teams meet their deadlines and ultimately get the product on the market faster. Testers can catch a potentially disruptive problem earlier, which helps development plans remain on schedule. Service virtualization also allows organizations to avoid setting up expensive testing labs.

Disadvantages of service virtualization

Disadvantages of service virtualization involve cost and implementation. Budgeting for service virtualization implementation can be difficult because its usage crosses many different departments. It can be difficult to assess who has ownership over testing and who should be in charge of service virtualization.

Additionally, service virtualization doesn't replace full integration testing with the actual dependent systems. Service virtualization enables integration testing throughout the development process, which speeds the final testing, but a final test process is still necessary.

Service virtualization vs. mocking and stubbing

Mocking and stubbing are similar to service virtualization, but they function on smaller scales. Mocking and stubbing usually involve testing specific behaviors in restricted contexts, whereas service virtualization replicates systems at a production scale.

The growing popularity of service-oriented architecture and Agile development exposes limitations to mocking and stubbing. Service virtualization approaches testing at the infrastructure level and creates models that different teams can reuse in different circumstances. Mocks and stubs typically require manual development for each use case. Service architectures typically require too many dependent variables for mocking and stubbing to be practical, and agile workflows demand a speed that these methods struggle to meet.

Beyond that, developers are more likely to introduce errors into stubs and mocks based on their assumptions of how the application is supposed to react in each situation. Quality assurance teams can integrate both technologies if they use service virtualization when they need to emulate systems and mocking or stubbing when they only need simple, context-specific unit testing.

This was last updated in March 2018 ???publishDate.suggestedBy???

Continue Reading About service virtualization

Dig Deeper on Virtualized test and development environments

PRO+

Content

Find more PRO+ content and other member only offers, here.

Join the conversation

1 comment

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.

How do you integrate testing into the development process?
Cancel

-ADS BY GOOGLE

File Extensions and File Formats

Powered by:

SearchVMware

SearchWindowsServer

SearchCloudComputing

SearchVirtualDesktop

SearchDataCenter

Close