This repo is for our MAGNETO project on automated test oracles for mobile apps.
This repo contains the datasets collected for the . We did open coding followed by taxonomy norming to derive 1. Categorization of Failure Effects on Users
, 2. Oracle Analyses and Failure Categorization
, 3. Resources Needed for Oracle
. We used axial coding to derive 4. App Behavior Invariants
.
MAGNETO detects if an app contains failure using automated oracles. This repo also contains the source code to the automated part, and additional resources to run MAGNETO.
- All the Android applications we used in this MAGNETO evaluation are in
apks
folder. - The result from App Execution for the different apps are in
oracleResourcesAll
folder. oracleResourcesAll
folder contains screen metadata inuis
and screenshots inscreens
for all the buggy version and fixed version of the apps.
- The five automated oracle implementations are in
oracleFromBehavior
folder.
- Each oracle folder has resources used for development, and evaluation along with the python scripts for trigger detection and oracle execution.
- The oracles can be called from command line as:
python <oracleScript.py> -a <appName> -b <bugId>
- Command line examples for each oracle type is in
AllTestScripts.txt
MAGNETO supports building the project via poetry.
All required dependencies are listed in pyproject.toml
under tool.poetry.dependencies.
If using poetry, simply run poetry install
to install dependencies.
If poetry is not used, you can also install the dependency individually via pip install
.