Case Study : Continuous Testing Eliminates Instability with
Everyone seeks productivity and strong relationships are work. You want to feel like you work in a close-knit community. Anyone who has worked in a large company knows it can feel less like a village, and more like a city, a metropolis even. Different teams, stakeholders, and goals, all moving at once, sometimes in the same direction, sometimes not.
Sometimes there are so many different teams working on the same project it feels impossible to reach the goal. The sum total is productivity but getting there feels like a mess.
The problem? They had 30 vendors with differing levels of process maturity releasing unstable code into a multi-tenant testing environment. The overarching problem with this method of delivery was a lack of scalable services. Teams needed to access services they didn’t own, and when services didn’t work, teams didn’t know who to contact to fix the issue.
To add to the difficulties, staffing changes and turnover were common, which made it hard for them to follow a codified process. As a result, API and service failures were common.
The client needed the high availability of their test environment without the rigidity of a production environment.
To solve this problem our team needed a framework that would let different teams perform concurrent tests using the same resources without interrupting each other.
That’s exactly what we created, an automated continuous testing framework that could perform non-destructive testing of all services running in the shared environment.
Let’s dive in to see how and why this was such an effective solution —
The client needed to scale their services. Our team created a library of virtualized stand-in services for when instability was introduced.
The benefit of virtualized services is that they allow for fault tolerance when services fail. If a service is unavailable during testing, it is redirected via a proxy to a virtualized service that was available. This means fewer testing stoppages and increased productivity and development velocity. Not to mention less frustration from teams running their tests.
STAND 8’s solution was able to recognize when a virtual service was in use and continue with "lower-level" data until the service was available. This further contributed to development productivity as tests were able to run intelligently without being completely stopped.
When you look at the results from a high level you can see a clear and vast improvement.
Because tightly coupled dependencies were now free and independent of each other for the most part, 30 Teams were now unblocked by this new model. Talk about removing roadblocks.
Previously the QA team was hitting technical roadblocks that caused 4 Months of downtime per year. That’s over a quarter of the year lost, that was now put back into the calendar by implementing this system.
Furthermore, software releases ran on time and more frequently which means more sprints, and more improvements to the software. That means a better product and more revenue.