Automatic test data generation for programming exercises with symbolic execution and Java PathFinder

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Helsinki University of Technology | Diplomityö
Checking the digitized thesis and permission for publishing
Instructions for the author

Date

Major/Subject

Mcode

T-106

Degree programme

Language

en

Pages

77+6

Series

Abstract

Ohjelmien automaattista verifiointia käytetään paitsi ohjelmistoteollisuudessa, myös tietotekniikan opetuksessa ja erityisesti ohjelmointitehtävien automaattisessa arvioinnissa. Testaus on automaattisessa arvioinnissa tyypillisimmin käytetty verifiointimenetelmä. Vaikka automaattisessa arvioinnissa käytetyt työkalut automatisoivatkin testauksen eri vaiheista testien suorittamisen ja testitulosten arvioinnin, testisyötteiden suunnittelu tehdään edelleen käsin. Tässä työssä tarkastellaan erästä testisyötteiden automaattiseen suunnitteluun soveltuvaa työkalua (Java PathFinder mallintarkistin) ja sen muokkaamista ohjelmointiharjoitusten erityistarpeisiin. Työssä keskitytään kahteen konkreettiseen ongelmaan: Kuinka testisyötteitä voidaan johtaa suoraan opiskelijoiden ohjelmista? Kuinka suunniteltuja testisyötteitä ja testitapauksia voidaan automaattisesti havainnollistaa opiskelijoille? Testien luonti suoraan opiskelijoiden ohjelmista on ongelmallista. Useimmat viittauksia sisältäviä tietorakenteita käsittelevistä testisyötteiden suunnittelujärjestelmistä käyttävät syötteenään työkalun tarpeisiin annotoitua versiota alkuperäisestä ohjelmasta tai erityisellä määrittelykielellä laadittua ohjelmaa. Java PathFinderin käyttö testisyötteiden suunnittelussa perustuu annotointiin. Työssä esitetään erilaisia lähestymistapoja, joiden avulla manuaalinen annotaatio voidaan välttää. Työssä esitelty testisyötteiden havainnollistamismenetelmä perustuu osittain instantioituihin tietorakenteisiin (oliograafeihin) ja symboliseen suoritukseen. Havainnollistamisen perusajatuksena on tarjota opiskelijoille symbolisia tietorakenteita siten, että kaikki yhdestä tietorakenteesta instantioidut testisyötteet johtavat identtisiin suorituspolkuihin testauksen lähtökohtana käytetyssä ohjelmassa.

Description

Supervisor

Malmi, Lauri

Thesis advisor

Korhonen, Lauri

Other note

Citation