UIRegressionsPhase 3 dynamic output. Comparison of the BEFORE and AFTER UI Transition Graphs collected by DroidBot.
| Field | Type | Default | Notes |
|---|---|---|---|
status |
DynamicStatus |
skipped |
See enum below. |
blocked_reason |
str |
"" |
Filled when status = "blocked". Empty otherwise. |
before_screens |
list[str] |
[] |
Distinct screen identifiers observed in the BEFORE UTG. |
after_screens |
list[str] |
[] |
Distinct screen identifiers observed in the AFTER UTG. |
diffs |
list[ScreenDiff] |
[] |
Per-screen diff entries. See below. |
activity_coverage_before |
dict[str, int] |
{} |
Activity name → visit count, BEFORE state. |
activity_coverage_after |
dict[str, int] |
{} |
Activity name → visit count, AFTER state. |
nodes_before |
int |
0 |
Total UTG nodes in BEFORE. |
nodes_after |
int |
0 |
Total UTG nodes in AFTER. |
structures_before |
int |
0 |
Distinct view-tree structures in BEFORE (deduplicated by structure_id). |
structures_after |
int |
0 |
Same for AFTER. |
DynamicStatus enum { #dynamicstatus }| Value | Meaning |
|---|---|
completed |
Both APKs built and DroidBot returned UTGs. |
blocked |
Build failed or DroidBot produced no UTG. Paired with blocked_reason. |
skipped |
--skip-dynamic was passed, or no Android module could be detected. |
ScreenDiff| Field | Type | Notes |
|---|---|---|
screen_name |
str |
Identifier of the screen. |
status |
str |
missing (in BEFORE only), new (in AFTER only), or changed (in both, with internal differences). |
details |
str |
Human-readable description of the difference. |
completed run with no diffs:
{
"status": "completed",
"blocked_reason": "",
"before_screens": ["MainActivity", "DetailActivity"],
"after_screens": ["MainActivity", "DetailActivity"],
"diffs": [],
"activity_coverage_before": { "MainActivity": 18, "DetailActivity": 6 },
"activity_coverage_after": { "MainActivity": 17, "DetailActivity": 7 },
"nodes_before": 14, "nodes_after": 14,
"structures_before": 6, "structures_after": 6
}
blocked run:
{
"status": "blocked",
"blocked_reason": "DroidBot produced no UTG artifact",
"before_screens": [],
"after_screens": [],
"diffs": []
}
skipped run (--skip-dynamic):
{ "status": "skipped", "blocked_reason": "", "before_screens": [], "after_screens": [], "diffs": [] }