テストケース

テストケース () は、ソフトウェア工学では、特定のプログラムパスの実行や検証など、特定のソフトウェアテストの目的を達成するため、もしくは特定の要件への準拠を確認するために実行される単一のテストを定義する入力、実行条件、テスト手順、および期待される結果の仕様のこと。

テストケースは、無計画ではない系統だったテストを行うための根底にある仕組みである。一連のテストケースを構築して、テスト対象のソフトウェアを適切にカバーする。正式に定義されたテストケースを使用すると、ソフトウェアの連続するバージョンに対して同じテストを繰り返し実行できるため、効果的で一貫性のある回帰テストが可能になる。

正式なテストケース 
アプリケーションのすべての要件が満たされていることを完全にテストするには、要件ごとに少なくとも2つのテストケースが必要です。1つはポジティブテスト、もう1つはネガティブテストである。要件にサブ要件がある場合、各サブ要件には少なくとも2つのテストケースが必要となる。要件とテストの間のリンクを追跡することは、トレーサビリティマトリックスを使用して頻繁に行われる。書面によるテストケースには、テストする機能の説明と、テストを確実に実施できるようにするために必要な準備を含める必要がある。

正式に作成されたテストケースには、既知の入力と、テストが実行される前に実行される期待される出力が記載されている。既知の入力により前提条件を、期待される出力は事後条件をテストする。

非公式のテストケース 
正式な要件のないアプリケーションまたはシステムの場合、同様のプログラムから類推して通常の操作に基づいてテストケースを作成する。

シナリオテストでは、架空のストーリーに従って、テスターが複雑な問題やシステムについて考られるようにしている。これらのシナリオは通常、詳細までは書かれていない。それらは、テスト環境の図のように単純な場合もあれば、散文で書かれた説明の場合もある。理想的なシナリオテストは、やる気を起こさせ、信頼でき、複雑で、評価しやすいストーリーであることだ。これらは通常、テストケースが単一のステップであるのに対し、シナリオは重要ないくつかのステップをカバーするという点でテストケースとは異なる。

典型的なテストケースの記述形式 
テストケースは通常、アプリケーションの正しい動作/機能、機能をテストするための単一のステップ、または場合によっては一連のステップである。通常、期待される結果または期待される結果が示されている。 

通常含まれている追加情報：

 テストケースID-このフィールドは、テストケースを一意に識別します。
 テストケースの説明/概要-このフィールドは、テストケースの目的を説明します。
 テスト手順-このフィールドには、テストケースを実行するための正確な手順が記載されています。
 前提条件-このフィールドは、テストステップを実行する前に従う必要のある条件またはステップを指定します。
 深さ
 テストの分類
 作成者-テスターの名前。
 自動化有無-このテストケースが自動化されているかどうか。
 合格/不合格
 備考

大規模なテストケースには、前提条件の状態または手順、および説明が含まれる場合もある。

書面によるテストケースには、実際の結果を保存してある場所も含まれている必要がある。

これらの手順は、ワードプロセッサの文書、スプレッドシート、データベース、またはその他の一般的なリポジトリに保存されている。

データベースシステムでは、過去のテスト結果、結果の生成者、およびそれらの結果の生成に使用されたシステム構成を確認できる場合もある。これらの過去の結果は通常、別のテーブルに保存されている。

多くの場合、テストスイートには以下も含まれている。

 テストの概要
 構成

テストする機能の説明、およびテストを確実に実行できるようにするために必要な準備に加えて、テストケースで最も時間のかかる部分は、システムが変更されたときに既存のテストケース変更することである。

特別な場合であるが、テストを実行して生成した結果を、専門家のチームが見て合否を評価する。これは、新製品のパフォーマンス数値の決定でよく発生する。最初のテストは、後続のテストおよび製品リリースサイクルのベースラインとして使用される。

書面によるテストケースの変種を使用する受け入れテストは、通常、システムのエンドユーザーまたは顧客の担当部門によって実行され、開発されたシステムが指定された要件または契約を満たしていることを確認する。ユーザー受け入れテストは、ハッピーパスまたはポジティブテストケースを含める一方、ネガティブテストケースはほぼ完全に除外される。

関連項目 
 ソフトウェアテスト
 分類ツリー法

脚注

外部リンク 

 Writing Software Security Test Cases - Putting security test cases into your test plan by Robert Auger
 Software Test Case Engineering By Ajay Bhagwat

ソフトウェアテスティング