Introduction:
More organisations than ever are adopting Azure and other Cloud offerings as their preferred solution for building, deploying, and managing applications. Yet, to make the most of their capabilities, it is vital to ensure the reliability and performance of these integrations.
As demonstrated by this project for a client, f-tek played a pivotal role in developing an automated test suite for their Azure integrations, enhancing overall software quality and reducing time-to-market.
Problem Statement:
Our client had a typical manual approach to testing new and existing solutions, which used dedicated teams to support the development process and any regression changes made to them. This approach is an easy way to get started but quickly becomes a bottleneck and unsustainable as the technical estate grows over time.
Put simply, as the test suite grows so do the test cycles. The result is less predictability, the potential for human error, a slower overall time to market and higher maintenance costs. Another awkward side-effect is that the project team becomes attached to system maintenance full-time and cannot move on to new projects effectively.
Benefits:
By automating system testing, we were able to reduce the development change cycle by at least 50 per cent. This is because the project team was able to rely on the test suite while concentrating their efforts in testing and automating the data introduced. As systems grow over time, this reduction in time and effort is realised on each cycle and therefore offers a continuous return on investment.
One big benefit is that test knowledge is held and documented in the test suite. As staff rotate in the business, this means the same quality can be maintained over the lifecycle of the system and built on as the system adapts.
Likewise, by detecting defects as soon as possible during the development lifecycle, the client was able to save costs. After all, once a bug goes into production the costs and risks escalate exponentially.
The Approach:
Our philosophy on testing is simple. You should automate everything you can, as soon as you can. This approach allows the project team to create and rely on an automated, repeatable test suite to give them confidence in making changes across the product.
Before writing the automated test suite, our team manually creates and explores test scenarios to find issues and edge cases in the software. The size and effort required by the test team then remains constant, allowing them to focus on developing new functionality while existing areas are covered by automation.
Conclusion:
Using the combined experience of our architects and technical team, we developed a comprehensive process of test automation, resulting in a robust, secure solution which met the performance requirements of the client. This approach to testing allowed the team to scale its efforts and remove bottlenecks typically found at the test stage of the cycle.
By running the automated test suite, a part of the build & release cycle in Azure DevOps we provided the team and the client confidence in the overall quality of the solution and are able to detect any breaking changes quickly which also equates to time and money savings.