Finansieres av NFR, ledes av Andrea Arcuri
Nowadays, software affects most parts of life, like banking, healthcare, enterprises, transportation, smartphones, entertainment systems, etc. Unfortunately, writing software is hard, and most of the time systems are shipped with bugs, i.e. functional mistakes. Software testing is used to try to find those bugs, but it is a complex, tedious task, especially when done manually.
Often, software testing takes up to half of the development time and cost for a system. As of 2013, it is estimated that software testing is costing $312 billions worldwide. So much testing is needed because the cost of software failure is simply too large: in 2016, 548 recorded and documented software failures impacted 4.4 billion people and $1.1 trillion in assets worldwide. One the most famous cases of software failure is the explosion, in 1996, of the Arianne 5 rocket (estimated worth $500 millions) due to a numerical bug in its controller software. Automating software testing would not only be significantly cost saving, but would also prevent severe consequences in critical systems, e.g. people have died due to software malfunctions in medical equipment, like for example when eight patients died in 2000 due to radiation overdose caused by a software bug.
Software testing is a very complex task to automate, e.g., how to generate effective test cases automatically. As such, cutting-edge technology and research is needed to solve this very complex problem which impacts billions of people. Search-based approaches that rely on evolutionary computation algorithms are among the most promising techniques to tackle this type of hard problem. However, more research is needed to make them more effective and scalable to the complexity of large, modern software systems.
In this project, they aim at providing novel techniques based on evolutionary algorithms to solve the problem of automatically generating system-level test cases. In particular, they focus on enterprise systems.