Files
goon-game/QA_REPORT.md
T

62 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.