- Python 3.6 with the following packages installed:
Appium-Python-Client, beautifulsoup4, Flask, Flask-RESTful, gensim, html5lib, lxml, numpy, requests, scipy, selenium
- Appium-Desktop 1.10.0
- GoogleNews-vectors-negative300.bin.gz
- Download the subject apks and
git clone
this project.
- Install subject apps on an emulator
- Start the emulator; Start Appium-desktop
- Run
w2v_service.py
first to activate the background web service for similarity query (modify the path in source code pointing toGoogleNews-vectors-negative300.bin
) - Run Explorerm.py with arguments:
python3 Explorerm.py ${TRANSFER_ID}
TRANSFER_ID is the transfer id, e.g.,
python3 Explorerm.py a21-a22-b21
It will start transferring the test case of a21-Minimal
to a22-Clear
List for the b21-Add task function.
APPIUM_PORT is the port used by Appium-Desktop (4723 by default), EMULATOR is the name of the emulator.
-
The source test cases are under test-repo/[CATEGORY]/[FUNCTIONALITY]/base/[APP_ID].json, e.g.,
test-repo/a2/b21/base/a21.json
. The generated test cases for the target app is under generated/[APP_FROM]-/[APP_TO]-[FUNCTIONALITY].json, e.g.,test-repo/a2/b21/generated/a21-a22-b21.json
-
Evaluator.py
is used to evaluate the test cases generated in terms of precision, recall, etc. Let's say we would like to transfer the testa2/b21/base/a21.json
to the appa22
. The GUI events ina2/b21/base/a21.json
(source events) will be loaded withbase_from
option. The correct GUI events to test the same feature ona22
, i.e.,a2/b21/base/a22.json
(target events), will be loaded withbase_to
option.