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

DropShadow: Instrumenting Go with Contracts and Automatic Property-Based Test Generation of Hyperproperties

Author(s)

Term

4. term

Education

Publication year

2024

Submitted on

2024-05-22

Pages

60 pages

Abstract

This report presents an exploration and evaluation of DropShadow: a testing framework, leveraging contract-driven testing which automatically generates and executes property-based tests for the Go programming language. The tool integrates contracts written by the developer directly into Go source code and allows for the automatic generation of tests, checking both trace- and hyperproperties; the latter achieved through sequential self-composition. This integration aims to facilitate property-based testing, reducing the required manual work for writing tests, as well as, introduce more comprehensive automated checks for program correctness against specified behaviours. Moreover, this contractual integration ensures not only individual functions comply with their specifications, but also functions calling or called by said functions, hence offering a cascading assurance of reliability throughout the program. Our evaluation shows a potential practical application of the tool in different settings through the use of various constructs with the added benefit of mitigating contractual explosion.

Keywords

Documents


Colophon: This page is part of the AAU Student Projects portal, which is run by Aalborg University. Here, you can find and download publicly available bachelor's theses and master's projects from across the university dating from 2008 onwards. Student projects from before 2008 are available in printed form at Aalborg University Library.

If you have any questions about AAU Student Projects or the research registration, dissemination and analysis at Aalborg University, please feel free to contact the VBN team. You can also find more information in the AAU Student Projects FAQs.