12 KiB
12 KiB
| 1 | case_id | priority | area | setup | action | expected | automation | gate | source_tag |
|---|---|---|---|---|---|---|---|---|---|
| 2 | QA-001 | P0 | scope | production-like local build | scan scenes scripts configs and packages | no account meta energy gacha IAP network real ad SDK story or BGM entry | static scan | release | VALIDATION_ADDED |
| 3 | QA-002 | P0 | dice | fixed seed and fresh streams | simulate 1000000 rolls | 36 ordered outcomes pass chi-square p>=0.01 | node test | release | VALIDATION_ADDED |
| 4 | QA-003 | P0 | dice | fixed seed | run 100 rolls twice | dieA dieB and RNG indices byte-identical | node test | release | VALIDATION_ADDED |
| 5 | QA-004 | P0 | dice | all blessings and DDA tiers | compare base dice sequence to clean run | base A/B sequence unchanged | node test | release | VALIDATION_ADDED |
| 6 | QA-005 | P0 | dice | ThirdDieReplace active | exercise replaceA replaceB discard | move sums correct and A/B log preserved | node test | release | VALIDATION_ADDED |
| 7 | QA-006 | P1 | dice | normal roll | force doubles | no universal reward or reroll appears | node test | release | VALIDATION_ADDED |
| 8 | QA-007 | P0 | board | position Tile39 and roll crosses Start | resolve move | exactly one floor transition and no second landing resolve | node test | release | VALIDATION_ADDED |
| 9 | QA-008 | P0 | board | each floor 1..10 | finish lap | floor increments and heal round(maxHp*0.30) capped | node test | release | VALIDATION_ADDED |
| 10 | QA-009 | P0 | board | each floor transition with recorded zero-based loopIndex | inspect good-tile draw and install attempts | request count equals loopIndex plus2 and success count never exceeds request count | node test | release | SOURCE_CONFIRMED |
| 11 | QA-010 | P0 | board | fresh account default eight-meta deck and fixed seed | initialize run and inspect first eight draws | all eight default metas appear once before reshuffle | node simulation | release | SOURCE_CONFIRMED |
| 12 | QA-011 | P0 | board | seed suite 10000 runs | inspect merchant generation | merchant only and always on floors3 6 9 | node simulation | release | VALIDATION_ADDED |
| 13 | QA-012 | P0 | boss | complete floor10 | resolve transition | boss_0 with skill_0 and cooldown7 starts | node test | release | SOURCE_CONFIRMED |
| 14 | QA-013 | P0 | combat | naked run | create player snapshot | stats equal 5|40|10|100|150|0|0|0|5 | node test | release | SOURCE_CONFIRMED |
| 15 | QA-014 | P0 | combat | floor1..10 | spawn base enemies | base stats match floor-balance.csv exactly | node test | release | SOURCE_CONFIRMED |
| 16 | QA-015 | P0 | combat | floor10 boss spawn | inspect snapshot | multipliers attack2 hp4 defense1 speed1 evasion1 aim1 lifeSteal0 | node test | release | SOURCE_CONFIRMED |
| 17 | QA-016 | P0 | combat | controlled attack and defense | run deterministic hit | validation baseline formula matches exact integer result | node test | prototype | VALIDATION_ADDED |
| 18 | QA-017 | P0 | combat | clean capture matrix | run fit report | player and enemy damage median APE<=5% | analysis script | release | VALIDATION_ADDED |
| 19 | QA-018 | P0 | combat | clean capture matrix | run duration fit | floor bands and boss median APE<=10% | analysis script | release | VALIDATION_ADDED |
| 20 | QA-019 | P0 | combat | hit and evasion capture | run Wilson check | predictions inside 95 percent intervals | analysis script | release | VALIDATION_ADDED |
| 21 | QA-020 | P0 | combat | critical and lifeSteal capture | run fit | crit ratio and healing median APE<=5% | analysis script | release | VALIDATION_ADDED |
| 22 | QA-021 | P0 | combat | attack speed capture | run interval fit | player and enemy median interval APE<=5% | analysis script | release | VALIDATION_ADDED |
| 23 | QA-022 | P0 | DDA | tier0 normal run | roll dice and loot sequences | DDA does not alter dice shop loot or events | node test | release | VALIDATION_ADDED |
| 24 | QA-023 | P0 | DDA | known state transitions | save reload | state arrays multipliers recentBattleMs and reason preserved | node test | release | VALIDATION_ADDED |
| 25 | QA-024 | P0 | DDA | clean DDA captures | run transition matcher | exact transition and multiplier match | analysis script | release | VALIDATION_ADDED |
| 26 | QA-025 | P0 | potion | Fight and one charge | double click same tick | only one use and one heal | node test | release | VALIDATION_ADDED |
| 27 | QA-026 | P0 | potion | each count and heal level | load lookup | 10 capacity and 21 heal records exact | node test | release | SOURCE_CONFIRMED |
| 28 | QA-027 | P0 | potion | each of 9 augments | run isolated scripted scenario | state delta equals potions.csv contract | node test | release | VALIDATION_ADDED |
| 29 | QA-028 | P1 | potion | GuaranteedDouble source row | scan pools and shop | disabled augment never appears | static scan | release | SOURCE_CONFIRMED |
| 30 | QA-029 | P0 | gear | catalog load | count and group | exactly 40 with 10 per slot | node test | release | SOURCE_CONFIRMED |
| 31 | QA-030 | P0 | gear | loot simulation 1000000 | inspect quality counts | weights fit 210|60|28|4|1 within statistical tolerance | node simulation | release | SOURCE_CONFIRMED |
| 32 | QA-031 | P0 | gear | 100000 simulated runs | count view opportunities | P50 between6 and8 | node simulation | release | VALIDATION_ADDED |
| 33 | QA-032 | P0 | gear | slot empty and occupied | equip new gear | new flies in old leaves and old salvage points once | integration | release | VALIDATION_ADDED |
| 34 | QA-033 | P0 | gear | batch with 3 unhandled | close modal | all 3 salvage in source order with no duplicate | integration | release | VALIDATION_ADDED |
| 35 | QA-034 | P0 | gear | all 13 statuses | generate each | min max plus rank and display precision match | node test | release | SOURCE_CONFIRMED |
| 36 | QA-035 | P0 | smithy | quality ranks0..3 | run 100000 trials each | base success rates fit80|50|30|10 | node simulation | release | SOURCE_CONFIRMED |
| 37 | QA-036 | P0 | smithy | boost used ranks0..3 | run 100000 trials each | boost rates fit100|80|50|30 | node simulation | release | VALIDATION_ADDED |
| 38 | QA-037 | P0 | smithy | force failure | resolve | equipment removed and pre-failure quality salvage once | node test | release | VALIDATION_ADDED |
| 39 | QA-038 | P0 | blessing | load pool | count enabled | 31 source plus ThirdDieReplace equals32 | node test | release | SOURCE_CONFIRMED |
| 40 | QA-039 | P0 | blessing | reveal card | use boost | replacement differs and only Accept remains | node test | release | VALIDATION_ADDED |
| 41 | QA-040 | P0 | blessing | pool edge only same eligible | use boost | original accepted and transaction commits without loop | node test | release | VALIDATION_ADDED |
| 42 | QA-041 | P0 | blessing | levels0..40 | lookup star cost | index clamps to29 and sequence matches source | node test | release | SOURCE_CONFIRMED |
| 43 | QA-042 | P0 | shop | load offers | count and group | 97 total with source distribution plus one augment | node test | release | VALIDATION_ADDED |
| 44 | QA-043 | P0 | shop | open merchant | inspect slots | 3 fixed and 3 unique random eligible offers | integration | release | VALIDATION_ADDED |
| 45 | QA-044 | P0 | shop | reroll count0..5 | inspect quote | cost equals3+2*n | node test | release | SOURCE_CONFIRMED |
| 46 | QA-045 | P0 | shop | insufficient points | attempt purchase | no negative balance no RNG consumption no offer mutation | node test | release | VALIDATION_ADDED |
| 47 | QA-046 | P0 | shop | purchase limit reached | reroll and reopen | offer remains ineligible | node test | release | SOURCE_CONFIRMED |
| 48 | QA-047 | P0 | shop | purchase tile and cancel install | reopen | pending install preserved and no refund or loss | integration | release | VALIDATION_ADDED |
| 49 | QA-048 | P0 | event | EV-140 forced | perform base digs | 5x5 board and exactly5 actions before boost | integration | release | VALIDATION_ADDED |
| 50 | QA-049 | P0 | event | EV-151 forced | inspect cabinet | 20 capsules and1 base attempt | integration | release | SOURCE_CONFIRMED |
| 51 | QA-050 | P0 | event | EV-166 forced | inspect all seeds | one of6 source maps and3 base shots | integration | release | SOURCE_CONFIRMED |
| 52 | QA-051 | P0 | event | each tile137 138 139 140 141 142 143 144 151 152 164 166 | force via debug | input presentation settlement save and exit all pass | manual debug checklist | release | SOURCE_CONFIRMED |
| 53 | QA-052 | P2 | legacy boost | load old transaction fixture | restore | no UI control rendered and no new transaction created | node migration | archive | DEFERRED_NOT_EXPOSED |
| 54 | QA-053 | P2 | legacy boost | old PENDING fixture | restore | compatibility recovery does not expose button | node migration | archive | DEFERRED_NOT_EXPOSED |
| 55 | QA-054 | P2 | legacy boost | old COMMITTED fixture | restore | render does not apply balance or reward delta again | node migration | archive | DEFERRED_NOT_EXPOSED |
| 56 | QA-055 | P2 | legacy boost | normal event instance | inspect controls | no boost transaction can be initiated from UI | node test | archive | DEFERRED_NOT_EXPOSED |
| 57 | QA-056 | P0 | revive | lethal with source Revive available | resolve | source blessing resolves once before failure decision | node test | release | SOURCE_CONFIRMED |
| 58 | QA-057 | P0 | revive | lethal with no source Revive | resolve | full DEFEAT animation then direct failed state with no ad controls | node integration | release | VALIDATION_ADDED |
| 59 | QA-058 | P0 | revive | source Revive resolves but hp remains zero | resolve | run fails with no ad or second revive choice | node test | release | VALIDATION_ADDED |
| 60 | QA-059 | P0 | revive | transition to next floor then lethal without blessing | resolve | run fails directly and no floor-based ad eligibility exists | node test | release | VALIDATION_ADDED |
| 61 | QA-060 | P0 | checkpoint | each modal battle purchase equip blessing event boundary | refresh before and after commit | no half settlement duplicate RNG or duplicate reward | node integration | release | VALIDATION_ADDED |
| 62 | QA-061 | P0 | checkpoint | corrupt main checksum | load | backup slot loads and committed transaction set preserved | node test | release | VALIDATION_ADDED |
| 63 | QA-062 | P0 | checkpoint | corrupt both slots | load | user sees corrupt save prompt and can start clean run | node integration | release | VALIDATION_ADDED |
| 64 | QA-063 | P0 | checkpoint | same seed DDA and command transcript | replay | board loot combat shop and checkpoints byte-identical | node replay | release | VALIDATION_ADDED |
| 65 | QA-064 | P0 | UI | 750x1334 and808x1440 | visit all screens | no crop overlap or inaccessible control | visual regression | release | VALIDATION_ADDED |
| 66 | QA-065 | P1 | UI | first-time flags clear | trigger five guides | each appears once points at correct control and never stacks | integration | release | VALIDATION_ADDED |
| 67 | QA-066 | P0 | UI | normal build | inspect board and combat | no auto-roll combat speed debug or real ad playback screen | static and manual | release | VALIDATION_ADDED |
| 68 | QA-067 | P0 | art | all sprite nodes at rest | capture transform | world pixel coordinates and scales are integers | node test | release | VALIDATION_ADDED |
| 69 | QA-068 | P0 | VFX | all boss and curved/rush attacks | compare tell and hit mask | mismatch<=4 logical pixels | integration capture | release | VALIDATION_ADDED |
| 70 | QA-069 | P1 | VFX | stress battle and boss death | profile particles | live particles stay within animation-vfx budgets | profiler | release | VALIDATION_ADDED |
| 71 | QA-070 | P0 | audio | production build | scan loaded banks and clips | no background music and all looping SFX stop on exit | static and integration | release | VALIDATION_ADDED |
| 72 | QA-071 | P0 | debug | force all commands | inspect logs | commands use Domain API and every record has debug=true | integration | release | VALIDATION_ADDED |
| 73 | QA-072 | P0 | logs | normal 10-floor run | export JSON | only technical allowlist fields and no user profile or cross-run stats | static schema test | release | VALIDATION_ADDED |
| 74 | QA-073 | P0 | onsite | 10 live runs | cover attack attackSpeedCrit survival zeroRevive oneRevive | lead signs overall gameplay and roughly10-12min | onsite signoff | release | VALIDATION_ADDED |
| 75 | QA-074 | P0 | boss cycle | DiceGauge debug stage and six completed ROLL actions | observe runtimeGauge counter and board | first2 reach gauge100 and enter countdown4; next4 reach0 then exactly4 unique nonblessing tiles convert and runtimeGauge clears | node integration and visual regression | release | RUNTIME_OBSERVED |
| 76 | QA-075 | P0 | potion | 150 maxHP 1 currentHP and heal level80 | use one potion | currentHP becomes81 and charge decreases once; healing caps at maxHP | node test | release | SOURCE_CONFIRMED |
| 77 | QA-076 | P0 | board | ROLL any legal 2D6 result from Start | compare visible sum animation steps and final tile index | visible total equals exact number of clockwise one-tile moves and final index equals sum | browser visual regression | release | RUNTIME_OBSERVED |
| 78 | QA-077 | P0 | board | render battle merchant mini-boss infected-boss and all installable event tiles | inspect labels image URLs and load status | 1-4 skull battle tiles and both boss tiles use distinct original assets and every event remains identifiable | browser integration | release | SOURCE_CONFIRMED |
| 79 | QA-078 | P0 | ads | open every normal screen event and lethal flow | scan controls and DOM | zero ad boost reroll extra-attempt extra-shot or ad-revive buttons; lethal flow reaches DEFEAT | browser integration | release | VALIDATION_ADDED |
| 80 | QA-079 | P0 | balance | new run with initial stats and no potion ads or debug buff | resolve first three normal battle groups | player survives and defeats all three groups | node test | release | VALIDATION_ADDED |
| 81 | QA-080 | P0 | tile lifecycle | resolve battle mini-boss and event then advance a floor | inspect source cells | each resolved source becomes EMPTY wasteland and stays wasteland unless a legal new tile covers it | node integration | release | VALIDATION_ADDED |
| 82 | QA-081 | P0 | infected boss | leave infected boss alive and cross Start three times | inspect all existing normal battle cells | each crossing adds one enemy per normal battle capped at4 and source stops after three pollution triggers | node integration | release | VALIDATION_ADDED |
| 83 | QA-082 | P0 | boss rule | stage0 Default run from initialization through floor10 | inspect state HUD and checkpoints | no runtimeBossGauge or BossDiceCounter pressure state is created; boss_0 begins only after the tenth floor | node integration and visual regression | release | SOURCE_CONFIRMED |