Master Thesis

We offer several master thesis projects to the students following one of the master’s programs at the University of Namur. Those projects can cover one or more topics related to the research done at the SNAIL team or explore new directions. It is also possible to propose your own project related to our ongoing research. If you think you have a great idea, do not hesitate to contact us, but make sure you have clearly identified the research aspect and novelty of your proposal.

The project can be conducted at the computer science faculty, in collaboration with the members of the team, at another Belgian organization (industry, research center, university, …) with which we have an ongoing collaboration, or abroad at another university in our network.

If you study at a different university and you would like to do a research internship in the context of one of our projects, you should ask your own university supervisor to contact us. We have limited places available but are always interested in new research opportunities.

Master Thesis Projects

Current and Past Projects

.js-id-Ongoing

AI-based Security Testing

The thesis will explore how artificial intelligence (Large Language Models, Genetic Programming, …) can be leveraged to enhance security testing. The internship is done at the Serval Team at the Security and Trust (SnT) research center of the University of Luxembourg.

Design of an ergonomic nomadic code review environment

While the workstation (with screen, keyboard and mouse as peripherals) has long been the most common installation for computer-intensive employees, the arrival of powerful, versatile tablets and telephones in recent years has overturned this work organization in many professions.

Optimized development interface to reduce the developer’s cognitive load during debugging

While workstations (including monitors, keyboard and mouse as peripherals) have long been the most common installation for computer-intensive employees, the arrival of powerful, versatile tablets and telephones has been shaking up this organization of work in many professions for some years now.

Socio-technical Debt

This thesis seeks to explore different aspects of socio-technical debt in the development cycle.

Using the sound dimension in code review tools

The use of music to create favorable conditions for development and programming has become common practice (cf. the use of the lo-fi genre and the emergence of the “code-fi” musical genre).

Improving DevX for test case generation using LLM

The goal of the thesis is to explore how LLMs and Retrieve Augment Generate (RAG) approaches can be leveraged to enhance automated test case generation in IntelliJ. The internship is done at JetBrains Amsterdam.

Multi-dimensional, multi-platform framework for web development

In this thesis, the student will be asked to design a web framework that will enable a developer to design an application that can be deployed as a website, desktop application, mobile application and immersive augmented and virtual reality application.

Test for Virtual and Augmented Reality

There exist very few automated testing frameworks for virtual and augmented reality-based applications. The goal of this master thesis is to define (and implement) such a framework for specific augmented reality technology (to be defined).

Augmented Reality Performance Testing

The goal of this thesis is to design and implement an augmented reality performance testing framework.

Green Coding

These days, IT is increasingly resource-intensive, both in terms of hardware and energy consumption. As a result, the sustainable side of software is an increasingly studied topic in the software engineering community.

Software Testing at Odoo

Odoo is a highly-configurable web-based ERP for various management tasks (CRM, inventory management, sales, invoicing, etc.) for small and medium-sized businesses. Odoo is developed mainly in Python and Javascript. This project will involve working with Odoo developers on one of the following topics at the intersection of Continuous Integration and Software Testing.

Software testing exercises gamification

The new Verification and Validation (V&V) course includes exercise sessions in which students write tests for small Java programs. These exercises use Andy to receive feedback in the form of coverage indicators, mutation score and number of successful meta-tests.

Towards user-friendly fuzzers

Fuzz testing, or simply fuzzing, is an automated testing technique aiming at discovering bugs or vulnerabilities of software systems by providing random, invalid, or potential harmful input data. Fuzzing is a black-box testing technique, as typically, fuzzers, i.

Impacts and challenges of integrating a test generator into a CI/CD pipeline

Impacts and challenges of integrating a test generator into a CI/CD pipeline

This thesis investigates the impacts and challenges of integrating CLING, a test generator for Java, into CI/CD (Continuous Integration/Continuous Deployment) pipelines. In a context where test automation is essential to ensure software quality, CLING generates integration tests automatically.

A mixed-reality application for code comprehension

A mixed-reality application for code comprehension

Learning to program, and especially understanding it, is a difficult task for newcomers. For this rea- son, aids are provided, such as IDEs, which give them tools to help them avoid syntax and/or semantic errors, depending on the programming languages used.

Aladdin: Using natural language to facilitate open data visualisation

Aladdin: Using natural language to facilitate open data visualisation

This dissertation explores the impact of using natural language in the visualisation of open datasets, focusing on the design and evaluation of Aladdin, a system based on the DSR approach. Aladdin uses advanced natural language processing techniques to transform text queries into interactive data visualisations.

Precise Feedback for a Precise Algorithm: Improving the User Experience on YouTube

Precise Feedback for a Precise Algorithm: Improving the User Experience on YouTube

Amid growing concern over filter bubbles and content diversity, this thesis explores the impact of feedback mechanisms on user experience with YouTube’s recommendation algorithm. The study examines how increased user control can influence their interactions with the algorithm.

TesArt: Testing for digital art

The goal of the thesis is to devise an approach for automated test execution for digital performances developed using creative coding.

Using the Language Server Protocol to create a mobile, ergonomic code editor

Using the Language Server Protocol to create a mobile, ergonomic code editor

This master thesis investigates how the Language Server Protocol (LSP) can be used to develop a nomad and ergonomic code editor. Mobile devices popularity has significantly increased in the past decade, strengthening the transformation of desktop solutions to mobile ones.

