View Proposal


Proposer
Kostas Liaskos
Title
Automated mutation testing for concurrent software
Goal
The aim of this project is to develop a tool that automates mutation testing in the context of concurrent software. The core of this project is to investigate common concurrent bug patterns [2] and suggest appropriate mutation operators.
Description
Mutation testing is a simple technique utilised to evaluate the quality of existing software tests: faults (or mutations) are seeded into the code, then the tests are run. The quality of the tests can be calculated from the percentage of mutations killed. Tools that automate this process exist, e.g. PIT [1]. The aim of this project is to develop a tool that automates mutation testing in the context of concurrent software. The core of this project is to investigate common concurrent bug patterns [2] and suggest appropriate mutation operators. The key tasks and challenges in this project include: 1. Reviewing common concurrent bug patterns and suggest appropriate mutation operators for mutation testing. 2. Investigation and implementation of the suggested mutation operators. 3. Evaluating the tool by applying it to a range concurrent systems.
Resources
[1] http://pitest.org/, [2] http://ieeexplore.ieee.org/document/1213511/, [3] https://docs.oracle.com/javase/tutorial/essential/concurrency/
Background
Strong Java programming skills are essential. Furthermore, the student must familiarise with the fundamentals of the Java concurrency package [3].
Url
Difficulty Level
Challenging
Ethical Approval
None
Number Of Students
2
Supervisor
Kostas Liaskos
Keywords
java concurrency, mutation testing, mutation operators, code parsing, static code analysis, programming, software engineering, unit testing, junit
Degrees
Bachelor of Science in Computer Science
Bachelor of Science in Computer Systems
Master of Engineering in Software Engineering
Master of Science in Computing (2 Years)
Master of Science in Software Engineering
Bachelor of Science in Computing Science