aNNoTest
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:
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| annotest-0.1.1.tar.gz | 34.3 kB | Without provenance | Details for annotest-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| annotest-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for annotest-0.1.1-py3-none-any.whl |
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
|
Security for aNNoTest 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.