Artificial intelligence (AI) has made tremendous strides over the past decade, when the rise of graphics processing units (GPUs) brought the technology from theoretical to practical. These days, AI is used for everything from detecting spam in your inbox to finding people in images to identifying and driving within lanes.
While AI cannot program itself (yet), the technology is being applied to assist software developers and testers in writing better code and finding bugs, faster. From intelligent code completion to flexible object recognition, AI is already making a difference in the life of modern developers and testers — and these tools are growing in scope and power.
Let's take a look at how AI could play a role in Agile development by writing, improving and maintaining tests.
How AI Impacts Software Testing
Artificial intelligence excels at quickly learning and analyzing data. While test planning and design may be left to humans, AI technologies are helping QA organizations take their testing to the next level. Engineers or manual testers are able to start automating their tests faster than ever before through automatic recognition of application controls, auto-healing of tests when object properties change or even smart visual testing. Testers are also able to prioritize their test executions more intelligently through smart recommendations based on past run history and analyze results faster with automated log file analysis.
Despite these benefits, there are some potential drawbacks to keep in mind when considering artificial intelligence. These aren't necessarily deal-breakers to using AI-based products, nor do they apply to every AI-based product, but they are important to keep in mind over time as AI takes on a growing role in the world of software development.
Some of the biggest concerns for AI-powered software development tools include:
- Large datasets required for training and accuracy. If you don't have large enough datasets, you could experience inaccurate data, or worse, false positives.
- Black boxes may arise over time if humans don't understand the complexity of AI, or worse, these could be over optimizations in disguise.
- Algorithmic bias has already become an issue with racist chatbots and unfair bail-setting algorithms, but these same biases could impact AI-powered team tools.
It's important to keep these potential drawbacks in mind when using AI-based tools. For example, you may want to avoid any black box AI-based tools until you can trust that their "black box" techniques actually deliver the results that you want.
TestComplete and AI
Image recognition is one of the most common use cases for artificial intelligence. In 2015, Microsoft and Google AI algorithms outperformed humans at identifying images — and they did so in a fraction of the time that it would take a human to even start to think about what they're seeing! These days, the advantage has become even more pronounced.
Not surprisingly, AI-based object recognition to interact with controls on the screen for UI automation has become one of the first use cases. These capabilities help QA automation engineers create robust user interface tests that can easily identify complex objects as well as adapt to changing components. They can recognize buttons, input fields or other on-screen objects without requiring a precise identifier.
TestComplete is an automated UI testing tool that includes AI-based object recognition. Using a hybrid of property-based and AI-powered visual recognition, the platform quickly and accurately finds dynamic UI elements required to complete end-to-end user interface tests, making them much less brittle and much more maintainable than ever before.
TestComplete also includes record and replay capabilities along with a customizable object repository that makes it easier than ever to create UI tests in minutes rather than hours. You can easily test desktop, web and mobile applications with the same tool and integrate them into your existing continuous integration and deployment pipeline.
In addition, TestComplete also uses aspects of Machine Learning in self-healing your tests when object properties change. This prevents your test from failing and gives you the opportunity to accept the fix after test execution, saving you time and effort reviewing failures.
Download your free trial today to try these features for yourself!
Other Applications for AI in Software
Object recognition may be the most obvious use case for AI-based testing tools, but there are many other possible tools on the horizon that could improve testing and the wider software development industry. These include both technical tools, such as code analyzers, and nontechnical tools, such as team communication and decision-making tools.
Some of the most promising ideas include:
- Backlog refinement technologies could automatically prioritize features based on user feedback obtained via analytics without the need for subjective analysis.
- Software estimation technologies could create a much more accurate user story and point estimates based on each developer's unique history and capabilities.
- Automated refactoring technologies could instantly improve code quality by refactoring existing code based on best practices for a given language or platform.
- Log analysis technologies could automatically recognize anomalous activity and create bug reports — or even automatically diagnose and fix the issue.
The Bottom Line
Artificial intelligence has made great strides over the past decade, but it still has a long way to go before it automates programming or testing. The good news is that AI-based tools can help assist developers and testers in ways that improve code quality, reduce bugs and simplify other parts of the development process — it's a win-win for everyone on the team.
In the future, it might not be uncommon to write code using intelligent autocomplete and have it automatically refactored before committing it. After a deploy, you might receive instant notifications if issues occur in production, including snippets from the relevant log files and references to the code that might be causing the issue.
If you're interested in using the latest AI-based tools for UI testing, sign up for a free trial of TestComplete to learn how to harness our object recognition technologies to simplify your UI testing processes and reduce test maintenance.