記載レベルが「エラーとなること」や「期待した通り処理されること」などバラバラのため要件/仕様に応じて読み替えること

クライアント観点 (フロントエンド、画面)

表示

文字化け

  • 文字化けが発生していないこと

表示桁数、表示方法、フォーマット

日時

日時に関して期待した通り表示されていること。以下は例

  • 2018/04/30 01:23:45

  • 2018/4/30 1:23:45 (0を表示しないケース)

  • 2018年04年30日 01時23分45秒

  • 2018-04-30 01:23:45

  • 20180430012345 (区切りなしケース)

  • 4/30/2018, 1:23 p.m. (英語表記)

  • Apr. 30, 2018 , at 1:23 p.m. (英語表記2)

郵便番号

郵便番号に関して期待した通り表示されていること。以下は例

  • 〒012-3456

  • 012-3456 (記号なし)

  • 0123456 (ハイフンなし)

電話番号

電話番号に関して期待した通り表示されていること。以下は例

  • 090-1234-5678

  • 09012345678 (ハイフンなし)

  • 012-345-6789 (市外/内局番の考慮)

金額

金額に関して期待した通り表示されていること。以下は例

  • ¥1,000-

  • 1000 (記号やカンマなし)

負数

負数に関して期待した通り表示されていること。以下は例

  • -1,000

  • 1,000 (赤字表示)

テーブル表示

項目(カラム)(列)

テーブル項目に不足がないこと

件数(行)

期待した件数だけ表示されていること

0件

テーブルの表示件数が0件の場合は期待した通り表示されていること

ページング

ページング不可(0件の場合)
  • ページング対象の一覧の表示件数が0件の場合は期待した通り表示されていること

ページング不可(1Pのみの場合)
範囲

ページングができない場合(1ページのみの場合など)はページャーの番号が期待した通り表示されること

前へボタン

ページングができない場合(1ページのみの場合など)は前へボタンが期待した通り表示されること

次へボタン

ページングができない場合(1ページのみの場合など)は次へボタンが期待した通り表示されること

ページング可(複数ページの場合) / 最小値(1~10Pであれば1P)
範囲

ページングができる、かつ中間値が選択されている場合にはページャーの番号が期待した通り表示されること

前へボタン

ページングができる、かつ中間値が選択されている場合には前へボタンが期待した通り表示されること

次へボタン

ページングができる、かつ中間値が選択されている場合には次へボタンが期待した通り表示されること

ページング可(複数ページの場合) / 中間値(1~10Pであれば5P)
範囲

ページングができる、かつ最小値が選択されている場合にはページャーの番号が期待した通り表示されること

前へボタン

ページングができる、かつ最小値が選択されている場合には前へボタンが期待した通り表示されること

次へボタン

ページングができる、かつ最小値が選択されている場合には次へボタンが期待した通り表示されること

ページング可(複数ページの場合) / 最大値(1~10Pであれば10P)
範囲

ページングができる、かつ最大値が選択されている場合にはページャーの番号が期待した通り表示されること

前へボタン

ページングができる、かつ最大値が選択されている場合には前へボタンが期待した通り表示されること

次へボタン

ページングができる、かつ最大値が選択されている場合には次へボタンが期待した通り表示されること

ソート

昇順

昇順にソートされること

降順

降順にソートされること

フォーム要素

デフォルト表示
テキストボックス

テキストボックスに期待したデフォルト値が表示されていること。以下は例

  • 登録時 : 空欄

  • 更新時 : 現在の登録されている値

テキストエリア

テキストエリアに期待したデフォルト値が表示されていること。以下は例

  • 登録時 : 空欄

  • 更新時 : 現在の登録されている値

チェックボックス

チェックボックスに期待したデフォルト値が設定されること。以下は例

  • 登録時 : 未選択

  • 更新時 : 現在の登録されている値

ラジオボタン

ラジオボタンに期待したデフォルト値が設定されること。以下は例

  • 登録時 : 未選択

  • 更新時 : 現在の登録されている値

セレクトボックス(ドロップボックス)

セレクトボックス(ドロップボックス)に期待したデフォルト値が設定されること。以下は例

  • 登録時 : 未選択

  • 更新時 : 現在の登録されている値

プレースホルダ
  • テキストボックスのプレースホルダが期待した通り表示されていること

セレクトボックスの内容
  • セレクトボックスの一覧が期待した通り表示されていること

制御
入力値の保持

