Skip to content

This repo is for our Magneto project on automated test oracles.

Notifications You must be signed in to change notification settings

SageSELab/Magneto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Magneto

This repo is for our MAGNETO project on automated test oracles for mobile apps.

Behavioral Oracle Taxonomy

This repo contains the datasets collected for the behavioral oracle taxonomy. 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.

Automated Oracles

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.

MAGNETO Approach Overview:

MAGNETO Approach Overview

App Execution

  • 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 in uis and screenshots in screens for all the buggy version and fixed version of the apps.

Oracle Trigger Detection and Oracle Execution

  • The five automated oracle implementations are in oracleFromBehavior folder.
folder Oracle
backButton Pressing back should lead to the previous screen
languageDetection The language change should be reflected on all screens
orientationChange The screen content should not change on rotation
themeChange Theme change should be reflected on all screens
userEnteredData User-entered data should display correctly
  • 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

Dependencies

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.

About

This repo is for our Magneto project on automated test oracles.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages