Parasoft Logo

WEBINAR

Test Anytime, Anywhere With Service Virtualization

Development and testing teams face challenges in validating their applications due to unstable downstream dependencies in their application. Lack of test data, third-party constraints, and infrastructure costs can lead to external services becoming unavailable for testing. Missed test coverage targets cause bottlenecks that reduce application quality and result in late-cycle defects or production outages.

By augmenting your test environment with simulated services, teams can develop faster and test earlier—more comprehensively. When evaluating service virtualization solutions, it’s important to consider several factors for a successful deployment and ROI. In this session, we’ll discuss key features and capabilities that have proven successful in virtual deployments.

The Bottleneck of Unstable Test Environments

Software testing is complex. Think of testing a simple faucet – you need water, pipes, and a whole plumbing system. Similarly, testing even a single API often requires setting up the entire system, including internal and external services, databases, and legacy systems. This can be costly and time-consuming.

Imagine trying to test a faucet without water. You can’t. In software, this means if a dependent service is unavailable or unstable, your testing stops. This is a common problem, especially with microservices where different teams manage different components. If these services aren’t available or up-to-date, your end-to-end testing hits a wall.

Common issues include:

  • Third-Party Service Unavailability: Relying on external services (like payment processors or validation services) that might not have reliable sandboxes or are shared among many teams, leading to downtime.
  • Data Control Issues: Even if you can simulate services, controlling the test data and simulating edge cases can be difficult. Data might not be synchronized with your test automation.
  • Dependency Cadence Mismatches: In microservices architectures, different teams work at different paces. If you can’t get the latest versions of dependent services, your testing is blocked.
  • Performance Testing Readiness: Test environments might lack sufficient data or realistic latency, hindering performance testing.

Service virtualization addresses these by allowing you to create simulated versions of these dependencies, giving you control over their behavior and data.

A Real-World Success Story: Cox Automotive

Cox Automotive and DealerTrack faced a “perfect storm” of challenges due to the sheer scale of services they offer. Their system supports the entire car dealership network, from initial customer contact to vehicle delivery. The complexity meant even small changes had a ripple effect, impacting their ability to test and leading to defects in production.

Their goal was to reduce escaped defects to less than 5%. They partnered with Parasoft to implement service virtualization. The approach involved:

  • Increasing Testing Productivity: Creating virtual services to simulate dependencies, giving them more control and removing availability constraints.
  • Enabling Test Automation: Ensuring tests could run anytime by automatically failing over to virtual services when live services became unstable.
  • Reducing Downtime: Minimizing testing delays caused by dependency outages.

The results were significant: testing thoroughness increased, they met their goal of reducing escaped defects, system availability for testing reached 99.97%, and testing downtimes were reduced by over 50%.

What to Look For in a Service Virtualization Solution

When choosing a service virtualization solution, it’s important to consider both current needs and future growth. Solutions generally fall into two categories:

  • Lightweight Tools: Often open-source (like WireMock or Traffic Parrot), these are good for simple use cases and getting started quickly. However, they can become costly to maintain and scale, often requiring significant internal customization and lacking vendor support.
  • Enterprise Tools: These offer vendor support, handle a wider range of protocols and complex use cases, and are designed for large-scale deployments. Parasoft falls into this category.

Key Capabilities for Maximizing ROI:

  • Rapid Virtual Service Creation: The ability to quickly create virtual assets, ideally by importing definition files (Swagger, OpenAPI) or by recording traffic, is crucial for initial adoption.
  • Breadth of Technology Support: Look for support beyond basic HTTP/REST, including various protocols (MQ, TCP), message formats (JSON, XML, Copybook), and emerging technologies (IoT, microservices).
  • Broadly Accessible Architecture: For enterprise-scale adoption, you need a way to manage, orchestrate, and deploy virtual services consistently. This includes features like centralized management, role-based access, and integration with CI/CD pipelines.
  • Change Management: APIs and data change. A good solution should help manage these changes efficiently, perhaps through automated refactoring based on updated definitions or by allowing teams to manage their own test data independently.

Key Takeaways

  • Service virtualization helps overcome challenges related to unstable, unavailable, or uncontrollable test environments.
  • It addresses issues with third-party dependencies, data control, and mismatched development cadences.
  • Cox Automotive significantly improved testing efficiency and reduced defects using Parasoft’s service virtualization.
  • When selecting a solution, consider ease of creation, technology breadth, architecture for access, and change management capabilities.
  • Focus on both current needs and future scalability to maximize return on investment.

Getting Started with Service Virtualization

To effectively scale your service virtualization practice and maximize its value, consider these four areas:

  1. Creation of Virtual Assets: Enable your team to create virtual services quickly and easily.
  2. Breadth of Technology: Choose a solution that supports your current and future technology stack.
  3. Architecture for Access and Deployment: Ensure virtual services can be easily accessed and deployed across your organization.
  4. Change Management: Implement processes to keep virtual services up-to-date without burdening your teams.

Ultimately, service virtualization helps by improving Availability, Behavior simulation (including performance), reducing Cost, and providing control over Data.

Parasoft offers a leading enterprise-grade service virtualization solution. They also provide a free edition to help teams get started.