Skip to content

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

License

Notifications You must be signed in to change notification settings

mohrez86/annotest

Repository files navigation

aNNoTest

PyPI version GitHub Downloads Code style: black

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 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, so you can install it using pip:

pip install annotest

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

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 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:

cd $PROJECT_PATH
annotest

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

# in any directory
annotest $PROJECT_PATH

Citing aNNoTest

You can cite the work on aNNoTest as follows:

Mohammad Rezaalipour, Carlo A. Furia: An annotation-based approach for finding bugs in neural network programs. J. Syst. Softw. 201: 111669 (2023)

@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:

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages