62 lines
3.7 KiB
Markdown
62 lines
3.7 KiB
Markdown
# QA report — Stage 2 playability build
|
||
|
||
Date: 2026-08-18
|
||
|
||
## Result
|
||
|
||
The version-4 debug APK passed the final clean build and one integrated Android 16
|
||
device run. All ten intended level routes completed three consecutive times through
|
||
the production movement/jump input boundary. No retry masking, teleport, direct
|
||
physics mutation, auto-complete, or restart shortcut is used.
|
||
|
||
## Automated checks
|
||
|
||
- Clean Gradle gate: `clean testDebugUnitTest lintDebug assembleDebug assembleDebugAndroidTest` — passed, 66 tasks.
|
||
- JVM tests: 15 passed, 0 failed, 0 skipped.
|
||
- Integrated device gate: `connectedDebugAndroidTest` — 14 passed, 0 failed, 0 skipped.
|
||
- Device test time: 349.702 seconds; Gradle wall time: 5 minutes 59 seconds.
|
||
- Gameplay executions: 30 intended routes (levels 1–10 × 3), three level-8 recovery routes, and two delayed-decision stress routes; lifecycle coverage is a separate method.
|
||
- Android Lint: passed without errors.
|
||
|
||
The five-minute matrix target is not met: the green run exceeds it by 59 seconds.
|
||
Correctness coverage remains intact; test-duration optimization stays open.
|
||
|
||
## Playability evidence
|
||
|
||
- Level 1: movement/jump route, 3/3, zero deaths.
|
||
- Level 2: intended three-corpse bridge, 3/3, exactly three deaths and bodies.
|
||
- Level 3: saw corpse holds the pressure door, 3/3, exactly one death/body.
|
||
- Level 4: toggle, moving lift, and upper gallery, 3/3, zero deaths.
|
||
- Level 5: saw delivery to remote pressure plate, 3/3, exactly one death/body.
|
||
- Level 6: frozen corpse stepping stone, 3/3, exactly one death/body.
|
||
- Level 7: conductive corpse relay, 3/3, exactly one death/body.
|
||
- Level 8: intended timed-platform route 3/3, expired-timer recovery 3/3, and one 96 ms delayed-decision run; all deathless.
|
||
- Level 9: weight AND power door, 3/3, exactly two deaths/bodies.
|
||
- Level 10: saw/freeze/electric/lift procession, 3/3, exactly three deaths/bodies, plus one 96 ms delayed final-traversal run.
|
||
- Activity background/resume: visible pause, held-input clearing, state preservation, and explicit resume passed.
|
||
|
||
## Defects found and fixed by the integrated gate
|
||
|
||
1. Level 6 freezer overlapped the player standing on its frozen body by 26 px. The hazard height was narrowed while retaining floor lethality.
|
||
2. Level 8 trapped the player beyond the pit after the timer expired. A high far-side recovery relay was added; the original timer received a 0.5-second balance margin.
|
||
3. Level 8 platform boarding failed under delayed decisions. The left launch floor was extended by 70 px while the pit's far edge, platform, timers, and recovery relay stayed unchanged.
|
||
4. Level 10 relay clearing and lift boarding were phase-sensitive. The bot now proves actual moving-platform support; floor/lift overlap increased from 40 to 100 px while retaining a 200 px pit and mandatory 410 px lift.
|
||
|
||
## APK verification
|
||
|
||
- File format: valid ZIP/APK; `unzip -t` reports no errors.
|
||
- Package: `com.projectsacrifice.game.debug`.
|
||
- Version: code `4`, name `0.3.0-stage2-playability-debug`.
|
||
- SDK: min 23, target 34, compile 34.
|
||
- Signature: v1 and v2 verified; one standard Android Debug signer.
|
||
- SHA-256: `94652cfe7e7eacbb41d7890944f9adf85b989fde89764809e3b8bfab8e64a12d`.
|
||
- Installation/runtime: the exact APK was installed and exercised by the final Android 16 connected test task.
|
||
|
||
## Remaining scope
|
||
|
||
- Stage 2 manual comprehension/balance sessions have not yet been completed.
|
||
- Possible alternative solutions on levels 2 and 10 still need dedicated negative tests.
|
||
- Screen-lock and process-death/low-memory lifecycle recovery remain open.
|
||
- The character is still Canvas-drawn prototype art; there is no skeleton/rig or skin pipeline yet.
|
||
- This is a debug-signed tester APK, not a Play Store release build.
|