AI has been around for many years with highs and lows in terms of public interest. However, in recent years, it has skyrocketed to the forefront thanks to the increasing power of hardware and infrastructure. There has been a lot of interest by the GAFA (Google, Apple, Facebook, and Amazon) companies and that fueled the growth of AI and ML in the last few years. Although there is a lot of enthusiasm and excitement about AI technologies but their application in software testing is still emerging. Questions are also being asked if AI will bring ‘doom’ to the testers community and will AI perform all testing in the future.
Let’s look at some of the nuances of AI and its impact on Software Testing.
Evolution of Software Testing
At the turn of the century, the Internet was a luxury. I remember using a dial-up 56 kbps connection at my apartment in Irvine, California. Those were the days when iPhones or iPads did not exist, and Google had just raised an IPO. Uber, Lyft did not exist neither did the Airbnbs or Snapchats of the world. In the last 15 years, things have evolved and so has the way software is designed, developed and tested.
The Origin of Testing…
Until the dawn of the century, the role of a tester was to come in towards the end of SDLC (remember waterfall days?). By the time tester got hold of the application to be tested, the underlying business requirements would have changed or may not have been relevant at all. Testers were always squeezed for time and they could hardly find enough time to perform the testing. For many organizations, the focus was mostly on writing the code as much as possible and fast as possible, hence testing was considered an after-thought.
Agile Comes Knocking at the Door…
Testers were now an integral part of the team and they were introduced early in the software development process. Agile made 2-3 weeks development a norm and testing was no longer an exercise that took months. Agile Testing replaced Classic Testing. Agile became a big thing quickly while XP, Scrum, Kanban became a standard process in the SDLC. Many Agile Project Management tools (open source) like JIRA came into existence. Test Plans and Weekly Test Status reports gave way to storyboards, retrospection and velocity charts. For the first time, developers and testers were working together.
Continuous Testing, CI & CD
Digital Transformation gathered steam a few years ago and crowd testing, testing on cloud and DevOps became omnipresent. This decade so far has been about how to write tests fast and find bugs faster. Today a vast majority of the organizations focus on constant delivery and constant testing (Facebook does multiple code push in production every single day thanks to automated CI & CD and continuous testing). There has been an explosion of tools around project teams collaboration, automation, application performance monitoring and security testing.
The ‘need for speed‘, flexibility and agility have become the name of the game.
The Future of QA…
AI is coming fast at us and it will disrupt the way we live the world today. From self-driving cars to detecting life-threatening diseases in the very early stages, AI will soon start correcting code as the developers write it. AI comes up with many more variations of tests, much faster and much accurate. The future of QA will be about Automated Testing using Machine Learning and AI. The key objective will be to achieve “Quality at Speed’ and faster turnarounds.
The new QA techniques will be around ‘Model-based Testing’, predictive analysis, robotic and cognitive automation. A future is not too far where it will be possible to start analyzing log files (by predictive analysis and model building capabilities) and gaining a perspective on a piece of code prior to being ready to be tested. It will soon be possible to predict where the performance and security bottlenecks will arise as the code is being written. Any change in the application code the AI tools will be able to rewrite the scripts automatically without human intervention. Hence a lot of regression automation testing will be done by AI/ML-based tools and not by testers.
There are AI algorithms that can be written today in real-time that can analyze all DOM objects of a page and extract the objects and their properties. The AI can then decide the best location strategy to locate a particular element based on this analysis. Even if a developer amends the attribute of an element, the test still continues to run and that leads to more stable tests. As a result, the authoring and execution of automated tests will be much faster and more stable.
Why AI Makes Sense for Testing
The main problem with today’s QA lies in the sheer amount of data that testers need to handle in a limited period of time they usually have. Spreadsheets can’t handle it alone. Testing thousands of regression test cases (even if they are automated) that can take hours and sometimes days. Since clients have become furthermore demanding (and impatient), traditional testing methods often cannot keep up with them. This often takes traditional testing methods out of the equation and calls for a more pertinent approach. That is, the one powered by AI – artificial intelligence and predictive analytics.
What Challenges will AI Address?
Although AI is not going to be a panacea for all QA problems, it will certainly reduce drastically the time-consuming tasks that testers perform. AI will teach systems to learn source analyses and apply knowledge in the future. With AI tools testers will be able to enhance the accuracy of testing.
Just like automation tools of today, AI will replace the mundane tasks like visual reviews. The following are some areas where AI and ML will make a difference.
- AI will help replace a lot of manual testing and skills that are hard to find.
- AI can traverse a lot number of paths (that a QA team will find hard to execute) in seconds and learn it and over a period of time. If AI tools find anything suspicious, it will alert testers. AI can dramatically increase the code and test coverage, in most cases up to 90% coverage in a matter of weeks.
- AI/ML will help us learn and optimize our tests. AI will have the ability to learn from data in your existing QA systems to help discover problem areas in the product.
- AI/ML will be able to predict the probability of a build failing if and when the code changes are made to the application. A self-learning system will have the ability to make predictions to a large degree of accuracy and will be able to create new test scripts and update existing automation scripts.
- With AI, tests will be written faster and failures would be found fast helping project teams put a release in production faster and efficient. Hence AI will help scale the tests. With AI you could be able to write scripts 15-20 times faster than Selenium. Although scripting won’t go away the reliance on scripts for coverage will slowly fade away. Instead, AI-driven scripts will be used to prove specific business flows.
While AI will address these challenges, AI-driven QA will have its own challenges. Mining of data from ALM tools (test coverage, defect logs, test cases executions, production data and code coverage) will be an issue, not just the quantity but also the quality side of the house. The skills of resources will also be an issue and testers will have to bring new skills into the mix. Python and R will be the language of the future. Testers will have to upgrade their skills and learn these languages to tame the AI and ML tools. While AI will not completely replace manual or automation testers it will certainly change the way testing is performed. There are exciting times ahead for testers and for the word of testing. Watch out for this space…
Jyoti P Bhatt (JP)
Founder and CEO of ImpactQA
A graduate from NIT Allahabad – India, JP in his previous roles led large QA teams for clients like American Express, Toyota, JP Morgan, and Virgin Atlantic and FedEx.
Thanks for sharing a very informative piece regarding Ai and Future of Software Testing.