WRブログ

ソフトウェアレビューについて

ソフトウェアテストのあらゆる場面で耳にする「レビュー」ですが、実際は、どんな場面で、どのようなことをしているのでしょうか? ここでは、実際のレビューのプロセスや、さまざまなレビューの種類について解説します。

ソフトウェアレビューとは

レビューとは、ソフトウェア開発のすべての成果物に対しておこなう静的テストのことです。 その対象は要件仕様書、設計仕様書、ソースコード、テスト計画書、テスト仕様書、テストケース、テストスクリプト、ユーザーガイド、Webページなど、さまざまです。

そのため、レビューはソフトウェア開発のあらゆる場面でおこなわれます。 とくに、実際にプログラムやシステムを動かしておこなう動的テストを実施する前にレビューをおこなうことで、 後工程になって不具合改修した場合と比較して、高い効果を期待できます。 実際に動的テストをおこなうためには、システムの環境構築、モジュールの作成、テストデータの作成…など、さまざまなものを用意する必要があります。

しかし、レビューではそれらを準備する必要なくおこなうことができるため、早い工程で欠陥が見つけやすく、修正までにかかるコストも抑えることができます。 このように、ソフトウェアレビューのメリットは、プログラムを実行したり、システムを動作したりさせなくても、実施できることにあります。

レビューの必要性

レビューの必要性は、技術者には理解されない場合が多くあります。その場合、たいていは動的テストだけおこなえばいいと思われがちです。 また、レビューは、専任のテスターではなく、開発者(そのプログラムやシステムを作った本人)がおこなうべきだと考えている人も少なくありません。

実際に、開発者間では簡単なコードレビューなどは頻繁におこなわれています。 しかし、作った本人だけでは気がつかないようなバグを見つけるためにも、第三者(テスト担当者・または検証会社)による評価は重要なのです。 それでもエンドユーザーが、開発者もテスターも想像がつかないような動作をすることは頻繁にあります。

レビュー担当者が実際におこなうこと

それでは次に、レビュー担当者が実際におこなう作業についてご紹介します。一般的なレビューには6つのプロセスがあります。

software_review

①計画

成果物が完成したらスムーズにレビューがおこなえるように、開発と並行して計画を立てます。 まずは、レビューの目的を考えます。次に、その目的を達成するために必要な人やリソースを選びます。 そして、レビューのスケジュールを立てます。

②キックオフ

ここでは、レビューに関わる人を招集して、レビューの目的やスケジュールの共有をおこないます。 とくに、外部の人にレビューをお願いする場合、ここで理解のズレがあると、後のレビューの結果で思うような成果を出せません。

③各担当の準備

何をするかが決まったら、各担当は作業がスムーズにおこなえるように準備をします。 具体的には、現在までに与えられている資料に目を通したり、前回のレビューの内容を確認したりします。

④レビュー(レビューミーティング)

ここまできて、ようやくレビューに入ります。公式性の高いレビューでは、モデレーター、作成者、レビュアーで議論をし、議事録をとります。 ここで、作成者の意図や、レビュアーの指摘などを議論します。

⑤再作業

レビューミーティングで出た内容をもとに、成果物の修正をおこないます。

⑥フォローアップ

修正を加えた成果物が、レビューミーティングで出た課題を解決できているか確認します。 問題なければ、レビューは完了です。ここでまだ問題が残っている場合、新しい問題が発見された場合は、再度レビューミーティングをおこないます。

さまざまなレビューの種類

●インスペクション

もっとも体系的で厳格なレビュー。作成者以外がレビューミーティングを主導する。 ここで出た問題点は全て記録する。もっとも工数がかかるレビューだが、効果も高い。

●チームレビュー

上記のインスペクションの簡易版。もっとも一般的なレビューのことで、作成者がモデレーターを兼ねてもよい。 インスペクションで出た課題の解決方法を議論する場合にも当てはまる。

●ウォークスルー

作成者がミーティングを主導しておこなう。 作成者の主観で議論が進むため、作成者があまり意識をしていないところに欠陥が残る場合がある。 そのほか、テクニカルレビュー、ウォークスルー、非公式レビュー…etcと、レビューにも様々な種類が存在します。

まとめ

  • レビューはプログラムを動かさなくても実施できるため、欠陥の修正までのコストが低く抑えられる
  • 計画~フォローアップまでの、レビューの実際の工程
  • 公式性の高さによる、さまざまなレビューの種類

ここまでで、ソフトウェアレビューの概要について解説してきました。 レビューは開発のあらゆる工程で実施できるため、時間とリソースが許す限り、積極的におこなうことで、製品の質をさらに上げることにつながります。

【参考文献】:
『ソフトウェアテスト教科書 JSTQB Foundation 第3版』