見出し画像

テスト設計が学べるオンライン講座を受講して学んだものをアウトプットする記事(2/3)

こんにちは。Azukaritai の村穂です。

前回に続き、ProAcademy で学んだことをアウトプットしていきたいと思います。前回の記事では「ソフトウェアの7原則」について書きました。今回は「テスト種別・テスト技法」について書きます。

テスト種別・テスト設計技法

一口にテストといっても、目的に応じて内容が変わってきます。テストする目的に合わせたテストを行うために、テストレベルとテスト設計技法を把握しましょう。テストレベルとは、テスト作業をテスト対象(開発ドキュメント・開発対象)や責任範囲単位に分割したものです。テストレベルには以下の4つがあります。

コンポーネントテスト

ユニットテスト、プログラムテスト、モジュールテストなどと呼ばれたりもする。テストが可能な最小部品単位に分割し、一つ一つの部品が期待通りに動作することを確認するテスト

統合テスト

単体テストで確認した部品を、システム内の他の部品、OS、ファイルシステム、ハードウェアなどと組み合わせた場合の相互処理や、他システム間とのインターフェースを確認するテスト

システムテスト

最終的なシステム構成や運用、構成データと可能な限り同じ環境で、操作マニュアルや機能要件/非機能要件などを想定して設計し、要求仕様の確認をするテスト

受け入れテスト

システム全体または一部や、非機能的な特性が正しいことを確認するテストで、システムを使う顧客やユーザが実施することが多いため、ユーザ受け入れテストとも呼ばれることが多い

またテストタイプというのもあります。
テストタイプとは、テストすべきソフトウェア要求の種類(機能要求や非機能要件などの品質特性)やソフトウェアの構造などでテストを分類したものです。

以下の4種類があります。

機能テスト

テスト対象が求められている仕様を満たしているかを確認するテスト

非機能テスト

システムがどのように動作するのかを見るテスト。システムの機能単体に関係のない箇所全てが検証対象になるため、計測可能な項目を定める必要がある。

ホワイトボックステスト

ソフトウェアテストの内部構造に着目して行うテスト。ブラックボックステストも存在し、こちらはユーザ側で見える部分に着目して行うテスト。

変更部分のテスト(リグレッションテスト)

不具合を修正した結果、他の機能に影響を及ぼしていないかを確認するテスト。

ここまで、テストタイプについて書いてきました。次にテスト設計技法です。テスト設計技法を知っていると、テスト対象に関してどんな技法に取り組むのが良いかアイデアを出しやすくなります。

テスト設計技法は大きく以下の3タイプに分かれます。

ブラックボックス

仕様ベースのテスト設計技法です。テスト対象の仕様が明らかになっていることを前提に設計する技法です。例えば以下の技法が該当します。
・同値分割
・境界値分析
・デシジョンテーブル
・状態遷移テスト
・ユースケーステスト
など

ホワイトボックス

構造ベースのテスト設計技法です。テスト対象のソフトウェアの内部構造を検証するために設計する技法です。例えば以下の技法が該当します
・ステートメントカバレッジ
・デシジョンカバレッジ
・条件カバレッジ
・複合条件カバレッジ
など

経験ベース

テスト設計や実施を行う担当者が持つスキルや経験、またユーザの利用実態に関する情報、経験則などをもとに設計する技法です。担当者の能力が高ければもっとも効率的なテスト設計技法です。例えば以下の技法が該当します
・エラー推測
・探索的テスト
など

※各技法の詳細説明はここでは割愛させて頂きます。

テスト種別とテスト設計技法を把握し、戦略的にテストをしよう!

今回は多くの用語が出てきて大変だったと思います。テスト設計技法に関しては各技法の詳細説明を省いていますので、それぞれ調べるともっと覚えることがあると気づかれるでしょう。大変ですがこれらを覚えるとなんとなくでテストケースを書くよりも効果的なテストケースを設計をすることが出来ます。また、メンバーとテスト設計の会話をするときも用語を用いて話せた方が意思疎通が円滑になります(用語に対して認識の差異がなければ)。

次回は「テスト分析」と「レビューすることの大切さ」について書こうと思います。

今回も ProAcademy のインプットフェーズで学んだことをベースにアウトプットさせて頂きました。次回はインプットフェーズで学んだこと以外にアウトプットフェーズで得た気づきも紹介したいと思います。

この記事が気に入ったらサポートをしてみませんか?