Parasoft has been showcasing our Service Virtualization solution at Gartner AADI this week. Since there’s been so much interest in service virtualization, we thought we would take this opportunity to share the most frequently-asked questions.
According to Wikipedia, service virtualization is “a method to emulate the behavior of specific components in heterogeneous component-based applications such as API-driven applications, cloud-based applications, and service-oriented architectures. It is used to provide software development and QA/testing teams access to dependent system components that are needed to exercise an application under test (AUT), but are unavailable or difficult-to-access for development and testing purposes. With the behavior of the dependent components ‘virtualized,’ testing and development can proceed without accessing the actual live components.”
Service virtualization provides a simulated response from message traffic, “virtualizing” only a fraction of the overall system behavior. Server virtualization is much more extensive. As a result, it requires you to have access to the entire system—and also to know how to configure and maintain the virtualized system components. Moreover, it’s not feasible to leverage server virtualization for every dependent application (e.g., mainframes, third-party systems, ERPs). Service virtualization fills the gap by providing access to the specific behavior that’s needed to complete development and testing tasks.
Absolutely…but you want to ensure that your service virtualization solution builds trust by analyzing and assessing the health of the simulated test environment vs. the production system.
Some organizations have been very successful in building their own solution to eliminate constraints associated with simple systems and “quick and dirty” test scenarios. However, if you’re looking to accelerate the SDLC by “shifting left” the execution of complex deterministic test suites, that’s when you want to consider commercial service virtualization products. Parasoft delivers a platform that allows convenient role- and team-based access to trusted test artifacts. We focus on providing the most flexible simulated responses in a shared environment. The platform ensures that your test environment is accessible, dependable, and meets the organization’s performance demands.
Organizations that aren’t under pressure to release innovative software under tight deadlines might have the luxury of not needing service virtualization. Also, organizations that already have ubiquitous access to complete test environments might not need service virtualization. However, we have found that large organizations with complex interdependent systems can achieve significant benefits with service virtualization’s simulated test environments. For example:
Yes, service virtualization is incredibly valuable for QA. QA has traditionally had to wait for a complete application before they could begin functional testing. With service virtualization, QA can start testing much earlier. They can test features as they’re completed, which is very well-suited for agile processes.
Different vendors have developed different models for service virtualization maintenance and evolution. Some vendors, such as Parasoft, offer both passive and active methods for service virtualization environment maintenance and evolution. Others approach service virtualization as a single component (or end-point), which makes it difficult to maintain.
Stubs disconnect a test suite from an environment. They provide replacement implementations for objects, methods, or functions in order to remove external dependencies. If you’re trying to write a unit test and need to replace a simple call to a database, external libraries (e.g., file I/O) or other system API, stubbing might be perfectly suited for your needs.
Service virtualization emulates an environment to allow you to execute a broad array of end-to-end tests. Service virtualization can represent much more realistic behavior than simple stubs and mocks. While stubs are created from the perspective of the test suite in order to “skip” unavailable system components, virtual assets are constructed to make the behavior of constrained components available to the entire team. With the virtual asset centrally provisioned, all team members access the same asset, which is expressing the expected behavior. This allows absolute consistency and reduced risk of defects slipping into the final product.
The answer here is really vendor-dependent. Parasoft provides a user-friendly interface that enables even non-technical users to provision complex test environments with the click of a button or via an automated test management system. Others service virtualization vendors require dedicated technical resources to programmatically construct and provision environments.
You can use service virtualization to provide simulated responses for any system that has a standard or custom protocol for communication and a message payload. This includes, but is not limited to, large ERPs (e.g. SAP), databases, mainframes, mobile UIs, mobile networks, third-party applications, and much more.
The new Service Virtualization research package from Gartner and Parasoft provides more details about how service virtualization helps organizations accelerate the SDLC. Download it to learn:
Parasoft’s industry-leading automated software testing tools support the entire software development process, from when the developer writes the first line of code all the way through unit and functional testing, to performance and security testing, leveraging simulated test environments along the way.