Skip to main content

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

Project description

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:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

annotest-0.1.1.tar.gz (34.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

annotest-0.1.1-py3-none-any.whl (41.1 kB view details)

Uploaded Python 3

File details

Details for the file annotest-0.1.1.tar.gz.

File metadata

  • Download URL: annotest-0.1.1.tar.gz
  • Upload date:
  • Size: 34.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for annotest-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f519a29b8d48227d31de5d7710a2f50541da15bc055fffbd7a5565fcbbf78bf2
MD5 0db973b006592c2fd1f70a3d58f4e93f
BLAKE2b-256 1b03c206d925bdfc97a876823261807bce238d02867908c89b9ee7e3dda74ac9

See more details on using hashes here.

File details

Details for the file annotest-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: annotest-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 41.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for annotest-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ce2015613317e5550280c1091c1e46ce2dc92dde980c57d855b9fa290698ab2a
MD5 fab9a3da905046c1103005166d3043a0
BLAKE2b-256 32ef11b226ef2340172a95e12346d63197d27b893c71d6765eeeb0cd60c894c5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page