Skip to content
This repository has been archived by the owner on Dec 14, 2022. It is now read-only.

Sandboni - Java test optimization library which reduces test execution time without compromising quality

License

Notifications You must be signed in to change notification settings

jpmorganchase/sandboni-core

Repository files navigation

Sandboni Core

Maven Central License: GPL v3 Build Status Sonarcloud Status

This project is archived as of 14-Dec-2022

Sandboni is a Java test optimization library which reduces test execution time without compromising quality, predicts defect probability and presents actionable test results which allows developers to take preemptive measures.

Instead of applying a brute force approach to testing (i.e. executing all tests each time there is a code change), Sandboni determines the code slice affected by the change and executes only those tests related to the change. This test filtering is based on the static code analysis that lets us determine required tests without paying the price for executing them

Features

  • Compute a change scope (CS) between two revisions
  • Build a change dependency graph (CDG) for a specific change scope
  • Find and execute related/disconnected tests based on the CDG
  • Support JVM and Cucumber tests

Structure of code

The code is in a multi-module project structure

  • scm - builds a change scope between two revisions
  • engine - analyzes bytecode by locations, builds CDG and it contains the main algorithms for the graph traversing

Documentation

Contributing

Sandboni is built on open source and we invite you to contribute enhancements. There are many ways in which you can participate in the project, for example:

License

GNU General Public License v3.0

Please see License for more information