ponshu-room-lite/DAY2_SECURITY_CHECKLIST.md

5.2 KiB
Raw Blame History

Day 2: セキュリティ & キャッシュ確認チェックリスト

実施日: 2026-01-22
担当: 開発者(実機テスト)


1. Git履歴からAPIキー削除確認完了

確認結果

  • .gitignorelib/secrets.local.dartlib/libsecrets.dart が含まれている
  • lib/secrets.dart は未追跡(?? = untracked
  • lib/secrets.local.dart.example も未追跡
  • lib/secrets.dartdefaultValue は空文字列38行目
  • APIキーは secrets.local.dart から読み込まれる50行目

セキュリティ状態

🟢 安全: APIキーはGit履歴に残っていません。

重要:

  • lib/secrets.dart を今後Gitにコミットする場合、必ず defaultValue: '' のままにしてください
  • lib/secrets.local.dart は絶対にコミットしないでください

2. キャッシュ機能の実機テスト(実施中)

テスト手順

Step 1: 新しい日本酒の写真を選択

  1. ギャラリーから今まで解析していない日本酒の写真を選択
  2. AI解析が実行されるキャッシュMISS
  3. ログで以下を確認:
    I/flutter: 🔍 Cache MISS: [ハッシュ値]
    I/flutter: ✅ AI解析成功: [銘柄名]
    

Step 2: 同じ写真を再度選択

  1. ギャラリーから同じ写真を選択
  2. AI解析がスキップされるキャッシュHIT
  3. ログで以下を確認:
    I/flutter: 💰 API呼び出しをスキップキャッシュヒット
    

Step 3: 開発者メニューでキャッシュサイズを確認

  1. マイページ → 設定 → 開発者メニュー
  2. 「キャッシュサイズ」を確認
  3. 数値が表示されているか確認(例: 「2件」

Step 4: キャッシュクリアのテスト

  1. 開発者メニューで「キャッシュクリア」をタップ
  2. 確認ダイアログで「OK」
  3. キャッシュサイズが「0件」になることを確認

Step 5: キャッシュクリア後の再解析

  1. ギャラリーから先ほどの写真を選択
  2. AI解析が再度実行されるキャッシュMISS
  3. ログで以下を確認:
    I/flutter: 🔍 Cache MISS: [ハッシュ値]
    

期待される結果

  • 同じ写真を選択した場合、API呼び出しがスキップされる
  • ログで「💰 API呼び出しをスキップ」が表示される
  • 開発者メニューでキャッシュサイズが確認できる
  • キャッシュクリア後は再度API呼び出しが実行される

キャッシュ効果の試算

シナリオ API呼び出し 削減率
新しい写真 1回 0%
同じ写真2回目 0回 100%
同じ写真3回目 0回 100%
合計 1回 66%削減

3. エラーハンドリング確認(実施中)

テスト手順

Test 1: ネットワークエラー

  1. スマホを機内モードにする
  2. ギャラリーから写真を選択
  3. エラーメッセージが表示されるか確認:
    「AI解析に失敗しました」
    
  4. 「再試行」ボタンが表示されるか確認
  5. 機内モードを解除
  6. 「再試行」ボタンをタップ
  7. AI解析が成功するか確認

期待される結果: エラーメッセージ表示 → 再試行で成功


Test 2: API制限到達手動テスト

注意: このテストは20回の解析を実行するため、API制限に達します。

  1. ギャラリーから異なる写真を20回選択
  2. 21回目の解析を実行
  3. エラーメッセージが表示されるか確認:
    「本日のAI解析リクエスト上限に達しました。
    明日またお試しください。」
    
  4. 「再試行」ボタンをタップ
  5. 同じエラーメッセージが表示されるか確認

期待される結果: 制限到達時に適切なエラーメッセージ表示

注意: このテストを実行すると、今日はこれ以上AI解析ができなくなります。


Test 3: 画像読み込みエラー

  1. ギャラリーから破損した画像または非常に大きな画像を選択
  2. エラーメッセージが表示されるか確認
  3. アプリがクラッシュしないか確認

期待される結果: エラーメッセージ表示、クラッシュなし


📊 Day 2 完了判定

必須項目

  • Git履歴にAPIキーが残っていないことを確認 完了)
  • キャッシュHITが動作することを確認
  • 開発者メニューでキャッシュサイズが表示されることを確認
  • ネットワークエラー時に適切なエラーメッセージが表示されることを確認

オプション項目(推奨)

  • API制限到達時のエラーメッセージを確認20回解析が必要
  • 画像読み込みエラー時の挙動を確認

🎯 次のステップDay 3

Day 2のテストが完了したら、以下を実施:

  1. 全機能の実機テスト
  2. バグ修正
  3. パフォーマンステスト

実施者: 開発者
確認者: Cursor AIログ確認