Is Your Testing Process Truly Agile?
Organizations today face tremendous pressure to produce powerful, high-quality software solutions that will satisfy their users and allow the company to differentiate itself from its competitors. To succeed, companies must produce more business value faster, but without compromising software quality. According to VersionOne’s yearly State Of Agile study, more than 90% of companies that answered the survey this year use Agile methods in some form, and more than 71% say that they will have at least one DevOps initiative on the production floor in the next 12 months. So what separates market leaders from less successful companies then? According to another study by Forrester Consulting, a company’s focus on software quality (or lack thereof) can play an important role.
According to Forrester, companies that recognize the importance of software quality and risk management are generally more successful. These organizations use data to identify and manage risks all throughout the development process. Moreover, these companies often also have a test automation process in place within their organization and they see automation as a key building block for their company moving forward.
Agility and Testing
Far too often, companies try to speed up their development process without transforming their QA process. As a result, QA specialists continue to use tools and methods that were conceived for a Waterfall development model. These tools can’t be integrated as easily into a modern test automation and end-to-end testing platform, which prevents QA specialists from testing quickly and matching the development team’s speed. Since this testing process can’t be integrated within a continuous development model, QA specialists don’t have as much data about the quality of an application or module and can’t test new functionalities as soon as the development team has created them. All of this can slow down the development process since developers won’t have access quickly enough to complete and updated test results.
To solve these problems, your testing process must be integrated within an Agile or DevOps development model. Instead of testing at the end of a Sprint or development cycle, your QA specialists will be able to test and measure software quality all throughout the development cycle, allowing developers to fix bugs and other issues faster and sooner in the development process, a strategy that’s often called “Shift Left.” By adopting these methods, your testing process will not only improve the development process, it can also become a pillar of your company instead of a bottleneck.
Communication and Involvement
In traditional “waterfall” projects, the test team usually works separately from the development team and interactions between the two groups are limited. Agile, which champions daily communication, turns this dynamic inside-out. Suddenly, QA specialists are integrated in the development team and asked to provide ideas, opinions, statistics, defect metrics and more. Better yet, by being continuously involved in all aspects of the project, including the requirements and design of each feature, and working closely with developers and other experts, QA specialists often end up functioning as the glue that binds the entire team together.
Transforming your testing process, however, won’t happen overnight. To maximize the benefits of an Agile testing process, your team needs to:
1- Stop Thinking of Qa as “Separate” from Development
Encourage your QA specialists to go beyond the traditional QA boundaries. Allow them to take part in the development team’s day-to-day activities by including them in meetings and asking them to analyze test plans, help review user stories and more. During meetings, ask for feedback from your QA specialists as to how a proposed module or functionality would affect testing. When developers ask, “What do we need to develop?”, QA specialists will be asking, “What can go wrong?”
The more QA specialists are involved, the better they’ll grasp the business value of each functionality and each module and the more they’ll feel personally invested in helping the team deliver outstanding software quality. QA can be so much more than simply assessing whether or not an application is meeting functional requirements!
2- Foster a Software Quality Culture That Maximizes Cooperation
An Agile testing process also means that software quality is no longer the sole responsibility of the QA team, but instead becomes everyone’s responsibility. Roles become more flexible and developers can be asked to analyze test results while QA specialists are more directly involved in the product development process. Instead of writing sloppy code and expecting the QA team to tell them whether or not the resulting module or functionalities contain errors, developers are encouraged to go above and beyond to ensure the success of their project. In other words, a software quality culture means soft-ware quality is everyone’s responsibility, regardless of their role in the team.
3- Focus on Faster Feedback
A modern and efficient testing process cuts down testing time tremendously, as what used to take several weeks to test can now be tested in several hours. According to a study conducted by Mälardalen University in Sweden, automatically generated tests achieve similar code coverage as manually created tests, but in a fraction of the time. On average, automated tests can test the same functionalities as manual testers, but improve the total amount of time it takes to run all tests by 90%.
One obvious benefit of this is faster feedback, as the team can now develop, test, make adjustments and test again. This dynamic also encourages cooperation and more flexible roles within the team, as discussed above. Lastly, faster feedback means more data, which can guide the development process and give the team clear, objective milestones to attain. By focusing on improving the time it takes for the development team to receive feedback, you’ll likely improve your testing ecosystem as a whole.
Transforming the Testing Process
While change can be scary, over time, even the skeptics and the doubters in your team will see the clear benefits of optimizing the testing process, getting QA specialists more involved and maximizing cooperation between QA specialists and developers. They’ll have to leave their comfort zone, but once they see that these development methods lead to fewer bugs and fewer functionalities to rework, saving everyone a lot of time and effort, they won’t want to go back. In fact, they’re likely to tell you, “We should have implemented these changes a long time ago.”