各種入力欄に入力し次画面へ進んだのち、試験該当画面へ戻った場合には入力した値が保持されていること

ロール/権限

ロールや権限に応じてフォームが表示されていること

  • 一般ユーザーの場合は特定のボタンが表示されていないこと

  • 管理者の場合は特定のボタンが表示されていること

帳票

レイアウト

帳票のレイアウトに関して期待した通り表示されていること

ウィンドウ

ページタイトル

ウィンドウのページタイトルが期待した通り表示されていること

favicon

ウィンドウのfaviconが期待した通り表示されていること

Copyright(コピーライト)

  • Copyright(コピーライト)が期待した通り表示されていること

処理(ボタン押下後など)

画面遷移

期待通りの画面遷移が行われること

画面更新

処理に伴う画面更新において、更新後の各種内容が期待した通りに表示されていること。以下は例

  • 登録後に登録したデータが一覧に存在する

  • 更新後の該当項目が変更されている

  • 削除後は一覧に該当データが存在しない

メッセージ

処理結果に対するメッセージが期待した通り表示されていること

画面制御

ポップアップウィンドウ

期待した通りポップアップウィンドウが表示され、また内容が期待した通りの内容であること

モーダルウィンドウ

期待した通りモーダルウィンドウが表示され、また内容が期待した通りの内容であること

タブオーダー

タブまたはEnterキーでの項目遷移が期待した通り行われること

レスポンシブ

PC(大) (1200px以上)

1200px以上のサイズにて検証を行い画面崩れがないこと

PC (992~1119px)

992~1119pxのサイズにて検証を行い画面崩れがないこと

タブレット (768~991px)

768~991pxのサイズにて検証を行い画面崩れがないこと

スマートフォン (767以下)

767px以下のサイズにて検証を行い画面崩れがないこと

画面サイズ変更

画面サイズを変更しても画面崩れがないこと

境界値は bootstrap の値を参照

推奨ブラウザ

バージョン
最新

指定されたバージョン内で最も新しいバージョンにて検証を行い画面崩れがないこと

最古

指定されたバージョン内で最も古いバージョンにて検証を行い画面崩れがないこと

ブラウザ
google chrome

google chromeで検証を行い画面崩れがないこと

fire fox

fire foxで検証を行い画面崩れがないこと

ie

internet explorerで検証を行い画面崩れがないこと

edge

edgeで検証を行い画面崩れがないこと

safari

safariで検証を行い画面崩れがないこと

opera

operaで検証を行い画面崩れがないこと

セキュリティ

エスケープ処理

入力値を表示するさいなどにはエスケープ処理が施されて表示されていること。以下は例

  • 入力画面にて入力欄に <script>alert('danger')</script> など入力したうえで確認画面へ遷移してもアラートが表示されないこと

入力

入力チェック

必須

必須項目が未入力の場合はエラーとなること

最小値(または桁数や文字数)

下記の観点より期待した通り処理されること

  • 未満

  • 同値

  • 超過

最大値(または桁数や文字数)

下記の観点より期待した通り処理されること

  • 未満

  • 同値

  • 超過

指定値(画像認証など)

入力値が期待値以外の場合はエラーとなること

メールアドレス

フォーマットに違反している場合はエラーとなること

URL

フォーマットに違反している場合はエラーとなること

電話番号(固定電話、携帯電話など)

フォーマットに違反している場合はエラーとなること

郵便番号(3桁-4桁など)

フォーマットに違反している場合はエラーとなること

日時

フォーマットに違反している場合はエラーとなること

存在しない日時

存在しない日時を入力した場合はエラーとなること

うるう年

うるう年を入力した場合は期待した通り処理されること

期間外の日時

期間外の日時を入力した場合はエラーとなること

日時の前後関係

開始日時と終了日時が逆転している場合はエラーとなること

クレジットカード

フォーマットに違反している場合はエラーとなること

ファイル指定

指定外のファイルをアップロードした場合はエラーとなること

ファイルサイズ

ファイルサイズの指定を超過したファイルをアップロードした場合はエラーとなること

文字チェック

全角(カナ、英数字、記号含む)

禁止されている場合はエラーとなること (ヲンヰヱヴーヾ・)

半角(記号)

