AAU Student Projects - visit Aalborg University's student projects portal
A master's thesis from Aalborg University
Book cover


Automated Unit Testing: Developing a prototype for .NET

Authors

;

Term

4. term

Education

Publication year

2008

Abstract

Automatiseret enhedstest handler om at få værktøjer til automatisk at generere og køre tests af små dele af et program. Der findes mange løsninger til Java, men kun få til .NET. Dette projekt havde som mål at bygge en prototype og beskrive, hvad der skal til for at lave en fuld løsning til automatiseret enhedstest på .NET. Vi brugte en iterativ tilgang for hurtigt at få noget kørende, og prioriterede både testgenereringsalgoritmer (back-end) og integration med et udviklingsmiljø (front-end). Som testgenereringsteknik undersøgte vi en kombination af tilfældig testning (random inputs) og symbolsk eksekvering (afprøvning af kodebaner med symbolske input). Målet om en fuldt funktionel prototype blev ikke opfyldt, men arbejdet pegede på centrale aspekter og tekniske udfordringer: tilfældig testning er hurtig og let at implementere; det er vanskeligt at bygge et plug-in til Visual Studio; og effektiv brug af symbolsk eksekvering på .NET kræver et ordentligt bibliotek til analyse og instrumentering af CIL-kode.

Automated unit testing uses tools to automatically generate and run tests for small parts of a program. There is extensive work for Java, but much less for .NET. This project aimed to build a prototype and document what it would take to deliver a complete automated unit testing solution for .NET. We used an iterative approach to get something running early, prioritizing both test-generation algorithms (back end) and integration with an IDE (front end). As a test generation technique, we explored combining random testing (random inputs) with symbolic execution (exploring code paths using symbolic inputs). A fully functional prototype was not achieved, but the work identified key aspects and technical challenges: random testing is fast and easy to implement; building a Visual Studio plug-in is difficult; and effective symbolic execution on .NET requires a proper library for analyzing and instrumenting CIL code.

[This abstract was generated with the help of AI]