Forrester defines AI as “A system, built through coding, business rules, and increasingly self-learning capabilities, that is able to supplement human cognition and activities and interacts with humans natural, but also understands the environment, solves human problems, and performs human tasks."
I think the key points in that definition are self-learning (it needs to have learning capabilities) and human cognition (which is achieved by understanding the environment and context).
Another interesting definition is that AI is “A field of study that gives computers the ability to learn without being explicitly programmed.”
One of the key points of AI is that you do not need to explicitly program algorithms. Algorithms are certainly used, but they’re not designed for an explicit solution of a distinct problem. The machines can learn, and they use data to do so.
Areas where AI is being used and advanced:
- Human emotions: Analysing facial features, reacting to human emotions, identifying criminals
- Natural language processing: Contextual understanding, generation, translation, transcription
- Visual and image processing: Visual emotions, activity recognition, object recognition
- Audio: Voice recognition, sound recognition, intonation
- Negotiation: Negotiate and understand negotiation processes, consider cultural factors
- Robotics: Robot learning, multi-robot systems, multi-legged walking, embodied cognition
- Probabilistic reasoning: Common sense knowledge, reasoning about actions, no monotonic reasoning
To meet challenges, I say “Test smarter, not harder”.
Have you ever read these lines by Terry Pratchett, The Long Earth, he says “Maybe the only significant difference between a really smart simulation and a human being was the noise they made when you punched them.”
I recently went to one of the automobile manufacture centre and it was insightful to understand how they use the data that a car generates along with machine learning and artificial intelligence to make intelligent decisions that lie behind connected cars. To me, software testing is similar to it. Testing is a critical but a very expensive activity, more so in the connected world. Exhaustive testing is impractical due to time and resource constraints.
Software and Test Engineers have always wanted to automate everything. We are about to turn over most test design and validation to Artificial Intelligence (AI). Hand-crafted testing is incredibly expensive in both time and money. Maintenance is the hidden cost in test automation.
An AI approach to checking for quality thrives on the very things that cause so much pain for hand-crafted testing. In combining machine learning (inputs and outputs) with analytics (behaviours) to facilitate decision making, you have the power to unlock the patterns in this data, drive automation and improve testing efficiencies.
Top areas of Quality Assurance (QA) teams would benefit from leveraging AI in their software testing:
- Behavioural patterns in application testing,
- Social media analytics,
- Defect analysis,
- Estimation and efficiency analysis,
- Non-functional analytics,
- Machine learning test programs to generate test data.
With the help of AI, we can train the system to go through the application log files and identify the hotspots. It will help to improve test planning and test coverage of the system
Certain tasks in our lives are more ready to be handled by AI than others. Something that is already automated for example. Something as frequently automated as testing surely has a place where AI can lend a hand. If you're in testing, don’t worry too much, I think we'll still need you for a good while longer.
I believe machine learning will play some part in testing soon but it's a patch that will always be tended to by a human. Why? Because software is a service we provide for humans to use, and nobody understands what humans want more than other humans.