説明

テスト仕様生成装置およびプログラム

【課題】優先順位を付与した変換処理を実行する変換プログラムのテスト仕様書を生成するテスト仕様生成装置およびプログラムを提供する。
【解決手段】テスト仕様生成置が,プログラムの設計情報に対する変換項目を組み合わせた組み合わせ変換処理を表す組み合わせ変換処理情報と,前記変換項目の優先順位を表す項目間順位情報と,に基づき,プログラムの設計情報の変換のための変換プログラムのテスト用の仕様を生成する生成手段を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,あるプログラムの設計情報から他のプログラムの設計情報を生成するための変換プログラムを用いて,プログラムのテスト用の仕様を生成するテスト仕様生成装置およびプログラムに関する。
【背景技術】
【0002】
従来から,コンピュータプログラムの設計情報の可視化が進められている。特に,オブジェクト指向のプログラム開発では,プログラムの各クラスをそれぞれオブジェクトとして捉えることから,ダイアグラムのような図によって表現することが多い。プログラムがクラスによって構成される場合,このクラスの構造を表すモデルとして,設計情報を表現できる。このため,設計情報をコンピュータ上で図として表現するためのツールが用いられるようになってきている。設計情報を図として目視できることから,設計情報の確認,理解等が容易になる。設計情報を記述するためのコンピュータ言語としてUML(Unified Modeling Language)を挙げることができる。
【0003】
ここで,既存のプログラムに基づき,プログラムを作成する場合がある。このような場合,既存の設計情報に所定の変換処理を施すことで,新たな設計情報を作成できる。この変換自体をプログラム(変換プログラム)で実行することができる。設計情報が可視化可能なとき,変換プログラムは,可視化された設計情報を異なる設計情報に変換することになる。このため,変換プログラムには,高い品質が求められる。
【0004】
また,テスト仕様書の作成またはその支援を実施するテスト仕様書生成装置が開示されている。この装置では,テスト項目の記述から優先順位を付け,その優先順位に従ってテスト項目の実施順を決めている(特許文献1参照)。
【特許文献1】特開平8−55041号公報,第0020段落
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら,前述のテスト仕様書生成装置においては,変換プログラムのテストを考慮していない。このため,変換プログラムでの処理の優先順位を考慮していない。
この発明は,上記の課題を解決するためのものであり,優先順位を付与した変換処理を実行する変換プログラムのテスト仕様書を生成するテスト仕様生成装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様に係るテスト仕様生成装置は,プログラムの設計情報に対する変換項目を組み合わせた組み合わせ変換処理を表す組み合わせ変換処理情報と,前記変換項目間に定められる優先順位を表す項目間順位情報と,に基づき,プログラムの設計情報の変換のための変換プログラムのテスト用の仕様を生成する生成手段を具備することを特徴とする。
【発明の効果】
【0007】
本発明によれば,優先順位を付与した変換処理を実行する変換プログラムのテスト仕様書を生成するテスト仕様生成装置およびプログラムを提供できる。
【発明を実施するための最良の形態】
【0008】
以下,図面を参照して,本発明の実施の形態を詳細に説明する。
図1は,本発明の一実施形態に係るテスト支援装置10の全体構成を表すブロック図である。
テスト支援装置10は,プログラムの設計情報の変換のための変換プログラムのテスト用の仕様を生成するものであり,設計書入力部11,優先順位解析部12,テスト項目作成部13,テスト項目出力部14から構成される。
【0009】
設計書入力部11は,設計書と別表の情報を入力する入力装置,例えば,キーボード,マウスである。設計書と別表は,プログラムの設計情報の変換のための変換プログラムの仕様を表現する(後述の図4〜図7)。
【0010】
設計書入力部11により入力される情報には,変換処理の優先順位を表す情報(優先順位情報(後述のタグ間順位,項目間順位))が含まれる(後述の図8,図9)。優先順位情報は,設計書および別表自体に含まれても良いし,またはこれらと別個であっても差し支えない。前者では設計書と別表との入力に伴って,優先順位情報が入力される。後者では設計書と別表と別個に,優先順位情報が入力される。
【0011】
優先順位解析部12は,設計書入力部11により入力された優先順位情報を解析する。この解析結果は表として表される(後述の図11)。
テスト項目作成部13は,テスト項目を有するテスト仕様書を作成するものであり(後述の図16),変換プログラムのテスト用の仕様を生成するものとして機能する。
テスト項目出力部14は,生成されたテスト仕様書を出力する。
【0012】
図2は,テスト支援装置10での処理の全体的な流れを表すフロー図である。
以下,本図に基づき処理の流れを説明する。
A.設計書と別表の情報の受付(ステップS11)
(1)設計書入力部11が設計書と別表を入力情報として受け付ける。
この設計書と別表は,クラス図(設計情報)を別のクラス図に変換する変換プログラムの仕様を表すものとする。
【0013】
図3A,図3Bはそれぞれ,変換プログラムでの変換前後のクラス図の一例を表す模式図である。このクラス図は,プログラムの設計情報を表し,例えば,UML(Unified Modeling Language)で記述される。
変換前のクラス図では,クラスA,Bが結合されている。変換後のクラス図では,クラスAにクラスCが結合し,クラスA,Bに情報が付加されている。設計書と別表は,ユーザによって定義され,このようなクラス図(設計情報)の変換を表現する。
【0014】
この変換の際に,各クラスに対して,次のa〜iのような処理が実行される。以下,これらa〜iを変換対象項目という。
a.クラス名の変更: クラスの名称を変換することを意味する。
b.操作の追加: クラスへの操作(例えば,クラスの振る舞いの表現)の追加を意味する。
c.属性の追加: クラスへの属性の追加を意味する。
d.import文の追加: クラスへのインポート文の追加を意味する。インポート文は,他のクラスで宣言されたデータを参照するための宣言文である。
e.クラスの追加・削除: プログラムへのクラスの追加,削除を意味する。
f.依存関係の追加・削除: クラス間の依存関係(例えば,一時的に他のクラスを利用する関係)の追加または削除を意味する。
g.継承,インタフェースの追加・削除: クラスに承継関係,またはインタフェースを追加することを意味する。継承とは,あるクラスの持つ機能をそっくり引き継ぐことをいう。インタフェースとは,特定の機能の概要を記述したものである。
h.集約の追加・削除: クラスへの集約の追加,削除を意味する。集約とは,あるクラスが他のクラスにより構成されていることをいう。「あるクラスは,他のクラスで構成されている」という階層構造が識別できる場合,あるクラスは部品である他のクラスを組み合わせて作られている。
i.関連の追加・削除: クラスへの関連の追加,削除を意味する。関連とは永続的に他のクラスを利用することをいい,クラス同士の結びつきを言う。つまり,あるオブジェクトが他のオブジェクトと関連を持っている場合,2つのオブジェクトは互いに相手を知っていることになる。
【0015】
(2)設計書と別表は,変換プログラムの仕様を表す。
図4は,設計書が表す設計情報の一例を表す模式図である。この設計情報では,タグを使用して変換プログラムでの変換内容を記述している。
タグとは,{タグ=値,値…}と記述することによってデータに情報を付加する要素である。例えば,田中というデータに対して,{田中=女性}というタグを付けることで田中という人は女性であることが分かる。また,{学校=小学校,中学校,高校,大学}というタグを付ければ,学校は小学校か中学校か高校か大学のいずれかとなる。
【0016】
図4のタグは,変換対象項目の組み合わせ(変換項目を組み合わせた組み合わせ変換処理)のグループ(群)に対応し,変換プログラムでの変換対象要素として機能する。タグは,変換対象項目の組み合わせのグループを識別する識別子(識別のための情報)である。即ち,一般に,タグのみでは,変換対象項目の単一の組み合わせを特定しない。但し,値が単一(値の個数が1)のタグでは,変換対象項目の単一の組み合わせが特定される。
【0017】
一般には,タグと値の組み合わせによって変換対象項目の組み合わせを識別する。即ち,値は,タグと組み合わせて用いられる変換対象項目の組み合わせの識別子である。言い換えれば,タグ(タグ名(ここでは,tagu1〜tagu3))およびその値(ここでは,both,get,set,off,true,false)によって変換対象項目の組み合わせ(処理内容)が変化する。
【0018】
tagu1では,値が「both」,「get」,「set」,「off」の4つであることから,この4つそれぞれに対して,変換対象項目の組み合わせが定義される。tagu2およびtagu3はそれぞれ,値が「true」,「false」の2つであることから,この2つに対して,変換対象項目の組み合わせが定義される。変換対象項目は別表で定義される。
【0019】
図5から図7は,別表の一例を表す図である。変換対象項目ごとにその詳細が表される。図5は操作の追加に関する設計情報を表す。図6はimport文の追加に関する設計情報を表す。図7は,継承,インタフェースの追加・削除に関する設計情報を表す。
図5から図7で表される別表は,表形式で記述されている。但し,設計情報とは別に詳細な設計情報を記述されていれば,表現形式は問題ではない。
【0020】
(3)必要に応じて,設計書と別表と別に優先順位の情報が追加入力される。
この優先順位には,変換対象項目(処理項目)の優先順位(項目間順位)と,変換対象要素(タグ)の優先順位(タグ間順位)の2通りがある。項目間順位およびタグ間順位に従って,クラスへの変換処理の実行(変換対象項目の実行)がなされる。
【0021】
図8は,変換対象項目の優先順位(項目間順位)を表す情報を入力する画面を表す図である。この図では,変換対象項目の優先順位は,(1)が一番高く,(9)になるほど優先順位は低い。ユーザが変換対象項目の優先順位を決定,入力する。ユーザは必要に応じて,項目の順位を変更できる。ユーザが「決定」ボタンを押すことで,変換対象項目の優先順位の情報が入力される。
【0022】
図9は,変換対象要素間での優先順位(複数の組み合わせ変換処理の優先順位を表す組合変換間順位情報,またはタグ間順位ともいう)を表す模式図である。
優先順位の項目はタグの優先順位を表す。即ち,タグ自身に優先順位が付与される。本図ではtagu1が最優先のタグである。
タグの項目内のtagu1〜tagu3がタグ名(タグの名称)であり,{}内がタグの値を表す。
ここでは,タグの値にも優先順位を付与するものとする。{}の左ほど優先順位が高く,右に行くに従って優先順位が下がる。例えば,tagu1では,bothが最優先のタグの値である。
【0023】
関連性の項目はタグ間の関連性を表す。この例では,「2=true」としている。これはtagu2の値がtrueのときのみ,tagu3を使用出来ることを表す。
本図に示した優先順位は,図4の設計情報での変換対象項目の配列順序と同様である。しかし,一般にこのような対応関係は不要であり,設計情報中での変換対象項目の順序は任意である。即ち,設計情報を変更せず,変換対象項目の優先順位を変更しても,変更した優先順位に従って,テスト仕様書が作成される。
但し,設計情報中での変換対象項目の順序でその優先順位を表現することも可能である。このようにすると,変換対象項目の優先順位を別途入力する必要が無くなる。
【0024】
B.優先順位の解析(ステップS12)
優先順位解析部12は,変換対象項目(処理項目)の優先順位(項目間順位)と,変換対象要素(タグ)の優先順位(タグ間順位)を解析する。
【0025】
図10は,優先順位解析部12での処理の流れを表すフロー図である。図11は,図10の処理の結果作成される優先順位を表す表である。
(1)変換対象要素の優先順位(タグ間順位)の確認(ステップS21〜S24)
番号列,項目ID,タグ列を有する表を作成する。タグ列内に優先順位の順にタグを配列する。その結果,tagu1〜tagu3の順にタグが配列される。
【0026】
(2)変換対象項目の優先順位(項目間順位)の確認(ステップS25〜S29)
変換対象項目を優先順位の高いものから別表があるかどうか確認を行なう。別表があるもののみ,列として追加する。tagu1〜tagu3で規定される変換対象項目は,「操作の追加」,「import文の追加」,「継承,インタフェースの追加・削除」の3つのみなので,これらの項目が優先順位に従って表に追加される。
以上のように,優先順位を表す表が作成される(図11参照)。
【0027】
C.テスト項目の作成(ステップS13)
優先順位の解析が終了すると,テスト項目作成部13で解析結果と設計書,別表を用いてテスト項目を作成する。
【0028】
図12は,テスト項目作成部13での処理の流れを表すフロー図である。
(1)タグの処理(ステップS31)
タグの処理を行なう。即ち,タグの組み合わせを生成し,表に追加する。
既述のように,3つのタグ(tagu1,tagu2,tagu3)はそれぞれ,{tagu1= both,get,set,off },{tagu2= true,false },{tagu3= true,false }である。また,tagu3は,tagu2と関連性があり,tagu2がtrueのときのみ追加される。
【0029】
図13は,タグの処理手順の詳細を表すフロー図である。図14は,図13の処理の結果作成される表を表す図である。
1)最上位のタグの値の個数aの算出(ステップS41,S42)
最上位のタグの値を優先順位順に並べ,その値の個数aを算出する。優先順位が1のtagu1の値の個数は4つなので,個数aは4となり,上から順に記述する。
【0030】
2)より下位のタグの値の個数iの算出(ステップS43,S44)
より下位のタグの値の個数を算出する。tagu1の次に優先順位が高いタグは,tagu2である。tagu2の値は2つなので,個数iは2と算出される。
【0031】
3)タグの値の組み合わせの算出(ステップS45〜S49)
関連性の無いタグ間では,タグの値の個数の積(a*i)がタグの値の組み合わせの個数となる。その場合,下位のタグの値それぞれに上位のタグの値の全体が対応する。関連性のあるタグ間では,上位と関連性のある下位のタグの個数bによってタグの値の組み合わせが決定される。即ち,上位のタグの値の個数iとこれと関連する下位のタグの値の個数bの積(b*i)がタグの組み合わせの個数となる。
tagu2はtagu1と関連性はないので,tagu1の値を2つずつ並べ,その横にtagu2の値を並べることとなる。
【0032】
4)以下,2),3)を繰り返す(ステップS43〜S49)。
tagu3の値の個数bは2と算出される。tagu3はtagu2と関連性があるので,個数bだけ値を並べることとなる。
以上のように,優先順位を表す表が完成する(図14参照)。
【0033】
(2)設計情報の埋め込み(ステップS32)
設計書を確認し,タグの組み合わせに従って,設計情報を埋め込む。その結果,図15のテスト仕様書が作成される。
(3)項目IDの付与(ステップS33)
全てのテスト項目を埋めた後,番号(項目ID)を付与する。図16に,項目IDを付与したテスト仕様書を示す。
【0034】
D.テスト項目の出力(ステップS14)
テスト項目出力部14で,優先順位に並んだテスト項目を出力する。
このようにして,得られたテスト仕様書は,網羅性があり,かつ,優先度の高いものから並んだテスト項目となるので,テスト実施者が,効率的にテストを行なうことが出来る。
【0035】
作成されたテスト仕様書は,次のように用いることができる。
(1)テストモデルの作成
テストモデルを作成する。この作成には,例えば,UMLを記述可能なツールを用いることができる。このテストモデルは,テキスト形式(拡張子txt),XML形式(拡張子xml)のファイルとして,作成,保存が可能である。
図17Aは,テストモデルを表す模式図である。ここではクラスA,Bの内,クラスAにのみtagu1を付与する場合を考える。
【0036】
(2)変換プログラムによる変換
変換プログラムによりテストモデルを変換する。テストモデルを変換プログラム(既述の設計情報を異なる設計情報に変換するプログラム)に読み込ませ,変換する。
図17Bは,変換後のテストモデルを表す模式図である。クラスIDataSetがクラスAの継承して追加されている(継承・I/Fの追加)。また,クラスAに「getAa()」,「setAa()」の操作が追加されている。
【0037】
(3)変換されたテストモデルの確認
変換後のテストプログラムのファイルとテスト仕様書とを対比することで,変換プログラムが仕様に合致していることを確認する。
【0038】
この確認は,人的,機械的のいずれでも実行可能である。
1)人的な確認
UMLを記述可能なツールを用い,図17Bのような図をコンピュータ上に表示させ,仕様書と見比べる。
2)機械的な確認
テストツール(例えば,J-Unit)に変換後のテストモデルと仕様書を読み込ませ,対応を確認させる。
【0039】
(変形例)
本発明の変形例を説明する。
図18は,本発明の変形例に係るテスト支援装置10aを表すブロック図である。
テスト支援装置10にテスト項目精査部15が付加されている。処理の流れは,第1の実施例とほぼ同様であり,設計書と別表を入力すると,優先順位に従って網羅性があり,かつ優先順位に並んだテスト仕様書を作成する。
【0040】
テスト項目精査部15は,選択基準(例えば,重複を排除するようなルール)に基づき,テスト項目を絞り込む。その結果,テスト項目に対して重複を排除したテスト仕様書を作成することが出来る。ユーザによるテストの効率が向上する。
【0041】
テスト支援装置が,テスト仕様書に代えて,別の設計書を作成することも出来る。
例えば,設計書を優先度,別表として管理しておけば,組み合わせて新しい設計書を作成することが出来る。従って,設計書を部品として管理しておくことによって,テスト支援装置を使用するユーザは,効率よく設計書の作成を行なうことが出来る。
【0042】
(その他の実施形態)
本発明の実施形態は上記の実施形態に限られず拡張,変更可能であり,拡張,変更した実施形態も本発明の技術的範囲に含まれる。
【図面の簡単な説明】
【0043】
【図1】本発明の一実施形態に係るテスト支援装置の全体構成を表すブロック図である。
【図2】図1のテスト支援装置での処理の大まかな流れを表すフロー図である。
【図3A】変換プログラムでの変換前のクラス図の一例を表す模式図である。
【図3B】変換プログラムでの変換後のクラス図の一例を表す模式図である。
【図4】設計書が表す設計情報の一例を表す模式図である。
【図5】別表の一例を表す図である。
【図6】別表の一例を表す図である。
【図7】別表の一例を表す図である。
【図8】変換対象項目の優先順位を表す情報を入力する画面を表す図である。
【図9】変換対象要素間での優先順位を表す模式図である。
【図10】優先順位解析部での処理の流れを表すフロー図である。
【図11】図10の処理の結果作成される優先順位を表す表である。
【図12】テスト項目作成部での処理の流れを表すフロー図である。
【図13】タグの処理手順の詳細を表すフロー図である。
【図14】作成中のテスト仕様書を表す図である。
【図15】作成中のテスト仕様書を表す図である。
【図16】作成されたテスト仕様書を表す図である。
【図17A】変換前のテストモデルを表す模式図である
【図17B】変換後のテストモデルを表す模式図である
【図18】本発明の変形例に係るテスト支援装置の全体構成を表すブロック図である。
【符号の説明】
【0044】
10…テスト支援装置,11…設計書入力部,12…優先順位解析部,13…テスト項目作成部,14…テスト項目出力部,15…テスト項目精査部

