表題の通り、テストとは何か?についていかにまとめる
テストとは、IEEE標準規格 610.12-1990によれば、
「ある特定の条件のもとで、システムまたはコンポーネントの操作によりその結果を評価または観察して
システムまたはあるコンポーネントを評価すること」
※ある特定の条件とは、テストケースを指す。
テストは組織やメンバーが異なるとソフトウェアテストの目的も異なる。
テストもレベルがあり、以下のレベルの分類できる。
-
レベル0
テストとデバックには差もない。 -
レベル1
-
レベル2
-
レベル3
-
レベル4
テストケース
有効性と効率を追求するなら、テスト設計を怠ってはならない。設計は英語で「design」だが
- 1 心の中で何かを生み出すこと、考えること
- 2 体系的に、一般的には文書の形を整理すること
- 3 特定の目的や効果を生み出したり、目論んだりすること
- 4 目標や目的を持って取り組むこと
- 5 高いスキルで設計すること
優れたテスト設計を作成するには、どれも適用される内容である。
ここで改めて、テスト設計について改めてまとめる。
「最小の時間と労力でほとんどのエラーを検出する確率が高くなるように設計すること」である。
きちんとテスト設計しなければいけない要素は以下が該当する。
- 入力
- 出力
- 実行の順番
[入力]
多くの場合、入力はキーボードで入力されることをイメージされると思うが
インターフェース入力機器からのデータ、ファイルからデータの呼び出し、データが到着した時間のシステム状態なども「入力値」に含まれる。
[出力]
出力も入力と同様に多様性が存在する。出力は多くの場合、コンピュータ画面で出力され流ものだと思われがちである。それに加えて、データシステムやインターフェイスにデータが送られるものも該当する。
データはファイルやデータベースによって書き変わることも可能です。これらのことを「出力」と指す。
[実行の順番]
テストする順番は2通りある。
- 順番通りのテストケース
作成されたテストケース順にテストする方法。テストケースごとに相互影響を及ぼすリスクは存在する。
Ex.テスト1で起こった内容をテスト2でそのテスト結果を使う場合である。
- テストを作成する
- テストを読み出す
- テストを更新する
- テストを読み出す
- テストを削除する
※
メリット:テストケースが一般的に小さくて、単純であること
デメリット:
- 互いに独立しているテストケース
互いに独立しているため、干渉し合わないテストケース。それぞれが独立しあっている。
※
メリット: どんな順番でもテストができること
デメリット: テストケースが複雑でテスト管理が大変であること
[テストの種別]
テスト種別は大きく分けて、2点ある。
- ブラックボックステスト
- 要件や仕様に基づいたテスト。ソフトウエア内部や構造、ファイルパス、実装に影響するテストではない
- ホワイトボックステスト
- テスト対処であるソフトウエア内部、構造、ファイルパスに基づいて、テストする。 テスト対処であるソフトウエア内部、構造、ファイルパスに影響するテスト。プログラミングスキルが必要なテスト
[テストのレベル]
-
単体テスト
- 単体は、1つの成果物に対してテストする。言語によって、1つの成果物の区切り方は異なるが、ポイントは1つの成果物(機能など)に対してテストすることを指す 大概は一人称でテストすることが多い
-
結合テスト
- 統合システムでは、単体をサブシステム、最終的にはシステムとして結合させる 単体テストでは機能していても、結合させると動かないことはある。これを検証するテスト
- 結合するには、通らざるを得ない結合テストである
-
システムテスト
- システムテストは、完全な統合システムが設計仕様に対して機能するかどうかを確認するためのテスト。個々のコンポーネントやモジュールが正しく結合され、システム全体として期待される動作をするかを検証する
システム全体を対象とし、機能テスト、性能テスト、信頼性テスト、セキュリティテストなど多岐にわたる
-受入れテスト
-受入テストは、ソフトウェアがユーザーやクライアントの要求と期待を満たしているかどうかを確認するためのテスト。システムが実際の運用環境で使用可能であることを確認する最終段階。
ユーザーやクライアントの要求事項を満たすかどうかに焦点を当てる。システム全体を包括することもあれば、特定の機能や業務プロセスに限定されることもあります。