Fuzzing highly-configurable Web user interface: a Odoo case study

Fuzzing highly-configurable Web user interface: a Odoo case study

Since many years, Odoo, a company providing business management services, is constantly expanding its scope and developing the complexity of its software, a web application. In response to that complexity, the introduction of automated testing techniques seems to be the next evolution of the testing tools already available to them.

Improving automated unit test generation for machine learning libraries using structured input data

Improving automated unit test generation for machine learning libraries using structured input data

The field of automated test case generation has grown considerably in recent years to reduce software testing costs and find bugs. However, the techniques for automatically generating test cases for machine learning libraries still produce low-quality tests and papers on the subject tend to work in Java, whereas the machine learning community tends to work in Python.

LLM-explained mutation testing reports for teaching software testing

LLM-explained mutation testing reports for teaching software testing

The widespread digitalization of society and the increasing complexity of software make it essential to develop high-quality software testing suites. In recent years, several techniques for learning software testing have been developed, including techniques based on mutation testing.

Optimizing the energy consumption of showcase sites: a comparative analysis of WordPress and static sites

Optimizing the energy consumption of showcase sites: a comparative analysis of WordPress and static sites

Energy efficiency in computing is an important subject that is increasingly being addressed by researchers and developers. Nowadays, the majority of websites are built using the Wordpress CMS, while other developers prefer to use more secure and energy-efficient site generators.

SelfBehave: Generating a Behaviour-Driven Development Dataset Using the SELF-INSTRUCT Method

SelfBehave: Generating a Behaviour-Driven Development Dataset Using the SELF-INSTRUCT Method

Software development faces persistent challenges in terms of maintainability and efficiency, and this is driving the ongoing search for innovative approaches. Agile methodologies, in particular Behaviour-Driven Development (BDD), have gained ground in society thanks to their ability to promote responsiveness to change and communication between stakeholders.

Training machine learning models for vulnerability prediction and injection using datasets of vulnerability-inducing commits

Training machine learning models for vulnerability prediction and injection using datasets of vulnerability-inducing commits

Multiple techniques exist to find vulnerabilities in code, such as static analysis and machine learning. Although machine learning techniques are promising, they need to learn from a large quantity of examples.

Automatic Vulnerability Injection using Genetic Improvement and Static Code Analysers

Automatic Vulnerability Injection using Genetic Improvement and Static Code Analysers

This thesis explores the idea of applying genetic improvement in the aim of injecting vulnerabilities into programs. Generating vulnerabilities automatically in this manner would allow creating datasets of vulnerable programs. This would, in turn, help training machine-learning models to detect vulnerabilities more efficiently.

Leveraging Large Language Models to Automatically Infer RESTful API Specifications

Leveraging Large Language Models to Automatically Infer RESTful API Specifications

Application Programming Interfaces, known as APIs, are increasingly popular in modern web applications. With APIs, users around the world are able to access a plethora of data contained in numerous server databases.

Study of the impacts of Code Smells on code Testability

Study of the impacts of Code Smells on code Testability

Code Smells have been studied for more than 20 years now. They are used to describe a design 􏰊aw in a program intuitively. In this study, we wish to identify the impact of some of these Code Smells.

JCrashPack2.0: Search-based crash reproduction hardness analysis

JCrashPack2.0: Search-based crash reproduction hardness analysis

This master thesis project, revisits the links between search-based crash reproduction and software quality metrics to assess the hardness of search-based crash reproducing test case generation.

DeFlake: Exploring test flakiness debugging

Flaky tests are nondeterministic tests, they can give different results without changes to the code. This wastes time and resources. A better understanding of this field should lead to a decrease of these inconveniences. However, there is little work that makes the effort to bring this knowledge together. This is why this thesis will propose to answer these questions What are the categories of flaky tests identified? and What debugging techniques are the most appropriate for the different categories of flaky tests?

Génération de tests unitaires pour programmes Python

L’application de tests automatiques au code soumis par les étudiants sur une plateforme de correction automatique est un outil utile pour le corps enseignant. Il permet de fournir de meilleurs retours, sur plus d’exercices, créés plus rapidement.

Learning to assert in software testing using mutants

Learning to assert in software testing using mutants

Learning software testing is a neglected subject in computer science courses. Over the years, methods and tools have appeared to provide educational support for this learning. Mutation testing is a technique used to evaluate the effectiveness of test suites.

MuTEd: A Comparative Study of Classic and Extreme Mutation Testing for Teaching Software Testing

MuTEd: A Comparative Study of Classic and Extreme Mutation Testing for Teaching Software Testing

Although software testing is critical in software engineering, studies have shown a significant gap between students’ knowledge of software testing and the industry’s needs, hinting at the need to explore novel approaches to teach software testing.

Reverse Engineering Variability for Configurable Systems using Formal Concept Analysis: The Odoo case study

Reverse Engineering a Feature Model (FM) of an existing system allows its migration to a software product line approach to simplify the management of this system by applying a Software Product Line Engineering methodology that focuses mainly on the FM to determine the reusable artefacts and the variation points of the system.

Towards crash reproduction benchmark augmentation using mutation testing

Towards crash reproduction benchmark augmentation using mutation testing

Many applications are developed with a lot of different purposes and can provide quality output. Nevertheless, crashes still happen. Many techniques such as unit testing, peer-reviewing, or crash reproduction are being researched to improve quality by reducing crashes.