Files
goon-game/QA_REPORT.md

3.7 KiB
Raw Permalink Blame History

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.