テスト観点一覧

# はじめに

こんにちは @nittannittan です。

今回は私がテスト設計時に抜け漏れがないかを確認するときに使っているテスト観点を書き出しておこうと思います。

テストをすり抜けてしまった不具合が見つかるたびにこのテスト観点は、更新していきます。

他にも抜けている観点があればコメントいただけると幸いです。

# 更新履歴

| 日付 | 更新内容 |
|:-:|:-:|
| 2021/12/14  | 初稿  |
| 2023/06/13  | 入力観点に「少数桁」を追加。画面観点に「ダイアログ外」を追加。 |

# 入力観点

|項目名|説明|
|:----|:----|
|未入力|key,valueの値でkey自体がなかった場合|
|null|key,valueの値でkeyはあるが、valueがnullだった場合|
|空文字|key,valueの値でkeyはあるが、valueが空文字だった場合|
|型違い|key,valueの値でkeyはあるが、valueが想定外の型だった場合|
|0|0を設定した場合に期待通りの動作をするか|
|最小桁数未満| |
|最大桁数オーバー| |
|半角英字| |
|半角数字| |
|半角カナ| |
|全角| |
|全角カナ| |
|不正文字（禁則文字）|定義があれば実施|
|不正文字（HTML特殊文字）|「<」「>」「&」「"」「'」を１文字ずつテストする|
|クロスサイトスクリプティング|「&lt;script&gt;alert(document.cookie);&lt;/script&gt;」を入れる|
|最小値未満|定義があれば実施|
|最大値オーバー|定義があれば実施|
|指定値以外|ランダム|
|最小長|最小長データで各機能を実行し正常に処理されることを確認|
|最大長|最大長データで各機能を実行し正常に処理されることを確認|
|境界値-1|境界値データで各機能を実行し、境界値をまたがった処理が正常に行われることを確認|
|境界値| |
|境界値+1| |
|少数桁|少数第何位までが有効値か確認。エラー・切り捨て・切り上げ・切り下げの仕様にそって動作確認。 |
|0埋め|0埋めの仕様があれば実施|
|日付形式| |
|過去日| |
|日付大小|日付の比較を行っている場合に実施 |
|存在しない日付| |
|メールアドレス形式||
|相関チェック|複数の項目にまたがって確認しなければならない仕様があれば実施|
|前後空白除去|変換処理の仕様があれば実施|
|ハイフン変換|変換処理の仕様があれば実施|
|全角変換(数字)|変換処理の仕様があれば実施 |
|全角変換(記号)| 変換処理の仕様があれば実施|
|全角変換(かな)|変換処理の仕様があれば実施 |
|全角変換(英字)|変換処理の仕様があれば実施 |
|半角変換(数字)|変換処理の仕様があれば実施 |
|半角変換(英字)|変換処理の仕様があれば実施 |
|連続スペースまとめ|連続スペースを一つにまとめる|
|住所 都道府県あり| |
|住所 都道府県なし| |
|住所 連続スペース||
|氏名 セパレータ（空白）０つあり| |
|氏名 セパレータ（空白）１つあり| |
|氏名 セパレータ（空白）２つあり| |
|氏名 セパレータ（空白）連続あり| |

# ファイル入力観点

|項目名|説明|
|:----|:----|
|フォーマット違反| |
|エスケープ文字| |
|中身が空| |
|レコード順番（ヘッダ、データ、トレーラ）| |
|入力チェック全般| |
|文字コード| |
|改行コード| |
|データ件数| |
|データサイズ| |
|CSV 項目数不足| |
|CSV 項目数オーバー| |

# 画面観点

|項目名|説明|
|:----|:----|
|表示文言|禁止されている特定文言が使用されていないか|
|表示形式|年月日、郵便番号、電話番号など仕様通りの形式か|
|ソート順|一覧などの項目についてはソート順が正しいか |
|ページング| |
|表示限界個数| |
|ブラウザのフォント違いでデザインが崩れないか| |
|表示画像 ロゴ||
|表示画像 コピーライト||
|表示画像 alt属性||
|入力エリアのサイズと位置| |
|可変文字列の長さが長い場合にデザイン崩れが無いか| |
|ページタイトル| |
|推奨画面サイズ|対象とする画面サイズでデザイン崩れがないか確認 |
|初期表示|初期表示が仕様どおりか|
|条件表示|条件によって出る・でないの表示確認 |
|リストボックス表示|リストボックスの中身の表示確認 |
|強調表示（赤文字など）|協調表示される箇所の表示確認 |
|エラーメッセージ表示|エラーが発生した場合の画面の表示位置、フォントの確認 |
|連続ボタン押下|連続でボタンを押下した場合に問題が発生しないか |
|ボタン押下|ボタンの文字のみにリンクが設定されているなどないか確認。ボタンの文字以外を押下して動作するか確認 |
|タブオーダー|画面のタブ順序が正しく設定されていること |
|マウスカーソル|マウスオーバー時のマウスカーソルの表示は仕様通りか確認|
|全画面遷移確認|画面遷移図に記述されている全ての遷移を確認 |
|推奨ブラウザ|各推奨ブラウザで表示が正しく行われることを確認 |
|非推奨ブラウザ|どんな挙動になるか簡易的に確認 |
|ブラウザ操作 ブラウザバック||
|地図 測地系|扱っているデータが日本測地系なのか世界測地系を確認|
|地図 アイコンの重なりが仕様通りか||
|地図 スクロール| |
|地図 拡大縮小| |
|ダイアログ外|ダイアログ外を押下して仕様通りの動作をするか確認 |

