“O sed fugit interea fugit irreparabile tempus audeamus nunc.” ― Rilès
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.
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)
Presentation of DSpot: a test suite amplification tool. slides
Presentation of Correctness Attraction: A Study of Stability of Software Behavior Under Runtime Perturbation. slides
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:
- 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.
- Configuration amplification: exploiting existing configuration test to create variants and execute the application in various configurations before production.
- 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
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?
A live demo available on this link.
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.