Skip to main content

aNNoTest

PyPI version GitHub Downloads Docs Research Open Source

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

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. 574–579, IEEE Computer Society, October 2023. 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
@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:

Release files for aNNoTest 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aNNoTest 0.1.1
File Size Uploaded
annotest-0.1.1.tar.gz 34.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aNNoTest 0.1.1
File Interpreter ABI Platform
annotest-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 75.4 kB

Release files / annotest-0.1.1.tar.gz

Download URL annotest-0.1.1.tar.gz
Size 34.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f519a29b8d48227d31de5d7710a2f50541da15bc055fffbd7a5565fcbbf78bf2
BLAKE2b-256 checksum
How to use checksums
1b03c206d925bdfc97a876823261807bce238d02867908c89b9ee7e3dda74ac9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.20

Release files / annotest-0.1.1-py3-none-any.whl

Download URL annotest-0.1.1-py3-none-any.whl
Size 41.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ce2015613317e5550280c1091c1e46ce2dc92dde980c57d855b9fa290698ab2a
BLAKE2b-256 checksum
How to use checksums
32ef11b226ef2340172a95e12346d63197d27b893c71d6765eeeb0cd60c894c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.20

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page