https://github.com/atom-sw/annotest

A tool to automatically generating bug-finding inputs for neural network program testing.

https://github.com/atom-sw/annotest

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 14 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.9%) to scientific vocabulary

Keywords

debugging neural-networks python test-generation testing-tool
Last synced: 5 months ago · JSON representation

Repository

A tool to automatically generating bug-finding inputs for neural network program testing.

Basic Info
Statistics
  • Stars: 2
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
debugging neural-networks python test-generation testing-tool
Created over 2 years ago · Last pushed 12 months ago

https://github.com/atom-sw/annotest/blob/main/

# aNNoTest

[![PyPI version](https://badge.fury.io/py/annotest.svg)](https://badge.fury.io/py/annotest)
![GitHub](https://img.shields.io/github/license/atom-sw/annotest)
[![Downloads](https://static.pepy.tech/badge/annotest)](https://pepy.tech/project/annotest)
[![Docs](https://readthedocs.org/projects/annotest/badge/?version=latest)](https://annotest.readthedocs.io/en/latest/)
![Research](https://img.shields.io/badge/Research-Driven-lightgrey)
![Open Source](https://img.shields.io/badge/Open%20Source-Yes-brightgreen)

aNNoTest is a tool (and an approach) to automatically
generate test inputs for neural-network programs written in Python.
The paper [An annotation-based approach for finding bugs in
neural network 
programs](https://doi.org/10.1016/j.jss.2023.111669) by
Mohammad Rezaalipour and Carlo A. Furia presents the aNNoTest approach
and its experimental evaluation; 
this repository describes how to use the tool implementing the approach.


## Installation

aNNoTest is [on PyPI](https://pypi.org/project/annotest/),
so you can install it using `pip`:

```bash
pip install annotest
```

To install the latest (unreleased) version, use the following command:

```bash
pip install git+https://github.com/atom-sw/annotest
```

We mainly tested aNNoTest with Python 3.6, but it should also work on later Python versions.


## Using aNNoTest


### Annotations

aNNoTest relies on annotations to generate test inputs.
[Another repository](https://github.com/atom-sw/annotest-subjects)
shows several examples of Python projects annotated with aNNoTest
with different degrees of detail.


### Running aNNoTest

Once a project is annotated, 
run aNNoTest by simply calling `annotest` in the project's root directory `$PROJECT_PATH`:

```bash
cd $PROJECT_PATH
annotest
```

Alternatively, you can supply the project path directly on the command line:

```bash
# in any directory
annotest $PROJECT_PATH
```


## Publications on aNNoTest

- Mohammad Rezaalipour and Carlo A. Furia. 
**aNNoTest: An Annotation-based Test Generation Tool for Neural Network Programs.**
In Proceedings of the 39th IEEE International Conference on Software Maintenance and Evolution (ICSME  tool demo track).
Pgg. 574579, IEEE Computer Society, October 2023.
[https://doi.org/10.1109/ICSME58846.2023.00075](https://doi.org/10.1109/ICSME58846.2023.00075)

```
@InProceedings{RF-ICSME23-tool-annotest,
  author = {Mohammad Rezaalipour and Carlo A. Furia},
  title = {{aNNoTest}: An Annotation-based Test Generation Tool for Neural Network Programs},
  booktitle = {Proceedings of the 39th IEEE International Conference on Software Maintenance and Evolution (ICSME)},
  pages = {574--579},
  year = {2023},
  month = {October},
  doi = {https://doi.org/10.1109/ICSME58846.2023.00075},
}
```

- Mohammad Rezaalipour and Carlo A. Furia.
**An Annotation-based Approach for Finding Bugs in Neural Network Programs.**
Journal of Systems and Software, 201:111669.
Elsevier, July 2023.
[https://doi.org/10.1016/j.jss.2023.111669](https://doi.org/10.1016/j.jss.2023.111669)

```
@article{aNNoTest-JSS,
   title = {An annotation-based approach for finding bugs in neural network programs},
   journal = {Journal of Systems and Software},
   volume = {201},
   pages = {111669},
   year = {2023},
   issn = {0164-1212},
   doi = {https://doi.org/10.1016/j.jss.2023.111669},
   author = {Mohammad Rezaalipour and Carlo A. Furia}
}
```

## Mirrors

This repository is a public mirror of (part of)
aNNoTest's private development repository.
There are two public mirrors, whose content is identical:

- https://github.com/atom-sw/annotest
- https://github.com/mohrez86/annotest

Owner

  • Name: ATOM software
  • Login: atom-sw
  • Kind: organization
  • Location: Switzerland

Automation in Software and Verification Technology Research Group at USI

GitHub Events

Total
  • Push event: 2
  • Create event: 1
Last Year
  • Push event: 2
  • Create event: 1

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 68 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 2
  • Total maintainers: 1
pypi.org: annotest

A tool to automatically generating bug-finding inputs for neural network program testing.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 68 Last month
Rankings
Dependent packages count: 7.3%
Average: 29.6%
Forks count: 30.4%
Stargazers count: 39.3%
Dependent repos count: 41.5%
Maintainers (1)
Last synced: 6 months ago