猫でも使えるソフトウェアのテスト網羅(2):パス網羅の種類と内包する問題点:山浦恒央の“くみこみ”な話(85)(1/4 ページ)
趣味ならとにかく、ビジネスとしてのプログラミングに「網羅的なテスト」は欠かせません。網羅的なテストの代表的な手法である「制御パス・テスト」の手法について、解説していきます。
1.はじめに
ソフトウェアを作るのは簡単ですが(実際には超級大変なんですが……)、デバッグやテストはもっと大変です。世界中にプログラミングが大好きな少年少女はニューヨーク市の人口の何倍もいるでしょうが、「テストとデバッグが趣味です」なんて殊勝な中学高校生は沖永良部島の人口の10分の1程度でしょう(根拠はありませんが)。
趣味のプログラミングではシリアスなテストは必要ありませんが、ビジネスとしてプログラムを作る場合(*1)、テストは最重要課題です。その課題に答えるヒントとして、前回から「制御パス・テスト」を取り上げています。読者自身で、「テストとはこうあるべきだ」的な哲学を確立する上で、一助になれば幸いです。
2.テスト方式の分類
テストの方式には、いろいろな分類法があります。代表的な分類法が以下の2つでしょう。
- プログラムを何で実行するかによる分類
(1)机上テスト : 開発者の「頭脳」をCPUにしてソフトウェアを実行する(*2)
(2)マシン・テスト : 実機のCPUでソフトウェアを実行する
- 視点の違いによる分類
(1)ブラックボックス・テスト : ユーザー視点によるテスト
(2)ホワイトボックス・テスト : 設計者視点によるテスト
テストの網羅(パス網羅)は、上記の「視点の違いによる分類」では、ホワイトボックス・テストであり、「プログラムを何で実行するかによる分類」では、マシン・テストが90%、机上テストが10%です。
パス網羅の基本的な考え方として、よく聞かれるのは「自動車を作る場合、1回もテストしたことがないスイッチがあると、そんな自動車は怖くて出荷できない。ソフトウェアも同様で、1度も実行していないソースコードがあるプログラムは出荷できない」といった言い回しです。ここから、プログラマーの地獄が始まります。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 猫でも使えるソフトウェアのテスト網羅(1):基本のC0パス・カバレッジ
ソフトウェアのバグが全て取れたか?は開発における最大の関心事でしょう。網羅的テストはもちろんですが、その前に単体テストが必要です。代表的な手法である「制御パス・テスト」の基礎を紹介していきます。 - 統計の食わず嫌いを直そう(その11)、5分で残存バグ数を予測する方法
「回帰分析」は統計分析の有力な手法であり、Excelさえあれば5分で統計的に根拠のある数字を出せます。今回はExcelのツールを使って簡単に残存バグ数を予測する方法を解説します。 - 統計の食わず嫌いを直そう(その10)、ワインを飲まずに品質を予測する方法
統計アレルギーの解消には、身近な分野で考えてみることも大切です。今回は「ワインを飲まずに、ワインの品質を予測する方法」を例に統計に触れてみましょう。 - 統計の食わず嫌いを直そう(その9)、昼休みにタダで統計分析をする方法
「統計分析」と聞くと面倒な感じですが、何を証明するか明確ならExcelで簡単にこなせます。Excelさえあれば追加費用はかからず、しかもランチタイムに終わるほどカンタンなのです。 - 統計の食わず嫌いを直そう(その8)、統計的に「王様の耳はロバの耳」と言うために
「王様の耳はロバの耳」と統計的に判定するには、どうすればいいのでしょうか?ロバの耳かも?という仮説を“検定”するための基本的な考え方を学びます。