Sun Setting of QA Era
Inception...
It's all started with Y2K dot com bubble, when the era of internet started making a big difference in everyone’s life, VB was dying , ASP (.net) and JPS (Java) was emerging, this is the time when everyone has started talking about the importance of the Quality Assurance and Quality Control.
Thanks, to those software service companies who have been very successful establishing and defining this new role called QA analyst, QA Lead and QA Manager, this was earlier seen primarily in automobile and airline industries, which has something to do with human life safety, and this is how a new community came into existence who were neither a Developers and nor a BA or a product experts, but the job market bullish for such community.
This was the time when many papers and books got published, most of the books were talking about QA role & responsibilities, testing methodologies and documentation techniques including traceability matrix, V&V SDLC. Few books I read has arguably taken this momentum to a very next level discussing “QA mindset” and “their destructive attitude” while setting a new tone between Developer and QA relationship, which I never personally experienced anywhere.
If you are an old timer like me, I am sure you must have downloaded those IEEE Test Plan and the Test Case templates and your morning coffee with check sqlforums website.
The History…
Few years later an Israeli company “Mercury Interactive” (now HP), have made their big innovative move by opening the doors of many new possibilities, yes, I am talking about black box test automation tools for GUI applications.
Test automation is as older as old as software quality practice itself
SUnit was the first publicly know unit testing framework written for smalltalk in year 1994, developed by Kent Beck, the father of TDD, who have later developed JUnit.
Mercury took over an Indian Software company called Astra and renamed their tool called WinRunner. Well, precisely this is the time when I got exposed to the power of test automation, on the similar timeframe one another popular name AutomatedQA (now Smartbear) made their debut with the tool called TestComplete who was provided a great alternative to Mercury’s WinRunner.
Test Runner (TC) was designed to run on much advanced scripting of that time (VBScripts) as compared to WinRunner was still using legacy TSL (inspired by C) resulting Test Complete got popular overnight, and for survival Mercury also has to develop QTP (now known as UFT/ALM ) featuring Keyword driven automation framework along with VBscripting support and became the market leaders in field of Test Automation.
Agile…
Well the time moved on, this was the era of Opensource technologies now the agile become the mainstream development practice, the line between QA and Dev has now started getting blur, to achieve success in a aggressive 2 weeks of sprints, developer had to start participating and helping QA activities.
This new opensource era killed all proprietary automation tools, people have slowly started moving towards tools like Selenium and Appium, I must say these tools helped QA community to become more technical and able to understand coding constructs better.
Sprints timelines made significant impact on manual testing activities which used to take months and months, this was the time when mobile applications have started gaining popularity, many companies have announced their “Mobile First approach” this was the time of mobile-commerce, when time to market was the major winning factor.
There were no time to spend on manual testing, Devops practice like CI/CD made it possible to achieve 1000s of releases every day, everyone wants to automate their testing no one was looking for manual testing, people doing manual testing have started losing their jobs and there was only one choice left, become an automation tester.
Side Effects…
This continuous technical advancements in the area of test automation was started producing its own side effects, scope of test automation, coverage, possibility and in fact quality of test automation code also came under questions, there used to be 100s of false alarm and test scripts itself which was not mature and stable enough to test the underlying application, root cause of such instability was not just the poor quality of test code written by non-technical QA professional, but it was also related to their testing approach, mostly related to UI automation. By 2015 such test automation has spent billions of dollars creating technical debt was not helping anyone.
A New Beginning…
It was late 2016, a decade and half post Y2K, when many popular product companies announced that they are no longer hiring for QA positions and rejected the idea of UI automation with selenium, TestNG and Cucumber, instead UI layer testing would be done using UI testing frameworks bundled along with UI frameworks like Angular or React, on the other hand service layers should be tested separately by service developers and the only solution such testing which provides 100% coverage is none other than Test Driven Development (TDD).
I personally started practicing TDD in all my projects by late 2015 while moving away from monoliths in all strategic rewrite projects, adopted function paradigm, microservices patterns and TDD approach and never felt a need of independent QA professional in the team of 40+ developers.
Today companies like Google, Facebook or LinkedIn are emphasizing on TDD and pair programming practice, setting the tone for a new Era, this culture is now spreading like a global pandemic, resulting many more TDD adoption and more job loss in the field on QA and testing career.
Conclusion… take it with a grain of salt
The shining sun of QA era is now on its verge of setting and this is an alarm to those who are still sleeping, it’s time to wake up and upgrade their skills try to move to alternate career path. People with good with coding skills could try moving to application development and others should try their luck in DevOps technology.
Lead Engineer - Automation Testing at Gartner. #selenium #rest-assured #java #testng #cucumber #CI #maven
4 年Well said, but What I think is If TDD is a programmer's job, it does not mean that the testers can't involved in it. Testers can collaborate by sharing the test scenarios consisting of Boundary value cases, Equivalence class test cases, Critical business cases, Cases of the error-prone functionalities Securing level cases. What I mean to say is testers can participate in defining the unit test scenarios and collaborate with the programmers to implement the same. Testers can provide their feedback on the test results. Yes, you are right testers need to upgrade their skill sets. They need to be more technical and focus on improving their analytical and logical skills. Testers should also put in an effort to understand the technical jargon that the programmers use, and if possible, must have a bird's eye view of the code. In a similar fashion, the programmers have to step into the tester's shoes and try to come up with more sophisticated scenarios that will make the unit testing more robust and solid.
Head of Fulfillment Billing | Certified SAFe? Product Owner / Product Manager | ISTQB? Certified Advanced Level Automation Engineer
4 年Agree with most of the things. But QA is still relevant in the domain heavy industries such as Banking, health etc. You will still need manual QAs wherever products are old or still developed using non-agile models. Just like it takes decades to decommission a product, it will take decades to remove manual QAs. But I do agree that future lies in TDD and probably SDeT.
Software Developer - Backend
4 年Great article. The ability to think use cases and break a product is a great skill, not if you are just executing some use cases. If you marry that with technical and programming skills it will turbo boost your career. Focus on data structures, algorithms, system design and not just selenium.