Test-Driven Service Virtualization: End-to-End Regression Testing in CI/CD
Customers using a business system expect it to "just work." Integrating end-to-end testing into your CI/CD cycle prevents errors that can lead to lost customers.
Join the DZone community and get the full member experience.Join For Free
I love application failures – said no one ever.
Anyone interacting with your company’s business systems expect their transactions to “just work.” If the system hangs or spits out some cryptic error message while they’re trying to complete whatever task they had in mind, you might have lost a customer.
Given that today’s applications typically have over fifty dependencies, there’s a good chance the complexities of integrating so many, and so varied, different technologies and systems could indeed result in this kind of application failures. Ideally, these issues are exposed and eliminated before the software is released. However, actually testing the integrations presents quite a challenge. How do you validate your application’s interactions with systems that are often:
- Unreliable, evolving, or not yet completed.
- Beyond your scope of control (e.g., operated by another company or division).
- Available for testing only in limited capacity or at inconvenient time.
Just to name a few. You can see the full list in my last blog post, here.
In our recent webinar, ‘Test-Driven Service Virtualization’, now available on-demand, Tricentis product manager Alexander Mohr talks about how service virtualization helps testers boost test automation by simulating dependencies such as third party services. This helps testers keep pace with Agile and DevOps demands.
During the webinar, Mohr stressed a number of situations where service virtualization could “shift left” testing, improve team collaboration, and allow the team to integrate end-to-end testing into a CI/CD environment. He also outlined a few situations where a simpler approach, such as stubbing, might be a better fit.
How do you decide the scope of simulation (stubs, basic service virtualization, or advanced service virtualization) that best fits your specific needs, ask yourself these questions:
- Where do we start?
- Do we need all data?
- Do we need all services?
- Do we need all variants?
- Do we need simple Request/Response-pair or full End-to-End processes covered?
Some other key takeaways from Mohr’s presentation:
- Service Virtualization helps both testers and developers test earlier in the development cycle.
- It also improves cooperation & team spirit amongst the team.
- Service virtualization should be applied differently for new projects vs legacy projects.
Published at DZone with permission of Jessica Wanivenhaus, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.