Abstract
Begrebet software testing dækker over at køre en software applikation på en mængde af inputs, og beslutte om applikationen opfører sig som forventet på disse inputs. Denne afhandling fokuserer på teknikker der har til formål at teste event-drevne og dynamisk typede applikationer. Dette er en vigtig klasse af software, som inkluderer mobil- og webapplikationer, som kan være udfordrende at teste grundigt. Når udviklere skal teste deres applikationer, står de over for en række af udfordringer. I særdeleshed skal de: (i) generere en mængde af inputs til deres applikation samt udarbejde orakler, der beskriver applikationens forventede opførsel, (ii) reparere deres applikation når en test fejler, og (iii) beslutte hvornår deres betræbelser på at teste deres applikation er tilstrækkelige.
Målet med denne afhandling er at designe nye teknikker, der kan hjælpe udviklere med at adressere ovenstående udfordringer. Afhandlingen identificerer muligheder for at forbedre eksisterende løsninger, og foreslår nye teknikker, der adresserer hver af de ovenstående udfordringer. Vi præsenterer en ny metodologi, som kan anvendes til at forbedre eksisterende Android test suiter, som er blevet skrevet manuelt, i forhold til deres evne til at finde fejl. I relation til JavaScript webapplikationer præsenterer vi praktiske værktøjer til at finde AJAX- og initialiseringsræs, samt en teknik der kan forhindre fejl, der opstår på grund af eventræs, ved at restringere nondeterminismen. Desuden præsenterer vi et testfuldstændighedsbegreb for dynamiske sprog samt en hybrid statisk/dynamisk analyse, der approksimerer testfuldstændighed, ligesom vi demonstrerer nyttigheden af testfuldstændighedsfakta. For at demonstrere brugbarheden af de foreslåede teknikker er de blevet implementeret i offentligt tilgængelige prototyper, som er blevet evalueret på softwareapplikationer fra den virkelige verden.
Målet med denne afhandling er at designe nye teknikker, der kan hjælpe udviklere med at adressere ovenstående udfordringer. Afhandlingen identificerer muligheder for at forbedre eksisterende løsninger, og foreslår nye teknikker, der adresserer hver af de ovenstående udfordringer. Vi præsenterer en ny metodologi, som kan anvendes til at forbedre eksisterende Android test suiter, som er blevet skrevet manuelt, i forhold til deres evne til at finde fejl. I relation til JavaScript webapplikationer præsenterer vi praktiske værktøjer til at finde AJAX- og initialiseringsræs, samt en teknik der kan forhindre fejl, der opstår på grund af eventræs, ved at restringere nondeterminismen. Desuden præsenterer vi et testfuldstændighedsbegreb for dynamiske sprog samt en hybrid statisk/dynamisk analyse, der approksimerer testfuldstændighed, ligesom vi demonstrerer nyttigheden af testfuldstændighedsfakta. For at demonstrere brugbarheden af de foreslåede teknikker er de blevet implementeret i offentligt tilgængelige prototyper, som er blevet evalueret på softwareapplikationer fra den virkelige verden.
Bidragets oversatte titel | Automatiserede Testingteknikker for Event-Drevne og Dynamisk Typede Softwareapplikationer |
---|---|
Originalsprog | Engelsk |
Forlag | Århus Universitet |
---|---|
Antal sider | 220 |
Status | Udgivet - 23 maj 2018 |