Automatic testing set to streamline software development process
Before a software application can be marketed, it must first be fully validated – a process that involves extensive and costly testing. While there are plenty of tools and methods for automatically conducting unit- and integration-level testing, system testing remains a largely manual affair. As a result, system testing is an expensive bottleneck in the software development process. To help, the EU-funded AST project, whose work was supported by the European Research Council, developed a pre-commercial tool that can efficiently and automatically generate test cases for software applications. “Currently, a software engineer must spend a significant amount of time checking the correctness of the applications they develop and maintain,” says Leonardo Mariani, a professor at the University of Milano-Bicocca and AST project coordinator. “By quickly validating several scenarios, automatic test cases will ensure that these engineers can focus their time on the more subtle cases that must be checked manually.”
An automatic testing solution
By combining a number of different techniques, including artificial intelligence, the project successfully created an automatic testing solution. “Our automatic test generation solution uses reinforcement learning to incrementally learn how the software being tested behaves,” explains Mariani. “Based on what it learns, it gradually improves the effectiveness of the generated tests.” According to Mariani, when a solution is run parallel across multiple machines, the learning process becomes even faster. “We also addressed the problem of automatically obtaining meaningful input values, such as the name of a real address to be entered into an application,” he adds. “To do this, we created a solution that reuses the existing data repositories, such as testing and production databases, that are normally available within an organisation.”
A good start for test automation
When the COVID-19 pandemic threw a wrench into the project’s work, the team quickly pivoted and found a way to remotely access the servers and software. “Working remotely and running only virtual meetings is not the same as physically working together,” notes Mariani. “But we still managed to achieve what we set out to do: create technology solutions that can efficiently generate test cases for complex web applications.” Although the AST tool represents a good start for test automation, there is still more work to be done. As such, the project team is currently scaling the tool so it can address ever more complex and larger software systems. Researchers are also working to ensure that the tool can recognise the increasing number of problems that could affect software during testing. “We extended our knowledge base in the area of test automation and released tools that can be used both to advance research in web testing and to study the industrial application of automatic test case generation,” concludes Mariani.
Keywords
AST, software, software development, software applications, software engineer, system testing, artificial intelligence, test automation