Testing and QA in the age of automation
I started my career as a software test engineer, around fourteen years ago. Since that time, there is a fundamental transformation in the field of testing and quality assurance. In my early years, most software applications were still built using waterfall methods, where testing & QA were taken up as sequential, standalone activities, after development.
Subsequently, with the increasing popularity of scrum and iterative development, testing & QA slowly became an integral part of core development. And within a short period of time, this led to the evolution of best practices such as test-driven development, that has become sort of gold-standard for quality assurance.
In the waterfall years, focus was on big-bang releases, which gave way to periodic, more frequent releases in the agile era. And all along, the practices associated with testing & QA kept pace with the evolving development paradigms.
Now with the advent of DevOps and practices such as Continuous Integration and Continuous Delivery (CI/CD), the field of testing & QA is once again at the cusp of another major transformation. In the DevOps world, there is a demand to keep the code in a deployable condition at all times. Which means whatever changes, feature enhancements, bug fixes are done to the code, they have to be tested in real-time and deployed instantaneously.
In unicorns such as Google, Amazon, and FB, the application is updated thousands of times in a single day, which means that the software is updated once every few seconds!! Just imagine, the kind of sophistication it will take to ensure that the software is rigorously tested, prior to release, and that too at lightning speed.
It is obvious that this kind of speed, agility, and process rigor doesn’t leave much scope for human error. Hence it is only natural that manual ways of testing gave way to automation. In the current scenario, the essence of testing & QA is dependent upon developing the right test cases, and automating them in the form of scripts that can be executed continuously, with the help of tools.
Also on the people side, there is an increasing demand for engineers to have full-stack skills including ability to test their own code. Gone are the days of standalone testers, who will patiently wait for the code to be delivered to them and then they try to break it. The current world of DevOps and continuous delivery demands, a very high degree of automation, and people with multifaceted skills in development, testing, and delivery.
Change in any sphere is the natural order, and technology is no exception. Automation on its own will not replace people, it will only make you redundant if your skills are not up to date. Therefore, if you started your career in software QA, you must make every effort to keep learning continuously, and update your core skills to survive in the age of automation.