禁止されている場合はエラーとなること (,'" ./\=?!:;)

半角(カタカナ)

禁止されている場合はエラーとなること (ァーュソマ゙゚)

環境依存文字

禁止されている場合はエラーとなること (㌶Ⅲ⑳㏾☎㈱髙﨑)

UTF-8とEUCでマッピングに差がある文字

禁止されている場合はエラーとなること (¢£¬‖−〜―)

サロゲートペア

禁止されている場合はエラーとなること (𠀋𡈽𡌛𡑮𡢽𠮟𡚴𡸴𣇄𣗄)

絵文字

禁止されている場合はエラーとなること (😀🐱🚗)

EUCのサーバで文字化けする文字

禁止されている場合はエラーとなること (ソ能表)

javascript

入力欄へjavascriptの入力が禁止されている場合はエラーとなること (<script>alert('danger')</script>)

HTML

入力欄へHTMLの入力が禁止されている場合はエラーとなること (<font color="red">)

HTML特殊文字

入力欄へHTML特殊文字の入力が禁止されている場合はエラーとなること (<©&)

データベースに対するインジェクション

入力欄へSQLの入力が禁止されている場合はエラーとなること (';delete from user_table;)

改行

禁止されている場合はエラーとなること

空白文字(半角、全角)

禁止されている場合はエラーとなること

NULL(空、未入力)

禁止されている場合はエラーとなること

入力パターン

小数

小数を入力し期待した通り処理されること

負数

負数を入力し期待した通り処理されること

検索条件/前方一致

対象の有無に応じて期待した通り処理されること

検索条件/後方一致

対象の有無に応じて期待した通り処理されること

検索条件/部分一致

対象の有無に応じて期待した通り処理されること

検索条件/完全一致

対象の有無に応じて期待した通り処理されること

検索条件/期間指定

対象の有無に応じて期待した通り処理されること。また時刻に関しては時分秒まで考慮すること

検索条件/検索条件の組み合わせ

複数の検索条件を組み合わせることができる場合には組み合わせたパターンを作成し、それぞれのパターンで期待した通り処理されること

フォーム要素の制御

ボタン押下によるリクエスト二重送信

確定ボタン押下後は二度押しができない、もしくは二度目がエラーとなること

パスワード入力欄

パスワード入力欄の入力値は隠ぺいされて表示されること

セレクトボックス

下記の観点より期待した通り処理されること

  • 単一選択

  • 複数選択

チェックボックス

下記の観点より期待した通り処理されること

  • 単一選択

  • 複数選択

全選択が可能な場合はシナリオを考慮し期待した通り処理されること。以下は例

  • A→B→C→全解除→全選択→B解除

フォーム要素の有効化

特定の条件を満たすことで有効となる要素がある場合には、条件を満たしたタイミングで要素が有効化されること

フォーム要素の無効化

条件を満たすことで有効化した要素がある場合には、条件を満たしていない状態とすることで無効化されること

ブラウザ操作

ブラウザバック後の再送信

確定ボタン押下後の完了画面などにてブラウザバックし、再度確定ボタン押下した場合に再度リクエストが送信されないこと

マルチウィンドウ(タブ)からの送信

画面Aで確定ボタン押下直前まで処理を進め、その後画面Bを開き画面Aと同様の処理を進めて確定ボタン押下。その後、画面Aの確定ボタンを押下した場合にはリクエストが送信されないこと

リロードによる再リクエスト送信

処理完了後にリロードした場合に再度リクエストが送信されないこと

未ログイン状態によるアクセス

未ログイン状態にてURL指定でアクセスした場合はエラーとなること

不正遷移

登録→確認→完了といった画面遷移が必要な場合に、完了画面のURL指定でアクセスした場合はエラーとなること

ディレクトリトラバーサル

../ などのURL指定でアクセスした場合にはエラーとなること

サーバー観点 (バックエンド)

リクエスト

基本的にはクライアント/入力の観点と同様

入力チェック(CSV/TSV ファイル)

CSV ファイルや TSV ファイルなどのチェック観点。

項目(カラム)数境界

下記の観点より期待した通り処理されること

  • 未満

  • 超過

項目(カラム)の桁数(文字数)境界 / 最小値(桁数)

下記の観点より期待した通り処理されること

  • 未満

  • 同値

  • 超過

項目(カラム)の桁数(文字数)境界 / 最大値(桁数)

下記の観点より期待した通り処理されること

  • 未満

  • 同値

  • 超過

Key(Unique)項目の重複

Keyとなる項目値が重複している場合はエラーとなること

データ件数(レコード数)境界値 / 最小数

下記の観点より期待した通り処理されること

  • 未満

  • 同値

  • 超過

データ件数(レコード数)境界値 / 最大数

下記の観点より期待した通り処理されること

  • 未満

  • 同値

  • 超過

ヘッダの有無

ヘッダがない場合はエラーとなること

トレーラ(フッタ)の有無

トレーラがない場合はエラーとなること

ヘッダ/データ/トレーラ(フッタ)の順序

ヘッダ/データ/トレーラの順序がバラバラの場合はエラーとなること

空行

空行がある場合はエラーとなること

デリミタの有無

デリミタ(区切り文字)がない場合はエラーとなること

空ファイル

空ファイルの場合はエラーとなること

指定文字(prefixなど)の有無

値に指定文字(prefixなど)がない場合はエラーとなること

ダブルクォーテーション

ダブルクォーテーションの有無で期待した通り処理されること

ダブルクォーテーション内の改行

ダブルクォーテーション内の改行の有無で期待した通り処理されること

入力チェック(固定長ファイル(マルチフォーマット))

レコード長境界値

下記の観点より期待した通り処理されること

  • 未満

  • 超過

上記以外は CSV/TSV のチェックと同様

レスポンス

HTTP ステータスコード

  • 期待した HTTP ステータスコードを返していること

レンダリング

  • 期待した HTML を返していること

算術演算

日時

日時の計算結果が期待した通りであること(うるう年、存在しない日時、タイムゾーン、サマータイムなどの観点より)

金額

金額の計算結果が期待した通りであること(消費税などの観点より)

ファイル出力

帳票

レイアウト

レイアウトが期待した通り表示されていること

デリミタ区切りファイル(CSV/TSV ファイルなど)

デリミタ

デリミタが期待した通り出力されていること

ダブルクォーテーション

ダブルクォーテーションで囲まれている or いないこと

ヘッダ/トレーラ(フッタ)

ヘッダ/トレーラが期待した通り出力されていること

エンコーディング(UTF-8やShift_JISなど)

エンコーディングが期待した通りであること

固定長ファイル(マルチフォーマット)

レコード長

レコード長が期待した通り出力されていること

ヘッダ/トレーラ(フッタ)

ヘッダ/トレーラが期待した通り出力されていること

エンコーディング(UTF-8やShift_JISなど)

エンコーディングが期待した通りであること

ログ

機密情報

機密情報が含まれていないこと

個人情報

個人情報が含まれていないこと

暗号化

機密情報、個人情報が暗号化されていること

メール送信

送信元

送信元に関して期待した通りの内容であること

宛先(To, Cc, Bcc)

宛先に関して期待した通りの内容であること

複数宛先へ一括送信

複数宛先へ一括送信する場合はBCCを用いて宛先が隠ぺいされていること

件名

件名に関して期待した通りの内容であること

本文

本文に関して期待した通りの内容であること

文字の表示に関してはクライアント観点の表示を参照。

ストレージ観点 (DB)

入力

登録、更新

一意制約

登録(更新)する情報が、すでに登録済みの場合はエラーとなること (メールアドレスなど)

主キー制約

登録(更新)する情報が、すでに登録済みの場合はエラーとなること (ユニークなIDなど)

外部キー制約

登録(更新)する情報が別途管理されている情報に依存する場合、その情報が存在しない(管理されていない)場合はエラーとなること

外部キー制約(CASCADE 観点)

外部キー制約が CASCADE で設定されている場合、親のレコードを更新した場合は期待した通り処理されること

外部キー制約(RESTRICT 観点)

外部キー制約が RESTRICT で設定されている場合、親のレコードを更新した場合は期待した通り処理されること

ロールバック

複数の情報を一括で登録(更新)したさいに、途中でエラーとなった場合には期待した通りロールバックされていること

データが存在しない

更新対象のデータが存在しない場合は期待した通り処理されること

暗号化

機密情報や個人情報が暗号化されていること

削除

外部キー制約(CASCADE 観点)

外部キー制約が CASCADE で設定されている場合、親のレコードを削除すると依存している子のレコードが削除されること

外部キー制約(RESTRICT 観点)

外部キー制約が RESTRICT で設定されている場合、親のレコードを削除すると依存している子の状態に応じて期待した通り処理されること

ロールバック

複数のデータを一括で削除したさいに、途中でエラーとなった場合には期待した通りロールバックされていること

データが存在しない

削除対象のデータが存在しない場合は期待した通り処理されること