トレンド情報 / 記事を探すCOLUMN

テストはいつ行っているの?ソフトウェア開発の流れとテスト工程

更新日|2018.04.27

Qbook編集部

テストはいつ行っているの?ソフトウェア開発の流れとテスト工程

ソフトウェア開発において、成果物の品質を保証するために必須となるのが「テスト」です。プログラマやシステムエンジニアなど、開発を担当している方は、テストが重要な位置づけだと頭では理解・納得していても、開発業務が忙しいあまりにソフトウェアテストの工程がおろそかになりがちです。
また、ソフトウェア開発のスタイルによっては、テストを行うべきタイミングはさまざまですが開発に並行してテストを行うと、さまざまなメリットがあります。「開発に並行してテストをする」というのがよく分からない、という方に、「W 字モデル」という考え方をご紹介していきます。

今回は、基本的なウォーターフォール型のプロセスに対して、実装後に対応するテストを順に行う「V 字モデルの考え方」と、初期段階でのテストプロセスを行うことによる「W 字モデルとそ の効果」を基礎的な概念から分かりやすく解説します。

開発の流れとテストの流れ

1-02

一般にウォーターフォール型開発と呼ばれる、ソフトウェア開発の基本的な流れは、要求定義・基本設計・詳細設計・コーディング・テストというように、1つの工程が完了してから次の工程に進めていきます。
しかし一口にテスト工程、といっても要求定義からコーディングまでの工程の結果を1つずつテストする必要があるため、実際にはテスト工程はいくつかに分かれます。ここでは、

・要求定義では、システムテスト
・基本設計では、結合/機能テスト
・詳細設計では、単体テスト

と、ソフトウェアテスト工程を、要求定義・基本設計・詳細設計の流れに対応させて3工程に分けて考えることにしましょう。
ただ、これだけですと「いつ」「何のテスト」を、どの開発工程に対応させるのかがわかりにくいため、以下で V 字モデルの説明をします。

「V 字モデル」について

上述で説明したソフトウェアの「開発」から「テスト」、「リリース」までの一連の流れにおける、開発工程とテスト工程の対応関係を表したものが V 字モデルです。
V 字の左側が「開発工程」を表し、V 字の下の方へ工程が進みコーディングが完了すると開発工程は終了、V 字の頂点である「コーディング」を起点として、V 字の右側である「テスト工程」へと移ります。ウォーターフォール(滝の流れ)になぞらえて、開発工程のことを「上流工程」、テスト工程のことを「下流工程」と呼ぶこともあります。

Vmoderu

V モデルとは、開発工程とテスト工程の対応関係をはっきりと表したモデルのため、各工程で何のテストを行うかが分かりやすいという利点があります。開発工程とテスト工程の対応関係が曖昧な場合、テストによる品質の保証が難しいため、ソフトウェア開発を行う場合は開発工程とテスト工程を明確にしておくことが重要です。そうすることで、どの段階でどの部分を、どれくらいの細かさでテストするのかが明確になり、テスト工程をよりスムースに進めることができるのです。

テストを早期に行うことで得られるメリットとは

V 字モデルでは開発工程とテスト工程がそれぞれ対応関係を表していました。次に、開発工程とテスト工程を並行して進める「W 字モデル」を用いて、開発とテストを並行して行う場合の開発者にとってのメリットをご紹介します。

「W 字モデル」とは

W 字モデルは、開発初期(要求定義や設計の段階)から開発フェーズとテストフェーズを同時に並行して進めていくテストモデルのことをいいます。
W 字モデルは、上述で説明した V モデルを元に、開発の仕様定義・設計・実行フェーズで意識的にテストプロセスを関わらせる考え方です。すなわち、V 字モデルを発展させたテストスタイルといえます。もちろん、実装が完了していないとシステムを実際に動作させるテストはできないので、開発工程ではテストケースの準備や、開発工程での成果物のレビュー参加などを行います。

