https://github.com/jpmorganchase/sandboni-core
Sandboni - Java test optimization library which reduces test execution time without compromising quality
https://github.com/jpmorganchase/sandboni-core
code java jpmorganchase static test-automation testing-tools
Last synced: 5 months ago
JSON representation
Sandboni - Java test optimization library which reduces test execution time without compromising quality
- Host: GitHub
- URL: https://github.com/jpmorganchase/sandboni-core
- Owner: jpmorganchase
- License: gpl-3.0
- Archived: true
- Created: 2019-08-21T13:58:10.000Z (almost 7 years ago)
- Default Branch: dev
- Last Pushed: 2022-12-14T23:40:15.000Z (over 3 years ago)
- Last Synced: 2025-07-21T17:47:38.640Z (11 months ago)
- Topics: code, java, jpmorganchase, static, test-automation, testing-tools
- Language: Java
- Homepage:
- Size: 906 KB
- Stars: 30
- Watchers: 10
- Forks: 25
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# 
Sandboni Core
[](https://mvnrepository.com/artifact/com.github.jpmorganchase.sandboni/sandboni-engine)
[](https://www.gnu.org/licenses/gpl-3.0)
[](https://travis-ci.com/jpmorganchase/sandboni-core)
[](https://sonarcloud.io/dashboard?id=com.github.jpmorganchase.sandboni%3Asandboni-core)
## 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](https://maven.apache.org/guides/mini/guide-multiple-modules.html) project structure
* scm - builds a change scope between two revisions
* [jGit](https://github.com/eclipse/jgit)
* engine - analyzes bytecode by locations, builds CDG and it contains the main algorithms for the graph traversing
* [Bcel](https://github.com/apache/commons-bcel)
* [JGraphT](https://github.com/jgrapht/jgrapht)
## Documentation
* [Quickstart](https://github.com/jpmorganchase/sandboni-core/wiki/Quickstart)
* [Design](https://github.com/jpmorganchase/sandboni-core/wiki/Design)
* [Contributing](https://github.com/jpmorganchase/sandboni-core/wiki/Contributing)
## 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:
- [Submit bugs and feature requests](https://github.com/jpmorganchase/sandboni-core/issues), and help us verify as they are checked in
- [Review source code changes](https://github.com/jpmorganchase/sandboni-core/pulls)
- Review the [documentation](https://github.com/jpmorganchase/sandboni-core/wiki) and make pull requests for new content
## License
GNU General Public License v3.0
Please see [License](https://choosealicense.com/licenses/gpl-3.0/) for more information