At the end of the day, the objective is pretty straightforward and universally agreed upon: We all want defect-free solutions, delivered in a timely fashion, with minimum implementation hassles. Oh, and let’s not forget to add at low (or at least reasonable) cost. It sounds so simple, but of course the devil is in the details. Given the multi-vendor, complex systems powering payments environments today, not to mention constantly evolving regulatory and compliance mandates, the industry is dealing with an ever-increasing number of such details.
Any process or software tool that can help achieve this end goal deserves careful consideration by both banks and payments service providers, and certainly continuous integration and testing falls into this category. Paragon’s white paper provides a handy overview of the concepts and terminology behind continuous integration, delivery and testing. Here are a few of the high points:
In several cases, financial institutions and software companies that have adopted continuous integration and testing have reduced their release cycles by a factor of ten, while at the same time at least quadrupling test scenario coverage to figures approaching 100 percent. In addition, these benefits have been accompanied by improving speed and quality.
The trick behind this achievement is to repeatedly assemble and test the system each time a change is introduced. Approached manually, this would be a daunting – verging on impossible – task. Given the frequency with which updates are made in today’s agile, multi-vendor environments, the size of the testing staff required to meet such a manual testing threshold would be infeasible. Fortunately, the next gen testing software systems in use by leading firms today can automate this process – identifying changes, compiling the necessary components and initiating the testing process.
Another key benefit to this approach is that whenever an unacceptable quality level is detected in one or more components, the software automatically halts the assembly process until the defect is removed. This is a critical safeguard, which addresses the nearly inevitable scenario wherein development projects fall behind schedule and testing windows are condensed, pressuring teams to approve code in the “fog of war” with limited review.
While it may be disconcerting for some to relinquish the ability to manually greenlight a set of code, it will almost always lead to better long-term decisions. After all, the cost of correcting a defect is invariably lower the earlier it is caught, even without factoring in the impact on client relationships should any of those defects reach the final release.
Furthermore, once many of the mundane aspects of testing are automated, professional testers can shift their focus to designing new tests to increase scenario coverage. Since the incremental cost/run time for each additional test is negligible, companies are empowered to make the type of dramatic improvements to their testing coverage noted above.
Software testing has traditionally taken place at the end of the development process. While this doesn’t necessarily mean it has to be an afterthought, too often that’s been the end result. Continuous integration, delivery and testing redirects the process to its appropriate place at the center of the process involved in building new products, features and functionality.