見出し画像

(2021年版) ソフトウェアテストの上流設計-2 テストケースを作る一連の流れ

テスト設計のアクティビティ


テストケースを作るためのアクティビティの流れを示すと下記の図のようになります。

スクリーンショット 2021-04-26 7.45.49

以下に、テストケース作成のためのアクティビティの概略を説明してきます。


 テスト計画 …的を定める段階

テストを計画するときに考えることはいくつもあり、それらはテストマネジメント虎の巻に記載しています(この連載はまだ未完成状態ですが、計画についてはだいたい伝えたいことを伝えられていると思います)。

計画の中で、テスト設計に関わる部分だけをここでは書いていきたいと思います。

テスト計画の中でテスト設計に関わる大事なこととしては、最初にどのような構造でテストケースを作っていくのかを決めます。(毎回考えることでもありませんが、もし何もなければ必要な決め事です。詳しくはテストマネジメント虎の巻で書いた、ホットスポットとフローズンスポットの解説を参照してください。)

どのような構造でテストケースを書いていくか、何も考えていない時でもテストケースの数が増えてくると、分類項目を作って見やすくするとか、表形式でテストケースを書いていくにしても列を分けて、列名を決めて書いていくと思います。このようなことを思いつきでやるのではなく、最初に決めておいたほうがよいです。思いつきでやっていくとテスト設計してる人によって分類がバラバラになったりします。複数人ではなく、たとえ1人でテスト設計をやってたとしても、最初のころと1ヶ月たったときでは分類項目ごとに書いてることに一貫性がなくなってきたりします。

よくあるテストケースを記述する方法に、テストケースのリストの分類を「大項目」「中項目」「小項目」としているものがありますが、この分類方法には問題があります。

スクリーンショット 2021-04-26 7.30.29

テストケースを書いていくリストの分類を「大項目」「中項目」「小項目」とすると、たくさんのテストケースがリストされている表の中に重複するテストケースがあってもわからなくなるのです。

ゆもつよメソッドでは、ドキュメントフォーマットと実施順序のルール化をして、この問題に対処しています。これについてはこの記事の最後に、おまけとして追記します。

また、テスト対象について大まかに理解をして、テスト目的を設定することと、目的にあったテスト対象アイテム を特定します。これらは、テスト分析、テスト設計を行う際の立脚点となるものであり、非常に重要な役割を担います。

大まかに理解するには、テスト対象を絵で描き、モデルとして抽象的に表現してみるのがお勧めです。ゆもつよメソッドでは、次回以降に説明する論理的機能構造をベースにモデルを書くのを推奨しています。


 テスト分析…的を具体的に理解する段階


テスト分析では、テスト対象アイテムの仕様を理解し、不明点を明らかにした後に、テスト対象の分析とテスト目的の分析を行います。

的を具体的に理解することで、無駄にテストケースが多くならず、狙いに対して的確になります。

ゆもつよメソッドでは、テスト対象の分析として機能の整理と再分類を行い、結果的にはフィーチャー一覧を作ります。テスト目的の分析では、テストタイプを特定し、テストタイプをさらに分類していきテストカテゴリを作ります。

二つの分析結果からテスト条件となる仕様項目(テストすべき事柄)をピックアップしていきます。


 テスト設計…工夫する段階


ピックアップした仕様項目を網羅するためのテストケースをどう導くか方針を出していきます。これをテスト設計方針と呼びます。

的を射るテストケースにするために創意工夫をするためのアイデアを考え出すのがテスト設計の醍醐味です。

この部分で必要に応じてテスト技法を選択します。テスト技法に関するマガジンを作っているので参考にしてください。テスト技法は先人が考え出した、的を射るテストケースを作るためのベストプラクティスです。上手く使えるものは有効活用しない手はありません。

また、仕様項目だけではテストケースの設計が困難なものに対しては、テストケースをどう導くかをより具体的にするため、 P-V(パラメーターと値)の出し方、P-Vの組合せ方法を決めていきます。


 テスト詳細設計 …創り上げる段階


テスト詳細設計は上述したように、テスト設計の結果を受けて、テスト技法を活用するなどの方法でテストケースを導いていく行為です。以下の図の「テストケースにしたてる」と書いてあるところが該当します。

スクリーンショット 2021-05-04 8.03.21

テスト詳細設計には、仕様項目のモデル化以外にも、モデルから自動的にテストケースを作る技術など、注目するべきトピックは多くあります。


 テスト実装 …実行の効率化を計る段階


テスト実装では、作成したテストケースの多くをより少ないテスト実行回数and/or 短時間で確認出来るような準備をします。これは、テストを人力で行うのであれば手順書作成になりますし、自動化するのであればスクリプト作成や自動テスト環境の構築になります。テストの現場では、テスト設計がなく、いきなりテスト実行の手順が書かれている状況を目にすることも多くあり、非常に問題となっています。

また、(テストケースを作るまで一連の流れには含まれませんが)テスト用の環境構築や、テストデータ作成といったこともテスト実装で行います。これらも作成したテストケースの多くをより少ないテスト実行回数/短時間で確認出来る準備となります。

テストの上流設計

テストケースを作るアクティビティは前述したようになりますが、本稿では、テストの上流設計に当たるテスト目的の設定、テスト分析、テスト設計にフォーカスしたいと思います。つまり「テストの上流設計」です。

ここから先は

4,446字 / 5画像
この記事のみ ¥ 300

サポートありがとうございます。これをカテにこれからも頑張ります。