“O sed fugit interea fugit irreparabile tempus audeamus nunc.” Rilès

Research Engineer

September 2020 - Now
Tools development to measure the energy consumption (in joules) within the CI/CD. The objective is to identify practices and/or libraries that consume more energy, and propose to developers a new way of coding to reduce this energy consumption.
This mission falls in the partnership with Inria Lille-Nord Europe, in particular with Spirals.


Diff-JJoules(Not yet Open-source) - Diff-JJoules is tools that approximate the impact of a commit on the energy consumption of a program. In case of an increase of the energy consumption, aka, an Energy Regression, Diff-JJoules gives a ranked list of the modified lines according to their suspicioussness.

Diff-JJoules-Demo - Diff-JJoules-Demo is a repository where you can find a demo of Diff-JJoules.

DSpot - DSpot is a test suite amplifier. It takes as input a project and its test suite and will produce test cases according to a test criterion adequacy such as branch coverage or mutation score. I am currently the main contributor to DSpot. DSpot is the skeleton that support all my research to validate and experiment my proposed approach.

A web interface has been developped to run DSpot on your own project.

Following, a video that demonstrates the usage of this web interface and presents DSpot.

Diff-Test-Selection - Diff-Test-Selection is a maven plugin, based on OpenClover, that produces the list of test classes and their test methods that execute a provided diff.

DSpot-Prettifier - DSpot-prettifier aims a make better good looking amplified test methods obtained with DSpot. It relies on several operations such as minimization, renaming local variables and test methods (based on code2vec). slides

Test-runner - Test-runner is a library that allows developer to execute test in a new and clean JVM. After some months to develop research prototypes in Software engineering, I noticed that I always re-develop some classes to execute the test: automatic-repair based on test, test amplification, etc. I thought that this was sad to reinvent the wheel that is why I decide to create this open-source library, to join the effort in the development of reliables test execution in research prototypes in Java, and save times for researchers.

AssertFixer - AssertFixer aims to fix the assertion in a test suite, using the program as specifications.

Publications (reverse chronological order)

Benjamin Danglot, Jean-Rémy Falleri and Romain RouvoyCan We Spot Energy Regression using Developers Tests?. Registered Report Track, 37th International Conference on Software Maintenance and Evolution (ICSME'21), October 2021.
Benjamin Danglot, Martin Monperrus, Walter Rudametkin, and Benoit Baudry An Approach and Benchmark to Detect Behavioral Changes of Commits in Continuous Integration. Empirical Software Engineering, March 2020.
Oscar Luis Vera-Pérez, Benjamin Danglot, Martin Monperrus, Benoit Baudry Suggestions on Test Suite Improvements with Automatic Infection and Propagation Analysis. ArXiv, Sept 2019 (pre-print).
Benjamin Danglot, Oscar Vera-Perez, Zhongxing Yu, Martin Monperrus, and Benoit Baudry. A Snowballing Literature Study on Test Amplification . Journal of Systems and Software, August 2019.
Benjamin Danglot, Oscar Luis Vera-Pérez, Benoit Baudry, and Martin Monperrus.Automatic test improvement with dspot: a study with ten mature open-source projects. Empirical Software Engineering, April 2019.
Oscar Luis Vera-Pérez, Benjamin Danglot, Martin Monperrus, and Benoit Baudry. A comprehensive study of pseudo-tested methods. Empirical Software Engineering, Sep 2018.
Benjamin Danglot, Philippe Preux, Benoit Baudry, and Martin Monperrus. Correctness attraction: a study of stability of software behavior under runtime perturbation .Empirical Software Engineering, Aug 2018.
Zhongxing Yu, Matias Martinez, Benjamin Danglot, Thomas Durieux, and Martin Monperrus. Alleviating patch overfitting with automatic test generation: a study of feasibility and effectiveness for the nopol repair system. Empirical Software Engineering, May 2018.


STAMP open workshop

January 30, 2019

Presentation of DSpot. slides

Animation of an hands-on session around the usage of DSpot. GitHub repository

STAMP open workshop

December 14, 2017

Presentation of DSpot: a test suite amplification tool. slides

Kungliga Tekniska Högskolan (KTH)

Presentation of Correctness Attraction: A Study of Stability of Software Behavior Under Runtime Perturbation. slides


June 26-27, 2017
Orange Gardens Innovation Center, Paris - Châtillon

Presentation of Spoon, a library to analyze and transform java code in java. (link to Youtube)

During the event, Spoon received the Community Award of OW2Con'17.


Research Engineer

December 2019 - August 2020
Université Côte d'Azur (UCA)
Development of a social network to bind together people looking for job opportunities, companies looking for specific profiles and training centers offering courses. In the context of an initiative by Pole Emploi, 26 interns have been selected for a special program offering them a complete Fullstack developer training during 3 months. After these 3 months of courses, I joined them to build the first prototype of this social network. I lead the group, being the product owner and the scrum master during 5 weeks. The source code is available in open-source here(FR).
I was also a member of ADAVEC, a french project. This project aims at building a prototype to allow autonomous vehicles to continuously adapt its level of autonomy according to the traffic and the security. This prototype will define automatically the optimal level of autonomy by communicating with the environment (V2X, ADAS,…), and also by analyzing the ability of the driver to ensure the take over of the vehicle.

PhD Candidate

December 2016 - November 2019
Inria Lille, Spirals team

Software Testing AMPlification (STAMP): is funded European Commission - H2020. STAMP works in DevOps and agile methods and aims at improving the value of testing at different step of the application's lifecycle.

Behind STAMP, there are 3 main activities:
  1. Unit test amplification: exploiting existing unit test to generate better variants or new test method that improve the overall test suite's quality, e.g. increase the branch coverage.
  2. Configuration amplification: exploiting existing configuration test to create variants and execute the application in various configurations before production.
  3. Production amplification: exploiting production information to achieve specific tasks such as crash reproduction.

My research is mostly focused on unit test amplification. I am exploiting existing test methods to create variants to increase the mutation score, detects automatically behavioral change, etc.

My work takes place within this project and is applied directly to the partners' code base. During my research, I develop strong prototypes and apply several software engendering methods: agility, unit testing, continuous integration, pull request development, bug tracker, etc.

The manuscript is available here.

The slides of my defense are available here

Research Engineer

September 2016 - November 2016
Inria Lille, Spirals team

Development of nopol is an automatic repair tool for java program. Nopol fixes conditional and pre-condition bug, using the test suite. A IDEA plugin allows to developer to use nopol directly in their IDE.


March 2016 - August 2016
Inria Lille, Spirals team

Exploring the Perturbability Envelope in Software:

Perturbation is change in the state of a system at runtime. Such changes has a surprisingly low impact on the correctness (final output) of system according to our study. Does the equilibrium of the correctness of software is naturally present?

Correctness Attraction report

A live demo available on this link.

Research Engineer

June 2016 - June 2016
CRIStAL, Emeraude team

Development of N2S3: a Neural Network Scalable Spiking Simulator. Written in scala and using akka actors, N2S3 scale up and allow users to the simulate of neuro-inspired hardware accelerators. N2S3 got a real time UI to monitor the current state of the neuronal network.