Quality Assurance in the traditional waterfall model of software production was restricted to finding faults and detecting bugs for remedial action. The fault-finding and fault-fixing cycle were iterated repeatedly until optimum performance standards were met. Times have changed and with the advent of Agile and DevOps, the role of QA as a separate entity in the organization is shrinking. In DevOps, quality control is an ongoing process that happens continuously, with automation reducing the need for human intervention.
The Agile and DevOps breakthroughs
The Agile methodology revolutionized the traditional waterfall model with its flexible approach to quality and testing, while the DevOps addresses the lapses in Agile. It is a centralized practice that brings together the Software development and the Operations team together, on a single continuum.
DevOps has enhanced the regularity of feature releases and streamlines the continuous development process, building on the conventional CI (continuous integration) models. Quality is something that cannot be assured post development of the product, but rather, is needed as an integral part of development. This cultural shift has evolved and transformed the role of QA in the IT value chain. DevOps is thus, marriage between Dev, Ops, and QA.
Benefits of Unit Testing
Developers have started realizing the thrust on quality and like to take responsibility of testing their own code, unlike the separate quality analysts in the waterfall model. With the advent of agile models, unit testing also shot to fame, since the continuously changing designs also needed a continuously changing QA. It gets the developers standing on toes without being luxuriously lazy that a separate QA team exists for finding and addressing faults. Unit testing, as it can be seen, leaves practically nothing to be handled by a separate and stand-alone QA team.
The transformed role of QA in the world of DevOps
The role of QA thus stands impacted and changed – this does not, however, mean that QA has become extinct totally. The DevOps chain requires a dynamic and continuous contribution from both Dev and QA teams. As such all the pre and post testing tasks, as well as clean-up tasks, need to be aligned with the CD (continuous development) process, as demanded by DevOps. Automated testing is trending in QA, which means there is no need for extensive human intervention for the development and deployment of tests.
In the yesteryears, the developers designed everything upfront and then proceeded to code. Only after this, the QA came into the picture and was very much a post-mortem exercise. QA came at a cost and added substantially to the budgets, that many software providers had to compromise on QA to maintain costs. But the tables have changed today with continuous monitoring and real-time feedback from DevOps, enabling a possible toning-down of the passive, conventional and time-consuming QA.