Master Thesis / Internship: Change impact analysis on Java-based projects Neu

- Job Identification: 2292
- Posting Date: 21.02.2025
- Job Schedule: Full time
- Company: ELCA Informatique SA
About Us
We are ELCA, one of the largest Swiss IT tribe with over 2,200 experts. We are multicultural with offices in Switzerland, Spain, France, Vietnam and Mauritius. Since 1968, our team of engineers, business analysts, software architects, designers and consultants provide tailor-made and standardized solutions to support the digital transformation of major public administrations and private companies in Switzerland. Our activity spans across multiples fields of leading-edge technologies such as AI, Machine & Deep learning, BI/BD, RPA, Blockchain, IoT and CyberSecurity.
Job Description
Description
Today, projects are developed incrementally. In this context, the regression risk is a problem that needs to be addressed. A way to address regression is by detecting changes in the code base and then test the impacted functionalities. However, this change analysis is currently done manually, which is time consuming and error prone.
In this internship, we want to advance on the construction of the Proof of Concept of a tool able to provide a list of features/screens that are impacted by a change in the codebase. The list can then be used to guide the testing and avoid regressions. The design of the tool has already been laid out, but a lot of features remains to be implemented. Such features can be added as modules on top of the existing one to create new ways of detecting dependencies.
Our typical code stack is like the following one
Objectives
- Generation of a report listing all user testable units/screens that are impacted by the changes between 2 commits
- Take ownership of the current tool and understand its architecture
- Implement change detection between 2 Git versions (commits) and deduce impacted code location
- Add modules to finish the analysis of Angular code (80% done)
- Add a module to perform dependency analysis of Spring beans in Java
Optionally
- Add modules to perform dependency analysis between SQL and JAVA (Hibernate/ORM/SQL)
- Add modules to perform dependency analysis between JAVA and JSP
- Add modules to perform dependency analysis in JSP
- Explore the potential scalability issue and propose optimizations
- Create user-friendly GUI
Feedback from previous internship
“It is a very interesting research-oriented project where there is no out of the box solution. You must tinker around and come up with a solution.”
Our offer
- A dynamic work and collaborative environment with a highly motivated multi-cultural and international sites team
- The chance to make a difference in peoples’ life by building innovative solutions
- Various internal coding events (Hackathon, Brownbags), see our technical blog
- Monthly After-Works organized per locations
Skills required
Static code analysis, dependency analysis, good mathematical/analytical knowledge, Java (good level, like compilation), Git, Angular and/or JSP, SQL/Hibernate (optional), Spring (ideally)