@syntest/analysis
Monorepo containing the framework and various core parts of the SynTest ecosystem
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 11 committers (9.1%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.0%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Monorepo containing the framework and various core parts of the SynTest ecosystem
Basic Info
- Host: GitHub
- Owner: syntest-framework
- License: apache-2.0
- Language: TypeScript
- Default Branch: main
- Homepage: https://www.syntest.org
- Size: 15.2 MB
Statistics
- Stars: 18
- Watchers: 2
- Forks: 9
- Open Issues: 57
- Releases: 25
Topics
Metadata Files
README.md
SynTest Framework
The aim of the SynTest ecosystem is make it easier for developers to test their code in a more effective and efficient way.
The SynTest Framework is a modular and extendable ecosystem of tools for automated test generation. It allows for the easy integration of new search algorithms and test case representations. Furthermore, the framework is designed to be language agnostic, allowing for other languages to be added.
Installation
NPM
The simplest way to use SynTest Framework for JavaScript is by installing the following two npm packages: @syntest/cli, @syntest/javascript.
bash
$ npm install @syntest/cli
$ npm install @syntest/javascript
You can install it in your project as shown in the snippet above or you can install the package globally by using the npm options -g.
Usage
To start you need to be in the root of the project folder containing the code you want to create test-cases for. Next, you need to install two dev-dependencies in your project, namely chai and chai-as-promised. Both are needed to run the tests.
Next, you want to run the following command:
bash
$ npx syntest init config --modules @syntest/javascript
This will create the .syntest.json configuration file for you with some pre filled in parameters.
The file should look somewhat like this:
json
{
...,
"target-root-directory": "./express",
"include": [
"./express/lib/**/*.js"
],
"exclude": [],
"modules": [
"@syntest/javascript"
],
"preset": "DynaMOSA"
...
}
In the above example the most important configuration options are shown.
- The preset value which decides the algorithms the tool will use.
- The loaded module "@syntest/javascript".
- The target root directory which is the source directory of all the files you want to target.
- The include array where you can specify which files to target.
- The exclude array where you can specify which files to exclude specifically
Once these properties are set you can run:
bash
$ npx syntest javascript test
If everything is correct the tool will now start.
The results can be found in the syntest folder
SynTest-JavaScript is highly configurable and supports a bunch of options and arguments, all of them can be found by providing the --help option or -h for short. Another way of configuring the tool is through the .syntest.json file in the root of your project.
Documentation
For questions and help with how to use this tool, please see the documentation.
Support
For questions and help with how to use this library, please see SUPPORT.md.
Contributing
Contributions are welcome! For major changes, please open an issue first to discuss what you would like to change. For more information, please see CONTRIBUTING.md.
Authors and acknowledgment
- Annibale Panichella (PI)
- Mitchell Olsthoorn (Project Lead)
- Dimitri Stallenberg (Developer)
License
The code within this project is licensed under the Apache-2.0 license.
Owner
- Name: SynTest Framework
- Login: syntest-framework
- Kind: organization
- Location: Netherlands
- Website: https://www.syntest.org/
- Twitter: syntest_org
- Repositories: 4
- Profile: https://github.com/syntest-framework
A framework for generating synthetic tests for programs based on JavaScript
Citation (CITATION.cff)
cff-version: 1.2.0
title: SynTest-Framework
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- family-names: Olsthoorn
given-names: Mitchell
orcid: "https://orcid.org/0000-0003-0551-6690"
affiliation: Delft University of Technology
- given-names: Dimitri
family-names: Stallenberg
orcid: "https://orcid.org/0009-0003-7843-2372"
affiliation: Delft University of Technology
- orcid: "https://orcid.org/0000-0002-7395-3588"
given-names: Annibale
family-names: Panichella
affiliation: Delft University of Technology
repository-code: "https://github.com/syntest-framework/syntest-framework"
url: "https://syntest.org"
keywords:
- syntest
- syntest-framework
- testing
- search-based-software-engineering
- search-based-software-testing
- automated-test-generation
license: Apache-2.0
GitHub Events
Total
- Delete event: 1
- Issue comment event: 1
- Push event: 49
- Pull request event: 3
- Fork event: 2
- Create event: 2
Last Year
- Delete event: 1
- Issue comment event: 1
- Push event: 49
- Pull request event: 3
- Fork event: 2
- Create event: 2
Committers
Last synced: 11 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Dimitri | t****i@g****m | 429 |
| Mitchell Olsthoorn | m****n@o****m | 232 |
| SynTest CI | i****o@s****g | 175 |
| apanichella | a****a@t****l | 140 |
| renovate[bot] | 2****] | 75 |
| Yehor Kozyr | 4****s | 4 |
| Arie van Deursen | a****n | 4 |
| Gijs | g****7@l****l | 2 |
| dependabot[bot] | 4****] | 1 |
| Chao-Ran-Erwin | 7****n | 1 |
| Dimitri Stallenberg | d****t@D****l | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 4
- Total pull requests: 197
- Average time to close issues: 6 days
- Average time to close pull requests: 16 days
- Total issue authors: 2
- Total pull request authors: 4
- Average comments per issue: 0.0
- Average comments per pull request: 1.09
- Merged pull requests: 154
- Bot issues: 3
- Bot pull requests: 192
Past Year
- Issues: 1
- Pull requests: 7
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 1
- Pull request authors: 3
- Average comments per issue: 0.0
- Average comments per pull request: 1.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 6
Top Authors
Issue Authors
- renovate[bot] (4)
- Chao-Ran-Erwin (1)
Pull Request Authors
- renovate[bot] (176)
- dependabot[bot] (11)
- mitchellolsthoorn (4)
- Chao-Ran-Erwin (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 19
-
Total downloads:
- npm 404 last-month
-
Total dependent packages: 51
(may contain duplicates) -
Total dependent repositories: 7
(may contain duplicates) - Total versions: 424
- Total maintainers: 4
npmjs.org: @syntest/logging
SynTest library for logging
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.1.1
published over 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/cli
SynTest Framework command line interface
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.2.1
published over 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/cli-graphics
SynTest library for cli graphics
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.2.0
published over 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/module
SynTest library for a modular and extendable ecosystem
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.1.1
published over 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/framework
The common core of the SynTest Framework
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.1.2
published about 4 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/init
SynTest tool for initializing the configuration file
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.2.1
published over 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/base-language
SynTest abstract tool that can be used to implement a new language
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.2.1
published over 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/search
SynTest library that contains a collection of search algorithms
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.4.1
published over 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/cfg
SynTest library for control flow graphs
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.4.0
published over 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/plugin-metric-middleware-file-writer
SynTest metric middleware plugin for writing metrics to disk
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.2.0-beta.8
published almost 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/plugin-metric-middleware-statistics
SynTest metric middleware plugin for creating statistics of other metrics
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.1.2-beta.18
published almost 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/plugin-event-listener-websocket
SynTest event listener plugin for external communication through WebSockets
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.2.1-beta.18
published almost 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/plugin-event-listener-state-storage
SynTest event listener plugin for storing the state of various events happening in the framework
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.2.0-beta.12
published almost 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/plugin-search-algorithm-experimental
SynTest search algorithm plugin for experimental search algorithms
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.2.0-beta.17
published almost 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/prng
SynTest library that provides a pseudo random number generator
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.1.1
published over 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/analysis
SynTest library for analyzing code
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.2.0
published over 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/metric
SynTest library for collecting and storing metrics
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.1.1
published over 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/diagnostics
SynTest library for tool diagnostics
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.1.0-beta.1
published almost 2 years ago
Rankings
Maintainers (4)
npmjs.org: @syntest/storage
SynTest library for storing namespaced data in a file system
- Homepage: https://www.syntest.org
- License: Apache-2.0
-
Latest release: 0.2.0
published over 2 years ago
Rankings
Maintainers (4)
Dependencies
- @types/chai ^4.2.19 development
- @types/cli-progress ^3.9.2 development
- @types/mocha ^8.2.2 development
- @types/node ^14.14.37 development
- @types/sinon ^9.0.11 development
- @typescript-eslint/eslint-plugin ^4.19.0 development
- @typescript-eslint/parser ^4.19.0 development
- chai ^4.3.4 development
- eslint ^7.23.0 development
- eslint-config-prettier ^8.3.0 development
- jsdoc ^3.6.7 development
- mocha ^8.4.0 development
- nyc ^15.1.0 development
- prettier ^2.3.2 development
- sinon ^9.2.4 development
- ts-node ^9.1.1 development
- typescript ^4.3.5 development
- @dagrejs/graphlib ^2.1.4
- bignumber.js 9.0.1
- chalk ^4.1.1
- clear ^0.1.0
- cli-progress ^3.9.0
- d3 ^4.13.0
- fast-csv ^4.3.6
- figlet ^1.5.0
- globby ^11.0.4
- jsdom ^16.6.0
- seedrandom ^3.0.5
- shelljs ^0.8.4
- winston ^3.3.3
- yargs ^16.2.0
- actions/checkout v3 composite
- actions/setup-node v3 composite
- actions/checkout v3 composite
- actions/setup-node v3 composite
- actions/checkout v3 composite
- actions/download-artifact v3 composite
- actions/setup-node v3 composite
- actions/upload-artifact v3 composite
- andstor/file-existence-action v2 composite
- coverallsapp/github-action master composite
- secondtruth/collect-directories-by-contained-files v1.0.0 composite
- actions/checkout v3 composite
- actions/setup-node v3 composite
- actions/checkout v3 composite
- actions/setup-node v3 composite
- actions/checkout v4 composite
- actions/download-artifact v3 composite
- actions/setup-node v3 composite
- actions/upload-artifact v3 composite
- andstor/file-existence-action v2 composite
- coverallsapp/github-action master composite
- dorny/test-reporter v1 composite
- secondtruth/collect-directories-by-contained-files v1.0.0 composite
- actions/checkout v3 composite
- actions/setup-node v3 composite
- actions/checkout v3 composite
- actions/setup-node v3 composite
- @types/lodash.clonedeep ^4.5.7 development
- @syntest/cfg ^0.4.1-beta.3
- @syntest/logging ^0.2.0-beta.1
- lodash.clonedeep ^4.5.0
- @types/lodash.clonedeep ^4.5.7 development
- @syntest/logging ^0.2.0-beta.1
- lodash.clonedeep ^4.5.0
- @types/figlet ^1.5.5 development
- @syntest/logging ^0.2.0-beta.1
- chalk 4.1.1
- clear 0.1.0
- cli-progress 3.11.2
- figlet 1.5.2
- table ^6.8.1
- winston 3.8.2
- yargs ^17.7.1
- @syntest/logging ^0.2.0-beta.1
- yargs ^17.7.1
- @syntest/cli-graphics ^0.2.1-beta.3
- @syntest/logging ^0.2.0-beta.1
- @syntest/metric ^0.1.2-beta.3
- @syntest/storage ^0.3.0-beta.1
- global-modules 2.0.0
- yargs ^17.7.1
- @types/fs-extra ^11.0.1 development
- @syntest/logging ^0.2.0-beta.1
- bignumber.js 9.0.1
- seedrandom 3.0.5
- @types/global-modules ^2.0.0 development
- @types/seedrandom ^3.0.5 development
- @syntest/analysis ^0.2.1-beta.3
- @syntest/cfg ^0.4.1-beta.3
- @syntest/logging ^0.2.0-beta.1
- @syntest/prng ^0.2.0-beta.1
- @types/fs-extra ^11.0.1 development
- @syntest/logging ^0.2.0-beta.1
- fs-extra ^11.1.1
- yargs ^17.7.1
- 1039 dependencies
- @syntest/analysis ^0.2.1-beta.3
- @syntest/base-language ^0.3.0-beta.9
- @syntest/cfg ^0.4.1-beta.3
- @syntest/logging ^0.2.0-beta.1
- @syntest/metric ^0.1.2-beta.3
- @syntest/module ^0.2.0-beta.2
- @syntest/search ^0.5.0-beta.8
- @types/ws ^8.5.4 development
- @syntest/analysis ^0.2.1-beta.3
- @syntest/base-language ^0.3.0-beta.9
- @syntest/cfg ^0.4.1-beta.3
- @syntest/logging ^0.2.0-beta.1
- @syntest/module ^0.2.0-beta.2
- @syntest/search ^0.5.0-beta.8
- ws ^8.13.0
- @syntest/logging ^0.2.0-beta.1
- @syntest/metric ^0.1.2-beta.3
- @syntest/module ^0.2.0-beta.2
- @syntest/base-language ^0.3.0-beta.9
- @syntest/logging ^0.2.0-beta.1
- @syntest/metric ^0.1.2-beta.3
- @syntest/module ^0.2.0-beta.2
- fast-csv ^4.3.6
- @syntest/base-language ^0.3.0-beta.9
- @syntest/logging ^0.2.0-beta.1
- @syntest/metric ^0.1.2-beta.3
- @syntest/module ^0.2.0-beta.2
- @syntest/search ^0.5.0-beta.8
- @syntest/analysis ^0.2.1-beta.3
- @syntest/cli-graphics ^0.2.1-beta.3
- @syntest/logging ^0.2.0-beta.1
- @syntest/metric ^0.1.2-beta.3
- @syntest/module ^0.2.0-beta.2
- @syntest/search ^0.5.0-beta.8
- @syntest/storage ^0.3.0-beta.1
- globby 11.0.4
- yargs ^17.7.1
- @syntest/cli-graphics ^0.2.1-beta.3
- @syntest/init ^0.2.2-beta.4
- @syntest/logging ^0.2.0-beta.1
- @syntest/metric ^0.1.2-beta.3
- @syntest/module ^0.2.0-beta.2
- @syntest/prng ^0.2.0-beta.1
- @syntest/storage ^0.3.0-beta.1
- short-uuid ^4.2.2
- yargs ^17.7.1
- @types/shelljs ^0.8.11 development
- @syntest/cli-graphics ^0.2.1-beta.3
- @syntest/logging ^0.2.0-beta.1
- @syntest/metric ^0.1.2-beta.3
- @syntest/module ^0.2.0-beta.2
- shelljs ^0.8.5
- yargs ^17.7.1
- node 16.13 build
- @babel/types 7.23.9 development
- @babel/core 7.23.9
- @babel/traverse 7.23.9
- @syntest/analysis ^0.3.0-beta.2
- @syntest/ast-visitor-javascript ^0.2.0-beta.4
- @syntest/cfg ^0.5.0-beta.0
- @syntest/diagnostics ^0.1.0-beta.0
- @syntest/logging ^0.2.0-beta.2
- @syntest/prng ^0.2.0-beta.2
- @syntest/search ^0.5.0-beta.10
- @babel/types 7.23.9 development
- @babel/core 7.23.9
- @babel/traverse 7.23.9
- @syntest/diagnostics ^0.1.0-beta.0
- @syntest/logging ^0.2.0-beta.2
- globals ^13.20.0
- @babel/types 7.23.9 development
- @babel/core 7.23.9
- @babel/traverse 7.23.9
- @istanbuljs/schema ^0.1.3
- @syntest/analysis-javascript ^0.2.0-beta.13
- @syntest/ast-visitor-javascript ^0.2.0-beta.4
- @syntest/diagnostics ^0.1.0-beta.0
- @syntest/storage ^0.3.0-beta.2
- istanbul-lib-coverage ^3.2.0
- @babel/types 7.23.9 development
- @babel/core 7.23.9
- @babel/generator ^7.21.9
- @babel/preset-env 7.23.9
- @babel/register 7.23.7
- @syntest/analysis ^0.3.0-beta.2
- @syntest/analysis-javascript ^0.2.0-beta.13
- @syntest/ast-visitor-javascript ^0.2.0-beta.4
- @syntest/cfg ^0.5.0-beta.0
- @syntest/diagnostics ^0.1.0-beta.0
- @syntest/instrumentation-javascript ^0.2.0-beta.5
- @syntest/logging ^0.2.0-beta.2
- @syntest/prng ^0.2.0-beta.2
- @syntest/search ^0.5.0-beta.10
- @syntest/storage ^0.3.0-beta.2
- chai 4.3.7
- chai-as-promised 7.1.1
- lodash.clonedeep 4.5.0
- mocha 10.2.0
- regenerator-runtime 0.13.9
- @syntest/analysis ^0.3.0-beta.2
- @syntest/analysis-javascript ^0.2.0-beta.13
- @syntest/base-language ^0.3.0-beta.11
- @syntest/cfg ^0.5.0-beta.0
- @syntest/diagnostics ^0.1.0-beta.0
- @syntest/logging ^0.2.0-beta.2
- @syntest/metric ^0.2.0-beta.0
- @syntest/module ^0.2.0-beta.4
- @syntest/search ^0.5.0-beta.10
- @syntest/analysis-javascript ^0.2.0-beta.13
- @syntest/base-language ^0.3.0-beta.11
- @syntest/cli-graphics ^0.3.0-beta.1
- @syntest/diagnostics ^0.1.0-beta.0
- @syntest/instrumentation-javascript ^0.2.0-beta.5
- @syntest/logging ^0.2.0-beta.2
- @syntest/metric ^0.2.0-beta.0
- @syntest/module ^0.2.0-beta.4
- @syntest/search ^0.5.0-beta.10
- @syntest/search-javascript ^0.2.0-beta.15
- @syntest/storage ^0.3.0-beta.2
- yargs ^17.7.2