Change-Based Software Engineering: Using Reified Changes for Test Selection and Refactoring Reconstruction

Datum: 14 december 2015

Locatie: Campus Middelheim, G0.06 - Middelheimlaan 1 - 2020 Antwerpen

Tijdstip: 13.30 uur

Organisatie / co-organisatie: Departement Wiskunde-Informatica

Promovendus: Quinten Soetens

Promotor: Serge Demeyer

Korte beschrijving: Doctoraatsverdediging Quinten Soetens - Departement Wiskunde-Informatica



Abstract

Software is overal. Je vindt het niet alleen terug op je computer of op je smartphone, maar ook in je televisie, je wasmachine, je auto… Bovendien verandert software voortdurend. Een systeem moet evolueren om niet ouderwets te worden, waardoor gebruikers naar alternatieven zullen grijpen. Grote software giganten zoals Amazon, Google en Facebook gaan daarin zelfs zo ver dat ze verschillende keren per dag een aangepaste versie van hun systeem uitrollen om de nieuwe of verbeterde functionaliteit zo snel mogelijk bij de (web)gebruiker te brengen.

Aangezien een software systeem zo vaak wordt aangepast beschouwt Quinten Soetens in zijn doctoraatsthesis “verandering” als een centrale entiteit in de software ontwikkeling. Hij houdt elke verandering bij die een software ontwikkelaar maakt en bouwt zo een model van het software systeem en van de evolutie van het systeem. Door te focussen op de verschillen tussen opeenvolgende versies kan hij sneller en efficiënter de software analyseren dan wanneer de analyse wordt losgelaten op een volledig systeem.

Eén voorbeeld is het testen van software. Software moet steeds uitvoerig getest worden, liefst zelfs zo snel mogelijk om fouten minder kans te geven om tot bij de eindgebruiker te geraken. Een volledig software systeem testen is echter een enorm rekenintensief proces.

Quinten Soetens onderzocht een manier om te berekenen welke testen relevant zijn voor een selectie van veranderingen. Op die manier kan een ontwikkelaar gerichter testen en voert hij enkel de testen uit die nodig zijn voor de meest recente veranderingen en niet de volledige batterij van testen.

Dit heeft als resultaat dat een ontwikkelaar sneller op de hoogte is van mogelijke fouten die hij heeft gemaakt en ze dus ook sneller kan oplossen. Bijgevolg kunnen we sneller betere software ontwikkelen met minder fouten.