« September 2011 | Main | November 2011 »

October 2011

16 October 2011

デシジョンテーブルテストの歴史

デシジョンテーブルテストは、プログラムの仕様を条件部とアクション部からなるデシジョンテーブルという表に整理し,これに基づいてテストケースを作成する技法です。デシジョンテーブルそのものはテストのために考案されたものではなく、システム分析や設計情報を整理して記述するために開発された手法です。

◆デシジョンテーブルの歴史
デシジョンテーブルは1958年頃にGE(General Electric)社やSutherland社で考案されました。当時GE社でデシジョンテーブル(最初は"Decision Structure Table"と呼ばれていたようです)を考案したBurton Gradは"Tabular Form in Decision Logic"(DATAMATION, July 1961)で、当時の状況を次のように書いています(抜粋)。

Decision logicを記録するための表は、1957年秋から1959年のGE社のIntegrated Systems Projectで使ったのが最初である(※このProjectのリーダがGrad)。このProjectではextended entry tables(拡張指定表)形式のデシジョンテーブルをman-to-machine communicationのために使用した。
1958年後半にコンサルティング会社のSutherland社で"management decision rules"を表現するための表を使い始めた。彼らはlimited entry tables(制限指定表)形式のデシジョンテーブルを使っていたと思われる。
1959年、Hunt Foods and Industries社はコンピュータシステムの計画におけるman-to-man communicationのために、システム分析でlimited entry tablesを用いた。
1960年初めからIBM社はシステム分析やプログラミングにデシジョンテーブルを積極的に活用し始めた。(※Burton Gladはこの時期にGE社からIBM社に転社したようです)

デシジョンテーブルは考案されて間もなくコンピュータ処理する検討も開始され、1960年にGE社のKavanaghはデシジョンテーブルからGEのコンパイラ言語のソースコードを生成するTABSOL(TABular Systems Oriented Language)を開発しています。その後、1960年代には COBOLやFortranなどのコンパイラ言語のソースを生成するプリプロセッサが数多く開発されています。

1960年代のデシジョンテーブルは現在のUMLのような設計記法として期待の星だったと思われ、1962年9月には"Decision Tables Symposium"が開催されています。また、1971年にはACM SIGPLAN Notices - Special issue on decision tables(Volume 6 Issue 8, September 1971) という特集も組まれました。その後、プロセッサなどのツールはあまり発展しなかったようで、手法としての華々しさもなくなりましたが、ソフトウェア技術者としての常識的な手法としては定着したと思われます。日本では1986年にJIS X0125-1986 決定表 (Decision Tables)としてJIS規格化されています(前述の制限指定表や拡張指定表はJIS X0125の用語(訳語)です)。

◆テスト設計へのデシジョンテーブルの利用の歴史
私が調べた範囲では、テストにデシジョンテーブルを用いた最初の論文は1965年のRCA社Scheffの"An Application of Decision Tables as the Source Language for Automatic Testing"です。Scheffは自動テストツール(Automatic test equipment)へのテストシーケンスの入力方法として、デシジョンテーブルの条件部をテストカテゴリとパラメタに、アクション部を結果とテストアクションに置き換え、縦の列(ルール)をテストケースとしたものを用いています。
その後、テスト設計でデシジョンテーブルを用いている例としては、

  • 1970年頃にIBM社のElmendorfが考案した原因結果グラフ技法(Cause effect graphing)では、原因結果グラフからデシジョンテーブルに変換してテストケースを設計
  • 1975年のGoodenoughとGerhartの"Toward a Theory of Test Data Selection"(初めてテストデータ選択を理論化した論文)では、プログラム構造に基づくテスト設計にデシジョンテーブルを用いる方法(Condition table method)を提案

があります。
テストに関する書籍の中でデシジョンテーブルによるテスト設計が書かれているものとしては、私の知る限りではBoris Beizerの"Software Testing Techniques"の第一版(1983年)が最初です。
現在では、Copelandの「はじめて学ぶソフトウェアのテスト技法」など多くのテスト技法のテキストでデシジョンテーブルテストは基本的なテスト技法として紹介されています。

Software_Testing_Techniques_1stED

|

« September 2011 | Main | November 2011 »