Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Corellium MVP #1798

Closed
zuziaka opened this issue Apr 13, 2021 · 0 comments
Closed

Corellium MVP #1798

zuziaka opened this issue Apr 13, 2021 · 0 comments

Comments

@zuziaka
Copy link
Contributor

zuziaka commented Apr 13, 2021

Corellium Android Tests MVP

Goal

The goal is to :

  • implement sharding, which allows to:
    • split test cases from one test apk to run on many devices.
    • group test cases from many test apks to run on a single device.
    • mix both of the above options.
  • run tests on Corellium android devices.
  • deliver all above as library module dependency for flank.

Design

Constraints

  • One execution can invoke many devices for testing
  • One device can be used for testing many app apks
  • One app apk can have associated many test apks

Keywords

  • execution - a single run of the $ flank corellium test android run.
  • device - an abstraction for the device provided by Corellium through VPN+ADB or API.
  • app apk - apk file with application.
  • test apk - apk file with tests.

Diagram

cli-domain-sequence

API

Input

Auto sharding:

corellium:
  test-apks:
    - app: /path/to/app1.apk
      tests:
        - apk: /path/to/app-android-test1.apk
    - app: /path/to/app2.apk
      tests:
        - apk: /path/to/app-android-test1.apk
        - apk: /path/to/app-android-test2.apk

Manual sharding:

corellium:
  test-apks:
    - app: /path/to/app.apk
      tests:
        - apk: /path/to/app-android-test1.apk
          shards:
            - shard-0:
                - "class com.TestClassA#test1"
                - "class com.TestClassA#test2"
                - "class com.package2.TestClassB#test4"
            - shard-1:
                - "class com.TestClassA#test3"
                - "class com.package2.TestClassB#test1"
                - "class com.package2.TestClassB#test2"
                - "class com.package2.TestClassB#test3"
        - apk: /path/to/app-android-test2.apk
          shards:
            - shard-0:
                - "class com.ParameterizedTest"
                - "class com.package3.TestClass3#test5"
            - shard-1:
                - "class com.package3.TestClass3#test1"
                - "class com.package3.TestClass3#test2"
            - shard-2:
                - "class com.package3.TestClass3#test3"
                - "class com.package3.TestClass3#test4"

Output

The standard JUnitReport.xml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants