Redesigning the Spoofax Testing Language

Master Thesis (2020)
Author(s)

V.P. Lanting (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Contributor(s)

E Visser – Mentor (TU Delft - Programming Languages)

Gabriël Konat – Mentor (TU Delft - Programming Languages)

Jesper Cockx – Graduation committee member (TU Delft - Programming Languages)

Andy Zaidman – Graduation committee member (TU Delft - Software Engineering)

Faculty
Electrical Engineering, Mathematics and Computer Science
Copyright
© 2020 Volker Lanting
More Info
expand_more
Publication Year
2020
Language
English
Copyright
© 2020 Volker Lanting
Graduation Date
29-01-2020
Awarding Institution
Delft University of Technology
Programme
['Computer Science']
Faculty
Electrical Engineering, Mathematics and Computer Science
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

The Spoofax Testing Language (SPT) is the existing solution for testing in the Spoofax language workbench. It allows developers of domain specific languages to write their test cases declaratively. As it aims to be implementation agnostic, developers don't need to concern themselves with the details of the artifacts generated by Spoofax, and can write their tests before implementing their language. However, the previous implementation has become slow and unusable for larger test suites and can not be executed programatically. This means it can't be used for continuous integration and automated regression testing.
As Spoofax was redesigned to become more robust and platform independent, the previous SPT is no longer compatible. We took this opportunity to redesign SPT. In this thesis we will discuss the benefits of a testing approach like SPT, how far along it is on the path of testing any language, and what is required to make it usable by modern day developers. We will analyze the problems that SPT had to tackle, how it solved them, and which problems still remain.
Finally, we present and evaluate our new design and implementation to solve some of these remaining problems. We created a platform independent, real-time performant, easily extendable architecture that allows SPT to be used for automated tasks such as continuous integration and the automated grading of students' domain specific languages.

Files

Report.pdf
(pdf | 0.885 Mb)
License info not available