annotest

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


License
GPL-3.0
Install
pip install annotest==0.1

Documentation

aNNoTest

aNNoTest is a tool (and an approach) to automatically generating bug-finding inputs for NN program testing. Paper An annotation-based approach for finding bugs in neural network programs by Mohammad Rezaalipour and Carlo A. Furia explains aNNoTest in details and provides guidelines on how to use it, effectively.

Installation

aNNoTest can be installed in two ways. To install it from PyPi, use the following command.

pip install annotest

It can also be installed from source code:

git clone git@github.com:atom-sw/annotest.git
cd annotest

pip install .

We have tested aNNoTest on Python 3.6. But it should work on Python 3.6+ as well.

Using aNNoTest

aNNoTest is a command line tool. After annotating your project with aN (aNNoTest's annotation language) you can cd to your project directory and then run aNNoTest.

cd path_to_python_project

annotest

Or you can input the project path to aNNoTest when running it:

annotest path_to_python_project

Examples

To see examples of using aNNoTest, see the following repository:

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

Citations

aNNoTest's Journal Paper:

@article{Rezaalipour:2023,
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},
url = {https://www.sciencedirect.com/science/article/pii/S016412122300064X},
author = {Mohammad Rezaalipour and Carlo A. Furia},
keywords = {Test generation, Neural networks, Debugging, Python}
}

Mirrors

The current repository is a public mirror of our internal private repository. We have two public mirrors, which are as follows: