3.7 KiB
3.7 KiB
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
- Level 6 freezer overlapped the player standing on its frozen body by 26 px. The hazard height was narrowed while retaining floor lethality.
- 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.
- 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.
- 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 -treports no errors. - Package:
com.projectsacrifice.game.debug. - Version: code
4, name0.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.