Skip to content

Commit

Permalink
Revise and clean up README.
Browse files Browse the repository at this point in the history
  • Loading branch information
mohrez86 committed Jul 7, 2023
1 parent a449828 commit b7ce960
Showing 1 changed file with 45 additions and 44 deletions.
89 changes: 45 additions & 44 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,80 +6,81 @@


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
generate test inputs for neural-network programs written in Python.
The paper [An annotation-based approach for finding bugs in
neural network
programs](https://doi.org/10.1016/j.jss.2023.111669) by
Mohammad Rezaalipour and Carlo A. Furia explains aNNoTest
in details and provides guidelines on how to use it, effectively.
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

Run the following command to install aNNoTest:
aNNoTest is [on PyPI](https://pypi.org/project/annotest/),
so you can install it using `pip`:

```
```bash
pip install annotest
```

We have tested aNNoTest on Python 3.6.
But it should work on Python 3.6+ as well.
We mainly tested aNNoTest with Python 3.6, but it should also work on later Python versions.


## 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
```
### Annotations

```
annotest
```
aNNoTest relies on annotations to generate test inputs.
[Another repository](https://github.com/atom-sw/annotest-subjects)
shows several examples of Python projects annotated with aNNoTest
with different degrees of detail.

Or you can input the project path to aNNoTest:

```
annotest path_to_python_project
### Running aNNoTest

Once a project is annotated,
run aNNoTest by simply calling `annotest` in the project's root directory `$PROJECT_PATH`:

```bash
cd $PROJECT_PATH
annotest
```

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

To see examples of using aNNoTest, see
the following repository:
```bash
# in any directory
annotest $PROJECT_PATH
```

[https://github.com/atom-sw/annotest-subjects](https://github.com/atom-sw/annotest-subjects)

## Citing aNNoTest

## Citations
You can cite the [work on aNNoTest]((https://doi.org/10.1016/j.jss.2023.111669)) as follows:

[aNNoTest's Journal
Paper:](https://doi.org/10.1016/j.jss.2023.111669)
> Mohammad Rezaalipour, Carlo A. Furia: An annotation-based approach for finding bugs in neural network programs. J. Syst. Softw. 201: 111669 (2023)
```
@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}
@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

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

This repository is a public mirror of (part of)
aNNoTest's private development repository.
There are two public mirrors, whose content is identical:

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

0 comments on commit b7ce960

Please sign in to comment.