V字モデル:あなたのプロジェクトを映す秘密の鏡
6分39秒 | PM品質FE
基本情報技術者試験の頻出テーマを解説した動画コンテンツです。
トランスクリプト(字幕テキスト)
プロジェクトを進めていると、計画とテストって何だか別のものに感じることありませんか? 今回はですね、そのモヤモヤをスッキリ解消してくれるV字モデルっていうシンプルだけどすっごく強力な考え方をご紹介します。 プロジェクトもいよいよ大詰め。物も出来上がった。でも最後のテストの段階になってふと 「あれ?これって最初の計画通りにちゃんと動くんだったっけ?」って急に不安になったり。そんな経験、皆さんにもあるんじゃないでしょうか。 例えば、ウォーターフォールモデルみたいな昔ながらのやり方だと、まず全部計画を立てて、それから作って、最後にまとめてテストするみたいな流れですよね。 そうすると、最初のほうで決めたことが最後の最後で初めて「本当にこれで良かったんだっけ?」って検証されることになって、 なんかテストが後付けの作業みたいに感じられちゃうんですよね。 この、計画とテストが離ればなれになっちゃう問題を、見事に解決してくれるのが今回ご紹介する「V字モデル」なんです。どういうことかっていうと、 計画の各段階で「じゃあ、この計画がうまくいったかどうやってテストしようか?」ってことをあらかじめ決めちゃうんです。これでプロジェクトの始まりと終わりがガッチリ手を組むわけですね。 このV字モデルを、もっとこう直感的に理解するためのキーワードが、ズバリ「鏡」です。 計画を立てる、つまりVの左側を進むときに、それを映し出す鏡、つまりテスト、Vの右側も同時に用意しておくイメージ。 この「鏡」っていう比喩が今回の話のめちゃくちゃ重要な鍵になります。 さあ、じゃあV字モデルの旅に出かけましょう。まずはVの字の左側、坂を下っていくところから。ここは設計のフェーズですね。 まあ家を立てるときみたいに、まず全体のコンセプトを決めて、次に間取りを考えて、最後に壁紙とかの細かいデザインを決めていくみたいな感じ。 大きなところからだんだん細かい部分へと計画を具体的にしていくわけです。 最初のステップは「要件定義」。これが一番上のプロジェクトの出発点ですね。 ここでは、ユーザーがこのシステムで結局何がしたいの?っていう一番根本にある要望をはっきりと言葉にしていく段階です。 さて、次のステップは「基本設計」です。ここでは、ユーザーの要望をもとにして、画面のデザインとかメニューの並び順とか、 ユーザーが直接見たり触ったりする部分を設計していきます。言ってみれば、システムの見ためを決める部分ですね。 そして設計フェーズの最後が「詳細設計」。ここが一番細かいレベルですね。システムの中身、つまりユーザーの目には見えない部分の動きを設計します。 例えば、このボタンを押したら裏側でどんな計算が行われるのか?みたいな、一つ一つの細かい動きを決めていく段階です。 さて、Vの字の底までたどり着きました。ここからが本番。今度は右側の坂を登っていくテストのフェーズです。 V字モデルのすごいところはまさにここから。それぞれのテストが左側で作った設計図をちゃんと映し出しているか、その鏡の反射を一つ一つ確認していく作業なんです。 まずは、一番下のレベルから見ていきましょう。一番細かく決めた「詳細設計」。これに対応するのが「単体テスト」です。 設計書通りに部品が一個一個、ちゃんと意図した通りに動くかな?っていうのを確認するんですね。プログラムの最小単位が正しく動くことを、ここで保証するわけです。 次に、単体で動くことがわかった部品たちを今度はくっつけてみて、ちゃんと連携するかどうかをチェックする。これが「結合テスト」です。 これは例えば、画面と画面が正しくつながるかみたいなことを確認するテストで、まさに「基本設計」で計画したユーザーから見たシステムの動きを検証するステップになるんです。 そしていよいよ最終段階が「受け入れテスト」です。システムが全部完成した状態で、 一番最初の「要件定義」で決めたユーザーさんが本当にやりたかったことがちゃんと実現できているか、これをユーザー自身に最終確認してもらうんです。 プロジェクトの出発点に戻って「お願いした通りのものできてますか?」っていう答え合わせをする、まさにクライマックスですね。 いや、まさにこの「答え合わせ」っていう例え、V字モデルの本質をすごくうまく表してますよね。Vの左側で問題、つまり計画を作って、 右側の同じ高さのところで、その答え、つまりテストで確認する。この対応関係がしっかりしてるから、テストのやり忘れがなくなって、品質がグッと上がるんです。 では、このV字モデル、つまり「鏡」の考え方を使うと、具体的にどんな良いことがあるんでしょうか。その本当の価値を、ちょっと深掘りしてみましょう。 この表が、設計とテストの鏡合わせの関係をまとめたものですね。見ていただくと一目瞭然ですけど、 一番大きな話である「要件定義」は、ユーザー視点の最終テスト「受け入れテスト」でチェックされる。で、計画が具体的になればなるほど、テストもどんどん細かい単位になっていく。 この綺麗な対応関係こそが、V字モデルの最大の強みなんです。つまりですね、V字モデルがもたらす最大のメリット、 それは、テストの合格基準がものすごくはっきりする、っていうことなんです。例えば結合テストなら、「基本設計書に書いてある通りに画面がつながれば合格」みたいに、 対応する設計書がそのままテストの教科書になるんです。これによって、テストする人の感覚に頼らない、客観的な品質チェックができるようになるんですね。 このV字モデルの構造、覚えるための簡単なコツがあります。それは「外側」「中間」「内側」っていう3つの層で考えることです。 外側はユーザーの要望と最終確認。中間はシステムの見ためと連携のテスト。 そして内側は裏側の細かいロジックとそのテスト。こんなふうに階層で考えると、全体のイメージが掴みやすいかもしれませんね。 この、計画を立てるときに、そのチェック項目も一緒に考えるっていう「鏡」の考え方、実はソフトウェア開発だけじゃなくてもめちゃくちゃ応用が利くんですよね。 例えば、プレゼン資料を作るときに、「伝えたいメッセージ」と「それはちゃんと伝わったか確認するための質問」をセットで考えておくとか。 あなたの仕事の中で、この鏡は他にどんな明確さをもたらしてくれるでしょうか。ぜひ考えてみてください。
このコンテンツは Web society で視聴・学習できます。