To answer this, a bit of background on QA and the need for this shift. Conventionally, developers have relied on QA teams or testers to validate the quality of software before deployment. WE all know how the waterfall model works – where products are designed, implemented and verified in a sequential order. The QA team is the last pit stop where any bugs, defects are identified in the code before release. In this model, the role of the QA is just to identify defects, measure the impact and send the buggy code back to the dev team.
This model worked very well up to a point. But within the new DevOps paradigm where the practice is more Agile, quality and speed are both paramount, QA often becomes the bottleneck. This led to the concept of QE, which is more of a preventive approach.
QE is more of an upstream event where the quality team work with cross-functional Agile dev teams to identify and resolve issues parallelly. It is built on an agile, iterative model and makes sure that quality is baked into the software at the beginning of the development and stays in focus through the cycle, even beyond deployment.
The QE practice makes use of quality metrics at build time to enable continuous quality gates before submitting the code. To put it simply, quality is simply designed into the entire dev process. Also known as Shift Left – integrating quality earlier in the development cycle without waiting to get to the finish line with development.
This has many benefits. The move towards smaller, component-based releases also shifts the focus to specific outcomes. When dev teams and quality engineers are running tests on smaller bits of code, with specific functions to check, it helps narrow down the root cause analysis.
Also, test strategies that require performance, security and end-to-end integration are pushed to the Ci/CD pipelines for all software. Test Automation is essential to the QE practice because it creates both predictable and measurable processes. With QE there is great emphasis on automation through unit testing and end-to-end user experience testing. You have the benefit of instant feedback post code merge and in case of failures, design teams need to rethink their approach and solve problems immediately.
The rising adoption of CI/CD means that automated measurements and notifications are indispensable to agile. So that if builds fail, the system can flag dev and QE teams instantly and enable to them to fix these within shorter time frames.
With agile, the great benefit is that everything from usability to functionality to API integration and deployment tests are and can be automated. You can even systemize code style verification tools to avoid programmatic errors at build time.
The main difference between QA and QE is that while QA assures the quality, QE drives the development of quality products and releases. It requires a cultural shift so that teams focus on quality right at the idea level.
Quailty Engineering thus becomes the foundation for releasing high quality software. Apart from Shift Left, test automation is one of the pillars of a standard QE practice. When companies scale up their software, test automation has to scale up to avoid software failure. Implementing QE with shift-left, automation and the right tools and processes, allows you to accelerate the quality with confidence.