Artificial Intelligence is an upcoming trend in software engineering, and software testing in particular.
In this article, I summarise recent developments on research in this area.
The role of unit testing in AI for software engineering
Available data
The success of AI models
is moslty dependent on the data that can be used to train it. Recently, there has been some effort to obtain such data by crawling and annotating publicly available github repositories and make the crawling results available to the common public. The biggest effort in doing so was performed by the CrossMiner project funded by the European Union crossminer.org. For more abstract representations of “Mining Software Engineering Data from GitHub” These data collections can pave the way to training AI algorithms that can be used out of the box for new software projects, minimizing the configuration effort (and thus knowledge requried to use the algorithms). With an increased availability of data, the effort to find new solutions also becomes easier, making it possible for researchers to create AI algorithms that tackle a wide range of challenges effectively. By relying on the same set of data, these algorithms also become comparable, making it easy to decide which solution performs better for a particular problem, even if individual algorithms are developed byPrioritizing Test Cases
One promising area of software testing in which AI-based techniques (more specifically,
meta-heuristic algorithms such as genetic search) have shown promising results
What do you thinkg of these trends? What do you think of AI for unit testing in general? Let me know in the comments section below!
Daniel Lehner