As leaders of testing and development, we hear the great success stories from our tech counterparts-particularly from the elite performers. The elite performers execute on key engineering capabilities to meet or exceed their organizational performance. The elite performers achieve this by delivering software quickly, reliably, and safely. Central to this success is their ability to apply Agile and DevOps principles at scale.
The elite performers apply DevOps and Continuous Delivery (CD) concepts at scale and achieve the most significant breakthroughs in improving their software development's efficiency and effectiveness.
'Continuous improvement' culture comes from manufacturing. Though software processes are different from manufacturing, this thinking helps us build capabilities such as 'Release on Demand.'
'Release on Demand' pushes the agile teams to 'develop-on-cadence and release-on-demand.'
To achieve this capability, software leaders focus on improving multiple technical practices, including--speed and quality of feedback--trunk-development culture--repeatable processes for 'build, deploy, and test'--automated deployment process-and 'version-release-control' mechanisms for supporting multiple branches.
While all of the above is critical to building 'Release on Demand' capability, we will, in this article, focus only on 'speed and quality of feedback' to the development team.
We need to move away from the traditional 'hand-off centric' testing to more 'continuous' testing--then only we will be able to provide high-quality feedback fast about the software. In the 'hand-off centric' testing, the development team receives the feedback late--it takes days or weeks--making it less useful for the team. Continuous testing focuses on providing high-quality feedback quickly using real-time processes.
The continuous testing process ensures that we can test the software early, frequently, fast, and reliably. We have to figure out a way to swiftly move a 'Release Candidate' from development to testing to deployment.
Implementing a suitable continuous testing regime is a non-trivial exercise. It requires careful application of the mind by a test leader. Test leaders must contextualize their team's objectives and goals before building an appropriate strategy.
The test leader must consider the following factors for their continuous testing implementation to be successful.
#1: Redesign the agile testing process to suit the modern development environment.
#2: Redefine collaboration models for creating, integrating, and maintaining both code-centric and visual-based test automation methods.
#3: Rethink automation strategy by limiting UI automation to what is necessary, and include additional tools to test other functional and non-functional aspects of an application to satisfy your overall quality requirements.
#4: Refine and optimize the automated test runs using a Risk-Based test approach (using AI / ML) to enable Continuous Testing objectives of "Test Early, Test Often and Test Right."
#5: Reskill your testers through an intense, well-organized transformation program