Accelerating the Software Delivery Lifecycle through faster, intelligent unit testing in a scalable DevOps pipeline
In this presentation, we show how to build an automated software delivery pipeline, scalable to millions of lines of code, and with an optimal NULL release (the time it takes to rebuild and re validate the software under test with 1 line of code change). A novel approach called T(x) has been developed to automatically build and test applications whenever code changes are checked into the SCM system. The transitive closure of all changes is calculated, and an efficient change-based testing phase is started via an automated declarative Jenkins DevOps pipeline. Build improvements are also identified. The unit tests can be re-categorized as integration tests or software-hardware integration tests, through the efficient use of stubs and wrappers to intercept embedded target calls. Additionally, unit and integration tests can now be automatically generated directly from the software architecture visualization, and it is possible to enforce architecture intent through rules at build time. The implementation of the pipeline in Docker containers and across a Kubernetes topology is demonstrated. The approach has been validated and deployed at a large German Healthcare company - a real life case study is presented.