Automated Unit Testing - Developing a prototype for .NET
Authors
Bach-Sørensen, Mads ; Malm, Mikael
Term
4. term
Education
Publication year
2008
Abstract
Der findes mange værktøjer til automatisk enhedstest på Java-platformen, men næsten ingen for .NET. Dette projekt havde som mål at udvikle en prototype og kortlægge, hvad der kræves for at lave en komplet løsning til automatiseret enhedstest på .NET. Vi brugte en iterativ tilgang og prioriterede en tidlig, kørende prototype med fokus både på testalgoritmer (back-end) og integration i et IDE (front-end). Vi undersøgte også at kombinere tilfældig testning (hurtigt afprøve mange input) og symbolsk eksekvering (analysere kodeveje ved at behandle input som symboler) som teknik til at generere tests. En fuldt fungerende prototype blev ikke opnået, men vi identificerede vigtige forhold og tekniske problemer: den praktiske værdi af tilfældig testning som en hurtig, enkel baseline; udfordringerne ved at bygge en Visual Studio-udvidelse; og, vigtigst, behovet for et solidt analyse-/instrumenteringsbibliotek til CIL (.NETs mellemkode), hvis symbolsk eksekvering skal bruges til testgenerering. Disse resultater skitserer de centrale byggeklodser og forhindringer, som fremtidigt arbejde må adressere for at realisere automatisk testgenerering på .NET.
Many tools exist for automated unit testing on the Java platform, but very few for .NET. This project set out to build a prototype and to map what is needed to deliver a complete solution for automated unit testing on .NET. We used an iterative approach and aimed for an early working prototype, focusing on both the testing algorithms (back end) and integration with an IDE (front end). We also explored combining random testing (quickly trying many inputs) and symbolic execution (analyzing code paths by treating inputs as symbols) for test generation. A fully functional prototype was not achieved, but we identified important aspects and technical challenges: the practical value of random testing as a fast, simple baseline; the difficulty of developing a Visual Studio extension; and, most importantly, the need for a robust analysis/instrumentation library for CIL (the .NET intermediate bytecode) if symbolic execution is to be used for test generation. These findings outline the key building blocks and obstacles that future work must address to realize automated test generation on .NET.
[This abstract was generated with the help of AI]
Documents
