Skip to content

5.0 リリース前 ユーザー手動チェックリスト

最終更新: 2026-05-09 対象バージョン: 5.0.0(ベース: origin/main v4.1.0 以降の蓄積)

このドキュメントの位置づけ

  • 5.0 は 「v4.1 → main の蓄積を束ねるメジャーリリース」 として出す
  • 中核は次の 3 領域の正式 GA:
    • A. 既存実装の集大成(lazy load 撤廃、補助 UI 再設計、デバッグ・性能タブ、BattleId 紐付け、自動起動、キャラ追加 など)
    • B. Standalone Recorder アプリ(同一バイナリのモード切替方式、--recorder-mode / exe リネームコピー / トレイ)
    • C. リアルタイム解析 + ブラウザ自動化の安定化(DB 保存対象フィルタ、log×API 再照合、未ログイン検知 UI、storageState 維持、probeAuthEndpoint リトライ など)
  • 本書は 「ユーザー(リリース担当者)が最後に手動で確認すべきもの」 に絞る。自動テストで担保される範囲は manual-test-checklist.md と E2E Coverage Map(未作成)を参照。

0. 事前準備

  • [ ] クリーンインストール検証用に別 userData で起動できる状態を作る(yarn dev:fresh 系 / 手動で別ディレクトリ)
  • [ ] 既存ユーザー想定検証:いつもの userData / DB / 設定を残したまま 5.0 ビルドを起動できる状態を作る
  • [ ] ビルド成果物yarn build:electron:winNSIS と Portable の両方release/ に出ていること
  • [ ] バックアップ<userData>/matches.db<userData>/user-settings.json を別場所にコピー

1. 起動・基本導線(lazy load 撤廃の効果確認)

  • [ ] アプリ起動時にスプラッシュが即時表示される
  • [ ] 全タブを順に切替して Suspense フリッカー / 空白フリーズが出ない
    • Player Dashboard / Match List / Realtime Analysis / Log Analysis / Browser Automation / Settings / Info / Debug
  • [ ] タブ内コンテンツがスクロールできる
  • [ ] 補助 UI 領域がスクロールできる
  • [ ] 起動直後にコンソール致命エラーがない(preload 失敗・IPC レースの回帰なし)

2. リアルタイム解析(C 領域)

  • [ ] 監視 ON/OFF の切替が即時反映される
  • [ ] DB 保存対象フィルタ(rank only / rank + casual)を切替えて、対象外の試合が DB に保存されない
  • [ ] TYPE 上書きバグの回帰確認:Casual 試合のあと Rank 試合を流して matches.type が正しく書き換わる
  • [ ] 試合終了時にオーバーレイが自動更新される(自動更新 ON 時)
  • [ ] 自動更新 OFF 時には手動で「最新試合に更新」できる
  • [ ] 試合タイプフィルタ(rankOnly / rankAndCasual) が UI 側で機能し、オーバーレイへの反映と一致する

3. ブラウザ自動化(C 領域)

  • [ ] 起動時に自動でセッション立ち上げが動く / 失敗してもアプリ起動はブロックされない
  • [ ] 未ログイン検知:未ログイン状態で OS 通知 + Snackbar + LoginRequiredDialog が出る
  • [ ] LoginRequiredDialog の「ログイン」リンクが実際の戦績ページに飛ぶ
  • [ ] storageState 維持:一度ログイン → アプリ再起動 → ログイン済みのまま動く
  • [ ] probeAuthEndpoint 安定性:ネットワーク瞬断 / 単発失敗で誤ログアウト判定にならない(リトライが効く)
  • [ ] 試合終了ワークフロー:ゲームで 1 試合終了 → battle_listbattle_detail が取得され DB に紐づく
  • [ ] log×API マッチ可視化:Match List の各行に MatchDataSourceChip(log / log+api / api-only)が出る
  • [ ] log×API 再照合 (dry-run):未紐付け matches に対して dry-run 実行 → 件数レポートが出る
  • [ ] api-only 一括削除:dry-run 後に削除 → DB に残らない、UI からも消える

4. Standalone Recorder(B 領域)

実装方式: 同一バイナリのモード切替(exe 名 or --recorder-mode フラグで判定)。詳細は recorder-mode.md 参照。 spec の Phase 1〜3(独立 entrypoint / processLock / NSIS opt-in / Steam flag 付け替え)は post-5.0 とする。

  • [ ] WingStats Recorder.exe(electron-builder の afterPack で生成 / リネームコピー)で起動 → UI が出ない / トレイアイコンのみ
  • [ ] トレイ右クリックメニュー:
    • [ ] 状態表示(監視件数 / ブラウザ ON/OFF)
    • [ ] 「ブラウザ自動化」トグル → user-settings.json に保存され即時反映
    • [ ] 「ヘッドレス」トグル
    • [ ] 「起動時 fetchSeasonOnly を実行」トグル
    • [ ] 「今すぐ fetchSeasonOnly を実行」ボタン
    • [ ] 「ブラウザ自動化を再起動」
  • [ ] 常駐メモリが概ね 200MB 前後(PoC 実測 182MB)に収まる
  • [ ] 試合終了時に最新 1 件だけ取得 されてワークフローが軽量に走る
  • [ ] トレイメニューの「全件同期」 で過去分を手動取り込みできる
  • [ ] 初回起動(storageState なし)で headless が自動的に OFF になる
  • [ ] Recorder 動作中に Viewer を起動 しても両方とも動く(DB が壊れない)
    • ※ processLock 未実装なので「両方とも走るが排他で落ちない」ことだけ確認
  • [ ] <userData>/user-settings.jsonrecorderBrowserAutomation セクションが書き換わる

