Lately, I have read several contradictory articles on Artificial Intelligence (AI). Some have trepidation that machines will replace human, others predict that technology is here to work for us and not against us. Both frontiers have their own valid arguments, fostered by numbers and statistics, some which are difficult to negate.
Having spent over a decade in software testing, its future in the AI era truly interests me. I am an optimist and forward-looking, however, at times, it troubles me to envisage that AI may replace software testing soon. Statistics say that approx 30-40 % of all jobs opportunities will be engaged by machines within the next two decades.
For as long as software’s existence, there has been software testing. Software testing is an imperative process that ensures customer satisfaction in the application. It is fundamentally about inputs and expected outputs that blend huge amount of human and machine-generated data. So, testing is a ready ground for AI. Test bots run automated tasks (scripts) over the Internet and perform tasks that are repetitive. Test bots (Chat Bots and Voice Bots) also interpret, mimic and respond to the written and spoken language. AI bots are not hardcoded and can discover new features in the application.
AI bots can be of immense help in certain areas of software testing:
■ Performance testing: App teams today focus on improved app performance. However, you cannot improve unless you measure. One of the best solutions today to measure performance depends on SDKs, and need teams to look at raw data and charts to decipher what is slow. Worse, performance regressions are often caught weeks after the offending code change. The solution can be found in automated test bots that can test the performance of every action in an app, and hook regressions within minutes of each new build. Instead of looking at charts, the bots can understand pictures of the slowest part of your app and show them to the app team.
■ Agile testing: In agile, lean and continuous build environments, manual testing cannot be fast, and today’s test automation is expensive, slow, and often breaks when you need it most. Bots can generate hundred times the test coverage of most test teams. Even better, with a little bit of AI amalgamated, the bots can automatically discover new features and test new behaviors. If the change in the app is too complex for a bot to know, it is a bug; it simply sends a before and after picture to a human to make the bug-or-feature decision.
I believe it’s only a matter of time before AI and robotics start making an impact on the software testing world. Companies such as Appdiff, ReTest and Testim are early adaptors of this technology and are transforming the methods and means of software testing. AI in testing can be helpful in generating and optimizing test cases, prioritizing testing and automation, UI testing and in analyzing tasks. Moreover, it also gives instant feedback. On the downside, there is fear of job losses and lack of intervention due to judgment.
I also believe that AI will conquer the writing software area before conquering testing. As an experienced tester, one can control the test bots and make the most of the AI technology.
As a functional tester, it takes much effort to write the test cases that cover all the possible scenarios. AI will make this job easy for the manual tester.
Testing is going to get much harder once we introduce Machine Learning (ML) into applications because nobody knows what the application is supposed to do in all cases. So, I can infer that testing job is about to change dramatically.
Every tester needs to think: The machines are learning, are you?
Every tester needs to follow the “Test smarter, not harder” principle.