趣味ならとにかく、ビジネスとしてのプログラミングに「網羅的なテスト」は欠かせません。網羅的なテストの代表的な手法である「制御パス・テスト」の手法について、解説していきます。
ソフトウェアを作るのは簡単ですが(実際には超級大変なんですが……)、デバッグやテストはもっと大変です。世界中にプログラミングが大好きな少年少女はニューヨーク市の人口の何倍もいるでしょうが、「テストとデバッグが趣味です」なんて殊勝な中学高校生は沖永良部島の人口の10分の1程度でしょう(根拠はありませんが)。
趣味のプログラミングではシリアスなテストは必要ありませんが、ビジネスとしてプログラムを作る場合(*1)、テストは最重要課題です。その課題に答えるヒントとして、前回から「制御パス・テスト」を取り上げています。読者自身で、「テストとはこうあるべきだ」的な哲学を確立する上で、一助になれば幸いです。
テストの方式には、いろいろな分類法があります。代表的な分類法が以下の2つでしょう。
(1)机上テスト : 開発者の「頭脳」をCPUにしてソフトウェアを実行する(*2)
(2)マシン・テスト : 実機のCPUでソフトウェアを実行する
(1)ブラックボックス・テスト : ユーザー視点によるテスト
(2)ホワイトボックス・テスト : 設計者視点によるテスト
テストの網羅(パス網羅)は、上記の「視点の違いによる分類」では、ホワイトボックス・テストであり、「プログラムを何で実行するかによる分類」では、マシン・テストが90%、机上テストが10%です。
パス網羅の基本的な考え方として、よく聞かれるのは「自動車を作る場合、1回もテストしたことがないスイッチがあると、そんな自動車は怖くて出荷できない。ソフトウェアも同様で、1度も実行していないソースコードがあるプログラムは出荷できない」といった言い回しです。ここから、プログラマーの地獄が始まります。
Copyright © ITmedia, Inc. All Rights Reserved.