(57)【要約】【課題】効率よくテスト手順書を生成する。【解決手段】編集部１３０が処理リスト２１０を編集する。処理リストには、型記憶部１４３０に記録された処理の抽象型が、処理順に配置される。具象データ入力部が入力データを取得する。ロード部１５１０が、処理リストに定義された処理の処理型を順にロードする。このとき、取得部１５２０が処理の元データを取得する。生成部１５３０が、ロードされた処理によって元データから生成データを生成する。出力部１５４０が生成データを次の処理の元データとして出力する。処理リストに記載された処理を処理実行部１５０が順次実行して、手順書を生成する。手順書出力部１６０が手順書を出力する。【選択図】図１
2014032535.tif 000002
【特許請求の範囲】
【請求項１】
元データから生成データを生成する処理を示す情報であって、当該処理の対象となる元データの抽象型である元データ型と、当該元データから当該生成データを生成する方法と、当該生成データの抽象形である生成データ型を対応づけた処理情報のリストである処理リストを記憶するリスト記憶部と、
テスト手順の情報を含む、前記元データ型に含まれるデータ型である入力型の入力データを取得する取得部と、
前記リスト記憶部が記憶する処理リストに記憶された処理を、当該処理の結果生成された前記生成データを後の処理の前記元データとして用いて、当該処理リストが定める順に実行して、前記取得部が取得した入力データからテスト手順書を生成する生成部と、
前記生成部が生成したテスト手順書を出力する出力部と、
を有することを特徴とする手順書生成装置。
【請求項２】
前記リスト記憶部が記憶する処理リストにおいて、前記処理情報が、前記入力型の入力データを前記元データとする処理から、前記テスト手順書のデータ型を前記生成データ型とする処理に至るまで、前の処理の生成データ型が後の処理の元データ型となるように配置されている、
ことを特徴とする請求項１に記載の手順書生成装置。
【請求項３】
前記処理リストが記憶する処理の処理対象となるデータの抽象型である処理データ型と、当該処理の抽象型である処理型を記憶する型記憶部をさらに有し、
前記リスト記憶部が記憶する処理リストの処理情報は前記型記憶部が記憶する処理型を示す情報であり、
前記処理リストの前記元データ型と、前記生成データ型はそれぞれ前記型記憶部が記憶する処理データ型である、
ことを特徴とする請求項１又は２に記載の手順書生成装置。
【請求項４】
前記入力データでは、一又は複数のテスト因子と、当該テスト因子について一又は複数の水準値が定義され、
前記テスト手順書には、前記テスト因子の水準値の組み合わせに対応する複数のテストの実行手順が記載され、
前記処理型は、前記元データに含まれる前記テスト因子、前記水準値、前記水準値の組み合わせ、の何れかに対応するテスト情報を抽出または削除して前記生成データを生成する選択処理の処理型と、当該テスト情報を変換して前記生成データを生成する変換処理の処理型を含む、
ことを特徴とする請求項３に記載の手順書生成装置。
【請求項５】
前記テスト手順書に記載されたテストの実行手順は、テストの事前準備を説明する文字列と、テストの操作手順を説明する文字列と、テストの判定基準を説明する文字列の少なくとも一つを含み、
前記処理型は前記選択処理の処理型及び前記変換処理の処理型と異なる、前記選択処理又は前記変換処理の結果生成された生成データから前記テスト手順書に含まれる説明する文字列を生成する文字列生成処理の処理型をさらに含む、
ことを特徴とする請求項４に記載の手順書生成装置。
【請求項６】
前記型記憶部が記憶する処理型又は処理データ型の変更を指示する情報を受け付ける変更受付部と、
前記変更受付部が受け付けた情報に基づいて、前記処理型又は前記処理データ型を変更する型変更部と、
をさらに有することを特徴とする請求項５に記載の手順書生成装置。
【請求項７】
前記処理リストの編集を指示する情報を受け付ける編集受付部と、
前記編集受付部が受け付けた処理リストの編集を指示する情報に基づいて、当該処理リストの処理情報を、前記選択処理と、前記変換処理と、前記文字列生成処理を組み合わせて編集する編集部と、
をさらに有することを特徴とする請求項６に記載の手順書生成装置。
【請求項８】
前記型記憶部が記憶する抽象型である処理型又は処理データ型には、元となる抽象型である親型と、当該親型の特徴を継承した子型がそれぞれ含まれる、
ことを特徴とする請求項３乃至７の何れか１項に記載の手順書生成装置。
【請求項９】
前記型記憶部が記憶する前記処理データ型又は前記処理型は、所定のドメイン固有言語によって記述され、
前記生成部は、前記所定のドメイン固有言語によって記述された前記処理データ型又は前記処理型を解釈して前記処理を実行する、
ことを特徴とする請求項３乃至８の何れか１項に記載の手順書生成装置。
【請求項１０】
前記処理リストが記憶する処理リストは、前記処理情報に定義された処理であって、当該処理を自己再帰的に実行するように定義された処理を含む、
ことを特徴とする請求項１乃至９の何れか１項に記載の手順書生成装置。
【請求項１１】
元データから生成データを生成する処理を示す情報であって、当該処理の対象となる元データの抽象型である元データ型と、当該元データから当該生成データを生成する方法と、当該生成データの抽象形である生成データ型を対応づけた処理情報のリストである処理リストを取得し、
テスト手順の情報を含む、前記元データ型に含まれるデータ型である入力型の入力データを取得し、
前記取得した処理リストに記憶された処理を、当該処理の結果生成された前記生成データを後の処理の前記元データとして用いて、当該処理リストが定める順に実行して、前記取得した入力データからテスト手順書を生成し、
前記生成したテスト手順書を出力する、
ことを特徴とする手順書生成方法。
【請求項１２】
コンピュータに、
元データから生成データを生成する処理を示す情報であって、当該処理の対象となる元データの抽象型である元データ型と、当該元データから当該生成データを生成する方法と、当該生成データの抽象形である生成データ型を対応づけた処理情報のリストである処理リストを取得する機能、
テスト手順の情報を含む、前記元データ型に含まれるデータ型である入力型の入力データを取得する機能、
前記取得した処理リストに記憶された処理を、当該処理の結果生成された前記生成データを後の処理の前記元データとして用いて、当該処理リストが定める順に実行して、前記取得した入力データからテスト手順書を生成する機能、
前記生成したテスト手順書を出力する機能、
を実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、手順書生成装置、手順書生成方法及びプログラムに関する。
【背景技術】
【０００２】
コンピュータプログラム等のテストのために用いられるテスト手順書の生成を支援する技術が知られている。例えば、特許文献１は設計段階で入力された情報を用いてテスト仕様書（手順書）を作成するテスト仕様書作成装置を開示している。特許文献１に記載の技術では、システムのテスト仕様書を生成するにあたって、ユーザがテスト仕様・システム仕様に合致した設定ファイル（テスト構成ＩＮＩファイル）を作成し、この設定ファイルと設計段階で入力されたシステム情報とに基づいてテスト仕様書を生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２８２６６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１のテスト仕様書作成装置を用いてテスト仕様書(手順書）を作成するためには、設定ファイルをシステム毎・テスト仕様毎に一から生成しなくてはならない。そのため、テスト手順書を生成するために用いる設定ファイルの作成に、多くの時間とコストがかかってしまい、効率が悪いという問題があった。
【０００５】
本発明は上記のような問題点を解決するためになされたもので、効率よくテスト手順書を生成できる手順書生成装置、手順書生成方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の手順書生成装置は、元データから生成データを生成する処理を示す情報であって、当該処理の対象となる元データの抽象型である元データ型と、当該元データから当該生成データを生成する方法と、当該生成データの抽象形である生成データ型を対応づけた処理情報のリストである処理リストを記憶するリスト記憶部と、テスト手順の情報を含む、前記元データ型に含まれるデータ型である入力型の入力データを取得する取得部と、前記リスト記憶部が記憶する処理リストに記憶された処理を、当該処理の結果生成された前記生成データを後の処理の前記元データとして用いて、当該処理リストが定める順に実行して、前記取得部が取得した入力データからテスト手順書を生成する生成部と、前記生成部が生成したテスト手順書を出力する出力部と、を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、効率よくテスト手順書を生成できる。
【図面の簡単な説明】
【０００８】
【図１】（ａ）は本発明の実施の形態１に係る手順書生成装置の物理構造を、（ｂ）は手順書生成装置の機能構造を示す図である。
【図２】実施の形態１に係る手順書生成装置の処理構造の抽象設計を示す図である。
【図３】実施の形態１に係る手順書生成装置の処理構造の具象設計を示す図である。
【図４】実施の形態１に係る処理リストの例を示す図である。
【図５】（ａ）は実施の形態１の型記憶部が記憶する状態遷移表のデータ型の例を、（ｂ）は状態遷移表のデータ構造の例を、（ｃ）は状態遷移表の具象データの例を示す図である。
【図６】実施の形態１に係る編集設定処理を示すフローチャートである。
【図７】実施の形態１に係る手順書生成装置の典型的設定例を示す図である。
【図８】実施の形態１に係る手順書出力処理を示すフローチャートである。
【図９】（ａ）は実施の形態１に係る具象データ入力型の例を、（ｂ）は具象データ入力部の例を示す図である。
【図１０】（ａ）は実施の形態１に係る内部データ生成部の例を、（ｂ）は内部データのデータ構造の例を、（ｃ）は内部データの例を示す図である。
【図１１】実施の形態１に係る選択部の例を示す図である。
【図１２】（ａ）は実施の形態１に係る選択テーブルのデータ型の例を、（ｂ）は選択テーブルの例を、（ｃ）は選択部の生成データの例を示す図である。
【図１３】（ａ）は実施の形態１に係る変換部の例を、（ｂ）は内部データのデータ型の例を、（ｃ）は変換テーブルの例を示す図である。
【図１４】（ａ）は実施の形態１に係る手順書生成部の例を、（ｂ）は手順書のデータ型の例を、（ｃ）は手順書データの例を示す図である。
【図１５】（ａ）は実施の形態１に係る手順書出力型の例を、（ｂ）は手順書出力部の例を示す図である。
【図１６】実施の形態１に係る手順書生成装置の設定例を示す図である。
【図１７】（ａ）は実施の形態１に係る手順書生成装置の設定例を、（ｂ）は設定例に係る参照データの例を示す図である。
【図１８】（ａ）は実施の形態１に係る手順書生成装置の設定例を、（ｂ）は設定例に係る元データ及び生成データの例を、（ｃ）は参照データの例を示す図である。
【図１９】（ａ）は実施の形態１に係る手順書生成装置の設定例を、（ｂ）は設定例に係る元データと生成データの例を、（ｃ）は選択部の構成例を、（ｄ）は選択部の構成例を、（ｅ）は変換部の構成例を、（ｆ）は変換部の構成例を示す図である。
【図２０】実施の形態１に係る手順書生成装置の設定例を示す図である。
【図２１】（ａ）は実施の形態１に係る手順書生成装置の設定例を、（ｂ）は設定例に係る元データと生成データの例を、（ｃ）は参照データの例を示す図である。
【図２２】（ａ）は実施の形態１に係る手順書生成装置の設定例を、（ｂ）は設定例に係る元データと生成データの例を、（ｃ）は参照データの例を示す図である。
【図２３】実施の形態１に係る手順書生成装置の設定例を示す図である。
【図２４】実施の形態１に係る手順書生成装置の設定例を示す図である。
【図２５】実施の形態１に係る手順書生成装置の設定例を示す図である。
【図２６】実施の形態１に係る手順書生成装置の設定例を示す図である。
【図２７】実施の形態１に係る手順書生成装置の設定例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態に係る手順書生成装置を、図面を参照して詳細に説明する。なお図中、同一または同等の部分には同一の符号を付す。
【００１０】
（実施の形態１）
本実施の形態に係る手順書生成装置１は物理的には、図１（ａ）に示すように、情報処理部１１、主記憶部１２、外部記憶部１３、操作部１４、表示部１５及び入出力部１６を備える。
主記憶部１２、外部記憶部１３、操作部１４、表示部１５及び入出力部１６はいずれも内部バス１７を介して情報処理部１１に接続されている。
【００１１】
情報処理部１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）から構成される。
【００１２】
主記憶部１２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等から構成される。主記憶部１２は外部記憶部１３に記憶されている制御プログラムや処理情報をロードし、情報処理部１１の作業領域として用いられる。
【００１３】
外部記憶部１３は、フラッシュメモリ、ハードディスク、等の不揮発性メモリから構成される。外部記憶部１３は、後述する処理を情報処理部１１に実行させるための制御プログラム（プログラム１８）と処理情報とをあらかじめ記憶し、これらの制御プログラムや処理情報を情報処理部１１の指示に従って主記憶部１２又は情報処理部１１に伝達する。また、情報処理部１１の指示に従って、情報処理部１１の処理結果や入出力部１６から伝達された情報を記憶する。
【００１４】
操作部１４は、例えばキーボードやマウス等と、これらに対して実行された操作の情報を伝達する伝達部を含み、ユーザ操作の情報を情報処理部１１に伝達する。
表示部１５は、液晶表示装置や有機ＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等から構成され、情報処理部１１からのコマンドに基づいて画面を表示する。
【００１５】
入出力部１６は、入出力端子及びＩ／Ｏデバイス（Ａ／Ｄ変換器やＤ／Ａ変換器等）、モデムやＬＡＮデバイス等の通信機器から構成され、手順書生成装置１と、外部装置とを接続する。
【００１６】
手順書生成装置１は、このような物理構成により図１（ｂ）に示すように、具象データ入力部１１０、編集入力部１２０、編集部１３０、記憶部１４０、処理実行部１５０、手順書出力部１６０及び表示部１７０として機能する。
手順書生成装置１は、このような機能構成により、テスト手順を示す情報を含む具象入力データから、記憶部１４０が記憶する処理手順を示す情報（処理リスト２１０、抽象型２２０等）を用いてテスト手順書を生成する。
【００１７】
テスト手順書は、特定のテスト対象のシステムに対して、特定のテスト観点に基づいた一群のテストを記述する。テスト観点は、テストの因子（テストのパラメータ）と対応づけられる。例えばテスト観点「落下テスト」に対して、「落下させる高さ」、「落下回数」等が因子となる。各因子は水準を持つ。水準とは、実施されるテストにおけるその因子の値である。例えば、スイッチのＯＮ／ＯＦＦが因子である場合、「ＯＮ」と「ＯＦＦ」がそれぞれ水準となる。
【００１８】
具象データ入力部１１０は、外部機器又は外部記憶部１３からテスト手順を示す情報（具象入力データＤｉｎ）を取得する。具象データ入力部１１０は、取得した具象入力データＤｉｎを処理実行部１５０に伝達する。
【００１９】
編集入力部１２０は、ユーザが操作部１４等を用いて実行する処理手順を示す情報（処理リスト２１０、抽象型２２０等）を編集する操作情報や編集のための情報を取得する。
編集入力部１２０は、取得した情報を編集部１３０に伝達する。
【００２０】
編集部１３０は、編集入力部１２０から伝達された情報に基づいて、処理リスト２１０、抽象型２２０等を生成・編集する。編集部１３０は、編集操作のため、現在の処理リスト２１０、抽象型２２０の内容を示す画面や編集作業のための画面等を表示部１７０に表示する。
【００２１】
記憶部１４０は、手順書生成装置１の各部から伝達された情報を記憶し、また記憶する情報を各部に伝達する。記憶部１４０は、手順書生成装置１が実行する設定処理・手順書出力処理（後述）のための情報を予め（工場出荷時等）記憶する。記憶部１４０は、ワークメモリ１４１０、リスト記憶部１４２０及び型記憶部１４３０を含む。
【００２２】
ワークメモリ１４１０は、具象データ入力部１１０、処理実行部１５０又は手順書出力部１６０等が用いるデータを一時的に保存する。
【００２３】
リスト記憶部１４２０は、１又は複数の処理リスト２１０を記憶する。処理リスト２１０については後述する。
【００２４】
型記憶部１４３０は、手順書生成装置１の各部が処理に用いる抽象型（データ型、処理型）を複数記憶する。データ型はデータの構造を示す情報であり、実際のデータ（具象データ）に付された場合はそのデータの構造を示す情報となる。データ型には、ある一つの値を持つデータ（数値データ）や、文字列を示すデータ（文字列データ）は元より、テーブルやツリー・再帰的構造など、特定の構造を持つデータの抽象型が含まれる。
処理型は、ある単位の計算処理を実現するための情報を規定する。処理型は、具象データに対して実際に情報処理部１１が実行する際には、その処理実体の情報を示す情報となる。
このように、抽象型（データ型、処理型）はその型の具象データ・処理実体がロードされた場合は、その具象データ又は処理実体データを記述するデータとなる。このとき、抽象型はメタデータとも呼ばれる。
なお、ここでは便宜上データ型と処理型を区別して記述するが、下記処理を実行するシステムによっては、データ型と処理型は同じものとして扱うことも可能である。
【００２５】
処理実行部１５０は、具象データ入力部１１０から伝達された具象入力データＤｉｎから、記憶部１４０が記憶する情報を用いて、テスト手順書を生成する。処理実行部１５０がテスト手順書を生成する処理については後述する。処理実行部１５０は、生成したテスト手順書のデータ（出力データＤｏｕｔ）を手順書出力部１６０及び表示部１７０に伝達する。
【００２６】
手順書出力部１６０は、処理実行部１５０から伝達されテスト手順書のデータを、外部機器に出力する。
【００２７】
表示部１７０は、処理実行部１５０及び編集部１３０から伝達された情報を表示する。
【００２８】
編集部１３０が実行する設定処理により、リスト記憶部１４２０が記憶する処理リスト２１０が設定されることにより、図２に示すようなテスト手順書を生成するための処理の抽象構造が定まる。なお、設定処理については後述する。
【００２９】
図２は、図１の記憶部１４０と処理実行部１５０が実現する機能を抽象化したモデル（抽象ツールのモデル）である。図２の例では、入力データの抽象型（入力データ型２２０in）を変換するコンフィギュレータの抽象型（内部データ生成型２２０ａ）が定められている。
そして、処理に用いられる内部データの抽象型として、内部データ型２２０１〜２２０ｎが定められる。この内部データを用いた処理の機能単位として、データ選択機能とデータ編集機能が、それぞれ選択型２２０ｂと変換型２２０ｃとして定義される。そして、内部処理の最終段階として、内部データ型２２０ｎのデータから、出力データを生成する機能として、コンフィギュレータの抽象型（手順書生成型２２０ｄ）が定義される。さらに、出力データのデータ型として、出力データ型２２０ｏｕｔが定められている。
【００３０】
図２の抽象型を元に生成され、実際に実行される処理の構造を図３に示す。この処理構造では、データ型２１０inに合致する具象入力データＤｉｎから、処理型２１０ａに合致する処理実体（内部データ生成部１５０ａ）がデータ型２１０１に合致する内部データＤ１を生成する。そして、選択型２２０ｂに合致する処理実体である選択部１５０ｂ、変換型２２０ｃに合致する処理実体である変換部１５０ｃ等が、内部データ型２２０２〜２２０ｎに合致する内部データ（Ｄ２〜Ｄｎ）を順次生成する。そして、内部データ型２１０ｎに合致する内部データから、処理型（手順書生成型２２０ｄ）に合致する処理実体である手順書生成部１５０ｄが手順書のデータ（データ型２１０ｏｕｔに合致する）を生成する。なお、内部データ型２２０１〜２２０ｎは、全て同じデータ型であっても良い。
【００３１】
図２に示すような処理の抽象構造は、図４に示す処理リスト２１０によって定義される。処理リスト２１０は、記憶部１４０のリスト記憶部１４２０に記憶されており、各処理単位の抽象型を、実行順に登録する。処理リスト２１０は、各行の識別子（“識別子”）、その行の処理の名称（“処理名”）、処理の引数となる元データのデータ型（“元データ型”）、元データの取得元を示す情報（“元データ場所“）、データ操作処理を示す識別子（“操作”）、処理によって生成される生成データのデータ型（“生成データ型”）及び生成データの出力先を示す情報（“出力場所”）を対応づけて記憶する。
【００３２】
各処理実体は、元データ型の具象データを、元データ場所から受け取り、”操作”が示す操作手順（プログラムの関数等）で操作して生成データ型の生成データを生成する。そして、出力場所が示す部位（メモリのアドレス）に出力する。“操作”には、処理実体を生成するための処理型の情報が記憶されている記憶部１４０のアドレスが含まれる。
【００３３】
処理リストでは、前の処理の出力（生成データ型及び出力場所）が、次の処理の入力（元データ型及び元データ場所）に合致するように設定されている。なお、一つの処理の出力が複数の生成データ型及び出力場所を持っていても良い。また、一つの処理は複数の元データ型及び元データ場所を持っていても良い。
このとき、必ずしも処理リスト上で直前の処理の出力と次の処理の入力が一致する必要は無いが、ある処理が実行される時点ではその処理に必要な元データが、その処理の元データ場所に出力されていなければならない。
【００３４】
なお、ここでは処理リストに元データ場所と出力場所が記載されている例について説明した。しかし、これに限らず、元データ場所と出力場所を示す情報は処理型に含まれるとし、処理リストには元データ場所と出力場所との情報が含まれてない構成も可能である。
【００３５】
データ型及び処理型は、記憶部１４０の型記憶部１４３０に記憶されている。データ型の例を、図５を参照して説明する。状態遷移表のテーブルのデータ型の例を図５（ａ）に示す。図５（ａ）のデータ構造は、図５（ｂ）のように図解できる。さらに、このデータ型の実データの例を図５（ｃ）に示す。図５（ａ）、図５（ｂ）は、図４の“元データ型”または“生成データ型”に対応する。図５（ｃ）に示す実データの、記憶部１４０上の開始アドレスは、図４の“元データ場所”または“出力場所”に対応する。ある内部データが、図５（ｂ）に示した様なテーブルの構造を持つとする。図５（ａ）〜図５（ｃ）の“状態”及び“イベント”は因子（テストのパラメータ）である。この例で状態とイベントがそれぞれ５つのデータ数を持つことは、５つの状態のそれぞれで５つのイベントを実行するテストが考えられることを意味する。この各因子（パラメータ）について、それぞれテスト実行の対象となる実際の値を水準と言う。図５（ｃ）の状態遷移表は、状態ａ〜ｅのそれぞれで、イベント１〜５を実行した場合の正しいテスト結果（次の状態とシステムの出力）を示している。
【００３６】
このような状態遷移表のデータ構造を、図５（ａ）のデータ型は因子”状態”と因子”イベント”を定義する領域の開始点（“開始位置（ｘ座標）”及び“開始位置（Ｙ座標）”）と、座標に対するデータ数（“データ数（ｘ座標）”及び“データ数（Ｙ座標）”）によって示している。データ型の各行は、一つの種類の情報（”因子ａ”や"data"といった情報の種類）が、そのデータ型においてどの部位を示すかを表している。
【００３７】
本実施の形態では、データ型はＵＭＬ等の汎用モデリング言語でなく、ドメイン固有言語（ＤＳＬ；domain-specific language）で記述されている。ＤＳＬとして、例えばテスト対象のシステム設計で用いられたＤＳＬを用いる。
【００３８】
なお、ここではテーブルのデータ型にデータ数の情報が含まれる例について説明したが、実際にはデータ数が無くても以下の処理は可能である。例えば図５（ｃ）の“イベント”を処理対象とする場合、“データ”の始点である開始位置（１，１）からｙ軸方向に終点（例えば空白）を探索しながら処理を実行すればよい。ｙ軸方向で、終点（例えば空白）に至るまで処理を実行すれば、データ数が無くても全ての“イベント”情報を順次処理することが出来る。
【００３９】
これら処理型が定義する処理内容、及び入力インタフェイスは、テスト対象に特化しているが、これら処理内容、インタフェイスは、処理対象データの種類（因子の種別数等、次数）、各処理対象データの属性、値域及び件数に依存しないように構築可能である。具体的には、各処理型が定義する処理を、抽象化しかつ自己再帰型の処理とすることで、次数等に依存しないシステムとなる。
【００４０】
具象的な内部モデルを構築する場合、因子数（入力データの組の数）によって、単に繰り返し（ループ）処理の回数が変わるのではなく、因子の組合せにより処理そのものが変わるような場合がある。因子数によって処理内容が変わるということは、プログラムの書換えが必要ということである。これに対し、繰り返し型の処理を自己再帰型の処理として記述することで、因子数が変化しても同じ処理型を用いて下記する手順書を生成する処理を実行できる。
【００４１】
自己再帰処理により多次元化された処理の例としては例えば以下の例が挙げられる。
（１）Ｎの階乗計算のように、単純に繰り返し（ループ）処理を行えばよいもの。
（２）階差数列、フィボナッチ数列のように、現在の状態（Ｎ）が１つ以上前（Ｎ−１）に依存するようなもの。
（３）ユークリッド互助法やハノイの塔など、ある１回の処理の結果（出力）が次の同じ処理の入力になり、終了状態に達するまで続くもの。このとき、探索処理は、ある範囲の探索を行い、探索成功したら、残りの範囲に対して、同じ探索を行うので、再帰的な処理で実現できる。
（４）ピポッドテーブル（集計表）は、次数に関係なく各階層は同じ構造（推移的関係を持つもの。例えば、１−２段目と２−３段目は同じ構造）なので、自己再帰型の基本処理を作り、因子の次数だけ基本処理（自己再帰処理）を繰り返すようなソフトウェア構造とすることができる。
【００４２】
本実施形態では、処理型が定める処理を上述のような自己再帰型の処理として記述することができる。これにより、次数等によらない効率・再利用性の高い方法でテスト手順書を生成できる。
【００４３】
処理実行部１５０は、この処理リストに登録された処理を、処理リストの順に実行してテスト手順書を生成する。
処理実行部１５０は、ロード部１５１０、取得部１５２０、生成部１５３０及び出力部１５４０を含む。ロード部１５１０は、処理リストの行が示す処理をロードして、処理実体を生成する。このとき、取得部１５２０が、元データ場所にアクセスして、処理の元データを取得する。ロードされた処理実体は生成部１５３０となり、元データから生成データ（次の処理の対象となるデータ）を生成する。そして、出力部１５４０が、“出力場所”が示すワークメモリ上のアドレスに生成データを出力する。
このワークメモリ上のアドレスは、後の処理の元データ場所となる。このように、処理実行部１５０は処理リストに登録された処理をインタプリタのように実行することで、テスト手順書を生成する。
【００４４】
編集部１３０が実行し、リスト記憶部１４２０へ記憶する処理リストを設定・編集する処理（編集設定処理）について、図６を参照して説明する。編集部１３０は、編集入力部１２０が処理リストの編集開始を指示する操作を受け付けると、図６に示す編集設定処理を開始する。なお、この編集設定処理は、図１の編集部１３０が、記憶部１４０に記憶されている情報（リスト記憶部１４２０の処理リスト２１０及び／又は型記憶部１４３０の抽象型２２０）を編集する処理である。
【００４５】
編集設定処理において、まず編集部１３０がリスト記憶部１４２０に記憶されている処理リスト２１０を表示部１７０に表示する。そして、ユーザが表示された処理リストの一つを選択する操作を実行すると、その処理リストを注目処理リストとして選択する（ステップＳ１０１）。なお、このとき新規な処理リストを作製して、作製した空の処理リストを注目リストとしてもよい。
【００４６】
次に、編集部１３０は注目処理リストを変更するか否かを判別する（ステップＳ１０２）。具体的には、注目処理リストを変更するか否かを選択するための画面を表示部１７０に表示する。そして、編集入力部１２０が変更しない旨の操作を受け付けると、変更しないと判別し（ステップＳ１０２；ＮＯ）、編集設定処理は終了する。
【００４７】
一方、変更する旨の情報を受け付けると（ステップＳ１０２；ＹＥＳ）、テスト対象が新たなシステムであるか否か判別する（ステップＳ１０３）。
具体的には、テスト対象が新システムであるか既存システムであるかを選択するための画面を表示部１７０に表示する。そして、編集入力部１２０は、テスト対象が既存システムである旨の操作を受け付けると（ステップＳ１０３；ＮＯ）、処理はステップＳ１０７に移行する。
【００４８】
一方、新たなシステムである旨の操作を受け付けると（ステップＳ１０３；ＹＥＳ）、次に新規抽象型を登録するか否か判別する（ステップＳ１０４）。具体的には、新規抽象型を登録するか否かを選択するための画面を表示部１７０に表示する。そして、編集入力部１２０が登録する旨の操作を受け付けると、（ステップＳ１０４；ＹＥＳ）、新規抽象型の登録を受け付ける（ステップＳ１０５）。
【００４９】
ステップＳ１０５では、新たなデータ型・処理型を入力するための画面を表示部１７０に表示する。そして、ユーザが編集入力部１２０を用いて新たなデータ型・処理型を入力すると、そのデータ型・処理型を型記憶部１４３０が記憶して、手順書生成装置１で利用可能とする。
【００５０】
一方、登録しない旨の操作を受け付けると（ステップＳ１０４；ＮＯ）、ステップＳ１０５はスキップされる。
【００５１】
次に、編集部１３０は既存の抽象型を編集する処理を実行する（ステップＳ１０６）。具体的には、既存の抽象型を選択可能な態様で表示部１７０に表示する。そして、編集入力部１２０が、ユーザが既存の抽象型を選択して編集する操作を受け付ける。編集部１３０は、受け付けた操作に基づいて既存の抽象型（データ型・処理型）を変更し、記憶部１４０に記憶する。なお、ユーザが編集しない旨の操作を実行すると、ステップＳ１０６はスキップされる。
【００５２】
次に、編集部１３０は処理リスト２１０を設定する処理を実行する（ステップＳ１０７）。具体的には、現在の注目処理リストの内容を表示部１７０に表示させる。そして、編集入力部１２０が、注目処理リストの内容を設定あるいは変更する操作を受け付ける。そして、編集部１３０は、受け付けた操作に基づいて注目処理リストの内容を定め、リスト記憶部１４２０に記憶する。
【００５３】
このとき、編集部１３０は注目処理リストの内容をチェックし、問題があればユーザに警告しても良い。例えば、生成データが後の処理で利用されない（出力場所のアドレスを元データ場所とする以後の処理が無い）処理がある場合に問題ありと判別する。また、元データ場所を出力場所とする以前の処理が無い処理がある、ある場所を出力場所とする処理の生成データ型とその場所を元データ場所とする処理の元データ型が一致しない、等の場合にも問題ありと判別する。
そして、編集設定処理は終了する。
【００５４】
一般に、処理リスト２１０はテスト手順書を生成して出力するため、図７に示すように、具象データ入力部１１０、内部データ生成部１５０ａ、選択部１５０ｂ、変換部１５０ｃ、手順書生成部１５０ｄ及び手順書出力部１６０を含むように処理システムを記述する。図４の処理リスト２１０の各行が、一つの処理単位としての各部に相当する。
この各部には、具象データ入力型２２０ｉ、内部データ生成型２２０ａ、選択型２２０ｂ、変換型２２０ｃ、手順書生成型２２０ｄ及び手順書出力型２２０ｏがそれぞれ対応する処理型として型記憶部１４３０に記憶されている。各部の詳細については後述する。
【００５５】
編集設定処理により定められた処理リストを用いて、テスト手順書を生成して出力する処理（手順書出力処理）を、図８を参照して説明する。
ユーザがテスト手順を示す情報を入出力部１６に入力すると、手順書生成装置１は図８の手順書出力処理を開始する。なお、この手順書出力処理は、処理実行部１５０が実行する処理である。
【００５６】
手順書出力処理では、情報処理部１１がリスト記憶部１４２０に記憶された処理リスト２１０から、実行対象となる注目処理リストを選択する（ステップＳ２０１）。具体的には、ユーザが注目処理リストを選択する操作を待ち受け、操作部１４が選択操作を受け付けると、当該操作に基づいて注目処理リストを選択する。
【００５７】
次に、処理実行部１５０のロード部１５１０が、処理リストのうち、未処理の先頭行（図４の例では、一度目のループでは＃ｉｎの行、２度目のループでは＃０１の行、以下同じ）を取得する。そして、その行の処理（注目処理）をロードする（ステップＳ２０２）。
【００５８】
次に、取得部１５２０（一度目のループでは具象データ入力部１１０）が、元データ（一度目のループでは具象入力データＤｉｎ）を取得する（ステップＳ２０３）。
一度目のループでは、具象データ入力部１１０は、情報処理部１１が注目処理リストの先頭にある具象データ入力処理を記述する行（図４の例では＃ｉｎ）を抽出し、その行の“操作”の処理型（具象データ入力型２２０ｉ）をロードすることにより実現される。具象データ入力型２２０ｉは、図９（ａ）に示すように、インタフェイスの種類、入力ポートの番号、入力パラメータに関する情報を含み、入力ポートから入力データ型２２０in（図４の例では＃Ｔｉｎ）に合致する具象入力データＤｉｎを取得するための処理手順を記述する。＃Ｔｉｎは、入力データ型２２０inをパケット等に格納した書式である。
【００５９】
具象データ入力部１１０は、図９（ｂ）に示すように、元データ場所（入力ポート１）から具象入力データＤｉｎを取得すると、これにヘッダを付加する当の処理を実行して、入力データ型２２０inに合致したデータを生成し、出力場所（内部データ生成部１５０ａの元データ場所）に伝達する。出力場所（ここでは＃ｘ０１）は、次の処理（内部データ生成部１５０ａ）の引数を収める部位であってもよいし、いわゆるＩ／Ｏバッファであっても良い。
なお、２度目以降のループではステップＳ２０３で、取得部１５２０が元データ場所から元データ（元データ型に合致する具象データ）を取得する。
【００６０】
次に、処理実行部１５０は、内部処理が終了したか否か判別する（ステップＳ２０４）。ここでは、ロードした処理が手順書出力処理（例えば図４の＃ｏｕｔの行の処理）である場合に、内部処理が終了したと判別する。
【００６１】
内部処理が終了していない場合（ステップＳ２０４；ＮＯ）、ロードされた処理は生成部１５３０（処理実体）として機能する。生成部１５３０は、元データ（例えば内部データＤ１）から生成データ（例えば内部データＤ２）を生成する（ステップＳ２０５）。このとき、元データのデータ型は、処理リストの元データ型（例えば＃Ｔ０１）に合致している。生成部１５３０は、元データ型に合致する任意の元データから、生成データの型（例えば＃Ｔ０２）に合致した生成データを生成できる。
【００６２】
そして、出力部１５４０が、生成データを出力場所の部位（例えば＃ｘ０２）に出力する。出力場所は、次の処理（例えば選択部１５０ｂ）の引数を収める部位であってもよいし、ワークメモリの所定の部位であっても良い。
【００６３】
そして、処理はＳ２０３に戻り、注目処理リストの次の行の処理が実行される。なお、注目処理リストの全ての処理が完了した場合の処理（ステップＳ２０７）は後述する。
ここで、処理実行部１５０は典型的には内部データ生成部１５０ａ、選択部１５０ｂ、変換部１５０ｃ及び手順書生成部１５０ｄの機能を順次実現する。
【００６４】
内部データ生成部１５０ａは、ロード部１５１０が図１０（ａ）に示すように内部データ生成型２２０ａをロードすることで実現される。このとき、内部データ生成型は、参照データＤＣ１（例えばデータの所定部に付加する定型文など）へのポインタを持っていても良い。
内部データ生成部１５０ａは、具象データ入力部１１０が出力したデータから、図１０（ｃ）に示すような内部データＤ１を生成する。このとき、参照データＤｃ１をさらに用いることが出来る。内部データＤ１は、例えば図１０（ｂ）に示すような内部データ型２２０１に合致する。
【００６５】
内部データ生成部１５０ａは、生成した内部データＤ１を入力ワークメモリ１４１０ａに記憶する。入力ワークメモリ１４１０ａは、ワークメモリ１４１０の一部である。図４の例では、入力ワークメモリ１４１０ａはアドレス＃ｘ０２の部位である。
【００６６】
選択部１５０ｂは、図１１に示すように、ロード部１５１０が選択型２２０ｂをロードすることで実現される。このとき、選択型２２０ｂは、参照データＤｃ２（例えば選択テーブル）へのポインタを持っていても良い。
選択部１５０ｂは、入力ワークメモリ１４１０ａの内部データＤ１から、図１２（ｃ）に示すような内部データＤ２を生成する。このとき、参照データＤｃ２をさらに用いることが出来る。内部データＤ２は、例えば図１２（ａ）に示すような内部データ型２２０２に合致する。ここでは、内部データ型２２０２は、内部データ型２２０１と同一である。
【００６７】
なお、図１１では、入力ワークメモリ１４１０ａ及び出力ワークメモリ１４１０ｂにおいて、あるまとまりの情報（例えばテーブルの一つのセル）に対応するデータを円（あるいは多角形、楕円）で示している。内部データＤ１には、テスト単位に対応する情報が複数含まれる。図１０（ｃ）の例では、例えばｄ１１〜ｄ８８が一つのテスト単位に対応する。例えば、ｄ１２はパラメータＸ１、Ｘ２、Ｙ１〜Ｙ３をＯＮとし、Ｘ３をＯＦＦとして実行される一つのテスト（テスト単位）を示す。図７及び以下の図でも同様である。なお、各要素の模様（無地、斜線又は網線）及び形状（円、楕円又は多角形）は、それぞれその情報が所定の特徴を持つことを示す。
【００６８】
選択部１５０ｂは、内部データＤ２及びＤ３と同じ構造を持つ選択テーブルを用いる方法（外延的指定方法）と、所定の選択条件により選択を行う方法（内包的指定方法）のいずれによって選択を実行しても良い。ここで、内包的指定方法による選択とは、内部データＤ２内のデータのうち、所定の性質を持つデータを指定する方法である。言い換えれば、内包的指定方法による選択とは、選択される要素を全て列挙する（外延的指定方法）のではなく、選択される要素に共通する性質を定義することである。なお、内包的指定方法については後に詳細に説明する。
【００６９】
外延的方法の例を説明する。図１１において、図１０（ｃ）を入力データとすると、図１２（ｂ）に示すような選択テーブル（参照データＤｃ２）を用いて選択を実行することができる。選択テーブルは、図１２（ａ）に示すように内部データＤ１及びＤ２のデータ型（内部データ型２２０１及び内部データ型２２０２）と同様の構成のデータを持つ。図１２（ｂ）では、選択テーブルは、選択されるデータを１で、選択されないデータを０で、それぞれ示している。選択の結果、内部データＤ１のうち対応関係を持たない入力テスト単位の値をＮＵＬＬ（記号「−」）とした内部データＤ２（図１２（ｃ））が生成される。
【００７０】
選択処理は、入力データから必要データを抽出すること、あるいは不要データを削除することを目的とする。
内包的指定方法では、選択条件が成立したものを選択する場合（不成立なら非選択）が抽出で、選択条件が成立したものを選択しない場合（不成立なら選択）が削除である。外延的指定方法では、選択テーブルのセル値をＯＮとしたセルを選択する場合（上記の例では選択テーブルのセル値が１である内部データＤ１のセルを選択し、セル値が０の内部データを非選択）が抽出で、逆の場合が削除である。
【００７１】
選択部１５０ｂは、選択型２２０ｂが定めた選択処理により生成した内部データＤ２を出力場所（図４の例では、＃ｘ０３）に出力する。ここで、＃ｘ０３は、例えば変換部１５０ｃの引数を収める部位や、ワークメモリの所定位置である。
【００７２】
変換部１５０ｃは、ロード部１５１０が図１３（ａ）に示すように変換型２２０ｃをロードすることで実現される。このとき、変換型２２０ｃは、参照データＤｃ３（例えば変換テーブル）へのポインタを持っていても良い。
変換部１５０ｃは、選択部１５０ｂが出力した内部データＤ２を元データとして、変換型２２０ｃが定める変換処理を実行して内部データＤ３を生成する。
内部データＤ３は、例えば図１３（ｂ）に示すような内部データ型２２０３に合致する。ここでは、内部データ型２２０３は、内部データ型２２０２と同一であるとする。
【００７３】
変換部１５０ｃは、内部データＤ２及びＤ３と同じ構造（内部データ型２２０２及び内部データ型２２０３）を持つ変換テーブルを用いる方法（外延的定方法）と、所定の変換条件により変換を行う方法（内包的指定方法）のいずれによって変換処理を実行しても良い。ここで、内包的指定方法による変換とは、ある性質を持つデータを別のデータに変換する方法である。言い換えれば、内包的指定方法による変換とは、対象となる全要素についてそれぞれ変換ルールを定める（外延的方法）のではなく、共通する性質を持つ要素に適用される変換ルールを定義することである。具体的には、例えば内部データＤ３内のデータを、変換型２２０ｃが保持する関数によって変換することを言う。
【００７４】
変換部１５０ｃは、変換型２２０ｃが記憶する変換手順により、内部データＤ２から内部データＤ３を生成すると、生成した内部データＤ３を出力ワークメモリ１４１０ｂに記憶する。
変換処理の外延的方法について説明する。図１３（ａ）において、図１２（ｃ）を入力データとすると、図１３（ｃ）に示すような変換テーブル（参照データＤｃ３）を用いて変換を実行することができる。変換テーブルは、内部データＤ２のデータ型（内部データ型２２０２）と同様の構成のデータを持つ。図１３（ｃ）の例では、変換テーブルは、内部データ型２２０２の各要素（各セル）に対して、それぞれ変換関数（関数Ｆ１１〜関数Ｆ８８）が定義されたテーブルである。変換部１５０ｃは、内部データＤ２の各セルのデータを、変換テーブルが定める関数で変換する。例えば、図１２（ｃ）の内部データＤ２の座標（３，４）のデータｄ１２を関数Ｆ１２で変換して、内部データＤ３の座標（３，４）に配置する。内部データＤ２の座標（３，５）のデータｄ１３を関数Ｆ１３で変換して内部データＤ３の座標（３，５）に配置する。以下、同様である。なお、座標（３，３）のようにＮＵＬＬ値のデータに対しては変換処理を実行せず、生成データ（内部データＤ３）にもＮＵＬＬ値を配置する。
出力ワークメモリ１４１０ｂは、ワークメモリ１４１０の一部である。図４の例では、出力ワークメモリ１４１０ｂはアドレス＃ｘ０４の部位である。
【００７５】
手順書生成部１５０ｄは、図１４（ａ）に示すように、手順書生成型２２０ｄがロードされることにより実現する。手順書生成部１５０ｄは、出力ワークメモリ１４１０ｂ上の内部データＤ３（内部データ型２２０３）を元データとして、図１４（ｃ）に示すようなテスト手順書（内部データＤ４、内部データ型２２０４）を生成する。このとき、変換型２２０ｃは、参照データＤｃ４（例えば対応表）へのポインタを持っていても良い。
このテスト手順書データ（内部データＤ４）は、具象入力データＤｉｎに含まれているテストのための因子を、上記のように選択・変換してテストを設計した結果から、テストを実際にどのように実行し、テスト結果をどのように判断すれば良いか（判定基準）を人間に理解する形で表示するリストである。
【００７６】
図１４（ｃ）の例では、テスト手順書は以下の項目を含む。
（ｉ）事前準備
テストできる状態にするためにテスト実行者が実行すべき処理を示す。テスト項目の目的を達成するために、テスト実施者が事前にどのような準備（設定値のセットや入力データのロードなど）を行うかを記述する。記述された事前準備を完了すると、テスト対象はテスト可能な状態となる。
（ｉｉ）操作手順
前記事前準備で起動したテスト対象に対して、テスト実施者がどのような操作を行うか（起動スイッチオン、選択画面で機能１を選択する、等）を記述する。
（ｉｉｉ）判定基準
前記操作手順の結果がＯＫかＮＧかを判定する基準。どのような結果（操作手順を実行した場合に発生する変化・出力等）となればＯＫとなり、どうなればＮＧなのかを記述する（例えば、エラー表示して起動しない場合はＮＧ、機能１が起動すればＯＫ、等）。
手順書生成部１５０ｄは、別に構築されたデータベース（例えば参照データＤｃ４）を用いて、パラメータ（図１４の例ではパラメータ１〜３）の組合せに応じた上記項目（ｉ）〜（ｉｉｉ）のテキストを自然言語処理によって生成する。項目（ｉ）〜（ｉｉｉ）のテキストは、テストを実行して評価する説明書のような表現であることが望ましい。
【００７７】
項目（ｉ）〜（ｉｉｉ）のテキストは、パラメータに基づいてテキストデータを生成する任意の既知の方法を用いて生成すれば良い。例えば、参照データＤｃ４に、全パラメータの組み合わせについて項目（ｉ）〜（ｉｉｉ）に当てはめるべきテキストデータを用意していてもよいし、所定のテンプレートにパラメータに応じたテキストを埋め込んでもよい。あるいは、パラメータ毎にテスト対象に相応しいフレーズ（例えばパラメータ１：ＯＮについて「システムＡの機能１を立ち上げる」、パラメータ２：ＯＦＦについて「ダイアログボックスを開いてチェックを外す」、等）を記録しておいて、各テストについて自然言語生成（Ｎａｔｕｌａｒ  Ｌａｎｇｕａｇｅ  Ｇｅｎａｌａｔｉｏｎ）によって各項目のテキストを合成してもよい。そして、手順書生成部１５０ｄは生成したテキストをテスト手順書（内部データＤ４）の対応する部位にそれぞれ記録する。
この処理は、パラメータ（テスト因子）をテキストに変換する一種のデータ変換処理であるが、テストをするための事前準備や操作方法、判定基準、出力先の手順書の書式は、テスト対象の装置やシステムに特化しているため、上記選択部１５０ｂ・変換部１５０ｃとは別に構成される。
【００７８】
手順書生成部１５０ｄは、内部データＤ３のうち、テスト単位を示す情報（ｄ１１〜ｄ８８）ひとつにつき、手順書の一行のデータを生成する。内部データ型２２０４に合致するデータの各セルと、内部データ型２２０３に合致するデータの各セルの対応関係は手順書生成型２２０ｄの内部で定義されている。あるいは、参照データＤｃ４が定義するものとしてよい。手順書生成部１５０ｄは、このデータ型どうしの対応関係に基づいて、内部データＤ３に含まれる情報を、テスト手順書（内部データＤ４）にテスト単位毎に配置することで、テスト手順書を作成する。このとき、ＮＵＬＬ値のテスト単位についてはデータを生成しない。
【００７９】
図８に戻って説明を続ける。ステップＳ２０４において内部処理が終了したと判別されると（ステップＳ２０４；ＹＥＳ）、次に手順書出力部１６０が出力データＤｏｕｔを外部に出力する（ステップＳ２０７）。具体的には、情報処理部１１が注目処理リストの最後にある手順書出力処理を記述する行（図４の例では＃ｏｕｔ）を抽出し、その行の“操作”の処理型（手順書出力型２２０ｏ）をロードして手順書出力部１６０の処理を実行する。手順書出力型２２０ｏは、図１５（ａ）に示すように、インターフェースの種類、入力ポートの番号、入力パラメータに関する情報を含み、元データ（内部データＤ４）をパケット等に収めて出力可能なデータ形式（図４の例では＃Ｔｏｕｔ）として、外部装置に出力場所（ここではシリアルポート）を通して出力する。
【００８０】
ステップＳ２０７でテスト手順書を外部に出力すると、手順書出力処理は終了する。
【００８１】
なお、型記憶部１４３０が記憶する処理型・データ型は、抽象度の程度によってスーパークラス・サブクラスの関係を持つことが出来る。例えば、選択型２２０ｂとして、全選択処理に共通の機能だけを定義したスーパークラスを用意し、所定の特徴を持つ（例えば全選択）選択処理に対応したサブクラスを定義できる。スーパークラスとサブクラスを定義することで、同じ内容の機能を繰り返し定義しなくても良い。また、スーパークラスを変更すれば、全サブクラスの機能を同時に併せて変更できるため、システム変更時の労力が大きく軽減できる。
【００８２】
また、データ型として抽象化される対象は、内部データ・入出力データといった処理単位だけではなく、抽象データ型に含まれる各要素も抽象化する。即ち、あるデータ型に含まれる因子が、ツリー構造を持つデータであった場合、このツリー構造そのものと、ツリーを構成する要素がそれぞれ抽象化され、データ型として型記憶部１４３０に記憶される。
【００８３】
手順書生成装置１は、処理リスト及び処理型・データ型の設定内容によって、さまざまな処理構造（抽象構造及び具象構造）を持つことが出来る。以下に手順書生成装置１の設定例と、その場合の機能を例示する。手順書生成装置１は、下記の設定例に示す処理のための処理型・データ型と、設定例が示す処理を定義した処理リストをテンプレートとして記憶部１４０に予め記憶するものとする。
【００８４】
(設定例１）
設定例１は、前述のようなシステム構成において、入力データ型２２０ｉｎが変換なしで内部モデルとして使用できる場合に好適な設定例である。設定例１の選択部１５０ｂと変換部１５０ｃは、図１６に示すような処理構造を持つ。
設定例１では、内部モデル（内部データ型２２０１〜２２０４）は共通である。この場合の内部モデルは、例えば因子の組とそれに対する動作が記載された表である。
設定例１では、選択部１５０ｂは、参照データＤｃ２として、図１２で示したような選択テーブルによってデータを選択する。具体的には、内部データＤ１を、選択テーブルで非選択（例えば０）が記憶されているセルの値をＮＵＬＬとする以外はそのままコピーして内部データＤ２を生成する。また、変換部１５０ｃは変換を実行せず、そのまま内部データＤ２を内部データＤ３として出力ワークメモリ１４１０ｂに記憶する。
設定例１は、入力データを変換することなく選択のみでテスト手順書を作成できる場合に有効である。
【００８５】
(設定例２）
設定例２は、変換部１５０ｃでデータを１対１で変換する設定例である。なお、設定例１と同様に、前述のようなシステム構成において、入力データ型２２０ｉｎがそのまま内部モデルとして使用できることを前提とする。
設定例２の選択部１５０ｂと変換部１５０ｃは、図１７（ａ）に示すような処理構造を持つ。
【００８６】
本設定例では、選択部１５０ｂはをそのまま変換部１５０ｃに伝達する。変換部１５０ｃは、図１７（ｂ）に示すような変換テーブルを用いて、内部データＤ１の各セルを必要に応じて変換して、出力ワークメモリ１４１０ｂに記憶する。
【００８７】
変換テーブルを用いた変換とは、あるセルの値（あるいはその一部）が変換テーブルの変換前（図１７（ｂ）では“記号”）の列に登録されている値であった場合、その部分を変換後（図１７（ｂ）では”文字列”）に変換することを言う。このため、変換テーブルは変換前の情報と変換後の情報を対応づけて記憶する。
図１７（ｂ）の例では、あるセルに記号“○”が含まれていた場合、その部分を文字列“起動”に変換する。
【００８８】
本設定例は、具象入力データにおいて因子の水準やセルの値（図５（ｃ）の例では、データセル中の状態名ａ〜ｅやシステムの出力名ｏｕｔ１〜ｏｕｔ５）が記号で記されている場合に、可読性の向上のために一括して変換する場合等に利用できる。たとえば、a（ｏｕｔ１）を、停止状態（起動可能ランプ点灯）などに変換することが出来る。このときａ＝停止状態、ｏｕｔ１＝起動可能ランプ点灯と変換している。
また、例えば、本設定例は、具象入力データに対する文字コードの変換（JISからEUC）や区切り記号の挿入（特定記号／文字⇒特定記号／文字＋区切り記号）のような変換に利用できる。さらに、システムのバージョンアップにあたって処理の名称を変更した場合などに、一括して新規名称に変更する場合等に有効である。
【００８９】
本設定例は、単なる表現方法の変換なので、逆方向の変換（逆変換）の実現も可能である。すなわち、テスト手順書から具象入力データへの変換も可能である。
これを応用して、テスト手順書のテスト結果（OK／NG）から内部データ型（内部データ型２２０１）へ逆変換して、内部データ型でテスト結果を利用することができる。例えば、内部データ型に対してテスト観点毎のNG（不具合）の分布を可視化する処理を定義すれば、テスト手順書の違いにかかわらず、テストカバレッジモニタが効率的に実行できる。同様に、テスト手順書のテスト結果（OK／NG）とテスト実施日（暦日）を、テスト作業進捗管理表（Xチャート）に時系列的なグラフとして表示することも効果的に実現できる。
【００９０】
(設定例３）
設定例３は、テスト観点（因子の水準）を正規化する処理構造を持つ。
本設定例では、図１８（ａ）に示すように、内部データＤ１の情報（因子の水準）を、変換部１５０ｃが分割して内部データＤ３とする。
本設定例では、選択部１５０ｂは全選択または部分選択を実行する。変換部１５０ｃは、因子の各水準の正規化（１個の水準から複数個の水準への分解）を行い、冗長性を排除する。
【００９１】
一方、本設定例の変換部１５０ｃは、図１８（ｂ）に示すように、選択部１５０ｂの選択結果（内部データＤ２）の因子を分割した内部データＤ３を生成する。
この変換部１５０ｃは一つの値から複数の値を生成する任意の既知の方法を用いて因子分割を実行して良いが、ここでは図１８（ｃ）に示したような分割デーブル（参照データＤｃ３）を用いて分割するとする。
本設定例において、正規化の変換とは、物理的な１対多変換（水準のコード区切りの方法）または意味的な１対多変換の対応関係である。この正規化処理は、入力データを意味的に分解（水準を分離）する処理である。ここで言う「意味的分解」とは、例えば「加速前進中」を意味によって分割して「正常状態」「前方向」「速度加算中」のようにすることである。
このためには、入力データに現れる、テスト対象のシステムに係る単語の概念を分割して、分割した概念に応じた因子を生成できるように、参照データＤｃ３に複数の単語を登録する。例えば、自動車の「運転」という概念を「状態」、「移動方向」、「速度変化」に分割する場合に、「状態」に対して「正常」「故障（一部故障してるが使ってる）」「修理（タイヤ交換中で使えない）」の３つ、「移動方向」に対して「前」「後」の２つ、及び「速度変化」に対して「加算中（加速中）」「減算中（減速中）」「０（一定速度か停止）」の３つの単語をそれぞれ登録する。そして、変換時には入力データに表れる単語（上記の例では加速前進中）から、３つの因子に対応する単語（「正常状態」、「前方向」、「速度加算中」）を抽出する。
【００９２】
本設定例における正規化処理の目的は、データベースにおける正規化処理と同様である。即ち、テスト観点が他のテスト観点と重複のない単一の概念になるように分離する処理である。
【００９３】
本設定例は、設計仕様書（具象入力データ）に規定されたテスト観点（因子の水準）が複数のテスト観点を含意（混在）する場合に、独立したテスト観点への分割（正規化）を行うことに利用する事が出来る。
例えば、複数の因子を混在させてテスト設計を行う場合、テスト項目に漏れや重複が発生しないようするため、任意の２つの因子の水準を直交させる必要がある。
具体的には、ある因子の一部の水準が複数の意味を持つ場合、意味的に重なりの無いように分離して集計表（ピボットテーブル）に表示したい場合などである。
本設定例は、そのような場合に各因子の水準の相互作用を見るため意味的に分離（線形独立化）することに利用できる。
【００９４】
(設定例４）
設定例４では、テスト観点（因子）を複数のグループに分割する。
本設定例では、図１９（ａ）に示すように、選択部１５０ｂ１と選択部１５０ｂ２の二つの選択部が定義される。
選択部１５０ｂ１と選択部１５０ｂ２は、処理リスト上で一つの処理として起動された選択部１５０ｂの機能単位であって良い。この場合は、変換部１５０ｃと出力ワークメモリも機能単位に分割される。
あるいは、処理リスト上でそれぞれ別に定義されていても良い。この場合は、処理リストにおいて入力ワークメモリを元データ場所とする選択処理（選択部１５０ｂ１と選択部１５０ｂ２とに対応）が二つ定義される。
【００９５】
選択部１５０ｂ１と選択部１５０ｂ２とは、図１９（ｂ）に示すように、内部データＤ１を、内部データＤ２ａと内部データＤ２ｂとに示すように２つに分けて解釈する。そして、解釈の結果に基づき２つの内部データを生成する。
さらに、各選択処理の出力に応答する、変換部１５０ｃ１と１５０ｃ２が定義される。変換部１５０ｃ１は、図１９（ｂ）に示すように、内部データＤ２ａから、内部データＤ３ａを生成する。変換部１５０ｃ２は、内部データＤ２ｂから、内部データＤ３ｂを生成する。変換部１５０ｃ１と１５０ｃ２は、それぞれ生成した内部データを出力ワークメモリ１４１０ｂ１と出力ワークメモリ１４１０ｂ２に内部データを出力する。そして、手順書生成部１５０ｄが出力ワークメモリ１４１０ｂ１と出力ワークメモリ１４１０ｂ２とに記憶された内部データを元に手順書を生成する。このときは、処理リスト上で手順書生成処理は二つの引数を持つ関数（出力ワークメモリ１４１０ｂ１と出力ワークメモリ１４１０ｂ２とを元データ場所とする処理）として定義される。
【００９６】
このとき、内部データＤ１の各要素に対して、常にゼロまたは１つの出力データへ変換され、入力データが複数の選択処理により重複して選択されることはない。例えば、選択部１５０ｂ１は、図１９（ｃ）に示すような選択ルールで選択処理を実行する。図１９（ｃ）のアクタリスク（＊）は、ワイルドカードを意味し、内部データＤ１の各行のうち、Ｐ１から始まる任意の文字列を選択する。そして、Ｐ１を因子１とし、その他の部分を因子２として内部データＤ２ａを生成する。変換ルールは、例えば参照データＤｃ２ａに記録されていれば良い。
同様に、選択部１５０ｂ２は、図１９（ｄ）に示すような選択ルールにより、内部データＤ１の各行のうち、Ｐ２から始まる任意の文字列を選択する。そして、Ｐ２を因子１とし、その他の部分を因子２として内部データＤ２ｂを生成する。変換ルールは、例えば参照データＤｃ２ｂに記録されていれば良い。
【００９７】
変換部１５０ｃ１は、例えば図１９（ｅ）に示すような変換ルールにより、変換処理を実行する。図１９（ｅ）のアクタリスクは、変換にあたって因子１の内容を問わないことを意味する。変換部１５０ｃ１は、内部データＤ２ａの各行のうち因子２がアクタリス以外の文字列（例えば「生成」）である行に、表示内容の文字列（例えば因子２が「生成」である全ての行に「Ａ１」）を追加する内部データＤ３ａを生成する。
同様に、変換部１５０ｃ２は、例えば図１９（ｆ）に示すような変換ルールにより、変換処理を実行する。変換部１５０ｃ２は、内部データＤ２ｂの各行のうち因子２がアクタリス以外の文字列（例えば「生成」）である行に、表示内容の文字列（例えば因子２が「生成」である全ての行に「Ｂ１」）を追加して内部データＤ３ｂを生成する。
【００９８】
本設定例は、入力データのテスト観点をマトリクス化したい場合や、因子を複数のグループに分離（分割）したい場合に好適である。
例えば、パラメータの一覧表をX軸、Y軸に分割して、ピボットテーブルを構成したいような場合に使用する。テスト設計を行う場合、テスト観点の組合せと動作結果に関する一覧表（決定表）を作って、全体像を見渡したい場合がある。一覧表の形式は、縦軸と横軸にテスト観点（因子）を置き、テスト観点の交点（各セル）に動作結果を記載するマトリクス形式であるが、このような形式に変換するためには、因子を縦軸と横軸の２グループに分割する必要がある。本設定例によれば、分割する処理を実現できる。
【００９９】
なお、同様の処理は、図２０に示したような処理構成でも実現可能である。この場合、選択部１５０ｂは全選択を実行し、変換部１５０ｃが二つの出力（出力ワークメモリ１４１０ｂ１と１４１０ｂ２）を持つように処理リストを設定する。
【０１００】
(設定例５）
設定例５においては、入力データに含まれる複数のテスト観点を合体して一つのテスト観点にする。
本設定例では、図２１（ａ）に示したように、選択部１５０ｂが内部データＤ１をそのまま変換部１５０ｃに内部データＤ２として伝達する。また、変換部１５０ｃは、複数の水準を１つにまとめるマージ処理を実行して複数のテスト観点をマージする。
【０１０１】
具体的には、図２１（ｂ）に示すように、内部データＤ２の行の組み合わせ（Ｘ２ＢとＸ２Ｃの行、Ｘ４ＢとＸ４Ｃの行）を、内部データＤ３では一つの行（それぞれＸ２Ｃの行、Ｘ４Ｂの行）とする。
【０１０２】
そのため、変換部１５０ｃは、図２１（ｃ）にしめすようなマージ規則表（参照データＤｃ３）を用いる。マージ規則表は、変換前のデータの組み合わせと、変換後のデータとを対応づけて記憶する。なおこれに限らず、マージ規則として、複数の変換前のデータから一つの変換後のデータを生成する既知の規則を用いることが可能である。
【０１０３】
本設計例は、設計仕様書（入力データ）に単独では実際のテスト観点とならないが、組み合わせれば実際の要求に添う情報が含まれている、といった場合に好適である。
例えば、因子の水準が複数の組データになっており、意味的に組データで扱いたい場合が考えられる。具体的には、入力データが３つ組データ（例えば、X,Y,Z）となっており、意味的に１つの事柄（例えば、空間の座標）を表しており、意味的データ（空間の座標の指定）でテストを実施したいような場合である。
【０１０４】
なお、マージによって情報が失われない設定の場合、本設定例を逆方向の変換（逆変換）に応用することも可能である。すなわち、テスト手順書から具象入力データへの変換も可能である。
【０１０５】
(設定例６）
設定例６では、複数の入力データから一つのテスト手順書を生成する。
本設定例では、図２２（ａ）に示すように、具象データ入力部（具象データ入力部１１０ａ及び１１０ｂ）、内部データ生成部（内部データ生成部１５０ａ１及び１５０ａ２）、入力ワークメモリ（入力ワークメモリ１４１０ａ及び１４１０ｂ）、及び選択部（選択部１５０ｂ１及び選択部１５０ｂ２）、変換部（変換部１５０ｃ１及び変換部１５０ｃ２）の組み合わせがそれぞれ２セット定義される。
【０１０６】
このため、処理リスト２１０には、具象データ入力処理、内部データ生成処理、選択処理及び変換処理がそれぞれ２セットずつ定義される。このとき、変換処理は例えば全選択処理である。そして、２つの変換処理の出力場所が、ワークメモリ１４１０ｂの同じ内部データＤ３を示す位置となる。
【０１０７】
その結果、例えば図２２（ｂ）に示すように、入力ワークメモリ上に二つの内部データ（内部データＤ１ａとＤ１ｂ）が記憶される。そして、内部データＤ１ａとＤ１ｂとに含まれる情報を、変換部１５０ｃ１及び変換部１５０ｃ２が、型記憶部１４３０が記憶する内部データ型２２０３上の所定部位に配置して内部データＤ３を生成する。
【０１０８】
このため、変換部は例えば図２２（ｃ）に示すような配置変換表（参照データＤｃ３）を用いて、情報を変換して配置する。
図２２（ｃ）の配置変換表は、元データの因子Ａと因子Ｂとを、生成データ上の因子Ｃとして線形に配置することを指定する。
【０１０９】
本設定例は、ある設計仕様書（入力データ）のテスト観点を元に、新たに内容を追加する場合に好適である。例えば、複数の設計仕様書に、実際に実行すべきテストの情報が分散しており、情報が整理されていない場合に、何らかの連結情報を元に複数データをまとめて、１つのテスト手順表上に合成する場合である。
具体的には、所定の入力データの組合せを入力すると複数の出力が得られるシステムにおいて、得られた出力を組合せて決定表を作成したいような場合や、複数データをまとめてある処理（関数）の入力するテストの手順書として、入力データ表を作りたいような場合が考えられる。また、テスト観点となる設計情報がある情報毎の複数の一覧表になっている場合に、複数の一覧表を統合して、１つの全体像を把握できる表を生成したい場合なども考えられる。
また、選択項目に関係なく、共通の確認事項や、テスト開始や終了時の共通処理など一定の決まった文言を挿入（追加）したいような場合にも使用できる。さらに、条件により複数の表になっているものを条件を含めた１つの表にマージしたい場合や、２つの行列データを入力として２データ間の行列演算（加算や内積など）のテストを行う場合等、２つの入力データに対してなんらかの演算を行いたい場合にも利用できる。
【０１１０】
(設定例７）
また、入力データ型２２０ｉｎと内部データ型２２０１〜２２０ｎが異なる場合、図２３に示したような設定が有効である。
本設定例では、内部データ生成部１５０ａが、具象データ入力部１１０から伝達されたデータの構造を変更して、内部データ型２２０１に合致するデータ（内部データＤ１）とする。
【０１１１】
そして、選択部１５０ｂが、選択デーブル（参照データＤｃ２）を用いて一致検索処理を実行する。選択テーブルは内部データ型２２０１及び２２０２と同じ構造を持つ、図１２（ｂ）に例示したようなデータである。
なお、変換部１５０ｃは変換処理を実行しなくて良い。
【０１１２】
このような設定は、入力データ型が内部データ型と異なる場合であって、設計仕様書（入力データ）に使える情報があるが、不要な情報を含む場合で条件式による指定が困難な場合に好適である。
具体的には、テスト結果の分析により、弱点に関する追加のテストを実施したい場合、弱点およびその周辺にテストケースを生成したい場合に好適である。
【０１１３】
(設定例８）
さらに、内部データＤ１の情報を、前述のようにデータベース等により対応関係を定めるかわりに、選択部１５０ｂが任意の条件（所定条件）により選択する設定（図２４）も可能である。
この場合、選択部１５０ｂは内部データＤ１のデータが所定の判定基準（例えば所定範囲の値であるか否か）に基づいて選択・非選択を判別する。
そして、非選択とされたデータの部位をＮＵＬＬとする一方、選択されたデータを内部データＤ２の対応部位にコピーする。
なお、本設定例では変換部１５０ｃは変換処理を実行しない。
【０１１４】
本設定例は、入力データに対する選別が、単純なフィルタ処理では実現不可能な場合に好適である。例えば、選択条件がしきい値の組合せや数式で表現できる場合である。また、入力データに含まれる任意のソフトウェアコード（＃define や ＃ｅｎｄといったコード）を削除する場合にも利用できる。
【０１１５】
(設定例９）
以上、選択部１５０ｂと、それに続く変換部１５０ｃを含む設定例について説明したが、本実施形態の設定例はこれに限られない。
例えば、図２５のように、変換部１５０ｃの後に選択部１５０ｂが続く構成も設定可能である。この場合、処理リストにおいて、変換処理のあとに選択処理を配置すればよい。
本設定例は、まず入力データを変換して、変換結果に対して選択（判定）を行いたい場合に好適である。
【０１１６】
(設定例１０）
又、設定例９の発展形として、変換部１５０ｃの後ろに複数の選択部（選択部１５０ｂ１及び１５０ｂ２）を配置しても良い（図２６）
本設定例では、入力データに対して複数回の選択処理が実施される。
本設定例は、実施形態１において、すでに構築したテスト手順書生成システムに対し、さらにテスト観点の絞込みを進めたい場合に好適である。即ち、新規な処理構造を位置から設計することなく、選択処理を追加するだけで所望の処理（テストケース数の削減等）を実現出来る。
【０１１７】
(設定例１１）
さらに、複数の変換部（変換部１５０ｃ１及び１５０ｃ２）を配置しても良い（図２７）。
本設定例では、入力データに対して複数回の変換処理が実施される。
本設定例は、実施の形態１において、すでに構築したテスト手順書生成システムに対し、さらにテスト観点の変換を実行したい場合に好適である。即ち、新規な処理構造を一から設計する要なく、変換処理を追加するだけで所望の処理（二段階の変換等）を実現出来る。
即ち、過去のテスト手順書生成システムを再利用できる。
【０１１８】
以上説明したように、本実施形態の手順書生成装置１によれば、データの抽象型に対して定義された処理を順に実行して手順書を生成するため、データの具体的な数・次元数に関わらず、同一のシステムで手順書を生成できる。つまり、手順書の生成を効率良く実行できる。
【０１１９】
また、本実施形態の手順書生成装置１は、テスト観点毎に抽象化したデータ構造（内部モデル、データ型）と抽象的な処理（処理型）で構成される。そのため、処理対象となるシステムの実装に合わせてそれぞれ異なる処理構造を設定する必要がない。従来手法によるテスト手順書自動作成システムにおいては、自動化システムを実現するための作業（物理的システム構築やプログラミング作業、データの準備）に、多大の労力（修正コスト、時間）を必要としていた。本実施形態では、この労力を低減することが出来る。このため、テスト手順書の自動作成による生産性の向上効果が、自動化システムの実現コストで相殺されず、トータルでの費用削減効果（システム構築＋手順書生成）がすぐに表れる。
【０１２０】
また、テスト要件／システム構成が大きく変化した場合でも、新たな要件に合う生成システムを処理型・データ型の変更が最小限の労力で構築できる。
【０１２１】
作成したテスト手順書自動作成システム（処理リスト）を成功事例として異なる他システムに展開しようとした場合にも、処理型・データ型・処理リストに必要な変更を加えるだけで良く、流用が容易となる。
【０１２２】
即ち、本実施形態の手順書生成装置１によれば、テスト手順書生成システムの構築を簡便かつ迅速に行える。また、テスト設計資産の再利用性が高い。また、データ型が、ＵＭＬ等の汎用モデリング言語でなく、ドメイン固有言語（ＤＳＬ；domain-specific language）で記述されているため、既存の設計仕様書をそのまま入力データとして用いることが出来る。そのためわざわざ既存の設計仕様書をＵＭＬに書き直す必要が無い。また、生成システムの適用範囲を広げる事が出来る。なお、記憶部１４０にＤＳＬ毎に処理型・データ型のテンプレートを記憶し、処理実行部１５０を複数のＤＳＬを解釈できる処理系で構築することで、このような設定を支援することとしてもよい。さらに、既知の既存システムに対する上記設定例のようなテスト手順生成手順を、工場出荷時に記録しておいてもよい。このような構成によれば、ユーザは自ら設定することなく既存システムに対するテスト手順書を作成できる。また、必要に応じてデフォルトの設定例を改変することにより、所望のテスト手順書生成システムを作成できる。
【０１２３】
本実施形態の手順書生成装置１では、内部データ・入出力データを抽象データ型化するだけでなく、抽象データ型に含まれる各要素も抽象化する。その結果、対象となるデータが変更された場合、抽象型を書換えるだけで足りる。
また、入力データだけでなく、テスト手順書（出力データ）の出力形式も抽象化（メタデータ化）することにより、任意のテスト手順書書式に対応するものである。
【０１２４】
さらに、インプット・アウトプット（具象データ入力部、手順書出力部）についても処理型を用いて抽象化している。このため、インタフェイス手段の変更についても、処理型を書換えるだけで対応できる。
【０１２５】
本発明によるテスト手順書自動作成システムは、機能要件からテスト手順書に至る一連の選択・変換プロセスを抽象型として定義し、処理リストによって処理の順序を定める。このため、抽象型又は処理リストの編集という簡易な方法で構成・機能の書換えが可能である。すなわち、プログラムそのものを編集しなくても、所望の処理を実現できる。これにより、手順書を生成するプロセスを任意に構成し、あるいは複数の変換プロセスを組合せることにより、多様なテスト手順書自動作成システムを、簡便に実現するものである。
【０１２６】
特に、手順書生成システムのうち、抽象化が容易な処理と、抽象化が困難な処理を分離することにより、テスト対象が異なっても再設計が必要な部分を最低限とすることができる。
上記実施の形態では、手順書生成部１５０ｄが実行する手順書生成処理は上位概念化が困難である。手順書生成処理は、因子の値に基づいて実際のテスト手順（操作）を示すテキストを生成しなければならないが、例えば携帯電話の操作と、テレビの操作は全く別物なので、この処理を抽象型によって上位概念化することは困難なためである。
一方、選択部１５０ｂが実行する選択処理と、変換部１５０ｃが実行する変換処理は、テスト観点にのみ依存し、テスト対象である個々の装置やシステムには依存しない。例えば、携帯電話とテレビには、状態遷移や競合表のような制御構造体があるが、これらは記号化（抽象化）が可能である。そのため抽象型を用いることにより、テスト対象である個々の装置やシステムには依存しない処理系を構成できる。この処理を抽象型によって上位概念化することによって、既存の成功した手順書生成システムやテンプレートを利用することができる。
即ち、本実施形態では、機種依存が強い処理である手順書生成処理（手順書生成部１５０ｄが実行する処理）をテスト対象に特化して記述し、機種依存が弱い処理（選択処理、変換処理）を抽象型により上位概念化することで、テスト手順書の効率的な生成を達成する。
【０１２７】
手順書生成装置１は、上記設定例に係る処理型（特に選択型・変換型）・データ型を、抽象度の度合いにより上位クラスから下位クラスに分割してテンプレートとして記憶部１４０に予め記憶している。このため、ユーザは上記の設定例に示したような処理系を、テンプレートを用いて容易に構築することができる。
【０１２８】
（変形例）
以上、本発明の実施形態について説明したが、本発明はその他の実施形態でも実現可能である。
【０１２９】
例えば、上記実施形態では、選択部と変換部はそれぞれ独立して処理をして、選択部の処理が全て終了した後に変換部が実行されることとした。しかし、これに限らず、選択部と変換部は連動して出力ワークメモリに記憶される内部データ（内部データＤｎ）を生成して良い。
例えば、以下の構成が可能である。
選択部１５０ｂが、内部データＤ１上のデータ単位（セル等）を一つ注目単位する。そして、注目単位が、内部データＤｎ上のどの部位に対応するか、対応表等を用いて選択する。対応部位が無い場合は次の注目単位を選択する。
一方、対応部位がある場合は、注目単位の情報を、対応先の情報（内部データＤｎ上の座標）と共に変換部１５０ｃに伝達する。変換部１５０ｃは所定の変換規則で伝達された情報を変換して、対応部位に配置する。
【０１３０】
その他、前記のハードウェア構成やフローチャートは一例であり、任意に変更および修正が可能である。
【０１３１】
情報処理部１１、主記憶部１２、外部記憶部１３、などから構成される手順書生成のための処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなど）に格納して配布し、前記コンピュータプログラムをコンピュータにインストールし、変更再構成画像生成のための処理を行う中心となる部分を構成してもよい。また、インターネットなどの通信ネットワーク上のサーバ装置が有する記憶装置に前記コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロードなどすることで手順書生成装置を構成してもよい。
【０１３２】
手順書生成装置の機能を、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【０１３３】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS：Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【符号の説明】
【０１３４】
１…手順書生成装置
１１…情報処理部
１２…主記憶部
１３…外部記憶部
１４…操作部
１５…表示部
１６…入出力部
１７…内部バス
１８…プログラム
１１０…具象データ入力部
１２０…編集入力部
１３０…編集部
１４０…記憶部
１４１０…ワークメモリ
１４１０ａ、１４１０ａ１、１４１０ａ２…入力ワークメモリ
１４１０ｂ、１４１０ｂ１、１４１０ｂ２…出力ワークメモリ
１４２０…リスト記憶部
１４３０…型記憶部
１５０…処理実行部
１５０ａ、１５０ａ１、１５０ａ２…内部データ生成部
１５０ｂ、１５０ｂ１、１５０ｂ２…選択部
１５０ｃ、１５０ｃ１、１５０ｃ２…変換部
１５０ｄ…手順書生成部
１５１０…ロード部
１５２０…取得部
１５３０…生成部
１５４０…出力部
１６０…手順書出力部
１７０…表示部
２１０…処理リスト
２２０…抽象型
２２０１〜２２０ｎ…内部データ型
２２０ｉ…具象データ入力型
２２０ｏ…手順書出力型
２２０ａ…内部データ生成型
２２０ｂ…選択型
２２０ｃ…変換型
２２０ｄ…手順書生成型
２２０ｉｎ…入力データ型
２２０ｏｕｔ…出力データ型
Ｄｉｎ…具象入力データ
Ｄ１〜Ｄｎ、Ｄ１ａ、Ｄ１ｂ…内部データ
Ｄｏｕｔ…出力データ
Ｄｃ１〜Ｄｃ４、Ｄｃ２ａ、Ｄｃ２ｂ、Ｄｃ３ａ、Ｄｃ３ｂ…参照データ
【図１】
2014032535.tif 000003
【図２】
2014032535.tif 000004
【図３】
2014032535.tif 000005
【図４】
2014032535.tif 000006
【図５】
2014032535.tif 000007
【図６】
2014032535.tif 000008
【図７】
2014032535.tif 000009
【図８】
2014032535.tif 000010
【図９】
2014032535.tif 000011
【図１０】
2014032535.tif 000012
【図１１】
2014032535.tif 000013
【図１２】
2014032535.tif 000014
【図１３】
2014032535.tif 000015
【図１４】
2014032535.tif 000016
【図１５】
2014032535.tif 000017
【図１６】
2014032535.tif 000018
【図１７】
2014032535.tif 000019
【図１８】
2014032535.tif 000020
【図１９】
2014032535.tif 000021
【図２０】
2014032535.tif 000022
【図２１】
2014032535.tif 000023
【図２２】
2014032535.tif 000024
【図２３】
2014032535.tif 000025
【図２４】
2014032535.tif 000026
【図２５】
2014032535.tif 000027
【図２６】
2014032535.tif 000028
【図２７】
2014032535.tif 000029