ソフトウェア開発において、テストは極めて重要な工程です。不具合が無く高い品質のソフトウェアを作り上げるには、抜け漏れのない正確なテストの実施が欠かせませ。
正確なテスト実施には対象となる機能について分析して、適切なテスト設計を行う必要があります。そこで、今回はテスト分析の目的や内容、各手順の進め方についてご紹介します。
テスト分析とは?
テスト分析とは、テスト対象のシステムの仕様や要求について、テストベースを確認して分析を行う作業を指します。
テストベースはテスト分析のために利用する情報源となるもので、次のようなものが挙げられます。
- クライアントが機能に要求する仕様についてまとめた「要求仕様書」
- 要求仕様書の内容を、機能としてどのように実装するかをまとめた「機能仕様書」
- 実装機能の詳細についてまとめた「詳細設計書」
開発業務におけるテスト工程は、必ずしもプログラマーが行うとは限りません。テスターやデバッガー、または専任のテストエンジニアなど、テスト技法に精通するエンジニアが担当する場合もあります。
その場合、プログラミングに携わっていないメンバーはテストベースを確認して、テスト設計を行うための仕様を理解する必要があります。このような、テストベースを確認してテスト設計に必要な情報を導き出す工程がテスト分析です。
テスト分析の目的とは?
テスト分析は、以下のような目的で行われます。
・機能毎にどのようなテストが必要かを洗い出す
テスト対象を理解・分析して、何をどのような目的でテストする必要があるのかを洗い出します。
・機能仕様書を確認することで、設計に抜け漏れがないか、定義に矛盾がないかを確認する
機能仕様書をテスト分析の観点で確認していると「特定のパターンに対する仕様が漏れている」や「定義が矛盾しておりテストが実施出来ない」といった不備を見つけられるケースがあります。
テスト分析の過程で不備を発見した場合は、内容をプログラマーにフィードバックして問題を解決してもらいます。
テスト分析を進める手順
テスト分析を含めたテスト全般の作業の流れは、一般的に以下の手順で進みます。
1. テスト要求抽出
まずは、テスト要求抽出を行います。テスト要求抽出では、利用者がソフトウェアに求める機能に対して「どういった目的」や「どのようなテストを実施するべきか」といった点を確認します。
テスト要求分析ともいわれ、テスト要求仕様書を作成するために必要な工程です。テスト要求抽出では、5W1Hの視点でテストすべき項目をチェックするのが効果的です。
- Who(誰)
- Why(要求)
- What(仕様)
- When(いつ)
- Where(どこ)
- How(設計)
さまざまな観点から要求抽出を行い、洗い出した内容から重複や抜け漏れのチェックを繰り返して、テスト内容を明確にします。5W1Hは、その際に役立つ手法のひとつとして押さえておきましょう。
2. テスト計画
テスト計画の工程ではテスト要求抽出で洗い出したテスト項目をもとに、実際のテスト計画を立てていきます。
テストの目的や方針、テスト時に留意すべきこと、スケジュールをまとめたテスト計画書を作成します。
テスト計画書を作ることで、テスト内容の検討漏れ防止、テストのやり直しなどで発生する余計な工数の削減、リリース後の不具合発生による損害リスクが低減されます。
テスト計画の工程は、後述の手順も含めた、テストすべての予定を定める重要な工程であり、テストの成否にも大きく関係します。
3. テスト分析・設計
テスト計画書の作成後は、テスト分析・設計工程に進みます。ここでは、どのテスト項目をどのようにテストすべきかを決定しましょう。
まずは、テスト分析の工程として、テストベースをもとにテスト対象のシステムについて把握します。テスト分析後は、テスト設計の工程として、まずはテスト観点の整理を行います。
テストを行う上で必要になってくる考え方や切り口のことをテスト観点といい、テストの方向性を決めるためにも重要な役割を果たすものです。テスト観点については、こちらの記事でも詳しく紹介しているのでぜひご確認ください。
テスト観点を整理した後は、どのようなテスト設計技法を用いるかを決定します。テスト設計技法とは、テストに抜け漏れがないよう、テスト対象を網羅するための方法です。
テスト対象のシステムや、テスト目的によって効果的な設計技法も分かれてきます。代表的な設計技法に「ホワイトボックステスト」「ブラックボックステスト」があります。
ホワイトボックステストは、テスト対象のソフトウェアの処理の流れやロジックが正しいかを検証するテスト技法です。
一方、ブラックボックステストは、入力と出力のみに注目した、ソフトウェアの内部構造は考慮しないテスト技法です。
それぞれの設計技法については、各記事で詳しくご紹介しているのでぜひご確認ください。
ブラックボックステストとは?ホワイトボックステストとの違いも解説
ホワイトボックステストとは?ブラックボックステストとの違いも解説
4. テスト実装
テスト実装とは、テスト担当者がテストを実施出来るよう、手順や出力結果を具体的にまとめたテストケースを作成する工程です。
例えば、生産管理システムにおける、部品の在庫情報確認画面の検索機能についてテストする場合は次のようなテストケースを作成します。
- 検索条件入力欄に、検索対象の部品名を入力する
- 部品名の入力後、検索ボタンを押下する
- 入力した部品名に該当する部品の詳細情報が検索結果として表示される
このテストケースを、テストが必要な機能の数だけ作成することになり、これらをまとめたものが、テスト仕様書と呼ばれます。
テスト分析とテスト設計とは?
テスト分析とテスト設計は、テストの方針を決定するための工程として混同されがちです。
テスト分析は「テスト対象のソフトウェアの機能について調査・理解する」工程であり、テスト設計は「それぞれの機能に対して、どのようなテスト観点・設計技法でテストしていくかを決定する」工程です。
そのため、まずはテスト分析によるソフトウェア機能の把握を正確に行うことで、テスト設計工程で考慮すべきテスト観点や設計技法を定義出来ます。
抜け漏れのないテストケースを作成するためにも、この2つの工程は極めて重要です。
【まとめ】テスト分析について理解を深めよう
テスト分析によってテスト対象の機能を理解することは、抜け漏れのないテストケースを作成するためにも重要です。
機能仕様書や詳細設計書といった、テストベースの定義漏れや矛盾がないかを再チェックする機会にもなるため、テスト分析についての理解を深めて実践しましょう。