Are you ready for Intelligent Automation?
Applying artificial Intelligence (AI) and machine learning (ML) are real in business now. They are coming faster than we imagine. Therefore, companies like Apple, Tesla, Google, Amazon, Facebook, and others have started investing more into AI to solve different technological problems effectively and efficiently. This being the case how are we, as Testers, going to adapt to this change and embrace AI?
Evolution of Testing
Before moving forward to upcoming trends, it is worth to summarize how the testing practice has evolved over the last 4 decades.
In 1980’s most of the software developments followed waterfall methodology and they carried out manual testing to ensure quality of the product. No automation appeared on any phase and the methodology was identified as a waste of time as there were never ending loops between development and manual testing.
In the 1990’s, there were different development approaches being experimented like Scrum, XP, RAD (Rapid Application Development). Along with those methodologies, we had bulky automation tools which were unstable and had really primitive functionalities. In this first generation of automation, the focus was largely UI-based and centered on regression. But the savings were limited largely to regression and did not make much difference to the business.
From 2000, the era of open source frameworks began. Further to that XP, Scrum, Kanban became standards in the SDLC. In this next wave of automation included the functional side of business in the form of API / middleware automation, test data automation and more.
From 2010 onwards, automation in the test execution phase is further evolving with wide adoption of open source automation solutions, Agile and continuous testing, third party system integrations, DevOps, and CI/CD integrations.
Future is today
Then the future will be about Autonomous Testing using Machine Learning and AI. AI-led cognitive automation solutions (Intelligent Automation) combine the best of automation approaches with AI and help bringing superior results. These solutions mainly focus on the following.
· Reduce maintenance cost
· Eliminate test coverage overlaps
· Optimize efforts with more predictable testing
· Move from defect detection to defect prevention
For an example, even today, companies use machine learning algorithms for pattern analysis and processing huge volumes of data that result in better run-time decisions. Specially in software upgrades, machine learning algorithms can traverse the code to detect key changes in functionality and link them to the requirements to identify test cases. This prevents making poor decisions that could lead to failure and introduces the optimized testing.
The existing AI landscapes
The role of a software tester involves taking decisions to ensure the quality of a software by analyzing on going data. Leveraging AI for the same task can result in a much faster pace while managing a larger amount of data. Application of AI to testing enables the testers to go beyond the traditional mode of testing and adopt AI-enabled automation platforms instead.
AI is directly applicable to all aspects of testing including performance testing, exploratory testing, functional testing, regression testing, identifying and resolving test failures and even performing usability testing. Here are a few applications of AI in modern practices.
Testers can use AI for writing test cases by saving a considerable amount of time. Here, AI uses machine learning to write test cases for the application by crawling through it and collecting the data. The data set gathered is then used to train the ML models about the application and what its expected pattern should ideally be, so that with every new run it can compare to the known parameters and report a red flag in case any deviation from the original pattern is identified.
AI can be used in testing of UI Interfaces as well. Specifically, image recognition is being used to take UI testing to the next level. In that case, mainly dynamic UI controls can be recognized, irrespective of their shape and size.
One of key challenges in SLDC is maintenance. Recent surveys say that the changes of the application take up to 30% of testers work in updating automated scripts along with the applications changes. For example, simple changes in the application often result in test failures in Selenium because the testing scenarios focus on a singular path or selector, resulting in considerable rigidity. AI/ML testing have the capability to observe and learn about relationships between various documentation segments. This provides flexibility to adapt to changes made in real time and since the scripts can automatically adjust to any changes, the tests become more maintainable and reliable.
Pattern recognition capability of AI makes use of machine learning to find out visual bugs in the software to ensure the visual validation of the application. This is another important aspect in AI. It can easily ensure that the different components do not accidentally overlap with one another with a significantly faster pace. These bugs might be missed out by a human tester, but not from AI.
Currently, number of companies provide these services in the field of AI-powered testing.
- Applitools AI-powered visual testing and monitoring tool for mobile and web apps
- Mabl Test automation, regression testing tool for codeless testing of web apps
- AI AI-powered tool that uses ML for mobile app testing and documentation.
- Perfecto Cloud-based mobile testing tool using AI analytics for reporting
- Testim Machine Learning tool that authors, executes and maintains automated tests
Would human testers be replaced with AI Testing?
Even though AI and ML play a major role in the near future, it does not imply the extinction of the human testers. The above-mentioned tools as well as the ones that will be developed in the future would only work towards making the testers more efficient, agile and would save them countless hours of time they would otherwise have to spend manually testing the applications.
Just as automation in testing is nowhere close to replacing the manual tester, same applies to AI as well. If you are a software tester, you probably shouldn’t start panicking about the possible takeover of your job by artificial intelligence. What you should do instead, is keep yourself updated about the changing technology and keep automating.
References
https://bitbar.com/blog/how-to-leverage-ai-as-part-of-your-mobile-testing-efforts/
https://bigdata-madesimple.com/how-to-leverage-ai-in-software-testing/
https://techbeacon.com/app-dev-testing/how-ai-changing-test-automation-5-examples
https://towardsdatascience.com/quality-assurance-for-artificial-intelligence-d935fc6b238
https://www.infosys.com/insights/ai-automation/quality-assurance.html
https://www.testim.io/blog/ai-transforming-software-testing/
About the Author
Pavithra Gunawardhana works as a Associate Quality Assurance Lead at 99X Technology