# 機能観点

|項目名|説明|
|:----|:----|
|検索条件|仕様書に記述された検索条件で対象データが取得できていることを確認|
|件数指定|件数が指定されている場合、取得件数がその件数を越えないことを確認|
|範囲指定|ページングなど表示開始・終了の範囲が指定されている場合、正しい範囲で表示されることを確認|
|登録|データが登録できることを確認 |
|更新|データが更新できることを確認 |
|削除|データが削除できることを確認 |
|トリガ|データベースのトリガによる処理がある場合に処理が行われることを確認|
|関連機能の動作確認|データの操作によって影響がある他の機能の確認 例：編集画面でデータ更新後に一覧画面でデータが表示できるか確認|
|データ不在|対象データがなかった場合に正常に表示できるか |
|ユニーク例外|すでに登録されているデータと同じIDのデータを投入して例外処理がされるか確認 |
|SQL例外|SQL実行エラーなどの例外処理がされるか確認|
|登録・更新結果不正|登録・更新後の結果が不正だった場合の処理が動作するか確認|
|リトライ|外部APIなどへのリクエスト失敗時にリトライがされるか確認|
|通信状態が悪い場合|スマホなどで通信環境が悪い場合や通信断があった場合に仕様通りの動きをするか確認|
|エラーログ|異常終了時にエラーログが仕様通りに出力されているか確認|
|データベースでマスタ・スレーブが切り替わっても問題が発生しないか||
|データベースのマスタ・スレーブの同期仕様||
|メール送信　テンプレート|テンプレートのテキスト内容が正しいことを確認|
|メール送信　送信条件|メールが送信されるときの条件が正しいことを確認|
|排他制御開始|各処理で排他制御が仕様どおり動作することを確認|
|排他制御継続|各処理で排他制御が仕様どおり動作することを確認 |
|排他制御解除|各処理で排他制御が仕様どおり動作することを確認 |
|排他制御終了|各処理で排他制御が仕様どおり動作することを確認 |
|同一機能同時更新|同一レコードを同一機能同士で更新して、影響が無いことを確認|
|他機能同時更新 同一レコード|同一レコードを他機能同士で更新して、影響が無いことを確認|
|他機能同時更新 同一テーブル|同一テーブルの他のレコードに影響を及ぼさないかを確認|
|業務固有|その他、業務に固有の観点が存在する場合は観点を追加する|

# バッチ機能観点

|項目名|説明|
|:----|:----|
|入力 指定ファイルなし||
|入力 業務エラーデータあり||
|入力 処理対象0件||
|入力 処理対象確認||
|出力 既存ファイルあり||
|出力 出力対象0件||
|出力 出力内容確認||
|DB 入力|処理対象確認|
|DB 出力|DB登録確認|
|DB トリガ|トリガによるDB登録確認|
|ログ 開始・終了||
|ログ 進捗ログ出力（大量時）||
|ログ 正常終了・異常終了||
|二重起動|二重起動時がされる可能性がある場合に、適切に動作するか |
|ロールバック |処理失敗時にロールバックなどの処理がされるか確認|

# セキュリティ観点

|項目名|説明|
|:----|:----|
|ブラウザ操作 ブラウザバック||
|ブラウザ操作 マルチウィンドウ・マルチタブ| マルチウィンドウ（マルチタブ）で操作した場合に問題が発生しないか確認|
|ブラウザ操作 不正パラメータ| GETパラメータで不正な文字を送信しても適切に処理されることを確認|
|ブラウザ操作 二重送信|二重でリクエストを送信しても適切に処理されることを確認|
|ブラウザ操作 ディレクトリトラバーサル|パスを入力できる機能がある場合に非公開のディレクトリにアクセスできないことを確認|
|認証　自動ログアウト||
|認証 二重ログイン||
|サービス間またがりパス指定| 外部から他サービスのパスを指定して動作する処理がないことを確認|
|実行処理パス指定| 外部からの相対パスを指定して動作する処理がないことを確認|

# その他観点

|項目名|説明|
|:----|:----|
|性能観点　大量データ性能||
|性能観点 高負荷||
|サーバが複数|サーバが複数あった場合でも正常に動作するか確認|
|シナリオ|実際の業務にそった操作手順を行い問題がないか確認|
|FT |位置情報などが関係する場合に実際の場所で問題が発生しないか確認|
|デグレード|改修と関係がない既存機能に問題が発生していないか確認|