5. オーバーレイ表示

  • [ ] OBS ブラウザソースで overlay.html が表示される(packaged 版の loadFile パス回帰なし)
  • [ ] レイアウト位置・サイズ変更が永続化、再起動後に復元
  • [ ] オーバーレイ起動時 0/0 リセットオプションの ON/OFF が効く
  • [ ] 試合タイプフィルタの設定がオーバーレイに反映される
  • [ ] パーツ表示 ON/OFF が想定通り
  • [ ] BP 対戦相手ウィンドウの表示・非表示トグルが効く

6. 補助 UI / デバッグタブ(A 領域)

  • [ ] 補助 UI Drawer + 1行ステータスバー:開閉が動く
  • [ ] 自動オープンが default OFF
  • [ ] WorkflowProgressPanel に各フェーズの具体ステップが表示される
  • [ ] デバッグ・性能タブ:オーバーレイ / ブラウザ自動化 / ログ監視の現在値が read-only で正しく表示
  • [ ] 各セクションの「→ 編集」ボタンで対応する設定セクションへアンカー遷移できる

7. 自動起動 / Steam 連携(A 領域)

  • [ ] ゲーム起動バナー検出でアプリが自動立ち上げされる(LogBasedGameLaunchDetector)
  • [ ] Steam 起動オプション生成コマンドが期待した exe を指す
  • [ ] AutoLaunchSection の説明文 / トグル / 起動方法表示が期待通り

8. データ整合性

  • [ ] BattleId 紐付け:log 由来 match と API 由来 match が battle_id で同じ行に統合される
  • [ ] BattleType マッピング:未知の id でも UI が壊れない("Unknown" 表示)
  • [ ] picks fallback の永続化:API 経由で復元された BAN/PICK 候補が DB に残る
  • [ ] 新キャラ Dead Master:画像表示・キャラ別統計・対面分析で認識される

9. 自動更新 / インストーラ

  • [ ] 4.x → 5.0 自動更新:4.1.0 をインストール後、5.0 を release 経由で更新確認 → DB / 設定が引き継がれる
  • [ ] NSIS インストーラから新規インストール → 起動できる
  • [ ] Portable 版から起動できる(4.1 で修正された白画面の回帰なし)
  • [ ] アンインストール時のショートカット / userData の挙動が期待通り

10. 品質ゲート(push 前の最終確認)

  • [ ] yarn tsc --noEmit — 型エラー 0 件
  • [ ] yarn lint — 0 errors / 0 warnings
  • [ ] yarn test:unit — 全 pass(skip のみ許容)
  • [ ] yarn test:e2e:smoke — 全 pass
  • [ ] yarn build:electron:win で NSIS / Portable の両成果物が生成

11. リリース実行

詳細は release-workflow.md を参照。

  1. release/v5.0.0 ブランチで全項目 OK を確認
  2. main へ merge
  3. yarn release major(v4.1.0 → v5.0.0)
  4. CHANGELOG ドラフトをエディタで整形(4.1 → 5.0 の集大成として記述)
  5. release commit + annotated tag が作成されたことを確認
  6. 動作確認完了後のみ 手動で git push origin main && git push origin v5.0.0
  7. tag push が .github/workflows/release.yml をトリガし、GitHub Release が自動生成

実行記録テンプレート

text
実施日:
実施者:
対象ブランチ / コミット:

[手動チェック]
- 0. 事前準備: OK/NG
- 1. 起動・基本導線: OK/NG
- 2. リアルタイム解析: OK/NG
- 3. ブラウザ自動化: OK/NG
- 4. Recorder: OK/NG
- 5. オーバーレイ: OK/NG
- 6. 補助 UI / デバッグタブ: OK/NG
- 7. 自動起動 / Steam 連携: OK/NG
- 8. データ整合性: OK/NG
- 9. 自動更新 / インストーラ: OK/NG

[品質ゲート]
- yarn tsc --noEmit: OK/NG
- yarn lint: OK/NG
- yarn test:unit: OK/NG
- yarn test:e2e:smoke: OK/NG
- yarn build:electron:win: OK/NG

備考:

関連ドキュメント

  • manual-test-checklist.md — 通常の手動 + 自動化移行ガイド
  • recorder-mode.md — Recorder Mode 運用ガイド
  • release-workflow.mdyarn release 手順
  • e2e-coverage-map.md(未作成)— E2E でカバー済みのシナリオ一覧
  • e2e-flake-handbook.md(未作成)— E2E 失敗時の見方