A Debugging User Study: Validating Debugging Research Findings (available)

Project Description: Understanding and fixing software faults is a challenging task for developers [1]. To address this challenge, researchers have designed several debuggers. For instance, automated fault localisation (AFL) techniques (e.g., Ochiai [1]) and automated program repair (APR) tools (e.g., GenProg[2]) are designed to support developers during software debugging tasks. In addition, researchers have gathered … full description “A Debugging User Study: Validating Debugging Research Findings (available)”

Analyzing the Evolution of Fairness properties in ML-based Code repositories (available)

Project Description: Machine Learning (ML) systems are vital components of everyday products and services in our society. ML models have been popularly employed in law enforcement (e.g., COMPASS), legal use cases (e.g., LegalBERT), and programming language tasks (e.g., CodeBERT, Github Copilot, etc.). Despite the criticality of these use cases, ML systems are often biased towards … full description “Analyzing the Evolution of Fairness properties in ML-based Code repositories (available)”

Attacking Large Pre-trained Programming Language Models (PLMs) via Backdoors (completed)

Project Description: Backdoors refer to a class of Machine Learning (ML) attacks where an adversary trains an ML model to intentionally misclassify any input to a specific label [1]. This is typically achieved by poisoning the training data, such that inputs are misclassified to a target label when the backdoor trigger is present. For instance, … full description “Attacking Large Pre-trained Programming Language Models (PLMs) via Backdoors (completed)”

Automated Debugging of Invalid Inputs generated by Fuzzers (available)

Project Description: Fuzzing is a popular testing method used to ensure the reliability, security and correctness of software systems. These tools allow developers to find bugs and vulnerabilities in software systems automatically. For instance, AFL is a popular fuzzer that has exposed thousands of bugs in open-source software provided by Google, Amazon and Firefox [1]. … full description “Automated Debugging of Invalid Inputs generated by Fuzzers (available)”

Visualising Interactions Between Developers During Code Review (available)

Code review (sometimes referred to as pull request) is a code change auditing technique done by developers other than the author of the change. Recent studies demonstrated diverse benefits of code review. For example, Bacchelli and Bird reported that code review is effective to share knowledge between developers and to improve code changes [1]. In … full description “Visualising Interactions Between Developers During Code Review (available)”