動作確認チェックリスト(手動 + 自動化移行)
最終更新: 2026-03-07
目的
- リリース前の手動確認を抜け漏れなく実施する
- 手動確認項目をそのまま自動化テストへ移行できるように整理する
1. 手動確認チェックリスト(リリース前)
1-1. 起動・基本導線
- [ ]
yarn dev:electronでアプリが起動する - [ ] 起動直後にクラッシュやコンソール致命エラーがない
- [ ] 主要タブ(Player Dashboard / Match List / Realtime Analysis / Settings / Info)へ遷移できる
- [ ] タブ遷移時に画面が固まらない
1-2. プロファイル・設定保存
- [ ] UID/プレイヤー名/ログディレクトリの保存・再読み込みができる
- [ ] アプリ再起動後に設定が復元される
- [ ] 不正入力時にエラーメッセージが表示される
1-3. Realtime Analysis
- [ ] ログ監視の開始/停止ができる
- [ ] 新規ログ検知で状態表示が更新される
- [ ] 手動解析で結果が表示される
- [ ] 自動更新ON時に試合終了後の反映が行われる
1-4. Player Dashboard
- [ ] 総試合数・勝率・主要カードが表示される
- [ ] キャラ別勝率チャートが表示崩れなく描画される
- [ ] 対面分析(選択キャラ/全キャラ集計)が切り替わる
- [ ] 0件データ時に空表示が破綻しない
1-5. Match List
- [ ] 一覧が新しい順で表示される
- [ ] 日付/キャラなどのフィルタが機能する
- [ ] 試合詳細(編成・勝敗・時刻)が一致する
- [ ] 削除操作が確認付きで実行できる
1-6. Overlay / Settings
- [ ] オーバーレイ項目の位置・サイズ変更が反映される
- [ ] 表示ON/OFFが想定どおり切り替わる
- [ ] リセット操作で初期状態に戻る
- [ ] 再起動後にレイアウト状態が復元される
1-7. ブラウザ自動化(実装済み範囲)
- [ ] 開始/停止ボタンでセッション制御できる
- [ ] URLフィルタが機能する
- [ ] 200/xhr/fetch のレスポンスが一覧に出る
- [ ] レスポンス詳細表示とコピーが動作する
- [ ] 未ログイン時とログイン時の状態表示が正しい
1-8. 品質ゲート
- [ ]
yarn typecheck - [ ]
yarn lint - [ ]
yarn test:unit - [ ]
yarn build:electron-ts
1-9. 性能リグレッション確認(spec: app-performance-optimization)
- [ ] 冷起動の体感:
yarn dev:electron直後にスプラッシュが即時表示され、Control ウィンドウが概ね 5 秒以内に描画される(タイマー必須ではないが「待ち時間が伸びた」感覚があれば計測) - [ ] タブ初回切替: 各タブ(Player Dashboard / Match List / Realtime Analysis / Log Analysis / Browser Automation / Settings / Info)を初めて開いたとき、空白フリーズが目視で 1 秒以上続かない(lazy mount の劣化検知)
- [ ] DB 初期化失敗フォールバック:
matches.dbを一時的にリネームしてから起動し、エラーダイアログ / リカバリ UI が表示されてアプリ自体は落ちない(initDatabase 失敗時の堅牢性) - [ ] chokidar 起動タイミング: 「ログ自動監視」を OFF のまま起動し、
Get-Process等で chokidar / fs.watch ハンドルが余分に増えていないことを確認(Phase 1.5 の opt-in 化が効いている)
2. 自動化テストへ移行する方法(結論: 可能)
手動のみの状態から、次の3層で段階移行する。
レイヤーA: 既存ユニットテスト強化(最短)
- 対象: Hook/Utils/Store(既存の Vitest 資産を拡張)
- 目的: 計算ロジックと変換ロジックの回帰防止
- 実行:
yarn test:unit
追加優先例:
- Realtime Analysis の状態遷移(開始/停止/失敗)
- 設定保存・復元ロジック
- Match List のフィルタ条件組み合わせ
レイヤーB: コンポーネント統合(Storybook + RTL)
- 対象: タブ主要UI(表示・空状態・エラー状態)
- 目的: UI崩れと分岐表示の回帰防止
- 実行: Storybook ストーリー + コンポーネントテスト
追加優先例:
- Realtime Analysis パネルの状態バッジ表示
- Match Detail 表示整合
- Settings の入力バリデーション表示
レイヤーC: E2E(Electron)
- 対象: 起動から主要フロー完了まで
- 目的: 手動確認の置き換え
- 候補: Playwright ベースの Electron E2E
自動化しやすいシナリオ:
- アプリ起動 → タブ遷移
- プロファイル保存 → 再起動 → 復元確認
- モックログ投入 → 解析実行 → UI更新確認
注意点:
- 外部サイト依存のブラウザ自動化は、まずローカルモックAPIで安定化してから本番サイト接続テストを分離する
3. 導入ロードマップ(4週間)
Week 1
- [ ] 手動チェックリスト運用開始(本ドキュメント)
- [ ] CIで
typecheck + lint + test:unitを必須化
Week 2
- [ ] Realtime/Settings/Match List の不足ユニットテストを追加
- [ ] 失敗時スクリーンショットまたはログ出力を整備
Week 3
- [ ] 主要タブのコンポーネント統合テストを追加
- [ ] Storybook 上の代表状態を固定化
Week 4
- [ ] Electron E2E(スモーク3本)を追加
- [ ] nightly で E2E、PR では unit + component を回す
4. 実行テンプレート
text
実施日:
実施者:
対象ブランチ:
[手動チェック]
- 起動・基本導線: OK/NG
- Realtime Analysis: OK/NG
- Player Dashboard: OK/NG
- Match List: OK/NG
- Settings/Overlay: OK/NG
- ブラウザ自動化: OK/NG
[自動テスト]
- yarn typecheck: OK/NG
- yarn lint: OK/NG
- yarn test:unit: OK/NG
- yarn build:electron-ts: OK/NG
備考: