MSc Projects

GF-MSc-1: A Pastebin for Unit Testing

Pastebin is a popular web application that allows developers to store
and share pieces of source code for a certain period of time. Newer
tools like ideone even allow code to be compiled and run. To take
this a step further, the aim of this project is to create a
pastebin-like web application that uses the EvoSuite tool to
automatically generate unit tests for the pasted Java code.
Users can paste Java classes, and receive JUnit tests they can share.

Skills required:

  • Good programming skills (Java, Python, or any other)

Initial reading and useful links:

GF-MSc-2: Continuous Integration with Unit Test Generation

Continuous Integration (CI) tools (e.g. Jenkins or Hudson) perform
automated build and test of software projects, such that one can
detect as early as possible if a code change has broken the software,
to provide nightly builds, etc. The aim of this project is to
integrate the automated unit test generation tool EvoSuite into the
Jenkins CI, such that after a nightly build one receives an
automatically generated set of unit tests and a detailed report on the faults
they reveal.

Skills required:

  • Good programming skills (Java)

Initial reading and useful links:

GF-MSc-3: BitBucket/GitHub/Google Code Project Crawler

A wealth of information for software engineering research is contained in open source repositories such as BitBucket, GitHub, or Google Code. The aim of this project is to produce a crawler that
automatically extracts meta-information about all projects available
on such a repository, and then automatically attempts to check out,
build, and test all Java projects identified.

Skills required:

  • Java, Python (or any other)

Initial reading and useful links:

GF-MSc-4: Maven Mining

Apache Maven is a build automation tool used for Java projects, and it is based on vast repositories of Java artefacts including source code and compiled bytecode. The aim of this project is to mine these repositories such that that any project in the database can be downloaded together with its dependencies, in order to apply dynamic analysis tools such as the EvoSuite unit test generator on every single project in the repository.

Skills required:

  • Good programming skills (Java)

Initial reading and useful links: