View Proposal


Proposer
Kostas Liaskos
Title
Data-flow code coverage of unit tests: traditional vs. concurrent
Goal
The aim of this project is to develop a tool that calculates both versions of data-flow coverage. The core of this project is to compare the two versions and further investigate the usefulness of the concurrent version.
Description
Data-flow coverage is a coverage metric that has been utilised successfully to measure the adequacy of test suites. Concurrency introduces new challenges in the context of software testing; hence, a variation of the traditional data-flow coverage metric has been proposed [1]. The aim of this project is to develop a tool that calculates both versions of data-flow coverage. The core of this project is to compare the two versions and further investigate the usefulness of the concurrent version. The key tasks and challenges in this project include: 1. Reviewing data-flow coverage metrics and understanding the challenges introduced by concurrency. 2. Investigation and implementation of both versions of data-flow coverage. 3. Evaluating the tool by applying it to a range concurrent systems. Strong Java programming skills are essential. Furthermore, the student must familiarise with the fundamentals of the Java concurrency package [2].
Resources
[1] https://www.youtube.com/watch?v=w4lcovdasb8, [2] https://docs.oracle.com/javase/tutorial/essential/concurrency/
Background
Strong Java programming skills are essential. Furthermore, the students must familiarise with the fundamentals of the Java concurrency package [2].
Url
Difficulty Level
Challenging
Ethical Approval
None
Number Of Students
2
Supervisor
Kostas Liaskos
Keywords
java concurrency, static analysis, runtime analysis, programming, software engineering, code coverage, data flow analysis, 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