開発に必要不可欠なテスト設計書について説明!
発プロセスとして欠かすことができない工程として、「テスト工程」があります。
テスト工程とは実際に作り上げたシステムが、仕様通りになっているかを確認する工程で、不具合を効率よく検出するために必要な工程となっております。
その中で今回はテスト設計書について説明します。
なぜテスト設計書が必要であるか、また実際にどのように作成する必要があるかまでご紹介いたします。
1. テスト設計書とは
テスト設計書とは、そのシステムに対しどのような操作を行ってどのような動きをするのが正解かを記載した資料となります。
会社によってはテスト仕様書とも呼ばれております。
テスト設計書はシステムエンジニアやプログラマが主に作成するものであり、作り上げたシステムが仕様として正しいものかをテストするのに使う資料となります。
テスト設計書のインプットはテスト計画書となります。
テスト計画書をもとに作成するのですが、ポイントとしては「誰が見ても同じ解釈ができる」ということになります。
大規模なプロジェクトとなると、テスト設計書を作成する人と実際にテスト設計書に沿ってテストを実施する人は異なる場合があります。
その時に意図してないテストを実施してしまい不具合がすりぬけてしまうこともあるのです。
テスト自体は非常に地味なものですが細心の注意を払って行わなくてはなりません。
そういう意味でもスキルが必要で、かつ品質を決める重要な成果物となるのがテスト設計書となるのです。
1-1. テスト計画との違い
テスト計画との違いですが、テスト計画は以下の内容を記載することが多いです。
・テストするシステムの範囲
・テストを実施する観点
・テスト期間やプロセスの記載、テスト環境の明記
一方テスト設計書は以下の内容を記載することが多いです。
・テスト計画に従った、テストの実施方法
・期待される結果の記載
・テスト実施日、再鑑欄、エビデンスの記載
テスト計画は、具体的な工程(例えば単体テスト工程や、結合テスト工程など)内部で達成されるべきテスト内容や観点、テスト範囲、具体的な実施方法など工程全体としての計画を記載いたします。
その計画を見て達成可能かどうかや、プロジェクト計画時に立案した内容と認識齟齬がないかをレビュー観点として確認していきます。
一方テスト設計書は実際にテストをする観点やシステム名に対して、テストを実施する手順や合格基準等を記載していきます。
実際にテストを実施する際はテスト計画書ではなくテスト設計書を見ながら正しいシステムになっているかをテストしていきます。
テスト設計書はテスト計画書や基本(詳細)設計書をインプットに作成していきます。
2. テスト設計に必要なスキル
正しくテスト設計書を作成するためにはテスト計画書や基本(詳細)設計書を正しく理解し、テスト設計書に落とし込むことのできるスキルが必要となります。
正しいテストを実施するためには上流工程である設計工程を正しく理解する必要があるのです。
以下に具体的に必要なスキルを紹介していきます。
2-1. 設計書を正しく理解するスキル
テスト設計書は、そのテスト工程と対になる設計書をインプットに作成することとなります。
具体的には単体テスト設計書であれば詳細設計書であり、結合テスト設計書であれば基本設計書であり、総合テストやユーザー受入テスト設計書であれば、要件定義書や基本設計書となるのです。
このような工程モデルをV字モデルといいます。
https://webrage.jp/techblog/v_shaped_mode/
テスト設計書を作成するには対象となる工程の設計書を正しく理解し、テスト手順や合格基準を設定する必要があります。
テスト設計書が誤っていたりテストに抜けや漏れがあると、誤ったテストや不十分なテストとなってしまい本来検出できるはずのバグが検出できず、品質担保ができなくなってしまいます。
2-2. テスト計画書を正しく理解するスキル
テスト設計書は、その工程で作成されたテスト計画書に従って作成する必要があります。
テスト計画書はその工程全体を計画した成果物ですが、テスト設計書は各システムで検証したい機能に対してテスト定義したものとなります。
テスト計画書に比べて記載範囲は狭くなりますが、その分詳しく記載されている成果物がテスト設計書となります。
そのためテスト計画書に従ってテスト設計書を記載する必要があります。
あくまでテストを実施する際はテスト計画書ではなくテスト設計書を見ながら実施することになるのでテスト計画書とテスト設計書で記載した内容に齟齬があると正しいテストが実施できなくなってしまいます。
2-3. 実装を理解し修正できるプログラミングスキル
テストを実施していて、もしバグを発見した場合はプログラム修正が入ります。
プログラム修正を行った後再テストを実施し正しく修正できていることを確認するのです。
そのため単にテストを実施するだけではなくプログラムを修正できるプログラミング知識が必要となるのです。
また必要に応じて発見したバグに対して混入した原因や、ほかに同様のバグがないかをチェックする横展開調査を実施する必要もあります。
その際には他機能のプログラムをチェックし、必要に応じて修正する必要があるのです。
そのためたんにテストを実施する機能だけプログラムを知っているのでは正しいテストを実施することは難しいのです。
プログラミングスキルは製造工程だけでなくテスト工程においても必要となるのです。
3. テスト設計書の作成方法
ここではテスト設計書を実際に作成することになった場合にどのように作成する必要があるかを記載していきます。
正しいテストを実施するためには必要不可欠となりますので、下記内容を参考にしてください。
3-1. テスト計画書を確認し、テスト範囲や環境を明確にする
テスト設計書を作成するためにはテスト計画書が不可欠となります。
テスト計画書に記載されているテスト範囲やテスト環境をまずは確認しましょう。
どの環境を使うのか、テストするシステムの範囲はどうなっているか、テスト期間はいつまでか、まずはそのテスト工程の全体像を把握します。
またテスト計画書によってはテストシナリオが記載されている場合があります。
テストシナリオが記載されている場合は、そのテストシナリオに従って手順や合格基準を明確化するためにテスト設計書で具体的な記載が必要となるのです。
3-2. 基本(詳細)設計書を確認し、テスト手順や合格基準を明確化する
テスト設計書を作成するために必要なドキュメントとして、基本(詳細)設計書を確認し正しい仕様を確認することがあります。
テスト工程のゴールとして、例えば単体テストであればプログラムが詳細設計書どおりに作成されていることを確認することです。
また結合テストであればプログラムが基本設計書通りに作成されていることを確認することです。
このように先ほど説明したV字モデルに従ってプログラムが設計書通りに正しく作成されていることを確認する必要があるのです。
そのためには該当のテスト工程にしたがって、設計書をインプットにテスト設計書を記載する必要があるのです。
4. まとめ
今回はテスト設計書について説明してまいりました。
テスト工程には必要不可欠な成果物であり必ず作成が必要となります。
テスト計画との違いや作成方法等も説明しましたが、上記内容を意識して正しいテスト設計書を作成できるようになるとシステムの品質が上がり、安定稼働につながります。
正しいテストを実施するためにはプログラミングスキルはもちろんのこと、上流の設計工程のスキルも必要となります。
システムエンジニアとしてのステップとしてはまずテスト実施ということが多いかと思います。(特に入社1年目等)
そのテスト工程であってもプログラミングスキルや設計工程のスキルを磨くことができます。
単調なテスト実施にするのではなく、上記を意識してテストを実施できるとより素早くスキルが身につくことでしょう。