Tutorial Acceptance Test Plan - UQcsse3200/2026-studio-3 GitHub Wiki
Tutorial Acceptance Test Plan
Team: Team 2
Sprint: 3
Feature: #339
Integration task: #365
Integration branch: Feature-2-Sprint3-TutorialTooltips
Step-progression scenarios contributed by: Zixuan Yang (@yangzixuan840-gif)
Last updated: 9 October 2026
Purpose and Scope
This shared page records acceptance scenarios and evidence for the tutorial feature. The initial scenarios below cover Zixuan's step progression, prompt integration, and lifecycle cleanup. Guoqing and Zixuan should execute them against the integrated battle; Jun should join the positioned-UI checks.
Other contributors should add their detailed entry, contextual Event help, and enemy-integration results here or link their own records. This page does not claim that the complete Team 2 feature has already passed manual acceptance.
For implementation details and ownership, see Battle Tutorial Steps and Progression and the feature overview.
Build and Environment
- Current scenario reference and Joel's tested build: ff81a12a, the main-branch commit available before the 8 October 2026, 15:00 AEST code cutoff, including #424. Joel's checks were executed on 9 October 2026.
- The original 7 October plan referenced 3f880bd8, before the later compatibility repair. Historical PR results retain their original build scope.
- Use JDK 21 and record the actual operating system, resolution, branch, and commit for every graphical test run.
- The current scene uses ordinary
bone_crawlerand Jun's positioned BattleTutorialGuidanceView. Team 1's safe enemy is a later integration, not a prerequisite for testing today's step progression. - The positioned view is connected, but its latest-build alignment and interaction still require retained manual evidence.
- Run the focused automated command from the implementation page before manual testing. A green test workflow is not a manual PASS.
Current Scope and Deferred Teaching
The team will add dedicated Buff/status, drawing/draw-pile and full win/loss-rule lessons in the next Sprint. These are not required lessons on the current reference route and are not claimed as delivered. Existing combat mechanics remain unchanged. Prepared legacy text/steps do not establish graphical integration. Team 1's safe-enemy behaviour is separate later work; the current ordinary enemy has no no-player-death guarantee.
Manual Acceptance Scenarios
| ID | Actions | Expected result |
|---|---|---|
| T1 | New Game -> Enter Tutorial. | Isolated battle without a map node; HAND shows the current five-card hand and positioned guidance. |
| T2 | Continue through opening information. | HAND -> CARD_INVENTORY -> ITEM_INVENTORY -> ENERGY -> CARD_COST -> PLAY_A_CARD. Wording and highlights match the frozen reference route; deferred lessons are not expected here. |
| T3 | Attempt invalid drops/rejected plays and another card, then successfully play the highlighted Strike. | Only the exact valid demonstration copy satisfies PLAY_A_CARD. CARD_ANIMATION waits for resolved HP loss, settled visuals and PLAYER_TURN before ENEMY_STATS. |
| T4 | Continue ENEMY_STATS -> ENEMY_ARMOUR -> HEALTH -> END_TURN. Test empty-space dismissal and the real End Turn action separately. | Dismissing End Turn teaching reaches FREE_PLAY without ending the turn. Real PLAYER_END enters ENEMY_ANIMATION, then settled return to PLAYER_TURN reaches FREE_PLAY. Teaching overlays disappear while Exit remains available. |
| T5 | Act during earlier explanations, then reach PLAY_A_CARD. | The reference gate is not bypassed by legacy early-action memory. Check the highlighted copy remains usable and the route does not become stuck. If combat ends early, use T6 rather than assuming all lessons were visited. |
| T6 | Win, including victory before every explanation is visited. | Scene starts one fresh normal run through opening narration -> Map; guide/state clean up. Early victory is a terminal result, not proof of complete teaching. |
| T7 | Exit Tutorial while guidance is active and during FREE_PLAY; repeat input if possible. | One fresh-run transition; no duplicated story, stale guide, tutorial rewards or tutorial state on the normal Map. |
| T8 | ESC -> main menu. Also test screen disposal after a victory callback is queued, with a controlled integration test where necessary. | No old callback starts a new run after leaving. Component cleanup and the scene's separate callback must both be verified. Scene callback guarding is an outstanding code-review risk, not a reproduced manual failure here. |
| T9 | Enter the tutorial again after completing/exiting it. | Starts at HAND with one set of listeners, controls and outcomes. |
| T10 | Lose against the ordinary enemy if reachable. | Main menu fallback once and guide cleanup. This does not establish the later safe-enemy guarantee. |
| T11 | Resize the integrated view, change the hand, hover/drag cards and check current highlights. | Current lesson targets remain aligned/readable and controls usable. Buff/draw-pile target acceptance belongs to the next-Sprint expansion. |
| T12 | Skip Tutorial and play a normal battle; repeat after tutorial completion. | Fresh-run opening narration -> Map. Normal battle has no tutorial prompts/action gates and retains normal rules/transitions. |
For the fresh-run checks in T6/T7, record health, deck, gold, and pending rewards before and after the transition. Tutorial changes must not carry into the normal run. Joel and Guoqing own that reset path; this plan checks that the guidance handoff does not interfere with it.
Joel — Entry and Fresh-Run Execution
Executed by: Joel Zhan (@Joel9368)
Execution date: 9 October 2026 (AEST)
Environment: Windows, Git Bash, Java 21.0.4
Tested commit: ff81a12a587472d2a90df0ae922e2d698975cfb6
Full J1–J5 results, screenshots, and A1 command/output
These checks were executed after the code cutoff against the frozen submission build. Window resolution was not recorded; no resize or multi-resolution acceptance is claimed.
| ID | Executed check | Actual result | Status |
|---|---|---|---|
| J1 | Skip Tutorial -> opening narration -> Map | Map at 100 HP/50 gold, selectable node entered, no stale tutorial UI. | PASS |
| J2 | Normal tutorial victory -> opening narration -> fresh Map | HP/gold changed from 95/50 before victory to 100/50. No ordinary reward selection, stale guide or duplicate transition. | PASS |
| J3 | Voluntary Exit Tutorial -> opening narration -> fresh Map | Map at 100 HP/50 gold; guidance and Exit control removed; no duplicate transition. | PASS |
| J4 | Re-entry and normal-battle interaction | Teaching restarted at the first step without duplicate UI. Normal-battle drag, energy and turn flow worked; continued play was reported without anomalies. | PASS |
| J5 | Skip versus tutorial-exit post-transition inventory/deck comparison | Both fresh runs had matching 11-card starter decks and empty item inventories; post-exit Map at 100 HP/50 gold. | PASS for tested post-transition state |
J5 does not establish inventory isolation while the tutorial is active. Pending reward flags and Fusion allowance are covered by the separate A1 shared-reset regression, rather than inferred from screenshots. Screen-level callback races, ESC interruption, tutorial loss, resizing and Team 1 safety were not tested in this session.
Manual Execution Record
The J checks above establish Joel's recorded entry/fresh-run results. The broader T scenarios below include additional specialist and edge-case checks. PARTIAL means the named subset passed while the remaining checks are NOT TESTED; it is not a PASS for the complete T scenario group.
| IDs | Current status | Actual result and remaining scope | Evidence |
|---|---|---|---|
| T1–T5 | PARTIAL | Tutorial launch and an ordinary guided playthrough were observed in J2–J4. Exact step-by-step target assertions, rejected/other-card gates, early actions, settled-animation gating, and separate tutorial End Turn/dismissal cases were not individually tested. | Joel J2–J4 |
| T6–T10 | PARTIAL | Normal victory, voluntary exit, visible guidance cleanup and repeat entry passed in J2–J5. Early victory, exit during every teaching/free-play state, repeated-input races, ESC/queued navigation, loss fallback and internal listener counts were not independently tested. | Joel J2–J5 |
| T11 | NOT TESTED | Resize and multi-resolution target-alignment acceptance remains unexecuted in Joel's session. | Jun's focused visual results and tested environment still required. |
| T12 | PARTIAL | J1 verified Skip -> narration -> usable Map. J4 verified normal-battle interaction after voluntary tutorial exit. The normal-battle variants after every other exit/completion path were not individually replayed. | Joel J1/J4 |
Retain the tested commit, actual execution date, expected and actual results, and evidence for further T-scenario checks. Do not promote a compound scenario to PASS solely from its partial mapping to J1–J5.
Automated Evidence
The PR rows below are historical verification records. A1 is Joel's separately re-executed 9 October 2026 reset regression. Automated results are distinct from the manual scenario statuses above.
| Evidence | Recorded result | What it establishes |
|---|---|---|
| PR #399 | 84 focused tests passed locally, plus formatting and diff checks. | Controller order, action gates, battle-event integration, cleanup, and related battle/game regressions. |
| PR #401 | 85 focused tests passed locally after review changes, plus formatting and diff checks. | The separate play-card instruction, CARD_DRAW mapping, and unchanged progression/cleanup behaviour. |
| PR #402 | Latest PR-head GitHub unit-test and formatting workflows passed. | Guoqing's automated scene-routing and integration checks; not a complete manual player journey. |
| A1 — Joel's frozen-build reset regression | One selected test re-executed with --rerun-tasks on 9 October 2026: PASSED; BUILD SUCCESSFUL in 34 seconds. Command and terminal output retained. |
GdxGameTest.newRunDisposesOldScreenBeforeResettingPlayerAndDeck: disposal-before-reset, default player state, starter deck, empty new-run items, pending reward/Temple flags and Fusion allowance. Shared-method verification, not all tutorial screen paths or races. |
The 84/85 figures include the related BattleController, BattleActions, and GdxGame tests selected by the focused command. They are not tutorial-only test counts.
The production-event regression BattleTutorialBattleIntegrationTest covers the original/default route and real battle events. Later reference-route tests must be distinguished from that legacy coverage. Component disposal tests cancel that component's queued completion; they do not automatically test BattleScreen's separate victory runnable. #410, #412 and #414 have passing PR-head unit-test and formatting workflows, but this does not change the manual statuses above.
Remaining Team Sign-Off
- Complete the outstanding T-scenario subsets against frozen submission commit
ff81a12a. Record any tests of later code as separate runs rather than replacing the Sprint 3 submission-build evidence. - Add Jun's final view results before claiming positioned/highlight guidance is complete.
- Joel's entry/reset results are recorded above and in #364. Add Yihan's Dice/Fusion help results and the remaining specialist scenarios with their own build-specific evidence.
- After Team 1's later integration, add tests for player safety, reachable victory, and ordinary enemies retaining normal behaviour. Do not mark those guarantees passed for the current ordinary enemy.
- Main integration is recorded in #418 and the subsequent #424 repair. For remaining acceptance criteria, retain the exact build, actual results and evidence; merged code alone does not establish acceptance.
Next-Sprint Expansion
Add dedicated Buff/status, drawing/draw-pile and full win/loss teaching with their real prompt/highlight/step wiring and execution records. Do not mark these future lessons PASS from prepared text alone. Preserve current NOT TESTED statuses until actual tests are performed.