【特許請求の範囲】
【請求項1】
プログラムの設計情報に対する変換項目を組み合わせた組み合わせ変換処理を表す組み合わせ変換処理情報と,前記変換項目間に定められる優先順位を表す項目間順位情報と,に基づき,プログラムの設計情報の変換のための変換プログラムのテスト用の仕様を生成する生成手段
を具備することを特徴とするテスト仕様生成装置。
【請求項2】
前記設計情報が,クラスの構造で表現され,
前記変換項目が,前記クラスへの処理を表す
ことを特徴とする請求項1記載のテスト仕様生成装置。
【請求項3】
前記組み合わせ変換処理情報が,変換項目の組み合わせに対応するタグの情報を有する
ことを特徴とする請求項1記載のテスト仕様生成装置。
【請求項4】
前記組み合わせ変換処理情報が,当該タグの値の情報を有し,当該タグとその値の組み合わせで変換項目の組み合わせが識別される
ことを特徴とする請求項3記載のテスト仕様生成装置。
【請求項5】
前記生成手段が,複数の組み合わせ変換処理情報と,前記項目間順位情報と,前記複数の組み合わせ変換処理の優先順位を表す組合変換間順位情報と,に基づき,前記仕様を生成する
ことを特徴とする請求項1記載のテスト仕様生成装置。
【請求項6】
前記生成手段が,
前記組合変換間順位情報および前記項目間順位情報に基づき,優先順位を解析する優先順位解析部と,
前記解析された優先順位および組み合わせ変換処理情報に基づき,前記仕様を生成する仕様生成部と,を有する
ことを特徴とする請求項5記載のテスト仕様生成装置。
【請求項7】
プログラムの設計情報に対する変換項目を組み合わせた組み合わせ変換処理を表す組み合わせ変換処理情報と,前記変換項目間に定められる優先順位を表す項目間順位情報と,に基づき,プログラムの設計情報の変換のための変換プログラムのテスト用の仕様を生成する生成手段
としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17A】
image rotate

【図17B】
image rotate

【図18】
image rotate