DEPARTMENT OF COMPUTER SCIENCE
Dr. Jens Krinke
UCL

Home
- Contact
- Teaching
- Research
- Publications

Student Projects

General Ideas

My areas of interest are Software Test, Continuous Integration, Code Review, Program Analysis, Clone Detection, Bug Detection. If you are interested to do a project in one of the areas, please contact me.

A list of concrete topics you'll find below.

Specific Topics

Does Code Readability impact Code Review?

One of the aims of Code Review is to maintain and improve the readability of code. However, readability is very subjective and hard to automatically measure. Buse and Weimer have made an attempt to define a readability metric to measure the readability of code.

In this project, the Buse/Weimer metric will be used to measure the readability of code that undergoes code review and a statistical analysis will be applied to identify wether there is a statistical difference in readabilioty of code before and after code review.

Article describing the readability metric.

Are Developers Aware of Clones When They Make Code Changes?

This projects aim to leverage the rich information in code review process and automatic code clone detection to assess the awareness of developers to code cloning on a day-to-day basis. Code clone detection will be performed before and after each code review patch is submitted. With detected clones, code changes from the patch, and natural language text in the review, we can ask several interesting questions by performing a manual analysis of the results: (1) How often are developers aware, i.e. do they discuss them in code review, when clones are introduced into the systems? (2) When they discuss about clones, what happens to the clones in the system after the discussion? (3) What are common intents when developers introduce clones into the software? (4) What is the developer's perception about code clones? Should clones always be removed or it's just good to know they're there?

Article describing a similar study.

Finding and Exploiting Similarity between Software Tests

With Unit Testing one has a link between the tested code and the code that tests it. This project will investigate if similar test code corresponds to the tested code to be similar, too (and vice versa). If such a correspondence exists, it may be possible to exploit the similarity to reuse test code for code that is not yet tested but has some similar code that is already tested.

Code-to-Test Traceability and Automatic Fault Localisation for Python

Code-to-test traceability establishes links between code and the tests testing the code. Establishing such links is not straight forward and multiple approaches have been developed. This project will have to establish such links by tracing a program while it is being tested. The tracing will be combined with automatic fault localisation, a technique to find the code that is likely responsible to cause a test to fail.

As a similar project has been done in the past, this project will have to research and develop for Python code.

Article describing the original study.

 

Last modified: 11/22/2020