Bachelor and Master Theses

To apply for conducting this thesis, please contact the thesis supervisor(s).
Title: Rich Testing of Software
Subject: Computer science, Software engineering
Level: Basic, Advanced
Description:

Rich Testing of Software

There is possibility to do thesis work within the Rich Testing of Software (RITES) project. Currently the main researcher at MDU is Peter Backeman, in collaboration with two industrial partners. 

By applying formal methods, RITES introduces a new approach towards software testing. Tests are evaluated via analysis, instead of traditional execution, allowing for introduction of more powerful operators as well as more efficient testing. The goal of RITES is to introduce this methodology and investigate what is required for effective testing when it comes to integration into existing environments, maximum run times, etc.

The project is currently half-way and combines formal methods (e.g., bounded model checking) with software testing. It is run in collaboration with two industrial partners. There is a possibility to shape the thesis topic, but here are some ideas which we are interested in exploring:

Rich testing of abstract data types

How can abstract data types (e.g., lists, trees) be used in rich testing. For example, how can we describe a collection of trees (e.g., all trees of depth 3) and check how a function behaves on it.

Extending and evaluating rich testing on larger projects

Currently, rich testing is applied on small examples, but it is planned to extend the capability of the framework to apply it on real use cases and to evaluate the performance in comparison to traditional testing.

Proof-based coverage / Semantic slicing

There is ongoing research in how to use rich testing to define a proof-based coverage metric for source code. This can also be utilized to define software slices, i.e., computing what parts of a program are relevant for a particular statement in the program (e.g., all parts of the program which affects value of variable “a” at line 80).

  

Possible learning outcomes (depending on topic):

 

 

 

 

  • Working with and developing research prototype 
  • Bringing research from academia to industrial use case
  • Deeper understanding and a new perspective on testing

 

There is plenty of room for adjustment, and if something of this sounds interesting, please do not hesitate to contact Peter, who can provide more context and background and help you to see if there is some part of this which you could work with.

 

Start date:
End date:
Prerequisites:
  • Experience with C/C++ and Python
  • Software testing
  • Some knowledge of logic is helpful
IDT supervisors: Peter Backeman
Examiner:
Comments:
Company contact: