Artificial Intelligence (AI) and machine learning (ML) are advancing at a rapid pace. Companies like Apple, Tesla, Google, Amazon, Facebook and others have started investing more into AI to solve different technological problems in the areas of healthcare, autonomous cars, search engines, predictive modeling and much more. Applying AI is real. It’s coming fast. It’s going to affect every business, no matter how big or small. This being the case how are we as Testers going to adapt to this change and embrace AI? Here is the summary of different things you need to know about using AI in software testing.
Let’s summarize how the testing practice has evolved over the last 4 decades
- In the 1980’s majority of software development was waterfall and testing was manual
- In the 1990’s, we had bulky automation tools which were super expensive, unstable and had really primitive functionality. During the same time, there were different development approaches being experimented like Scrum, XP, RAD (Rapid Application Development)
- From 2000, the era of open source frameworks began
- People wanted to share their knowledge with the community
- Started encouraging innovation and asking community of like minded people to help out in improving testing
- Agile became a big thing, XP, Scrum, Kanban became a standard process in the SDLC
- There were need for faster release cycles as people wanted more software features delivered faster
- In the 2010’s, it was all about scale, how to write tests fast and find bugs faster
- Crowdtesting started
- Encouraging other people to give feedback on the application. Free and Paid services
- Cloud testing started
- People started realizing they need more
- Server space
- Faster processing
- Started to realize the problem of maintenance. How expensive it is to buy hardware and software for maintaining your tests
- Then we have
- DevOps
- Continuous Testing
- CI/CD integration
- People started realizing they need more
- Crowdtesting started
- I believe the Future will be about Autonomous Testing using Machine Learning and AI
Basics of AI
Let’s start by de-mystifying some of the terminologies related to AI
- Artificial Intelligence (AI) is an area of computer science that emphasizes the creation of intelligent machines that work and react like humans
- Machine Learning (ML) evolved from the study of pattern recognition and computational learning theory (studying design and analysis of ML algorithms) in AI. It is a field of study that gives computers ability to learn without being explicitly programmed
- Deep Learning(DL) is one of the many approaches to ML. Other approaches include decision tree learning, inductive logic programming, clustering and Bayesian networks. It is based on neural networks in the human body. Each neuron keeps learning and interconnects with other neurons to perform different actions based on different responses
There are 3 types of widely used ML algorithms
- Supervised Learning – We are giving the right training data (input/output combinations) for the algorithm to learn
- Examples
- Give bunch of e-mails and identify spam e-mails
- Extracting text from audio
- Fill out a loan application and find the probability of the user repaying the loan
- How to make user click on ads by learning their behavior
- Recommendation engines on Amazon, Netflix where customer is recommended products and movies
- Amazon uses AI for logistics
- Car Optimization
- Autonomous cars
- Examples
- Un-supervised learning – We give a bunch of data and see what we can find
- Examples
- Taking a single image and creating a 3D model
- Market Segmentation
- Examples
- Reinforced learning – Based on concept of reward function. Rewarding Good/Bad behavior and making the algorithm learn from it. E.g. Training a Dog
Real life AI applications to visually see how it works
- Quick Draw from Google
- Weka is an open source project where they are using ML algorithms for data mining
What challenges can AI solve?
Let’s discuss the challenges the industry faced while transitioning to agile and what’s still remains a challenge:
How can we use AI to solve testing problems?
There are many companies taking multiple approaches to solve different problems related to software testing and automation. Testim.io is one such company
Testim.io uses Dynamic Locators, The Artificial Intelligence (AI) underneath the platform in real time, analyzes all the DOM objects of a page and extracts the objects and its properties. Finally, the AI decides the best location strategy to locate a particular element based on this analysis. Due to this, even if a developer changes the attribute of an element, the test still continues to run and this leads to more stable tests. As a result, the authoring and execution of automated tests are much faster and more stable.
Here is the detailed insight of how our AI works – https://www.softwaretestinghelp.com/testim-io-tool-tutorial/