DOCUMENT 09
テスト報告書
テスト計画
テスト対象・範囲 必須
テストの対象となる機能・画面と、テストの種類(Ver 2.0 現行実装ベースに更新)
認証・共通(F-001〜F-002)
- F-001 ログイン認証(BCrypt)
- F-001b パスワード再設定(メールトークン、ForgotPasswordController)
- F-002 ダッシュボード(ロール別KPI)
ペット・健康管理(F-003〜F-005)
- F-003 ユーザー管理 CRUD
- F-004 ペット管理 CRUD
- F-005 健康記録管理 CRUD
診療・予約(F-006〜F-007)
- F-006 診療予約(申請:USER / 承認・却下:VET/STAFF/SUPER / キャンセル:オーナーのみ・スタッフ不可)
- F-007 診療記録 CRUD(SUPER / VET / STAFF のみ。ADMIN はアクセス不可)
AI・チャット(F-009・F-022)
- F-009 AI症状チェック(Standard以上:OpenAI API / Light:キーワードフォールバック。アクセス制限なし・結果品質で差別化)
- F-022 チャットボット相談(Groq AI/フォールバック、全プラン利用可)
カレンダー・通知(F-011〜F-012)
- F-011 カレンダー(手動シール・自動シール・予約表示)
- F-012 通知・スケジュールリマインダー
サブスク・パスワード(F-013〜F-014)
- F-013 サブスクリプション確認
- F-014 パスワード変更
外部連携(F-015〜F-017)
- F-015 LINE Bot(Webhook受信・返答・Broadcast送信)
- F-016 Slack Bot(Webhook受信・返答)
- F-017 Zoom オンライン診療(Premium)
管理・運営(F-018〜F-021)
- F-018 予約枠管理(ADMIN/STAFF)
- F-019 お知らせ管理(ADMIN/STAFF)
- F-020 ユーザー連携ステータスアイコン
- F-021 サービス統計・DBバックアップ(ADMIN)
- F-011b 請求・決済管理(BillingController・BillingService)
- F-011c 請求書・領収書ビュー(UserInvoiceController)
- F-013b 診療情報印刷(health-records/print)
共通制御(F-008・SEC)
- F-008 入力バリデーション
- ロール別アクセス制御
- 未認証アクセス制御
対象外(今回)
- メールテンプレート管理UI(schema のみ・UI未実装)
- 汎用 PDF ダウンロード(iText 等未導入・未実装)
- 外部決済事業者の内部システム動作
- 本番運用監視・災害復旧訓練
テストケース一覧
テストケース一覧 必須
Ver 3.0 — 現行実装(2026-06-01)ベースに更新。総件数 67 件
| ID | 対象機能 | テスト種別 | テスト内容 | 期待結果 |
|---|---|---|---|---|
| TC-001 | F-001 ログイン認証 | 正常系 | 正しいメール・パスワードでログインする | 認証成功しダッシュボードへ遷移する |
| TC-002 | F-001 ログイン認証 | 異常系 | パスワード誤りでログインする | 認証エラーが表示されログイン不可 |
| TC-003 | F-001 ログイン認証 | 異常系 | 未登録メールでログインする | 認証エラーが表示される |
| TC-004 | F-001 ログイン認証 | セキュリティ | 認証なしで /app/dashboard に直接アクセスする | ログイン画面にリダイレクトされる |
| TC-005 | F-002 ダッシュボード | 正常系 | ADMIN でログインしてダッシュボードを開く | 管理系KPI(ユーザー数・予約数等)が表示される |
| TC-006 | F-002 ダッシュボード | 正常系 | 一般ユーザー(Light)でログインしてダッシュボードを開く | ユーザー系KPI(自ペット・予約・通知)が表示される |
| TC-007 | F-002 ダッシュボード | 境界値 | ペット・予約ともに0件の状態でダッシュボードを開く | 0件表示で画面崩れなく表示される |
| TC-008 | F-003 ユーザー管理 | 正常系 | 必須項目を入力してユーザー登録する | ユーザーが保存され一覧に反映される |
| TC-009 | F-003 ユーザー管理 | 異常系 | 既存メールアドレスで登録する | USR-001 重複エラーが表示され保存されない |
| TC-010 | F-003 ユーザー管理 | 正常系 | 一般ユーザーのプランを Standard に変更する | サブスクリプションが更新され一覧に反映される |
| TC-011 | F-003 ユーザー管理 | 正常系 | LINE ID・Slack ID を登録して編集フォームの連携ステータスを確認する | LINE/Slack チップが色付きで表示される |
| TC-012 | F-003 ユーザー管理 | 正常系 | LINE ID 未登録のユーザーの連携ステータスを確認する | LINE チップがグレー表示、ツールチップに「ID未登録」と表示される |
| TC-013 | F-003 ユーザー管理 | セキュリティ | VET ロールでユーザー編集フォームを開く | 編集・削除ボタンが表示されない(閲覧のみ) |
| TC-014 | F-004 ペット管理 | 正常系 | 必須項目を入力してペットを登録する | ペット情報が保存され一覧に表示される |
| TC-015 | F-004 ペット管理 | 正常系 | 既存ペットの編集フォームを開く | 登録済み生年月日が日付フィールドに表示される |
| TC-016 | F-004 ペット管理 | 異常系 | ペット名未入力で登録する | 必須エラーが表示される |
| TC-017 | F-004 ペット管理 | 境界値 | 生年月日に当日を入力して登録する | 未来日でないため保存できる |
| TC-018 | F-005 健康記録管理 | 正常系 | 記録日・体重を入力して登録する | 記録が保存され時系列一覧に表示される |
| TC-019 | F-005 健康記録管理 | 異常系 | 体重に文字列を入力する | 数値形式エラーが表示される |
| TC-020 | F-005 健康記録管理 | 境界値 | 体重0.1 kg で登録する | 下限値として正常登録される |
| TC-021 | F-006 診療予約 | 正常系 | Standard 以上のユーザーが未来日時で予約申請する | ステータス REQUESTED で保存される |
| TC-022 | F-006 診療予約 | 正常系 | STAFF が申請中の予約を承認する | ステータスが CONFIRMED になりオーナーに通知が届く |
| TC-023 | F-006 診療予約 | 正常系 | STAFF が承認後にカレンダーを開く | 承認済み予約が該当日に表示される |
| TC-024 | F-006 診療予約 | 正常系 | STAFF が申請中の予約を却下する | ステータスが CANCELED になりオーナーに通知が届く |
| TC-025 | F-006 診療予約 | 異常系 | 過去日時で予約申請する | 「未来日時を指定してください」エラーが表示される |
| TC-026 | F-006 診療予約 | 異常系 | 診療受付時間外(17:01)で申請する | 「診療受付時間外」エラーが表示される |
| TC-027 | F-006 診療予約 | セキュリティ | ADMIN ロールで /app/appointments にアクセスする | アクセス拒否ページが表示される(設計通り) |
| TC-027b | F-006 診療予約 | セキュリティ | STAFF ロールのユーザーがオーナーの予約をキャンセルしようとする | 「自分の予約のみキャンセルできます」エラーが返る(スタッフのキャンセルは禁止) |
| TC-028 | F-007 診療記録 | 正常系 | VET が実施日・対応内容を入力して診療記録を登録する | 記録が保存され一覧に表示される |
| TC-029 | F-007 診療記録 | セキュリティ | 一般ユーザーが /app/consultations にアクセスする | アクセス拒否ページが表示される |
| TC-029b | F-007 診療記録 | セキュリティ | ADMIN ロールで /app/consultations にアクセスする | アクセス拒否ページが表示される(ADMIN は意図的に除外) |
| TC-030 | F-008 入力バリデーション | 正常系 | 全必須項目を満たしてフォームを送信する | エラーなく保存処理へ進む |
| TC-031 | F-008 入力バリデーション | 異常系 | メール形式不正で送信する | 形式エラーが表示される |
| TC-032 | F-009 AI症状チェック | 正常系 | Standard 以上のユーザーが症状種別・発症時期を入力して実行する | 重症度と推奨対応が表示される |
| TC-033 | F-009 AI症状チェック | プラン差異 | Light プランのユーザーが症状種別・発症時期を入力して実行する | アクセス拒否にはならず処理継続。OpenAI API は呼ばれず、キーワードベースのフォールバック(free-local)で重症度と推奨対応が返る |
| TC-034 | F-022 チャットボット相談 | 正常系 | 症状を複数ターンにわたって入力する | 情報収集 → トリアージの順で返答が進行する(毎回同じ返答にならない) |
| TC-035 | F-022 チャットボット相談 | 正常系 | 「2日間食べない」と入力する | 「今すぐ受診してください」即時受診案内が返答される |
| TC-036 | F-011 カレンダー | 正常系 | 月次カレンダーを表示する | 当月のすべての日付・手動シール・自動シールが表示される |
| TC-037 | F-011 カレンダー | 正常系 | 同一ペット・同日に「診察」と「注射」の2種シールを追加する | 両方のシールが表示される |
| TC-038 | F-011 カレンダー | 異常系 | 同一ペット・同日・同種別のシールを重複追加する | 「同じ日に同じ種類のシールがすでに貼られています」エラーが表示される |
| TC-039 | F-011 カレンダー | 正常系 | VET ロールでカレンダーを開く | 全ユーザーの確定済み予約がサイドバーに表示される |
| TC-040 | F-012 通知・リマインダー | 正常系 | 予約が承認された後に通知一覧を開く | 承認通知が未読として表示される |
| TC-041 | F-012 通知・リマインダー | 正常系 | 通知を既読にする | 既読ステータスに変わり未読バッジが減る |
| TC-042 | F-013 サブスクリプション | 正常系 | 一般ユーザーでサブスクリプション画面を開く | 現在の契約プランが表示される |
| TC-043 | F-014 パスワード変更 | 正常系 | 現在パスワードを正しく入力して変更する | パスワードが更新されログイン可能 |
| TC-044 | F-014 パスワード変更 | 異常系 | 現在パスワードを誤って入力して変更する | 認証エラーが表示され変更されない |
| TC-045 | F-015 LINE Bot | 正常系 | LINE で Bot を友達追加する | ウェルカムメッセージが自動返信される |
| TC-046 | F-015 LINE Bot | 正常系 | LINE Bot に症状メッセージを送信する | キーワードに応じた返答が届く |
| TC-047 | F-015 LINE Broadcast | 正常系 | ADMIN が LINE 一斉送信フォームからメッセージを送信する | Bot フォロワー全員にメッセージが届く |
| TC-048 | F-015 LINE Broadcast | 異常系 | LINE_CHANNEL_TOKEN 未設定の状態で一斉送信画面を開く | 「チャンネルトークンが設定されていません」警告が表示され送信ボタンが無効になる |
| TC-049 | F-016 Slack Bot | 正常系 | Slack の DM で Bot に症状メッセージを送信する | 緊急度に応じた返答が届く |
| TC-050 | F-017 Zoom オンライン診療 | 正常系 | Premium ユーザーがオンライン診療を予約する | 予約が登録され承認後に Zoom リンクが通知される |
| TC-051 | F-017 Zoom オンライン診療 | 異常系 | Standard ユーザーが /app/premium/online-care にアクセスする | アクセス制限エラーが表示される |
| TC-052 | F-018 予約枠管理 | 正常系 | ADMIN が予約枠を登録する | 予約枠が保存され一般ユーザーのカレンダーに「空き」が表示される |
| TC-053 | F-018 予約枠管理 | セキュリティ | VET ロールで /app/admin/appointment-slots にアクセスする | アクセス拒否ページが表示される |
| TC-054 | F-019 お知らせ管理 | 正常系 | ADMIN がお知らせを作成・公開する | お知らせが保存され一般ユーザーのダッシュボードに表示される |
| TC-055 | F-021 サービス統計 | 正常系 | ADMIN でサービス統計ページを開く | ユーザー数・ペット数・予約数等の集計値が表示される |
| TC-056 | F-001b パスワード再設定 | 正常系 | 登録済みメールアドレスを入力してリセットメールを送信する | 「メールを送信しました」画面に遷移し、SendGrid 経由でトークン付きリセットメールが届く |
| TC-057 | F-001b パスワード再設定 | 正常系 | メール内のリンクを開き、新しいパスワードを設定する | パスワードが BCrypt で更新され、新パスワードでログインできる |
| TC-058 | F-001b パスワード再設定 | 異常系 | 有効期限切れのトークンでリセットURLにアクセスする | 「トークンが無効または期限切れです」エラーが表示される |
| TC-059 | F-011b 請求・決済管理 | 正常系 | ADMIN で請求一覧(/app/admin/billing)を開く | UNPAID/PARTIAL/PAID 各ステータスの請求が一覧表示される |
| TC-060 | F-011b 請求・決済管理 | 正常系 | UNPAID 請求に入金を登録し金額が請求額未満の場合 | 支払状況が PARTIAL に更新される |
| TC-061 | F-011b 請求・決済管理 | 正常系 | 入金を登録し合計が請求額に達した場合 | 支払状況が PAID に更新され入金日時が記録される |
| TC-062 | F-011b 請求通知再送 | 正常系 | ADMIN が請求詳細画面から「お支払い案内を再送」ボタンを押す | アプリ内通知が即時作成され、メール・LINE 通知が非同期で送信される |
| TC-063 | F-011c 請求書・領収書ビュー | 正常系 | ADMIN が /app/invoices/{id} を開く | 請求書・領収書が表示されブラウザ印刷ダイアログを開けること |
| TC-064 | F-013b 診療情報印刷 | 正常系 | ペット詳細から「印刷」リンクを開く(/app/pets/{id}/health-records/print) | ペット情報・ワクチン記録・診療履歴・AI症状チェック履歴・健康記録が印刷用レイアウトで表示される |
| TC-065 | F-022 チャットボット相談 | 正常系 | Light プランのユーザー(owner1)で /app/consult/chatbot にアクセスする | プランゲートなしでチャットボット画面が表示され、メッセージを送受信できる |
| TC-066 | F-022 チャットボット相談 | 異常系 | 空メッセージで送信ボタンを押す | 必須エラーが表示され送信されない |
| TC-067 | F-022 チャットボット相談 | 正常系 | CHATBOT_API_KEY 未設定の状態でメッセージを送信する | fallbackReply() が動作し5段階フローで返答が届く |
テスト結果サマリー
テスト結果サマリー 必須
テスト実施後に集計結果を記入してください
| 項目 | 件数 |
|---|---|
| 総テストケース数 | 67 |
| OK | 55 |
| NG | 0 |
| 未実施 | 3 |
| 合格率 | 94.5% |
バグ一覧
発見されたバグと対応状況 必須
| バグID | 発見日 | 対象機能 | 内容 | 重大度 | 対応状況 |
|---|---|---|---|---|---|
| BUG-001 | 2026-06-09 | アクセス拒否ページ | 初回ログイン時に `/app/access-denied` へ遷移すると、プラン機能判定が `null` を返して 500 エラーになる | 高 | 修正済 |
| BUG-002 | 2026-06-11 | ユーザー管理 | VET アカウントでユーザー管理を開くと、閲覧のみなのに削除ボタンが有効になっており、押下すると「削除は管理者のみ実行できます」の 400 エラーになる | 中 | 修正済 |
| BUG-003 | 2026-06-11 | ユーザー管理 | 管理画面のユーザー編集で新しいパスワードを入力しても、DB の password_hash に反映されず、変更後のパスワードでログインできない |
高 | 修正済 |
| BUG-004 | 2026-06-11 | パスワード再設定 | SMTP 未設定などでパスワード再設定メールの送信に失敗した場合、例外が握りつぶされ画面上は無反応になる | 中 | 修正済 |
| BUG-005 | 2026-06-11 | パスワード再設定画面 | reset-password 画面で invalid が未設定の場合、Thymeleaf の条件評価で 500 エラーになる |
低 | 修正済 |
| BUG-006 | 2026-06-11 | お問い合わせ・メール送信 | お問い合わせメール送信時に SENDGRID_API_KEY が必須扱いになっており、SMTP 設定のみの local 環境で送信できない |
低 | 修正済 |
| BUG-007 | 2026-06-11 | ユーザー一覧 | ユーザー一覧で SUSPENDED の状態が編集画面と異なり「無効」と表示され、停止状態を判別しづらい |
低 | 修正済 |
| BUG-008 | 2026-06-11 | 診療予約フォーム | 必須項目未入力でも予約ボタンを押下でき、バリデーション失敗時にフォーム情報が戻らず白画面になる | 低 | 修正済 |
ブラウザ・デバイス対応
対応状況 必須
| ブラウザ/デバイス | バージョン | 表示 | 機能 | 備考 |
|---|---|---|---|---|
| Chrome(PC) | バージョン 148.0.7778.216 (公式ビルド) (arm64) |
○ | ○ | 主環境 Mac |
| Firefox(PC) | (バージョン) | ー | ー | (未実施) |
| Edge(PC) | 149.0.4022.80 | ○ | ○ | Windows 11 Stable 版 |
| Chrome(スマートフォン) | ver 149.0.7827.45 | ○ | ○ | iPhone |
| Safari(iPhone) | (バージョン)26.5.2 | ○ | ○ | iOS 26.5.2 |