IT and software organizations began adopting the Agile method more than a decade ago in order to deliver releases in quick succession. DevOps came along soon after, narrowing the gap between concept and reality. DevOps is a significant shift in software development and testing, as it relies on automation and collaboration to improve how teams develop software to meet modern business requirements. In my experience, quality assurance (QA) teams have lagged behind their development and infrastructure counterparts in adopting DevOps. In-sprint automation is an approach to help QA teams ramp up with less pain and more success. Preparing for this practice, however, requires some changes in tools, process and workflow.
Testers may struggle in the shift to Agile and DevOps, as it introduces major changes in how they’ve always worked. They must learn how to use automated testing tools, test in a continuous manner (not just at the end of each sprint), move at a faster pace and work closely with other functions to ensure the wheels keep moving. We work with customers at various phases of modernization, such as:
- Clients moving into Agile methodology
- Clients moving into DevOps
- Clients already using Agile, but with minimal automation
- Clients have automation in place but only at the regression testing level or (n-1) sprint level regression.
No matter where your organization is on the Agile and DevOps journey, your QA team may benefit from the implementation of in-sprint automation. The practice replaces manual methods of functional and regression testing with automation to avoid delayed testing. QA teams should prioritize automated testing during the sprint, supplementing with manual testing for spot checks or to further explore an automated test case. In-sprint automation supports faster execution time, the ability to test multiple builds at once, and the opportunity to identify and fix bugs earlier in the development cycle. Those are powerful advantages, elevating the role of testers in any DevOps organization.
Here are a few high-level considerations:
Pace yourself. QA teams shouldn’t bite off more than they can chew. Instead, we’ve found that a phased approach works. Start by training staff on how to use the test automation tools. Make a goal of automating 30 to 40 percent of the manual regression test suite. Next, work toward in-sprint automation by starting with one project. This will minimize the negative impact of change by not overwhelming staff and ensuring that work continues at a reasonable pace.
Simplify automation. Select a single test automation framework. This application should be tool-agnostic and support web, mobile and database-related validations. Tools supporting script-less automation will make it far easier for testers to transition since they won’t need to develop coding skills.
Create the DevOps infrastructure. Spend time putting in place tools such as Git, Puppet, Docker, Jenkins & Nagios to manage builds and deployments. Don’t forget to make a plan for integrating those tools with the automated testing suite.
Think about your people. Finally, evaluate the skills your people have and identify whether they match the technology infrastructure you’ve chosen. Preparing people for the DevOps world requires a cultural shift and even a structured change management program.
Healthcare providers, payers and independent software vendors (ISVs) are implementing in-sprint automation as they step toward DevOps implementation. Several of our clients have achieved impressive results after adopting this strategy. One of the largest healthcare companies achieved 80 percent test automation within sprints and moved 70 percent of its programs to the in-sprint model over the course of a few months. The company is well on its way to DevOps transformation and has already achieved faster time-to-market metrics.
Are You Ready? Want to learn more about the emids in-sprint automation approach? We’ve put together a checklist for you to analyze whether you are prepared for in-sprint automation.
In Sprint and DevOps Implementation Checklist
- Availability of test automation framework that can support end-to-end validations
- Tool-agnostic automation framework supporting web, windows, mobile, web services, reports and database validations
- Right strategy and toolkit to be chosen for test automation
- QA Skill set that matches the framework and the chosen toolkit
- DevOps infrastructure setup done with right set of tools (i.e. Jenkins, Docker, Nagios)
- Build automation is in place and pipeline is set for integration with continuous testing tools
- DevOps infrastructure provides ability to create multiple branches that can be an isolated build for validation
- Run POCs and feasibility analysis that can back up the chosen tool and frameworks
For an even deeper dive into making the move to the DevOps model, you can download our guide to Transitioning to DevOps.
Krishna Prasad B is Associate Vice President for emids’ Quality Assurance Practice.