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