GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - TheSoftwareDesignLab/MutAPK: Enabling Mutation Testing for Android Apps over APK files

BranchesTags
Open more actions menu

Latest commit

 

History

218 Commits
218 Commits

Folders and files

NameName
Last commit message
Last commit date
.settings
.settings
 
 
docs
docs
 
 
extra
extra
 
 
src
src
 
 
test
test
 
 
.classpath
.classpath
 
 
.gitignore
.gitignore
 
 
.project
.project
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
commands.txt
commands.txt
 
 
operators.properties
operators.properties
 
 
pom.xml
pom.xml
 
 

Repository files navigation

MutAPK

MutAPK is a mutation analysis framework for Android applications over APK Files. MutAPK implements 35 mutation operators specifically for Android apps, covering the following categories:

  • Activity/Intents
  • Android Programming
  • Back-End Services
  • Connectivity
  • Data
  • Database
  • General Programming
  • GUI
  • I/O
  • Non-Functional Requirements

The complete list of mutation operators and their specification is available at the MutAPK website. Given an Android App APK, MutAPK first extracts the Potential Fault Profile (PFP) and then automatically seeds mutants generating mutated copies of the App.

Compile

Download and compile MutAPK with the following commands:

git clone https://github.com/TheSoftwareDesignLab/MutAPK.git
cd MutAPK
mvn clean
mvn package

The generated runnable jar can be found in: MutAPK/target/MutAPK-2.0.0.jar

Usage

To run MutAPK use the following command, specifying the path to the config file:

java -jar MutAPK-2.0.0.jar <pathToJSONConfigFile>

JSON Configuration File

MutAPK uses a JSON file to define the values to be used during execution, an example of this file can be found in ./src/main/resources/parameters.json. Following is the structure of the JSON file:

{
    "apkPath": "./apk/com.evancharlton.mileage_3110.apk",
    "appName": "com.evancharlton.mileage",
    "mutantsFolder": "./mutants", 
    "operatorsDir": "./",
    "multithreadExec": "true",
    "extraPath": "./extra",
    "selectionStrategy": "all",
    "selectionParameters":{
        "amountMutants":"34",
        "perOperator":"false",
        "confidenceLevel":"85",
        "marginError":"10",
        "baseAPKPath":"./"
    }
}

Provide the following list of required arguments when running MutAPK:

  1. APK path: relative path of the apk to mutate;
  2. AppPackage: App main package name;
  3. Output: relative path of the folder where the mutantns will be created;
  4. ExtraCompFolder: relative path of the extra component folder (MutAPK/extra/);
  5. operatorsDir: relative path to the folder containing the operators.properties.
  6. multithread : true or false, specifying whether the mutant generation should be multithreaded or not.
  7. amountOfMutants : Amount of mutants to be generated [OptionalParameter]

Mutation operators can be selected or deselected editing the operators.properties file. To deselect an operator, either comment (#) or delete the corresponding line.

Example

cd MutAPK
java -jar target/MutAPK-1.0.0.jar foo.apk or.foo.app mutants/ extra/ . true

Output

The output directory will contain a log file that summarizes the mutant generation process and a folder for each generated mutant. The mutants folders are named with the corresponding mutant ID (i.e., numerical ID). The log file contains information about the mutation process as well as the type and location of each mutant generated.

About

Enabling Mutation Testing for Android Apps over APK files

thesoftwaredesignlab.github.io/MutAPK/

Topics

android-applicationapkmodel-generatormutation-testingsmali

Resources

Readme
MIT license
Activity
Custom properties

Stars

11 stars

Watchers

1 watching

Forks

5 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.