Software Engineering and Automation Internship - Improving static analysis tool chain for code quality

Organisatie
ING
Locatie
Amsterdam
Opleidingsniveau
WO
Periode
Type
Werkstage
Vergoeding
Vakgebieden
Deze stage is niet meer vacant

Are you a student looking for a complex software engineering problem? Please check out this graduation project.

Context and Challenge
Over the past decades, code analysis tools have been developed to make it easier for software developers to do code reviews and develop high-quality software. These tools cover all kinds of different code metrics and integration with other platforms. Some examples of the most advanced tools are SonarSource and Checkmarx.

However, while other tools exist, code reviews are often done manually by developers through version control systems like GitLab. GitLab is a web-based, fully-integrated DevOps lifecycle tool that provides a Git-repository manager with an integrated wiki, issue-tracking and continuous integration/continuous deployment pipeline features. The problem is that these static analysis tools are external to the GitLab environment, and therefore they are often disregarded by the users. Consequently, these manual code reviews still take much time and are hard to perform when merge requests contain large numbers of changes.

Thus, there is a need for an appropriate selection of a set of tools and metrics which can aid code reviews and optimize the process of development. Furthermore, the outputs of the tools and the effect of certain metrics need to be analyzed and adapted to suit the needs of the developers and provide optimal results. The goal is to detect important issues, conflicts and weak spots of the code and merge requests and save the most time and effort for the developers while eliminating false positives as much as possible.

Expected project outcome

This project will be carried out based on a framework which has been developed in previous student projects. This framework helps diagnosing problems during code reviews and provides information about the code quality and merge requests.

The expected project outcome is to extend current framework with more metrics or code analysis tools, and investigate how to further handle false positives, for example, using the data collected by different code analysis tools as inputs for machine learning and statistical techniques.

Technologies involved
The following technologies might be involved in this project (but not limited to):

  • Git and gitlab

  • Web API’s

  • JVM technology

  • Hosting (Cloud, Serverless)

  • Database (Relational, Graph)

Education
• You are a BSc/ Master graduation student in Computer Science with mathematical affinity or the other way around.
• You have knowledge of object oriented programming and software design in a technical environment.
• You are self-propelling, smart and inquisitive.

This is a graduation internship for minimum 4 days a week with a duration of a minimum 5 months.
Please note that we can only consider students who are enrolled at a school for the entire duration of the internship.

Stage informatie

Organisatie: Organisatie: ING

Locatie: Amsterdam

Opleidingsniveau: $stage.educationLevel.name}

Periode:

Type: Werkstage

Vergoeding:

Meer stages