(57)【要約】【課題】優先順位を付与した変換処理を実行する変換プログラムのテスト仕様書を生成するテスト仕様生成装置およびプログラムを提供する。【解決手段】テスト仕様生成置が，プログラムの設計情報に対する変換項目を組み合わせた組み合わせ変換処理を表す組み合わせ変換処理情報と，前記変換項目の優先順位を表す項目間順位情報と，に基づき，プログラムの設計情報の変換のための変換プログラムのテスト用の仕様を生成する生成手段を有する。【選択図】図１
2007299155.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの設計情報に対する変換項目を組み合わせた組み合わせ変換処理を表す組み合わせ変換処理情報と，前記変換項目間に定められる優先順位を表す項目間順位情報と，に基づき，プログラムの設計情報の変換のための変換プログラムのテスト用の仕様を生成する生成手段
を具備することを特徴とするテスト仕様生成装置。
【請求項２】
前記設計情報が，クラスの構造で表現され，
前記変換項目が，前記クラスへの処理を表す
ことを特徴とする請求項１記載のテスト仕様生成装置。
【請求項３】
前記組み合わせ変換処理情報が，変換項目の組み合わせに対応するタグの情報を有する
ことを特徴とする請求項１記載のテスト仕様生成装置。
【請求項４】
前記組み合わせ変換処理情報が，当該タグの値の情報を有し，当該タグとその値の組み合わせで変換項目の組み合わせが識別される
ことを特徴とする請求項３記載のテスト仕様生成装置。
【請求項５】
前記生成手段が，複数の組み合わせ変換処理情報と，前記項目間順位情報と，前記複数の組み合わせ変換処理の優先順位を表す組合変換間順位情報と，に基づき，前記仕様を生成する
ことを特徴とする請求項１記載のテスト仕様生成装置。
【請求項６】
前記生成手段が，
前記組合変換間順位情報および前記項目間順位情報に基づき，優先順位を解析する優先順位解析部と，
前記解析された優先順位および組み合わせ変換処理情報に基づき，前記仕様を生成する仕様生成部と，を有する
ことを特徴とする請求項５記載のテスト仕様生成装置。
【請求項７】
プログラムの設計情報に対する変換項目を組み合わせた組み合わせ変換処理を表す組み合わせ変換処理情報と，前記変換項目間に定められる優先順位を表す項目間順位情報と，に基づき，プログラムの設計情報の変換のための変換プログラムのテスト用の仕様を生成する生成手段
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，あるプログラムの設計情報から他のプログラムの設計情報を生成するための変換プログラムを用いて，プログラムのテスト用の仕様を生成するテスト仕様生成装置およびプログラムに関する。
【背景技術】
【０００２】
従来から，コンピュータプログラムの設計情報の可視化が進められている。特に，オブジェクト指向のプログラム開発では，プログラムの各クラスをそれぞれオブジェクトとして捉えることから，ダイアグラムのような図によって表現することが多い。プログラムがクラスによって構成される場合，このクラスの構造を表すモデルとして，設計情報を表現できる。このため，設計情報をコンピュータ上で図として表現するためのツールが用いられるようになってきている。設計情報を図として目視できることから，設計情報の確認，理解等が容易になる。設計情報を記述するためのコンピュータ言語としてＵＭＬ（Unified Modeling Language）を挙げることができる。
【０００３】
ここで，既存のプログラムに基づき，プログラムを作成する場合がある。このような場合，既存の設計情報に所定の変換処理を施すことで，新たな設計情報を作成できる。この変換自体をプログラム（変換プログラム）で実行することができる。設計情報が可視化可能なとき，変換プログラムは，可視化された設計情報を異なる設計情報に変換することになる。このため，変換プログラムには，高い品質が求められる。
【０００４】
また，テスト仕様書の作成またはその支援を実施するテスト仕様書生成装置が開示されている。この装置では，テスト項目の記述から優先順位を付け，その優先順位に従ってテスト項目の実施順を決めている（特許文献１参照）。
【特許文献１】特開平８−５５０４１号公報，第００２０段落
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら，前述のテスト仕様書生成装置においては，変換プログラムのテストを考慮していない。このため，変換プログラムでの処理の優先順位を考慮していない。
この発明は，上記の課題を解決するためのものであり，優先順位を付与した変換処理を実行する変換プログラムのテスト仕様書を生成するテスト仕様生成装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様に係るテスト仕様生成装置は，プログラムの設計情報に対する変換項目を組み合わせた組み合わせ変換処理を表す組み合わせ変換処理情報と，前記変換項目間に定められる優先順位を表す項目間順位情報と，に基づき，プログラムの設計情報の変換のための変換プログラムのテスト用の仕様を生成する生成手段を具備することを特徴とする。
【発明の効果】
【０００７】
本発明によれば，優先順位を付与した変換処理を実行する変換プログラムのテスト仕様書を生成するテスト仕様生成装置およびプログラムを提供できる。
【発明を実施するための最良の形態】
【０００８】
以下，図面を参照して，本発明の実施の形態を詳細に説明する。
図１は，本発明の一実施形態に係るテスト支援装置１０の全体構成を表すブロック図である。
テスト支援装置１０は，プログラムの設計情報の変換のための変換プログラムのテスト用の仕様を生成するものであり，設計書入力部１１，優先順位解析部１２，テスト項目作成部１３，テスト項目出力部１４から構成される。
【０００９】
設計書入力部１１は，設計書と別表の情報を入力する入力装置，例えば，キーボード，マウスである。設計書と別表は，プログラムの設計情報の変換のための変換プログラムの仕様を表現する（後述の図４〜図７）。
【００１０】
設計書入力部１１により入力される情報には，変換処理の優先順位を表す情報（優先順位情報（後述のタグ間順位，項目間順位））が含まれる（後述の図８，図９）。優先順位情報は，設計書および別表自体に含まれても良いし，またはこれらと別個であっても差し支えない。前者では設計書と別表との入力に伴って，優先順位情報が入力される。後者では設計書と別表と別個に，優先順位情報が入力される。
【００１１】
優先順位解析部１２は，設計書入力部１１により入力された優先順位情報を解析する。この解析結果は表として表される（後述の図１１）。
テスト項目作成部１３は，テスト項目を有するテスト仕様書を作成するものであり（後述の図１６），変換プログラムのテスト用の仕様を生成するものとして機能する。
テスト項目出力部１４は，生成されたテスト仕様書を出力する。
【００１２】
図２は，テスト支援装置１０での処理の全体的な流れを表すフロー図である。
以下，本図に基づき処理の流れを説明する。
Ａ．設計書と別表の情報の受付（ステップＳ１１）
（１）設計書入力部１１が設計書と別表を入力情報として受け付ける。
この設計書と別表は，クラス図（設計情報）を別のクラス図に変換する変換プログラムの仕様を表すものとする。
【００１３】
図３Ａ，図３Ｂはそれぞれ，変換プログラムでの変換前後のクラス図の一例を表す模式図である。このクラス図は，プログラムの設計情報を表し，例えば，UML（Unified Modeling Language）で記述される。
変換前のクラス図では，クラスＡ，Ｂが結合されている。変換後のクラス図では，クラスＡにクラスＣが結合し，クラスＡ，Ｂに情報が付加されている。設計書と別表は，ユーザによって定義され，このようなクラス図（設計情報）の変換を表現する。
【００１４】
この変換の際に，各クラスに対して，次のａ〜ｉのような処理が実行される。以下，これらａ〜ｉを変換対象項目という。
ａ．クラス名の変更：  クラスの名称を変換することを意味する。
ｂ．操作の追加：  クラスへの操作（例えば，クラスの振る舞いの表現）の追加を意味する。
ｃ．属性の追加：  クラスへの属性の追加を意味する。
ｄ．import文の追加：  クラスへのインポート文の追加を意味する。インポート文は，他のクラスで宣言されたデータを参照するための宣言文である。
ｅ．クラスの追加・削除：  プログラムへのクラスの追加，削除を意味する。
ｆ．依存関係の追加・削除：  クラス間の依存関係（例えば，一時的に他のクラスを利用する関係）の追加または削除を意味する。
ｇ．継承，インタフェースの追加・削除：  クラスに承継関係，またはインタフェースを追加することを意味する。継承とは，あるクラスの持つ機能をそっくり引き継ぐことをいう。インタフェースとは，特定の機能の概要を記述したものである。
ｈ．集約の追加・削除：  クラスへの集約の追加，削除を意味する。集約とは，あるクラスが他のクラスにより構成されていることをいう。「あるクラスは，他のクラスで構成されている」という階層構造が識別できる場合，あるクラスは部品である他のクラスを組み合わせて作られている。
ｉ．関連の追加・削除：  クラスへの関連の追加，削除を意味する。関連とは永続的に他のクラスを利用することをいい，クラス同士の結びつきを言う。つまり，あるオブジェクトが他のオブジェクトと関連を持っている場合，２つのオブジェクトは互いに相手を知っていることになる。
【００１５】
（２）設計書と別表は，変換プログラムの仕様を表す。
図４は，設計書が表す設計情報の一例を表す模式図である。この設計情報では，タグを使用して変換プログラムでの変換内容を記述している。
タグとは，{タグ＝値，値…}と記述することによってデータに情報を付加する要素である。例えば，田中というデータに対して，{田中＝女性}というタグを付けることで田中という人は女性であることが分かる。また，{学校＝小学校，中学校，高校，大学}というタグを付ければ，学校は小学校か中学校か高校か大学のいずれかとなる。
【００１６】
図４のタグは，変換対象項目の組み合わせ（変換項目を組み合わせた組み合わせ変換処理）のグループ（群）に対応し，変換プログラムでの変換対象要素として機能する。タグは，変換対象項目の組み合わせのグループを識別する識別子（識別のための情報）である。即ち，一般に，タグのみでは，変換対象項目の単一の組み合わせを特定しない。但し，値が単一（値の個数が１）のタグでは，変換対象項目の単一の組み合わせが特定される。
【００１７】
一般には，タグと値の組み合わせによって変換対象項目の組み合わせを識別する。即ち，値は，タグと組み合わせて用いられる変換対象項目の組み合わせの識別子である。言い換えれば，タグ（タグ名（ここでは，tagu1〜tagu3））およびその値（ここでは，both，get，set，off，true，false）によって変換対象項目の組み合わせ（処理内容）が変化する。
【００１８】
tagu1では，値が「both」，「get」，「set」，「off」の４つであることから，この４つそれぞれに対して，変換対象項目の組み合わせが定義される。tagu2およびtagu3はそれぞれ，値が「true」，「false」の２つであることから，この２つに対して，変換対象項目の組み合わせが定義される。変換対象項目は別表で定義される。
【００１９】
図５から図７は，別表の一例を表す図である。変換対象項目ごとにその詳細が表される。図５は操作の追加に関する設計情報を表す。図６はimport文の追加に関する設計情報を表す。図７は，継承，インタフェースの追加・削除に関する設計情報を表す。
図５から図７で表される別表は，表形式で記述されている。但し，設計情報とは別に詳細な設計情報を記述されていれば，表現形式は問題ではない。
【００２０】
（３）必要に応じて，設計書と別表と別に優先順位の情報が追加入力される。
この優先順位には，変換対象項目（処理項目）の優先順位（項目間順位）と，変換対象要素（タグ）の優先順位（タグ間順位）の２通りがある。項目間順位およびタグ間順位に従って，クラスへの変換処理の実行（変換対象項目の実行）がなされる。
【００２１】
図８は，変換対象項目の優先順位（項目間順位）を表す情報を入力する画面を表す図である。この図では，変換対象項目の優先順位は，（１）が一番高く，（９）になるほど優先順位は低い。ユーザが変換対象項目の優先順位を決定，入力する。ユーザは必要に応じて，項目の順位を変更できる。ユーザが「決定」ボタンを押すことで，変換対象項目の優先順位の情報が入力される。
【００２２】
図９は，変換対象要素間での優先順位（複数の組み合わせ変換処理の優先順位を表す組合変換間順位情報，またはタグ間順位ともいう）を表す模式図である。
優先順位の項目はタグの優先順位を表す。即ち，タグ自身に優先順位が付与される。本図ではtagu1が最優先のタグである。
タグの項目内のtagu1〜tagu3がタグ名（タグの名称）であり，{}内がタグの値を表す。
ここでは，タグの値にも優先順位を付与するものとする。{}の左ほど優先順位が高く，右に行くに従って優先順位が下がる。例えば，tagu1では，bothが最優先のタグの値である。
【００２３】
関連性の項目はタグ間の関連性を表す。この例では，「2＝true」としている。これはtagu2の値がtrueのときのみ，tagu3を使用出来ることを表す。
本図に示した優先順位は，図４の設計情報での変換対象項目の配列順序と同様である。しかし，一般にこのような対応関係は不要であり，設計情報中での変換対象項目の順序は任意である。即ち，設計情報を変更せず，変換対象項目の優先順位を変更しても，変更した優先順位に従って，テスト仕様書が作成される。
但し，設計情報中での変換対象項目の順序でその優先順位を表現することも可能である。このようにすると，変換対象項目の優先順位を別途入力する必要が無くなる。
【００２４】
Ｂ．優先順位の解析（ステップＳ１２）
優先順位解析部１２は，変換対象項目（処理項目）の優先順位（項目間順位）と，変換対象要素（タグ）の優先順位（タグ間順位）を解析する。
【００２５】
図１０は，優先順位解析部１２での処理の流れを表すフロー図である。図１１は，図１０の処理の結果作成される優先順位を表す表である。
（１）変換対象要素の優先順位（タグ間順位）の確認（ステップＳ２１〜Ｓ２４）
番号列，項目ＩＤ，タグ列を有する表を作成する。タグ列内に優先順位の順にタグを配列する。その結果，tagu1〜tagu3の順にタグが配列される。
【００２６】
（２）変換対象項目の優先順位（項目間順位）の確認（ステップＳ２５〜Ｓ２９）
変換対象項目を優先順位の高いものから別表があるかどうか確認を行なう。別表があるもののみ，列として追加する。tagu1〜tagu3で規定される変換対象項目は，「操作の追加」，「import文の追加」，「継承，インタフェースの追加・削除」の３つのみなので，これらの項目が優先順位に従って表に追加される。
以上のように，優先順位を表す表が作成される（図１１参照）。
【００２７】
Ｃ．テスト項目の作成（ステップＳ１３）
優先順位の解析が終了すると，テスト項目作成部１３で解析結果と設計書，別表を用いてテスト項目を作成する。
【００２８】
図１２は，テスト項目作成部１３での処理の流れを表すフロー図である。
（１）タグの処理（ステップＳ３１）
タグの処理を行なう。即ち，タグの組み合わせを生成し，表に追加する。
既述のように，３つのタグ（tagu1,tagu2,tagu3）はそれぞれ，{tagu1= both，get，set，off }，{tagu2= true，false }，{tagu3= true，false }である。また，tagu3は，tagu2と関連性があり，tagu2がtrueのときのみ追加される。
【００２９】
図１３は，タグの処理手順の詳細を表すフロー図である。図１４は，図１３の処理の結果作成される表を表す図である。
１）最上位のタグの値の個数ａの算出（ステップＳ４１，Ｓ４２）
最上位のタグの値を優先順位順に並べ，その値の個数ａを算出する。優先順位が１のtagu1の値の個数は４つなので，個数aは４となり，上から順に記述する。
【００３０】
２）より下位のタグの値の個数ｉの算出（ステップＳ４３，Ｓ４４）
より下位のタグの値の個数を算出する。tagu1の次に優先順位が高いタグは，tagu2である。tagu2の値は２つなので，個数iは２と算出される。
【００３１】
３）タグの値の組み合わせの算出（ステップＳ４５〜Ｓ４９）
関連性の無いタグ間では，タグの値の個数の積（ａ＊ｉ）がタグの値の組み合わせの個数となる。その場合，下位のタグの値それぞれに上位のタグの値の全体が対応する。関連性のあるタグ間では，上位と関連性のある下位のタグの個数ｂによってタグの値の組み合わせが決定される。即ち，上位のタグの値の個数ｉとこれと関連する下位のタグの値の個数ｂの積（ｂ＊ｉ）がタグの組み合わせの個数となる。
tagu2はtagu1と関連性はないので，tagu1の値を２つずつ並べ，その横にtagu2の値を並べることとなる。
【００３２】
４）以下，２），３）を繰り返す（ステップＳ４３〜Ｓ４９）。
tagu3の値の個数ｂは２と算出される。tagu3はtagu2と関連性があるので，個数bだけ値を並べることとなる。
以上のように，優先順位を表す表が完成する（図１４参照）。
【００３３】
（２）設計情報の埋め込み（ステップＳ３２）
設計書を確認し，タグの組み合わせに従って，設計情報を埋め込む。その結果，図１５のテスト仕様書が作成される。
（３）項目ＩＤの付与（ステップＳ３３）
全てのテスト項目を埋めた後，番号（項目ＩＤ）を付与する。図１６に，項目ＩＤを付与したテスト仕様書を示す。
【００３４】
Ｄ．テスト項目の出力（ステップＳ１４）
テスト項目出力部１４で，優先順位に並んだテスト項目を出力する。
このようにして，得られたテスト仕様書は，網羅性があり，かつ，優先度の高いものから並んだテスト項目となるので，テスト実施者が，効率的にテストを行なうことが出来る。
【００３５】
作成されたテスト仕様書は，次のように用いることができる。
（１）テストモデルの作成
テストモデルを作成する。この作成には，例えば，ＵＭＬを記述可能なツールを用いることができる。このテストモデルは，テキスト形式（拡張子ｔｘｔ），ＸＭＬ形式（拡張子ｘｍｌ）のファイルとして，作成，保存が可能である。
図１７Ａは，テストモデルを表す模式図である。ここではクラスＡ，Ｂの内，クラスＡにのみtagu１を付与する場合を考える。
【００３６】
（２）変換プログラムによる変換
変換プログラムによりテストモデルを変換する。テストモデルを変換プログラム（既述の設計情報を異なる設計情報に変換するプログラム）に読み込ませ，変換する。
図１７Ｂは，変換後のテストモデルを表す模式図である。クラスIDataSetがクラスAの継承して追加されている（継承・I/Fの追加）。また，クラスＡに「getAa（）」，「setAa()」の操作が追加されている。
【００３７】
（３）変換されたテストモデルの確認
変換後のテストプログラムのファイルとテスト仕様書とを対比することで，変換プログラムが仕様に合致していることを確認する。
【００３８】
この確認は，人的，機械的のいずれでも実行可能である。
１）人的な確認
ＵＭＬを記述可能なツールを用い，図１７Ｂのような図をコンピュータ上に表示させ，仕様書と見比べる。
２）機械的な確認
テストツール（例えば，J-Unit）に変換後のテストモデルと仕様書を読み込ませ，対応を確認させる。
【００３９】
（変形例）
本発明の変形例を説明する。
図１８は，本発明の変形例に係るテスト支援装置１０ａを表すブロック図である。
テスト支援装置１０にテスト項目精査部１５が付加されている。処理の流れは，第１の実施例とほぼ同様であり，設計書と別表を入力すると，優先順位に従って網羅性があり，かつ優先順位に並んだテスト仕様書を作成する。
【００４０】
テスト項目精査部１５は，選択基準（例えば，重複を排除するようなルール）に基づき，テスト項目を絞り込む。その結果，テスト項目に対して重複を排除したテスト仕様書を作成することが出来る。ユーザによるテストの効率が向上する。
【００４１】
テスト支援装置が，テスト仕様書に代えて，別の設計書を作成することも出来る。
例えば，設計書を優先度，別表として管理しておけば，組み合わせて新しい設計書を作成することが出来る。従って，設計書を部品として管理しておくことによって，テスト支援装置を使用するユーザは，効率よく設計書の作成を行なうことが出来る。
【００４２】
（その他の実施形態）
本発明の実施形態は上記の実施形態に限られず拡張，変更可能であり，拡張，変更した実施形態も本発明の技術的範囲に含まれる。
【図面の簡単な説明】
【００４３】
【図１】本発明の一実施形態に係るテスト支援装置の全体構成を表すブロック図である。
【図２】図１のテスト支援装置での処理の大まかな流れを表すフロー図である。
【図３Ａ】変換プログラムでの変換前のクラス図の一例を表す模式図である。
【図３Ｂ】変換プログラムでの変換後のクラス図の一例を表す模式図である。
【図４】設計書が表す設計情報の一例を表す模式図である。
【図５】別表の一例を表す図である。
【図６】別表の一例を表す図である。
【図７】別表の一例を表す図である。
【図８】変換対象項目の優先順位を表す情報を入力する画面を表す図である。
【図９】変換対象要素間での優先順位を表す模式図である。
【図１０】優先順位解析部での処理の流れを表すフロー図である。
【図１１】図１０の処理の結果作成される優先順位を表す表である。
【図１２】テスト項目作成部での処理の流れを表すフロー図である。
【図１３】タグの処理手順の詳細を表すフロー図である。
【図１４】作成中のテスト仕様書を表す図である。
【図１５】作成中のテスト仕様書を表す図である。
【図１６】作成されたテスト仕様書を表す図である。
【図１７Ａ】変換前のテストモデルを表す模式図である
【図１７Ｂ】変換後のテストモデルを表す模式図である
【図１８】本発明の変形例に係るテスト支援装置の全体構成を表すブロック図である。
【符号の説明】
【００４４】
１０…テスト支援装置，１１…設計書入力部，１２…優先順位解析部，１３…テスト項目作成部，１４…テスト項目出力部，１５…テスト項目精査部
【図１】
2007299155.tif 000003
【図２】
2007299155.tif 000004
【図３Ａ】
2007299155.tif 000005
【図３Ｂ】
2007299155.tif 000006
【図４】
2007299155.tif 000007
【図５】
2007299155.tif 000008
【図６】
2007299155.tif 000009
【図７】
2007299155.tif 000010
【図８】
2007299155.tif 000011
【図９】
2007299155.tif 000012
【図１０】
2007299155.tif 000013
【図１１】
2007299155.tif 000014
【図１２】
2007299155.tif 000015
【図１３】
2007299155.tif 000016
【図１４】
2007299155.tif 000017
【図１５】
2007299155.tif 000018
【図１６】
2007299155.tif 000019
【図１７Ａ】
2007299155.tif 000020
【図１７Ｂ】
2007299155.tif 000021
【図１８】
2007299155.tif 000022