また、テスト工程に関しても開発側がノータッチというわけにもいきません。発見された不具合を修正する作業の中で、テスト側と協力して業務を進める必要があります。W 字モデルは、「上流は開発、下流はテスト」のように分断するのではなく、「並走」して進めるということを表しているのです。Wmoderu

「W 字モデル」のメリット

W 字モデルには大きく分けて2点のメリットがあります。
1点目は、テストエンジニアが、ソフトウェア開発の要求定義や設計など開発の上流工程から密に関わることができます。開発当事者ではない第三者の目を通して確認することは、開発者では気づかない不具合を検出する可能性を高めます。
これにより、テストエンジニア(第三者)が設計書や仕様書を確認でき、仕様・設計の抜け漏れ、矛盾が発見しやすくなり、早期に仕様の抜け漏れなどの問題を防ぐことができます。そのため、開発工程から品質の向上にもつながるのです。

2点目は、下流工程で不具合を発見するよりも、上流工程で不具合を発見することでコストダウンが見込めます。1点目と類似しますが、上流工程で不具合を発見することにより、作業の手戻りの発生を抑えることができるため、その分のコストが減少するのです。

まとめると、開発とテストを同時並行に行うことで開発中ソフトウェアの不具合の早期発見につながります。また、開発初期段階の上流工程からテストエンジニアのレビューが行われることで、品質を高めるなどメリットも多く得られ、品質リスクの減少も見込めます。設計時点で、不具合の原因となりうる設計上の問題点に気が付くことができれば、開発が終わってしまった段階で判明した場合よりも簡単に修正ができるため、テスト工数自体は増えるものの全体としては工数も削減できます。

「W 字モデル」のデメリット

1-03

W 字モデルの導入により上記のようなたくさんのメリットがありますが、残念ながらデメリットも存在します。
ここでは、W 字モデル導入に失敗するケースや、テストエンジニアの導入に関してご紹介します。

W 字モデルの導入に失敗するよくあるケースは、「開発チームが現状の分析を行わずに、W 字モデルの導入に取り組んでしまうこと」です。新しいことを始めるためには、まず現状を知ることが重要です。そもそも、前述で紹介した V 字モデルを実践できていない開発チームが、W 字モデルを導入しようとした場合、その開発はうまくいくはずがありません。W 字モデルの考え方を取り入れる前に、現在の開発やテストのプロセスがどうなっているのか、どんな問題があるのか、現状の問題の洗い出しを行わなければなりません。まず個々のプロセスを見直し、整理してはじめて、どの段階で何を実施すればいいのかが明確になるわけです。

また、W 字モデルに参画するテストエンジニアは、実物の無い設計段階からの問題を発見し、開発側に意見を伝えなければいけないため、W 字モデルには経験豊富なテストエンジニアの導入が必要不可欠です。
テスト工程を遡り不具合を修正していく段階であれば、多少経験の浅いエンジニアでも難しくはありませんが、W 字モデルでは開発の初期段階で、仕様・設計の抜け漏れ・矛盾を発見することができなければなりません。基本的にプロジェクト経験が多いエンジニアであれば、要求定義や設計といった開発の初期工程での誤りが原因で発生する不具合の事例も多く把握しています。そのため、W 字モデルには多くの経験を積んだテストエンジニアの参画が必要といえるのです。

おわりに

今回は、ソフトウェア開発の流れとテスト工程の流れに関してご紹介しました。
その中で、今回は開発工程とテスト工程の対応関係を表すモデルとして V 字モデル、さらに開発工程とテスト工程を同時に進めていくモデルとして W 字モデルをご説明しました。ソフトウェア開発を行う場合は、2つのモデルの特徴を把握した上で、適切なソフトウェアテストを行うことが重要です。

資料ダウンロード

ライター:Qbook編集部

ライター

バルテス株式会社 Qbook編集部。 ソフトウェアテストや品質向上に関する記事を執筆しています。