Tilbake til søkeresultatene

IKTPLUSS-IKT og digital innovasjon

EET: Evolutionary Enterprise Testing

Alternativ tittel: EET: Evolusjonær Enterprise Testing

Tildelt: kr 7,8 mill.

Programvare er noe som påvirker mesteparten av våre liv, eksempelvis gjennom banktjenester, helsetjenester, organisasjoner, transportsystemer, smart-telefoner, underholdningssystemer osv. Dessverre er utviklingen av programvare noe svært krevende, og, mesteparten av time, systems blir lansert med såkalte bugs, dvs. funksjonelle feil. Programvaretesting blir utført for å finne bugs, men er en kompleks og tung oppgave, spesielt hvis det blir gjort manuelt. Ofte vil programvaretesting kunne ta opp opptil halvparten av tiden og kostnadene ved å utvikle et system. I 2013 ble det estimert at programvaretesting koster 312 milliarder dollar i verdenssammenheng. Det er nødvendig med så mye testing fordi kostnadene ved at programvare feiler er altfor høy; i 2016 ble det registrert og dokumentert 548 programvarefeil som hadde konsekvenser for 4.4 milliarder mennesker og 1.1 billioner i verdier verden rundt. En av de mest kjente sakene innen programvarefeil er raketten Ariane 5 (estimert å ha en verdi på 500 millioner dollar) som eksploderte på grunn av en tallkonverteringsfeil i programvaren i styresystemet. Programvaretesting er en veldig kompleks prosess å automatisere, det vil si hvordan å generere effektive tester som kjøres automatisk. Altså er det et behov for å anvende det nyeste innen teknologi og forskning for å løse denne saken som påvirker milliarder av mennesker. Søk-baserte tilnærminger som bygger på evolusjonære utregningsalgoritmer er blant de mer lovende teknikkene for å håndtere denne typen problemstillinger. Dog er det et behov for å gjøre mer forskning for å gjøre dem mer effektive og skalerbare til den kompleksitet som er i moderne IT-systemer. I dette prosjektet har vi som mål å anvende og fremme nye teknikker, basert på evolusjonære utregningsalgoritmer, for å løse problemstillingen om hvordan automatisk generere systemnivå test-cases. Spesielt vil vi fokusere på store forretningskritiske systemer. Nåværende forskningsprototype har allerede blitt brukt til å automatisk finne flere feil i mange open source og industrielle systemer. Det kan lastes ned fra www.evomaster.org. Nye teknikker (f.eks. Basert på SQL-håndtering) er utviklet for å forbedre ytelsen ytterligere.

With 20 published articles, 12 of them at Level 2 in the Norwegian system, the project has provided significant contribution to the state-of-the-art in software testing research. The open-source tool EvoMaster (www.evomaster.org) developed in this project is already used by several companies worldwide, like large e-commerce ones such as Meituan in China, having direct impact on software engineering practice. Furthermore, several research groups outside Norway have been already using the open-source tools developed in this project for their research. The work done in this project was the essential foundation for bootstrapping new research directions, investigated in an ERC Consolidator grant, and used in European consortiums on AI research for software testing. Unfortunately, though, despite these major achievements, all efforts to continue to build on this success in Norway (ie, funding from NFR to keep working on this topic) have failed so far, limiting its further potential impact.

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 of 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, we aim at providing novel techniques based on evolutionary algorithms to solve the problem of automatically generating system-level test cases. In particular, we focus on enterprise systems.

Aktivitet:

IKTPLUSS-IKT og digital innovasjon