Safer Refactorings with Assertions

Dette er en masteroppgave i Programutviklingsteori fra 2016. Oppgaven ble gjort av Anna Maria Eilertsen veiledet av Volker Stolz fra HiB og Anya Bagge fra UiB. Oppgaven ble presentert på SATToSE i Bergen 2016 og en artikkel basert på oppgaven blir publisert på ISoLA 2016.


Refactorings often require that non-trivial semantic correctness conditions are met. IDEs such as Eclipse’s Java Development Tools rely on simpler, static pre- condition checks for refactorings. This leads to the phenomenon that a seemingly innocuous refactoring can change the behavior of the program. In this thesis we demonstrate our technique of introducing runtime checks of two particular refactorings for the Java programming language: Extract And Move Method, and Extract Local Variable. These checks can, in combination with unit tests, detect changed behavior and identify the refactoring step that introduced it.

This thesis was produced by Anna Maria Eilertsen on the joint master degree PUT between University of Bergen (UiB) and Høyskolen i Bergen (HiB). She was supervised by Volker Stolz from HiB and Anya Bagge from UiB. The thesis was presented at SATToSE in Bergen 2016 and a paper based on this work will be published at ISoLA 2016.

See below for:

Full masterthesis

Presentation slides

Source code

Full paper (coming)