テスト ケースとは
テスト ケースとは、特定のソフトウェア要件の観察と分析を管理する一連の文書化されたアクション (ハウツー ステップ) です。正式なテスト ケースでは、要件ごとに 1 つずつのポジティブ テストとネガティブ テストが使用されます。
適切なテスト ケース形式、優れたテスト ケースの作成に関するヒント、ポジティブ テスト ケースやテストなど、テスト ケースに関連する全概念の詳細については、テスト ケースの必須事項に関するこのガイドをお読みください。
ネガティブ テストとは何ですか?
ソフトウェア テストでは、ポジティブ テストとは、テスト対象システム (SUT) またはテスト対象アプリケーション (AUT) をテストし、要件に対して期待される動作を評価するプロセスを指します。失敗テストやエラーパス テストとも呼ばれるネガティブ テストは、問題が発生した場合に役立つフィードバックを見つける方法です。
ネガティブ テストでは、無効な入力データまたは望ましくないユーザーの動作を使用して、予期しないシステム エラーがないか確認します。別の言い方をすると、予期しない操作が発生することを想定して、テスターは無効な入力を受け取り、Web アプリケーションのユーザー インターフェイス (UI) をテストします (ネガティブ テストの最も一般的な使用)。この手法は、悪条件の下で AUT に何が起こるかを発見することを目指しています。
ネガティブ テストの目的は何ですか?
ネガティブ テストとは、ソフトウェア開発における完全なテスト カバーを保証する品質管理手法です。わざわざ SUT をクラッシュさせようとしたり、不適切なデータを使用して未知の欠陥 (バグ) を見つけたりすることで、テスターや開発者は SUT をより安定させ、信頼性の高いものにする方法を発見します。ソフトウェアがすべきではないこと、受け入れるべきでないことを証明することで、テスターはコードが各要件を満たしていることを確認します。
ネガティブ テスト ケースとは
ポジティブ/ネガティブ/破壊テスト ケースの違いは何ですか?
ネガティブ テストとポジティブ テストは、テスト ケースを使用して文書化する同時アクティビティです。「ポジティブ テスト ケースは、要件や設計に含まれるものが意図したとおりに機能することを確認するものです。ネガティブ テスト ケースでは、他のすべてをチェックします。」と Price-Jones 氏は言います。
ネガティブ テストに関連するもう 1 つの用語は破壊テストであり、Price-Jones 氏は、「ネガティブ テスト ケースを介して実行するか (そして、自分が行ったことをすべて文書化して証拠を提供する必要がある場合)、単に可能な限りソフトウェアを壊す試みとして使用する必要があります」と述べています。
たとえば、Web ベースのアプリケーションでは、特定の範囲内の文字 (6 文字以上、12 文字未満など) のパスワード テキスト フィールドをユーザーに入力するよう求めるのが一般的です。ポジティブ テストを使用して、テスターは正しい範囲内のパスワードを入力します。対応するネガティブ テストの場合、テスターは、これらのパラメータから外れたパスワード (6 文字未満、12 文字以上、0 文字など) を入力して、AUT の応答をテストします。このタイプのネガティブ テストは、境界値分析テストとして知られています。
ネガティブ テスト ケースを特定する方法
有用なネガティブ テスト ケースを作成して実行するために、使用するデータや望ましくないアクションをどのように判断しますか?ネガティブ テスト ケースを特定するには、まずポジティブ テスト ケースから始めます。各ポジティブ テスト ケースは、ビジネス/ユーザーの要件、アーティファクト、ソフトウェア設計文書を分析することによって作成されます。各ポジティブ テスト ケース シナリオを使用し、文書に記載されていない情報を利用してネガティブ テスト ケースを特定します。
ソフトウェア要件を満たすためには、時間とリソースのバランスを取る必要があります。ネガティブ テストは、プロジェクトのスケジュール、有資格者の利用可能性、リリース日、予算のために抵抗に直面します。実際に SUT を損傷させることなく、ソフトウェア テスターは経験と直感を駆使して、ネガティブ テストを使用する方法、タイミング、場所を決定し、テスト ケースのステップを特定します。網羅的なネガティブ テストを実践したり、SUT の完璧なテスト カバレッジを提供するネガティブ テスト ケースを作成することは実現可能ではありません。
テスト ケースの計画と実行テンプレート
ネガティブ テスト ケースを設計する方法
ソフトウェア テストでは、可能な入力量が多すぎて完全で費用対効果の高いテスト カバレッジを実現できない場合、直交配列はネガティブ テスト ケースを設計するための効率的なモデルを提供します (つまり、ソフトウェア エラーを見つけ、重複するテストを排除します)。このモデルは、一般的に、SUT の UI テスト、回帰テスト、およびパフォーマンス テストに使用されます。
Neil Price-Jones 氏は、ネガティブ テスト ケースの設計に体系的にアプローチします。「1 つの方法は、標準的なビジネス シナリオにおける取引の流れに対して直交的に考え、そのプロセスの各ステップで何がうまくいかないかを考えることです。」
「トランザクションが左から右へ (つまり直線的に) ステップを流れていると考えると、上から各ステップを見て、何がポジティブ (次のステップに移動できる) で何がネガティブ (トランザクションが次のステップに流れるのを止める必要があります) になるかを確認することで (ポジティブとネガティブの両方の方法で) テストすることを考えることができます。」と Price-Jones 氏は説明します。
ネガティブ テスト ケース形式
ポジティブ/ネガティブ テスト ケースは、通常、次の属性を含む同じ形式を共有します。
テスト ケース ステートメント
テスト セットアップ
テスト ケース ID
テスト シナリオ
ネガティブ テスト ステップ
ネガティブ テスト データ
期待される結果
実際の結果
合格/不合格の確認
その他のコメント
ネガティブ テスト ケースの書き方
簡単に言えば、ポジティブ テスト ケース ステップを実行して取得した無効な入力データまたは望ましくないユーザーの行動を選択して、ネガティブ テスト ケースを作成します。Price-Jones 氏は、ビジネス要件からのテスト シナリオで定義するポジティブ テスト ケース基準から始めることをおすすめしています。
「定義され、含まれるものから始め、テスト設計テクニックを使用して、他のすべての可能性を検討します。これをテーマのバリエーションと呼ぶこともあります。」と彼は言います。
ポジティブ テスト ケースと同様に、ネガティブ テスト ケースは、スプレッドシートやテスト管理ソフトウェアを使用して文書化する単一の実行可能テストです。テスト ケース ドキュメントに標準形式を採用すると、次の点で役立ちます。
時間を節約できます。
技術的な知識に関係なく、複数の関係者が各テスト ケースにアクセスできます。
同様のテスト計画シナリオに対して再利用可能です。
テスト チームと開発チーム内の全体的なコミュニケーションを合理化するのに役立ちます。
ネガティブ テスト ケース属性の詳細な内訳と、Microsoft Excelでテスト ケースを作成する方法のステップバイステップ ガイドについては、「テスト ケースの書き方: 必須ガイド」をお読みください。
ログイン ページのネガティブ テスト ケースの例
Price-Jones 氏は、ログイン ページに対してネガティブ テストを使用していて楽しみを見いだした時のことを振り返ります。「一度、公開されているアプリケーションのログインをテストしました。3 回の誤った試行によって実際にソフトウェアに入ることができたのです (30 分間中断したり、パスワードのリセットを強制したりするのではなく)。プログラマーは 3 つの試行の最後にスイッチをひっくり返して、あなたを拒絶するのではなく、許可していました。」
次のネガティブ テスト ケースの例は、正しいユーザー ID とパスワードを使用する際に、AUT ログイン ページで期待される結果に合格するポジティブ テスト ケースに適用されます。
空白のユーザー ID と空白のパスワード
正しいユーザー ID と間違ったパスワード
間違ったユーザー ID と正しいパスワード
間違ったユーザー ID と間違ったパスワード
パスワードでの SQL インジェクション
ユーザー ID での SQL インジェクション
両方のフィールドでの SQL インジェクション
SQL サーバー統合サービス テスト テスト ケース テンプレート
この詳細なテスト ケース テンプレートを使用して、すべての SQL サーバー統合サービスを管理、テスト、追跡できます。テンプレートを使用して機能の更新をテストし、すべてのプログラミングおよびデータ管理システムが正しく動作することを確認します。
SQL サーバー統合サービス テスト テスト ケース テンプレートのダウンロード
Excel
ワイヤレス ネットワーク アクセスのネガティブ テスト ケースの例
次のネガティブ テスト ケースの例は、正しいネットワーク セキュリティ キー (パスワード) が使用され、ユーザー契約が確認されたときに期待される結果で合格するポジティブ テスト ケースに適用されます。
アクセスは、無効なキー入力でネットワークをロックします。
アクセスは、セキュリティ キーなしでネットワークをロックします。
キー フィールドに無効なコードまたは無効な文字を入力します。
Bluetooth デバイスを接続するためのネガティブ テスト ケースの例
以下のネガティブ テスト ケースの例は、Bluetooth デバイスが検出された場合、または有効なデータとペアになり、接続範囲が正常に完了した場合に、期待される結果に合格するポジティブ テスト ケースに適用されます。
誤ったコードを 1 つ入力すると接続が失敗します。
両方のデバイスを順番に繰り返します。
各マシンの Bluetooth を個別にオフにします。
デバイス間の接続を再確立します。
互換性のないデバイスをテストします。
制限されたデバイス (接続を制限するもの) でテストします。
オンライン ショッピング カートのネガティブ テスト ケース例
次のネガティブ テスト ケースの例は、十分な在庫、有効な支払い方法、支払いプロバイダーからの確認、カート内の複数のアイテムがある場合に期待される結果に合格するポジティブ テスト ケースに適用されます。
利用可能な在庫数を超える商品を購入する。(Price-Jones 氏によると、「多くのショッピング カートはこのケースをカバーし、アイテムが利用できないことを知らせるか、入荷待ちを設定する必要があるため、ポジティブなケースだと主張できます。」)
複数のアイテムを購入しますが、その一部は利用できません。
購入し、「支払い失敗」を受け取ります。
購入し、「配送場所失敗」(別名「お客様の場所に配送できません」) を受け取ります。
プロセスの任意の時点で購入を中止します。
購入プロセスの任意の時点で接続を切ります。
クレジット カード決済のネガティブ テスト ケース例
Price-Jones 氏は、正しいクレジット カード番号、正しい CVV (または CVC) コード、正しい名前、正しい請求先住所を入力した場合の、クレジット カード決済フォームのネガティブ テスト ケース ステップの例を次に示します。
間違ったチェック桁
間違った数字と間違った桁
無効な請求先住所
無効な CVV 番号
無効な名前
ネガティブ テスト ケース管理: 手動テストか自動テストか?
ネガティブ テストは主に手作業であり、スプレッドシートを使用して管理されています。テスト自動化ソフトウェアを使用すると、有効なデータと無効なデータを使用してネガティブ テスト ケースを作成できるツールを使用して、ポジティブ/ネガティブ テスト シナリオで AUT のテスト カバレッジを改善できます。ネガティブ テストを自動化するタイミングや手動のネガティブ テストを使用するタイミングを決定するプロセスは、テスト計画、ビジネス要件またはユーザー要件、適格なソフトウェア テスターの可用性、予算によって異なります。
テスターは、大量の入力データを必要とするテスト ケース ステップを支援するために、自動化されたテスト スクリプト(ソフトウェア コードなど)を手動で書いたり、テスト管理ツールを使用して再利用可能な自動化スクリプトを設定したりできます。TestComplete や Selenium などのソフトウェア ソリューションでは、さまざまな要件にわたる自動テスト スクリプト管理、バージョン管理、レポート機能を備えています。これらのソリューションで最も一般的に宣伝されているメリットには、テスト ケース テンプレート、テスト バージョン管理、割り当てられた開発者への電子メール通知を行う自動化されたバグ追跡、共同作業アクセスの制御、要件別の追跡可能なテスト カバレッジ、クラウド バックアップ ストレージなどがあります。
手動テスト テスト ケース テンプレート
自動テスト テスト ケース テンプレート
この自動化テスト テスト ケース テンプレートを使用して、自動化されたソフトウェア テストの成功または失敗を確認します。このフォームをダウンロードして入力して、テスト名と ID、テスト期間、各ステップとコンポーネント、テストに関するメモ (自動化されたテスト スクリプトを含む) を文書化します。
自動テスト テスト ケース テンプレートをダウンロードする
ネガティブ テストにおける偽ポジティブと偽ネガティブ
ソフトウェア テストでは、偽ポジティブの結果とは、欠陥がなく、SUT が適切に機能している場合に発生するテスト ケースの失敗の結果を指します。テスト ケースが通過したものの欠陥が SUT に存在する場合、その結果は偽ネガティブの結果として知られています。サニティ テスト (ソフトウェアの特定の側面が期待どおりに実行されていることを確認するためにランスルーを行う) や反対のケースのテスト (合格テスト ケースの結果を失敗させる) などの手動のネガティブ テスト活動は、偽ポジティブの結果を避けるのに役立ちます。
自動化されたテスト スクリプトや自動化ツールを組み込む前に偽の結果を減らすために、テスト計画中やネガティブなテスト ケースを作成する際には、必ず適切な対策を講じてください。偽ポジティブ/ネガティブのテスト ケースを避けるために特別に設計された自動化されたテスト スクリプトを考慮したテンプレートを使用します。
ユーザー受け入れテスト テスト ケース テンプレート
この包括的なユーザー受け入れテスト テスト ケース テンプレートをダウンロードして、SRS 文書と一致し、提供されるすべての要件を満たしていることを確認します。この文書は、個々のアプリケーション、実行ステップ、期待される結果と実際の結果を追跡するように設計されています。
ユーザー受け入れテスト テスト ケース テンプレートをダウンロードする
ソフトウェア開発のための Smartsheet によるネガティブ テスト ケースの改善
ニーズに合わせ変化に対応できるようデザインされた、柔軟性のあるプラットフォームで、チームの能力を最大限に引き出しましょう。 Smartsheet プラットフォームなら、いつでもどこでも簡単に作業の計画、保存、管理、およびレポート作成が可能なため、チームはより効率的かつ効果的に仕事を進めることができるようになります。作業に関して主要なメトリックを表示したり、リアルタイムの可視性を提供したりするために、ロールアップ レポート、ダッシュボード、および自動化されたワークフローを作成する機能も装備されており、チーム メンバーをつないで情報共有を促進することが可能です。 やるべきことを明確にすると、チームの生産性と作業達成能力が向上します。ぜひこの機会に Smartsheet を無料でお試しください。