Becoming an agile company means internal structure changes as well as the team structure changes. The new formula should focus on having a DevOps and QA department that work together closely. If there is already a QA department, its role needs to be analyzed and the focus should lie on how much value QA can add overall. Testing should not be the last stage before release like in the waterfall processes, but it’s an important component of the whole new process.
The “new” QA department
People tend to think of quality as a competitive advantage, but in fact it’s not an added value at all. It’s a basic requirement that people expect from any product they buy or download. If those standards are not met, the product just won’t be used.
Quality Assurance has evolved into so much more than just a testing role. QA has transformed into a process that ensures quality throughout the whole product development cycle. We are not just talking about the quality of the product, but of the entire process as well. The “new” QA department supports all of the other departments involved in creating and developing the product. It’s not about the product itself anymore, but it’s about the right product for the target user group and the QA department makes sure of that.
It’s true that QA still does do all of the testing but it’s not just limited to that.
“Shift left” practices
In the waterfall development process, the QA department would just do testing (most often manual testing) at the end of every development cycle. That process is now changing: the QA team is completely integrated in the process and supports the DevOps team closely, adding value when the situation requires it, doing research, and thinking about the user stories and the test cases.
We often call this “shifting left,” meaning that QA is involved from the beginning so that testers are active in a number of different activities from the start of every project. The goal for QA is to improve the overall development process in order to create the highest product quality possible that truly fits a need in the market.
The best way to achieve that is to make the QA department an important part of the development process--not just a testing department.
How can QA practically add value?
- QA should be a part of the pre-planning, helping to define testable user stories and determine their testability. QA should also participate actively in the project and assess a quality risk analysis to start implementing testing strategies, minimizing risks that can occur later in the project.
- By having an automated test strategy and implementing automated testing correctly, time spent on debugging and test failures can be reduced by 75%, resulting in a much higher ROI in development productivity.
During sprint planning
Identifying functional and non-functional testing as well as performing exploratory testing of new features during sprints will enable QA to create real time reports to present to management at any time. Working close to the development team, QA will know at all times what is happening, facilitating communication both within and outside the team.
During the sprint
- Regression testing: Early test creation, or TDD, driven by QA can save time in the long run. If the team prepares a set of regression tests during the sprints of new and existing features, automated tests can be ready to launch whenever needed, which speeds up the deployment. In a CI/CD environment, QA can help to deploy up to six times faster by having tests ready whenever the sprint cycle requires it
- Task management: QA can help break down tasks into tests and user stories to help developers focus on the core functionalities, taking care of the testing part and deliver the tests when needed.
Don’t hold back your QA team, let them do more! In agile and CI/CD processes, they can be the most valuable resource to boost your revenues. QA can help to create better, more stable products if they focus on prevention and optimizing the workflow from the kickoff of every project. A good stable product is always better than patching up code.