The time has come to consider the pros and cons of employing AI and machine learning to test mobile apps.
But first, let’s take a step back. You’ve probably heard that no industry is safe from the far-reaching tentacles of AI.
It’s found an application in nearly every business, from manufacturing to food service to cleaning.
Is it any surprise that it also found a home in mobile application testing?
In this blog, we’ll examine how AI is changing the future of every part of app development, and how AI and Machine learning is being used to test mobile apps.
Artificial Intelligence: How did we get here?
If you’ve been paying attention, the world is in a heated debate over the efficacy, use cases, and moral dilemmas behind AI. For those of us in the software industry, AI isn’t new. Many of us have deployed a chatbot, or used predictive analytics to analyze large datasets. It seems like every software vendor has an AI offering of some sort.
With the release of GPT-3 and GPT-4, the word is effectively out. Everyday people can find a use-case for Artificial intelligence, whether its making a movie recommendation, writing a screen play, or doing complex mathematical calculations.
But it goes back even further than that.
A brief history of AI, according to AI
I asked AI the history of AI, here’s what it said:
- 1950: Alan Turing proposes a test to determine whether a machine can exhibit human-like intelligence.
- 1956: The term “artificial intelligence” is coined by John McCarthy at the Dartmouth Conference.
- 1961: The first industrial robot, the Unimate, is introduced.
- 1967: The General Problem Solver (GPS), a computer program capable of problem-solving and decision-making, is developed.
- 1970: Marvin Minsky and Seymour Papert publish “Perceptrons,” which shows the limitations of neural networks.
- 1974: The first AI program capable of understanding natural language, SHRDLU, is developed by Terry Winograd.
- 1981: The first autonomous mobile robot, Shakey, is developed by SRI International.
- 1985: Expert systems, which use a knowledge base and inference engine to make decisions, become popular in industry and finance.
- 1995: The first AI chess computer, Deep Blue, defeats world chess champion Garry Kasparov.
- 1997: IBM’s Deep Blue defeats Kasparov again, this time in a six-game match.
- 2002: Roomba, the first widely popular consumer robot, is introduced by iRobot.
- 2005: The DARPA Grand Challenge is held, a competition to develop autonomous vehicles that can navigate a course in the desert.
- 2009: IBM’s Watson defeats two human champions on the quiz show Jeopardy!
- 2012: Google’s deep learning algorithm, Google Brain, is introduced, paving the way for advancements in speech and image recognition.
- 2014: Facebook introduces DeepFace, a facial recognition system that can recognize faces with 97.35% accuracy.
- 2016: AlphaGo, an AI program developed by Google, defeats world champion Lee Sedol in the ancient Chinese game of Go.
- 2020: GPT-3, a language processing AI model developed by OpenAI, is introduced and becomes a breakthrough in natural language processing.
- 2021: DALL-E, an AI model developed by OpenAI that can generate images from textual descriptions, is introduced.
- 2023 (prediction): AI continues to advance, with new breakthroughs and advancements leading to even more exciting developments in the years to come.
As with anything ChatGPT creates, the timeline is good but not great. And the fact is, AI and machine learning are capable of much more than being good at board games:
- Autonomous vehicles are made possible by aggregating data from sensors and cameras, and applying complex machine learning algorithms.
- AI is being used by fire departments to detect wildfires early.
- Scientists and medical professionals are relying on AI to predict and diagnose rare and deadly disease.
And, really, that’s just scratching the surface.
A Developer’s Relationship with AI
It seems like most news about AI nowadays is negative.
The popular consensus is that AI is coming for your job. According to a February 2023 survey by ResumeBuilder.com, even the developers aren’t safe:
Based on our survey, currently, 49% of companies say they are using ChatGPT, 93% of whom say they plan to expand their use of the chatbot. Additionally, 30% of companies say they plan to start using it, 85% of whom say they will start doing so within the next 6 months.
The reality? We are seeing that AI is serving to augment developers by assisting with time consuming tasks. AI can generate code from text, analyze patterns in your codebase to create templates, or autocomplete syntax.
As DevOps.com puts it:
It’s hard to say how sophisticated the AI text-creation capabilities will be in the future as the technology ingests more and more examples of our online writing. But I see it having very limited capabilities for programming. If anything, it could end up being just another tool in the developer’s kit to handle tasks that don’t take the critical thinking skills software engineers bring to the table.
And according to TechTarget:
While ChatGPT might replace some aspects of coding, such as writing generic functions or boilerplate code, it won't supplant programmers altogether…That's because a programmer's job requires more than coding.
An augmented future
Machine learning tools can look at data from previous software development projects to identify patterns and make predictions about future development projects, helping developers estimate project timelines, identify potential bottlenecks, and optimize the development process.
Application creators leverage machine learning to analyze user behavior and patterns to create more efficient workflows. Even debugging is simplified by AI with algorithms that can analyze code to identify potential bugs and suggest fixes.
Tools like GitHub Copilot can suggest code or functions based on public code. Available as a Visual Studio Code Extension, it adapts to a user’s coding style, and works with various languages and frameworks. Users can select, accept or reject suggestions, and manually edit the code.
This and other AI-powered intelligent assistants can provide developers with real-time assistance and support during the development process.
This can include suggestions for code improvements, answers to common development questions, and guidance on best practices.
SaaS and AI
SaaS providers are including AI in their offerings. Although some of them have been around for a while, we are starting to see them being adopted as organizations collect more data and user behavior metrics. Consider the following:
- Salesforce Einstein uses AI-powered analytics to drive insights to their sales, marketing, and customer service teams. It can suggest next steps for sales teams, recommend relevant messaging for marketing, and reveal new opportunities.
- HubSpot’s “Conversational Marketing,” helps businesses automate customer service and sales processes by using machine learning to understand customer queries.
- “Smart Recommendations” by MailChimp (that is, Intuit) analyzes customer data to provide personalized recommendations on how to improve their email marketing campaigns.
- Adobe’s AI-powered “Sensei” improves image and video quality by automatically adjusting colors and brightness.
- Grammarly analyzes spelling and grammar errors in the context of complex writing.
Artificial intelligence, machine learning, and testing
AI has been radically transforming software testing as well. ChatGPT can be used to generate test case ideas, analyze test case logic, and even write code snippets in the language of your choice.
The efficacy of chatGPT for this purpose has been widely criticized as inaccurate and, in inexperienced hands, dangerous:
We do not doubt its benefits to the software testing community, and at the same time, we are aware of the dangers of blindly accepting every output by the software. At best, it is a good heuristic to use, and by nature – heuristics are fallible and not rules. As the output of ChatGPT is heavily reliant on the prompts, it is largely dependent on the skill of the software tester providing the prompts.
I recently wrote about ChatGPT’s ability to write test automation here, where I asked:
Can ChatpGPT assist in the composition of test automation? The answer is quite simple: Yes, but not very well—right now. Currently, ChatGPT misses the mark in some big ways. It’s terrible at making assumptions because it has no real insight into your goals. For this reason, it can be the kiss of death for junior developers or testers who can’t identify glaring inaccuracies.
But in the world of AI, ChatGPT is a generalist. Testing SaaS providers have been increasingly leveraging AI in their offerings.
Functions like static code analysis, automatic mocking, code maintenance, and even autocomplete are all offered in test automation platforms.
These tools aid in generating test data, optimizing and analyzing coverage, and managing tests. Machine learning tools have simplified test creation, bridged gaps in testing coverage, and can even update tests to meet new requirements.
The next revolution
Nowadays it seems like we’re always in the midst of a revolution. We’ve been talking about the no-code revolution for a while, specifically about how organizations are building their entire development stack with no-code tools.
At Sofy, we aim to bring the power of mobile app testing to everyone, not just developers. Writing complete test cases doesn’t have to be complex. With Sofy, you can create end-to-end test cases without the use of code:
- Use the real device cloud to acquire and test on real devices
- Run synchronous tests on multiple devices
- Integrate directly with your favorite CI/CD tool
Now, we’re leveraging AI and Machine learning to test mobile apps by helping write intelligent test automation. Instead of binding UI tests to elements, Sofy uses machine learning and natural language processing to understand the intent behind each test case. It’s a natural fit.
Sofy can also analyze your current code-base, automatically recommend updates to existing test cases, and identify code coverage issues. You can acquire a real device from our hosted device cloud and start recording a test case and automate it across dozens of other devices.
What’s on the horizon for AI and mobile app testing? The answer is combining the best of both: Start experiencing the many benefits of SofySense, Sofy’s ChatGPT-powered personal built directly into the Sofy platform assistant today.
Disclaimer: The views and opinions expressed above are those of the contributor and do not necessarily represent or reflect the official beliefs or positions of Sofy.