バルテスで、テスト業務に関する研究開発、人材育成を担当している三堀と申します。
テスト業務に就いていると、様々な「テスト」と名の付く言葉に出会うと思いますが、初めてテストを担当する方やまだテストを担当したばかりという方は、この多くの「テスト」と付く言葉に戸惑ってしまっているのではないでしょうか。
「テスト計画」、「テスト設計」・・・。この2つの言葉にも頭を抱えていませんか?
「テスト計画、テスト設計ってなに?違いがよく分からない・・・。」題名を見て、このような感想を持ったあなた。
そんなあなたのために、本稿では「テスト計画」と「テスト設計」を分かりやすく解説していきたいと思います。
- もくじ
1.「テスト計画」、「テスト設計」ってなに?
まずは「テスト計画」、「テスト設計」とは何かをおさえていきましょう。
「テスト計画」とは「テストの計画を立てること」
「テスト設計」とは「テストする内容を設計すること」です。
・・・と、これでは結局何をすることなのかイマイチ分からないですよね。この章ではテスト計画・テスト設計を「旅行」に例えて解説していきます。
1-1 テスト計画=テストの計画を立てること
テスト計画とは、簡単にいうとテストの計画を立てることです。
旅行に例えて考えてみましょう。
家族など何名かのグループで旅行に行くことになったとイメージしてください。
旅行するためにまず、何をしますか?
- 旅行で何をしたいか考える。
(温泉でゆっくりしたい!)
- 何処に旅行に行くのか決める。
(温泉入りたいから、草津行く!)
- 何日から何泊するのか決める。
(7/13から7/14まで1泊2日)
- 予算を決める。
(4人で12万)
こんなところでしょうか。
実はテストでも同じようなことを考えます。
- テストで何をしたいのか考える。
(バグを無くしたい!)
- 何処をテストするのか決める。
(特にここはバグがあると困るから重点的にテストする!)
- テストの期間を決める
(7/1から7/31まで1か月間)
- テストに掛かる工数を決める。
(5人で800時間)
このように、「テストで何をしたいのか、どのような予定でテストするか」を決めるのが「テスト計画」ということになります。
1-2 テスト設計=テストする内容を設計すること
テスト設計はテストする内容を設計することです。こちらも旅行を例にして考えていきましょう。
旅行の目的やおおよその計画を立てたら、次にどのように旅行するかを決めませんか?
- どうやって移動する?
(車?電車?)
- どのようなルートで行く?
(最短ルート?遠回りでも景色が良いルート?)
- 宿泊先はどうする?
(駅近?景色が良いところ?料理がおいしいところ?)
このように移動手段や宿泊先、ごはん屋さんなどを検討して決めていくかと思います。
これをテストで考えてみましょう。
- どうやってテストする?
(テストする手順は?使用するデータは?)
- どのようなパターンでテストする?
(どのようなパラメータの組み合わせパターンにする?)
- 期待結果はどうする?
(機能仕様書から読み取れる?テスト側で確認する手段ある?)
つまり、「どのような手段でテストするのか」を検討して決めるのが「テスト設計」です。
なんとなくでも、「テスト計画」と「テスト設計」がどんなものかイメージ湧きましたでしょうか?
注意して頂きたいのは、「テスト計画」、「テスト設計」共に、上記で挙げた内容を考えれば終わりというものではないということです。
今回は「テスト計画」、「テスト設計」を理解してもらうために、あえてざっくり説明していますので、他に考えなければならない事項については割愛させて頂きます。
2.「テスト計画」と「テスト設計」が重要な理由
次に、「テスト計画」と「テスト設計」をする理由について解説していきたいと思います。
前章では、テストを旅行に例えて解説しました。ただ、旅行は何も計画しないで行き当たりばったりで行く場合もあると思います。むしろ、そういった旅行の方が好きという方もいるかもしれません。
しかし、テストはそういう訳にはいきません。
行き当たりばったりでテストしたことで不具合を見逃してしまい、不具合が残ったままのシステムやサービスが世の中に出てしまった結果、命に関わる重大な事故や大きな損害が発生してしまうかもしれません。
これは比喩ではありません。最近の事例だと、鉄道の逆走事故やバーコード決済サービスのセキュリティ事故などがニュースに取り上げられたりしていますよね?実際に起こる問題であるため、軽く考えてはいけないのです。
このような話を聞くと、「じゃあテストはたっぷり時間を掛けて、入念にやらないとヤバイじゃん」と思うかもしれませんが、残念ながら、納得がいくまで延々とテストするということは出来ません。予算や時間、投入できる人員といった制約があります(テストに限った話ではありませんが・・・)。
そのため、その限られた予算と時間、人員で不具合を見つけていくために、「テスト計画」でテストの計画とスケジュールを決めて、「テスト設計」で計画どおりにテストを実行できるようにして、テストに臨まないといけないわけです。
3.「テスト計画」、「テスト設計」で確認・決定する事項
この章では、実際に「テスト計画」、「テスト設計」で確認したり、決めたりする内容を解説します。
「テスト計画」、「テスト設計」では以下のような内容を決めていきます。
※ただし、ここで挙げた内容はあくまでも一例です。検討し、決めていくべき項目は他にもありますし、会社やプロジェクト状況によっても変わってきます。
- テストの背景、目的
- テスト対象、非対象(機能一覧)
- テスト戦略(テストアプローチ)
- テスト観点(概要)
- スケジュール
- 工数
- 管理計画(不具合管理、課題管理など)
- テスト観点の詳細化
- テスト対象の詳細化(機能細分化)
- テスト対象へのテスト観点割り当て
- 使用するテスト技法の検討と適用範囲
- テストするパターン(インプットパターン、アウトプットパターン)
- テストの実施手順
- 期待結果
- テストで使用するデータの内容、パターン
4.経験が浅いうちは「ISO/IEC/IEEE 29119」を考える指針にしよう
「テスト計画」、「テスト設計」について解説してきましたが、現場によって状況は異なります。まだ経験が浅く心配な方は「ISO/IEC/IEEE 29119-3: Test Documentation」を考える指針にすることをおすすめします。
「テスト計画」や「テスト設計」など、テストに必要なドキュメントについて、国際標準規格が定められています。この標準規格をベースにすれば、何もない状態から考えていくよりも、考えやすくなると思います。
ただし、これはどのようなプロジェクトにも使える魔法のツールというわけではありません。「国際標準規格の項目を埋めれば良いや」と思考停止にならないよう注意が必要です。
おわりに
本稿では「テスト計画」、「テスト設計」について解説しました。
簡単に説明すると、
「テスト計画」とは「テストで何をしたいのか、どのような予定でテストするかを決めること」、
「テスト設計」とは「どのような手段でテストするのかを検討して決めること」です。
それぞれで検討・決定すべき事項も紹介しましたが、大事なのは、テスト計画書、テスト設計書の項目を埋めることではなく、テスト担当者であるあなたが、「テストで何をしたいのか」、「どうやってテストするつもりなのか」を明文化することです。
もし検討段階でつまづいたら「ISO/IEC/IEEE 29119」などの国際標準規格も参考にしてみてください。
[会員特典] ISO/IEC/IEEE 29119 ソフトウェアテスト規格の教科書 電子版
ソフトウェアテストの国際規格 ISO/IEC/IEEE 29119の解説本が、ISO議長であるStuart Reid氏によって執筆されています。本書はその日本語翻訳本です。