(57)【要約】【課題】ソフトウェア開発におけるテスト項目を生成する。【解決手段】テスト対象である情報処理における開始ノードから終了ノードまでの複数のノードと、ノード間を接続するフローとを示すフロー図が記憶されているフロー図記憶部を備えるテスト項目生成装置が、フロー図記憶部に記憶されたフロー図を読み出し、読み出したフロー図によって示される開始ノードから終了ノードまでの複数の経路を抽出し、抽出した複数の経路のうち、正常系であるひとつの基本経路を判定し、基本経路上のフローに対して基本フローであることを示す情報を付加した中間ファイルを生成し、生成した中間ファイルに基づいて、抽出した複数の経路のうち、少なくとも基本経路が含まれる複数の経路毎のテスト項目を生成し、基本経路に対応するテスト項目を優先的に出力する。【選択図】図１
2013161182.tif 000002
【特許請求の範囲】
【請求項１】
テスト対象である情報処理における開始ノードから終了ノードまでの複数のノードと、当該ノード間を接続するフローとを示すフロー図が記憶されているフロー図記憶部と、
前記フロー図記憶部に記憶された前記フロー図を読み出し、読み出した当該フロー図によって示される開始ノードから終了ノードまでの複数の経路を抽出する経路抽出部と、
前記経路抽出部が抽出した複数の経路のうち、正常系であるひとつの基本経路を判定し、当該基本経路上のフローに対して基本フローであることを示す情報を付加した中間ファイルを生成する中間ファイル生成部と、
前記中間ファイル生成部が生成した前記中間ファイルに基づいて、前記経路抽出部が抽出した前記複数の経路のうち、少なくとも前記基本経路が含まれる複数の経路毎のテスト項目を生成し、前記基本経路に対応するテスト項目を優先的に出力するテスト項目生成部と、
を備えることを特徴とするテスト項目生成装置。
【請求項２】
前記中間ファイル生成部は、前記フロー図に含まれる複数のフローのうち、前記基本経路であることを示す情報が付加されていないフローであって、前記基本経路における終了ノードと同一の終了ノードに到達する経路上のフローに代替フローであることを示す情報を付加し、前記基本フローであることを示す情報と前記代替フローであることを示す情報とのいずれもが付加されていないフローに例外フローであることを示す情報を付加し、
前記テスト項目生成部は、前記中間ファイル生成部によって前記フローに付加された情報と、予め定められた優先レベルとに基づいてテスト項目を出力する
ことを特徴とする請求項１に記載のテスト項目生成装置。
【請求項３】
前記中間ファイル生成部は、前記複数の経路のうち、開始ノードから終了ノードまでのノード数が最大であり、かつ同一のノードを通過しない経路を基本経路であると判定する
ことを特徴とする請求項１または請求項２のいずれか１項に記載のテスト項目生成装置。
【請求項４】
前記中間ファイル生成部は、前記複数の経路上のノードまたはフローに予め定められたキーワードが含まれるか否かに基づいて、前記複数の経路のうち、正常系であるひとつの基本経路を判定する
ことを特徴とする請求項１から請求項３までのいずれか１項に記載のテスト項目生成装置。
【請求項５】
前記中間ファイル生成部は、前記複数の経路のうち、開始ノードから、基本経路の終了ノードであることが予め定められた終了ノードまでの最短経路を基本経路であると判定する
ことを特徴とする請求項１から請求項４までのいずれか１項に記載のテスト項目生成装置。
【請求項６】
前記複数の経路のうち、いずれの経路が基本経路であるかを示す情報の入力を受け付ける入力部を備え、
前記中間ファイル生成部は、前記入力部に入力された情報に基づいて、前記複数の経路のうち、正常系であるひとつの基本経路を判定する
ことを特徴とする請求項１から請求項５までのいずれか１項に記載のテスト項目生成装置。
【請求項７】
前記テスト項目生成部は、前記経路毎に生成したテスト項目のうち、データベースアクセス処理を含むノードまたは共用変数の更新処理を含むノードが含まれる経路に対応するテスト項目を優先的に出力する
ことを特徴とする請求項１から請求項６までのいずれか１項に記載のテスト項目生成装置。
【請求項８】
前記テスト項目生成部は、予め定められたテスト項目数に応じた数のテスト項目を出力する
ことを特徴とする請求項１から請求項７までのいずれか１項に記載のテスト項目生成装置。
【請求項９】
テスト対象である情報処理における開始ノードから終了ノードまでの複数のノードと、当該ノード間を接続するフローとを示すフロー図が記憶されているフロー図記憶部を備えたテスト項目生成装置のテスト項目生成方法であって、
前記フロー図記憶部に記憶された前記フロー図を読み出し、読み出した当該フロー図によって示される開始ノードから終了ノードまでの複数の経路を抽出するステップと、
抽出した複数の経路のうち、正常系であるひとつの基本経路を判定し、当該基本経路上のフローに対して基本フローであることを示す情報を付加した中間ファイルを生成するステップと、
生成した前記中間ファイルに基づいて、前記複数の経路のうち、少なくとも前記基本経路が含まれる複数の経路毎のテスト項目を生成し、前記基本経路に対応するテスト項目を優先的に出力するステップと、
を備えることを特徴とするテスト項目生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発におけるテストを支援する技術に関する。
【背景技術】
【０００２】
ソフトウェア開発における単体テストや結合テストを支援するためのソフトウェアツールが存在する（例えば、非特許文献１）。例えば、テスト対象である情報処理の流れを示すフロー図に基づいて、情報処理の経路を網羅的に探索して経路一覧を生成し、出力するものがある。テスト実施者は、このような経路一覧に基づいてテスト項目を生成することにより、網羅的なテストを実施することができる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“ａｓｔａｈ＊  品質スイートのご紹介”、[online]、[平成２３年１２月０９日検索]、インターネット<URL:http://astah.change-vision.com/ja/qs/index.html>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、テスト対象の処理経路に対して網羅的なテスト項目を生成する場合、テスト対象の情報処理に多数の分岐やループが含まれていれば、大量のテスト項目が生成されることがあると考えられる。このため、テスト対象の情報処理の経路のうち、正常系である基本的な経路に対応するテスト項目が大量のテスト項目に埋もれてしまうことがあると考えられる。ここで、一般的に、ソフトウェアのテストは正常系の基本的なテストを行った後に、分岐や異常系のテストを行うことが望ましい。なぜなら、ソフトウェア開発工程において、テストにかけられる時間は限られており、網羅的なテスト項目のすべてを実施することは困難な場合があるからである。また、テスト項目に従ってテストを行う場合において、正常系のテスト項目から優先的に記載されていたほうが、テストの実施効率が高いからである。
【０００５】
本発明は、このような状況に鑑みてなされたもので、ソフトウェア開発におけるテスト項目を生成するテスト項目生成装置、テスト項目生成方法を提供する。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明は、テスト対象である情報処理における開始ノードから終了ノードまでの複数のノードと、当該ノード間を接続するフローとを示すフロー図が記憶されているフロー図記憶部と、前記フロー図記憶部に記憶された前記フロー図を読み出し、読み出した当該フロー図によって示される開始ノードから終了ノードまでの複数の経路を抽出する経路抽出部と、前記経路抽出部が抽出した複数の経路のうち、正常系であるひとつの基本経路を判定し、当該基本経路上のフローに対して基本フローであることを示す情報を付加した中間ファイルを生成する中間ファイル生成部と、前記中間ファイル生成部が生成した前記中間ファイルに基づいて、前記経路抽出部が抽出した前記複数の経路のうち、少なくとも前記基本経路が含まれる複数の経路毎のテスト項目を生成し、前記基本経路に対応するテスト項目を優先的に出力するテスト項目生成部と、を備えることを特徴とする。
【０００７】
また、本発明は、前記中間ファイル生成部は、前記フロー図に含まれる複数のフローのうち、前記基本経路であることを示す情報が付加されていないフローであって、前記基本経路における終了ノードと同一の前記終了ノードに到達する経路上のフローに代替フローであることを示す情報を付加し、前記基本フローであることを示す情報と前記代替フローであることを示す情報とのいずれもが付加されていないフローに例外フローであることを示す情報を付加し、前記テスト項目生成部は、前記中間ファイル生成部によって前記フローに付加された情報と、予め定められた優先レベルとに基づいてテスト項目を出力することを特徴とする。
【０００８】
また、本発明は、前記中間ファイル生成部は、前記複数の経路のうち、開始ノードから終了ノードまでのノード数が最大であり、かつ同一のノードを通過しない経路を基本経路であると判定することを特徴とする。
【０００９】
また、本発明は、前記中間ファイル生成部は、前記複数の経路上のノードまたはフローに予め定められたキーワードが含まれるか否かに基づいて、前記複数の経路のうち、正常系であるひとつの基本経路を判定することを特徴とする。
【００１０】
また、本発明は、前記中間ファイル生成部は、前記複数の経路のうち、開始ノードから、基本経路の終了ノードであることが予め定められた終了ノードまでの最短経路を基本経路であると判定することを特徴とする。
【００１１】
また、本発明は、前記複数の経路のうち、いずれの経路が基本経路であるかを示す情報の入力を受け付ける入力部を備え、前記中間ファイル生成部は、前記入力部に入力された情報に基づいて、前記複数の経路のうち、正常系であるひとつの基本経路を判定することを特徴とする。
【００１２】
また、本発明は、前記テスト項目生成部は、前記経路毎に生成したテスト項目のうち、データベースアクセス処理を含むノードまたは共用変数の更新処理を含むノードが含まれる経路に対応するテスト項目を優先的に出力することを特徴とする。
【００１３】
また、本発明は、前記テスト項目生成部は、予め定められたテスト項目数に応じた数のテスト項目を出力することを特徴とする。
【００１４】
また、本発明は、テスト対象である情報処理における開始ノードから終了ノードまでの複数のノードと、当該ノード間を接続するフローとを示すフロー図が記憶されているフロー図記憶部を備えたテスト項目生成装置のテスト項目生成方法であって、前記フロー図記憶部に記憶された前記フロー図を読み出し、読み出した当該フロー図によって示される開始ノードから終了ノードまでの複数の経路を抽出するステップと、抽出した複数の経路のうち、正常系であるひとつの基本経路を判定し、当該基本経路上のフローに対して基本フローであることを示す情報を付加した中間ファイルを生成するステップと、生成した前記中間ファイルに基づいて、前記複数の経路のうち、少なくとも前記基本経路が含まれる複数の経路毎のテスト項目を生成し、前記基本経路に対応するテスト項目を優先的に出力するステップと、を備えることを特徴とするテスト項目生成方法である。
【発明の効果】
【００１５】
以上説明したように、本発明によれば、テスト対象である情報処理における開始ノードから終了ノードまでの複数のノードと、ノード間を接続するフローとを示すフロー図が記憶されているフロー図記憶部を備えるテスト項目生成装置が、フロー図記憶部に記憶されたフロー図を読み出し、読み出したフロー図によって示される開始ノードから終了ノードまでの複数の経路を抽出し、抽出した複数の経路のうち、正常系であるひとつの基本経路を判定し、基本経路上のフローに対して基本フローであることを示す情報を付加した中間ファイルを生成し、生成した中間ファイルに基づいて、抽出した複数の経路のうち、少なくとも基本経路が含まれる複数の経路毎のテスト項目を生成し、基本経路に対応するテスト項目を優先的に出力するようにしたので、ソフトウェア開発における適切なテスト項目を生成することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態によるテスト項目生成装置の構成例を示すブロック図である。
【図２】本発明の一実施形態によるフロー図記憶部に記憶されているフロー図の例を示す図である。
【図３】本発明の一実施形態による設計モデル中間ファイルのデータ例を示す図である。
【図４】本発明の一実施形態による優先レベル記憶部に記憶されている優先レベルのデータ例を示す図である。
【図５】本発明の一実施形態によるテストモデル中間ファイルのデータ例を示す図である。
【図６】本発明の一実施形態による優先レベル閾値のデータ例を示す図である。
【図７】本発明の一実施形態によるテスト項目表の例を示す図である。
【図８】本発明の一実施形態によるテスト項目生成装置の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の一実施形態について、図面を参照して説明する。
図１は、本実施形態によるテスト項目生成装置１０の構成を示すブロック図である。テスト項目生成装置１０は、ソフトウェア開発におけるテスト項目を生成するコンピュータ装置であり、フロー図記憶部１１と、経路抽出部１２と、中間ファイル生成部１３と、入力部１４と、中間ファイル記憶部１５と、優先レベル記憶部１６と、テスト項目生成部１７と、出力部１８とを備えている。
【００１８】
フロー図記憶部１１には、テスト対象である情報処理における開始ノードから終了ノードまでの複数のノードと、ノード間を接続するフローとを示すフロー図が記憶されている。フロー図は、例えばテスト対象であるソフトウェアの設計書が適用できる。図２は、フロー図記憶部１１に記憶されているフロー図の例を示す図である。この例では、フロー図としてＵＭＬ（Unified Modeling Language）におけるアクティビティ図を例として説明するが、いわゆるフローチャートでもよいし、情報処理に含まれる複数のステップと、複数のステップ間の遷移とを示す図であればよい。ここで、フロー図は、単体テストのレベルのものであってもよいし、結合テストのレベルのものであってもよく、フロー図に表すことができる処理であればよい。
【００１９】
符号ａ１からａ１２は、フロー図に示される情報処理におけるノードである。符号ａ１は、フロー図に示される情報処理の開始ノードであり、開始点を示す。符号ａ１０とａ１２とは、フロー図に示される情報処理の終了ノードであり、終了点を示す。このように、フロー図には複数の終了点が示されるものがある。符号ａ２、ａ３、ａ４、ａ７、ａ９、ａ１１は、フロー図における処理（アクティビティ、アクション）を示すノードであり、文字列により処理の内容が示される。符号ａ５、ａ６、ａ８は、フロー図における条件分岐を示すノードである。符号ｂ１からｂ１３は、ノードを接続するフロー（遷移）を示す。条件分岐であるノードにおける条件毎に接続されたフローには、その条件を示す文字列が付加される。符号ｃは、符号ａ４のノードにおける処理によってアクセスされるデータベースを示す。フロー図は、例えば各ノードや各フローをそれぞれオブジェクトとしてタグに示すＸＭＬ形式のファイルであってもよいし、図面ファイルであってもよい。
【００２０】
経路抽出部１２は、フロー図記憶部１１に記憶されたフロー図を読み出し、読み出したフロー図によって示される開始ノードから終了ノードまでの複数の経路を網羅的に抽出する。例えば、符号ａ１から、ｂ１、ａ２、ｂ２、ａ３、ｂ３、ａ４、ｂ４、ａ５、ｂ５、ａ６、ｂ６、ａ７、ｂ７、ａ８、ｂ８、ａ９、ｂ９を通ってａ１０に到達する経路や、符号ａ５においてｂ１０に分岐し、ａ１１、ｂ１１を通ってａ１２に到達する経路等が存在する。ここでは、ループや条件分岐、開始ノードから複数の終了ノードに到達する全ての経路を網羅的に探索する。ここで、経路抽出部１２は、フロー図がＸＭＬファイルである場合には、タグに示される各オブジェクトに基づいて経路を探索することができる。あるいは、フロー図が図面である場合には、図面の画像解析を行って各ノードとフローを抽出し、経路を探索することもできる。
【００２１】
中間ファイル生成部１３は、経路抽出部１２が抽出した複数の経路のうち、正常系であるひとつの基本経路を判定し、その基本経路上のフローに対して基本フローであることを示す情報を付加した設計モデル中間ファイルを生成する。さらに、中間ファイル生成部１３は、設計モデル中間ファイルにおいて、フロー図に含まれる複数のフローのうち、基本フローであることを示す情報が付加されていないフローであって、基本フローが示す基本経路における終了ノードと同一の終了ノードに到達する経路上のフローに代替フローであることを示す情報を付加し、基本フローであることを示す情報と代替フローであることを示す情報とのいずれもが付加されていないフローに例外フローであることを示す情報を付加する。このように、本実施形態では、フロー図における各フローを、基本フローと、代替フローと、例外フローとの種別に分けて識別する。
【００２２】
図３は、中間ファイル生成部１３が生成する設計モデル中間ファイルのデータ例を示す図である。ここでは、フロー図における各ノードと各フローとをＸＭＬ形式のタグに対応付けて示しており、符号ａ１からａ１２は、図２における符号ａ１からａ１２のノードに対応し、符号ｂ１からｂ１３は、図２における符号ｂ１からｂ１３のフローに対応している。ここでは、符号ａ１から、ｂ１、ａ２、ｂ２、ａ３、ｂ３、ａ４、ｂ４、ａ５、ｂ５、ａ６、ｂ６、ａ７、ｂ７、ａ８、ｂ８、ａ９、ｂ９を通ってａ１０に到達する経路を基本経路としており、この経路に含まれるフローであるｂ１、ｂ２、ｂ３、ｂ４、ｂ５、ｂ６、ｂ７、ｂ８、ｂ９のタグに対して、基本フローであることを示す情報である「ｔｙｐｅ＝“基本”」の属性が付加されている。また、基本フローであることを示す情報が付加されていないフローであって、終了ノードに到達する経路上のフローである符号ｂ１２とｂ１３とのタグに対して、代替フローであることを示す情報である「ｔｙｐｅ＝“代替”」の属性が付加されている。また、基本フローであることを示す情報と代替フローであることを示す情報とのいずれもが付加されていないフローである符号ｂ１０とｂ１１とのタグに対して、例外フローであることを示す情報である「ｔｙｐｅ＝“例外”」の属性が付加されている。ここでは、このように、「基本」、「代替」、「例外」の文字列をタグの属性として付加する例を示すが、このような文字列を属性としてタグに付加することに限らず、例えばフローの種別毎に予め定めた英字１字で示してもよく、フローの種別が識別可能であればよい。
【００２３】
ここで、中間ファイル生成部１３が、基本経路を判定する第１から第４の判定方法の例を示す。第１の判定方法では、中間ファイル生成部１３は、経路抽出部１２が抽出した複数の経路のうち、開始ノードから終了ノードまでのノード数が最大であり、かつ同一のノードを通過しない経路を基本経路であると判定する。図２に示すフロー図の例では、複数（２つ）の終了ノードが存在しているため、いずれの終了ノードに到達する経路が正常系の経路であるかを判定する必要がある。ここでは、複数の経路のうち他の経路より短い（経由するノードおよびフローの数が小さい）経路は、異常系の処理により終了する経路であると仮定する。すなわち、このような経路は例外経路であり、より長い（経由するノードおよびフローの数が大きい）経路が基本経路であると推定できる。さらに、同一のノードを通過する経路は、ループにより同一のノードを通過していると考えられるため、ループしない経路が基本経路であると推定できる。
【００２４】
第２の判定方法では、中間ファイル生成部１３は、経路抽出部１２が抽出した複数の経路上のノードまたはフローに予め定められたキーワードが含まれるか否かに基づいて、複数の経路のうち、正常系であるひとつの基本経路を判定する。例えば、条件分岐に付加されたフローに「成功した場合」との文字列が付加されたフローと「エラーの場合」との文字列が付加されたフローとが存在する場合、「成功した場合」のフローの方が正常系の経路である可能性が高いと推定できる。そこで、このような「成功」「エラー」等のキーワードに基づいて、正常系の基本経路を判定する。また、例えば条件分岐の場合、Ｔｒｕｅを示す「Ｔ」とＦａｌｓｅを示す「Ｆ」とが存在すれば、「Ｔ」の方が正常系の経路であると推定できる。例えば、中間ファイル生成部１３は、このような正常系であることを示す可能性が高いキーワードの一覧と、正常系でないことを示す可能性が高いキーワードの一覧とを予め自身の記憶領域に記憶しており、フロー図から読み込んだ各ノードやフローに付加されている文字列とを比較して、正常系であることを示す可能性が高いキーワードが付加されたノードやフローがより多く、正常系でないことを示す可能性が高いキーワードが付加されたノードやフローがより少ない経路を、基本経路であると判定する。ここでは、ノードまたはフローに付加された文字列からキーワードを抽出する例を示したが、例えば文字列の自然言語解析を行って、基本経路を判定することもできる。
【００２５】
第３の判定方法では、中間ファイル生成部１３は、経路抽出部１２が抽出した複数の経路のうち、開始ノードから基本経路の終了ノードであることが予め定められた終了ノードまでの最短経路を基本経路であると判定する。例えば、図２のように複数の終了ノードが存在する場合、いずれかの終了ノードに、基本経路における終了ノードであることを示す情報を予め対応付けておく。例えば、基本経路の終了ノードには「正常完了」の文字列を付加しておくことを予め定めておく。この例では、符号ａ１０の終了ノードには「正常完了」の文字列が付加されており、符号ａ１２の終了ノードには「アプリケーションエラー」の文字列が付加されている。中間ファイル生成部１３は、複数の終了ノードから、「正常完了」の文字列が付加された終了ノードを検出し、その終了ノードが基本経路の終了ノードであるとして、開始ノードからその終了ノードまでの最短経路を基本経路であると判定する。
【００２６】
第４の判定方法では、中間ファイル生成部１３は、ユーザから入力部１４に入力された情報に基づいて、複数の経路のうち、正常系であるひとつの基本経路を判定する。例えば、図２に示すフロー図をテスト項目生成装置１０が備える表示部の画面に表示し、フロー毎に、基本フローであるか、代替フローであるか、例外フローであるかを示す情報の入力を受け付ける。中間ファイル生成部１３は、基本フローであると入力されたフローが示す経路を基本経路であると判定する。
【００２７】
ここでは、第１から第４の判定方法の例を示したが、これらの判定方法を組み合わせることもできる。例えば、第１から第３のそれぞれの判定方法による判定結果を得点化し、より得点が高い経路を基本経路であると判定することができる。あるいは、第１から第３のいずれかまたは複数の判定結果をテスト項目生成装置１０の画面に表示させ、ユーザに判定結果を確認させ、必要があれば判定結果であるフロー種別の修正入力を受け付けることもできる。
【００２８】
入力部１４は、キーボードやマウス等の入力デバイスであり、ユーザからの操作入力を受け付ける。例えば、入力部１４は、経路抽出部１２によって抽出された複数の経路のうち、いずれの経路が基本経路であるかを示す情報の入力を受け付ける。
中間ファイル記憶部１５には、テスト項目を生成するために生成される中間ファイルが記憶される。例えば、中間ファイル記憶部１５には、上述した設計モデル中間ファイルと、後述するテストモデル中間ファイルとが記憶される。
【００２９】
優先レベル記憶部１６には、経路に含まれるフローに付加されたフロー種別に応じたテスト項目の優先レベルが記憶される。図４は、優先レベル記憶部１６に記憶されている優先レベルのデータ例を示す図である。ここでは、優先レベルに、経路、観点、抽出方法が対応付けられている。優先レベルは、経路毎に生成するテスト項目の優先度を示しており、優先度が高い程、そのテスト項目は重要であることを示す。この例では、優先レベルの数値が小さい程、優先度が高いことを示す。経路は、テスト項目を生成する経路であって、その経路に含まれるフロー種別に応じた経路を示す。例えば、優先レベル１には、フロー種別が基本フローであるフローのみが含まれる経路が対応付けられている。優先レベル２には、各代替フローを一度だけ通る経路が対応付けられている。観点は、対応する経路をテストする観点を示す。抽出方法は、対応する経路を抽出する方法を示す。
【００３０】
テスト項目生成部１７は、中間ファイル生成部１３が生成した設計モデル中間ファイルに基づいて、経路抽出部１２が抽出した複数の経路のうち、少なくとも中間ファイル生成部１３によって判定された基本経路が含まれる複数の経路毎のテスト項目を生成し、基本経路に対応するテスト項目を優先的に出力する。優先的に出力するとは、例えば、複数のテスト項目を順番に出力する際に、優先度の高いテスト項目を、優先度の低いテスト項目よりも前に出力することをいう。具体的には、テスト項目生成部１７は、まず、中間ファイル生成部１３に記憶されている設計モデル中間ファイルを読み出し、読み出した設計モデル中間ファイルに含まれるフロー毎に付加されたフロー種別と、予め定められて優先レベル記憶部１６に記憶されている優先レベルとに基づいて、テスト項目を生成する経路を優先度の高い順番に並べたテストモデル中間ファイルを生成する。
【００３１】
図５は、テスト項目生成部１７が生成するテストモデル中間ファイルのデータ例を示す図である。ここでは、符号ａの箇所に、基本経路が示されており、符号ｂの箇所に、代替経路が示されている。例えば、テスト項目生成部１７は、優先レベル記憶部１６に記憶されている優先レベルを読み出し、優先レベルの高い順番から経路を抽出し、テストモデル中間ファイルに出力していく。例えば、テスト項目生成部１７は、優先レベル１に対応する抽出方法に基づいて経路を抽出し、抽出した経路をテストモデル中間ファイルに出力する。次に、優先レベル２に対応する抽出方法に基づいて経路を抽出し、抽出した経路をテストモデル中間ファイルに出力する。このようにして、テスト項目生成部１７は、テスト項目を生成する経路を、優先度の高い順番に出力する。
【００３２】
ここで、テスト項目生成部１７が経路をテストモデル中間ファイルに出力する際には、優先レベルの高いものから、予め定められた優先レベルに対応する経路までのみを出力することができる。この場合、テスト項目生成部１７は、テスト対象であるフロー図毎に、そのフロー図に対して実施するテストの優先レベルの閾値を対応付けたテーブルを予め自身の記憶領域に記憶しておく。図６は、このようなフロー図毎の優先レベル閾値のデータ例を示す図である。ここでは、フロー図１（ユースケースＩＤ１）については優先レベル３までのテスト項目を生成することが定められており、フロー図２（ユースケースＩＤ２）については優先レベル５までのテスト項目を生成することが定められており、フロー図３（ユースケースＩＤ３）については優先レベル６までのテスト項目を生成することが定められている。このようなフロー図毎の優先レベルは、そのフロー図にデータベースアクセス処理を含むノードがあるか否か、または共用変数の更新処理を含むノードが含まれるか否か等の観点に基づいて定められる。例えば、フロー図１については、優先レベル１から優先レベル３までに対応する経路のみが、テストモデル中間ファイルに出力される。これにより、優先度の高い経路から順番に出力するとともに、テスト項目の量を、経路に対応する数とすることができる。
【００３３】
また、テスト項目生成部１７は、出力するテスト項目数の閾値を予め定めておき、定められたテスト項目数以内の経路を出力するようにすることができる。例えば、テスト密度の観点から、テスト対象のプログラムの規模に応じたテスト項目数の閾値を定めておくことができる。例えば、フロー図に示される機能を実装するプログラムのコード量（ステップ数）と、そのフロー図に示される機能について実施すべきテスト項目数とを対応付けたテスト項目生成条件をテスト項目生成部１７の記憶領域に記憶しておく。テスト項目生成条件として、プログラムの２０ステップ毎に、１つのテスト項目を生成することが定められている場合、テスト項目生成部１７は、テスト対象のプログラムが１０００ステップであれば、（１０００／２０＝）５０項目を、生成するテスト項目数の閾値として算出する。これにより、テスト項目数の数を一定数以内とすることができる。例えば、テスト時間が限られている場合でも、重要なテスト項目から、定められた数のテストを行うことができる。また、テスト項目生成部１７は、データベースアクセス処理を含むノードまたは共用変数の更新処理を含むノードが含まれる経路の優先度を上げて、このような経路を優先的に出力することもできる。
【００３４】
テスト項目生成部１７は、このように生成して中間ファイル記憶部１５に記憶させたテストモデル中間ファイルに基づいて、テスト項目表を生成する。具体的には、テスト項目生成部１７は、表計算ソフト等によりテスト項目表を生成し、中間ファイル記憶部１５に記憶させたテストモデル中間ファイルを読み出し、テストモデル中間ファイルに記載された経路毎に、その経路を通るテスト項目を生成してテスト項目表に出力する。
【００３５】
図７は、テスト項目生成部１７が生成するテスト項目表の例を示す図である。符号ａには、テスト対象のシステム名や業務名等が記載されている。符号ｂには、テスト項目を行うための手順書やテストコード等の識別情報が記載されている。符号ｃには、テスト対象のソフトウェアに対して行うテスト項目が記載される。符号ｃの欄のうち、符号ｃ１には、テストの観点が記載される。符号ｃ２には、テスト項目における入力値と期待結果とが記載される。入力値と期待結果とは、例えばユーザにより入力されるようにしてもよいし、他のファイル等から読み出すようにしてもよい。符号ｃ３には、テスト項目生成部１７が優先度に応じて出力した経路を示すパスが記載される。ここには、経路上のノードに付加された文字列が記載される。符号ｃ４には、テストを行うための事前条件が記載される。符号ｃ５には、入力値の例が記載される。符号ｃ６には、入力値に応じた期待結果が記載される。
【００３６】
ここで、例えば、経路を網羅的に探索してテスト項目表を生成するような従来のソフトウェアツールでは、フロー図にノードやフローが書き込まれた順番に応じて経路が出力されていた。これでは、テスト項目として優先度は低いものが上位に出力されること等があり、このようなテスト項目表を用いたテストの実施は効率が良くない場合があった。そこで、テスト項目生成部１７は、テスト項目の優先度に応じて、優先度の高いテスト項目を上位に表示するテスト項目表を生成するため、効率良くテストを行うことができる。
【００３７】
出力部１８は、テスト項目生成部１７が生成したテスト項目表を出力する。例えば、出力部１８は、テスト項目表を出力するディスプレイや、テスト項目表を印刷して出力するプリンタ等が適用できる。テスト対象であるソフトウェアのテスト実施者は、このように出力されたテスト項目表に基づいて、テスト対象であるソフトウェアの動作テストを行う。
【００３８】
次に、図面を参照して、本実施形態によるテスト項目生成装置１０の動作例を説明する。図８は、本実施形態によるテスト項目生成装置１０の動作例を示すフローチャートである。
テスト項目生成装置１０のフロー図記憶部１１には、テスト対象のソフトウェアにおける各機能の情報処理を示すフロー図が予め記憶されている。経路抽出部１２は、フロー図記憶部１１に記憶されているフロー図を読み出す（ステップＳ１）。そして、経路抽出部１２は、読み出したフロー図に含まれるノードとフローとを抽出し、フロー図に示される経路を網羅的に抽出する（ステップＳ２）。
【００３９】
中間ファイル生成部１３は、フロー図記憶部１１に記憶されているフロー図に基づいて、設計モデル中間ファイルを生成して中間ファイル記憶部１５に記憶させる。そして、定められた判定方法により、経路抽出部１２が抽出した複数の経路のうち、正常系であるひとつの基本経路を判定し、基本経路上のフローに基本フローの属性を付加して設計モデル中間ファイルを更新する。さらに、中間ファイル生成部１３は、中間ファイル記憶部１５に記憶させた設計モデル中間ファイルに、代替フローと例外フローとのフロー種別を付加して設計モデル中間ファイルを更新する（ステップＳ３）。
【００４０】
テスト項目生成部１７は、中間ファイル記憶部１５に記憶されている設計モデル中間ファイルを読み出し、設計モデル中間ファイルに含まれるフロー毎の属性と、優先レベル記憶部１６から読み出した優先レベルとに基づいて、テスト項目とする経路を優先度順に並べたテストモデル中間ファイルを生成し、中間ファイル記憶部１５に記憶させる（ステップＳ４）。テスト項目生成部１７は、中間ファイル記憶部１５に記憶させたテストモデル中間ファイルに基づいて、テスト項目表を生成し、出力部１８に出力させる（ステップＳ５）。
【００４１】
以上説明したように、本実施形態によれば、フロー図に基づいてテスト項目を生成する際、基本経路を通るテスト項目を先に出力し、優先度順にテスト項目を出力するようにしたので、重要なテスト項目からソフトウェアのテストを行うことができ、効率良くテストを実施することができる。さらに、定められた優先度以内、または定められた項目数以内のテスト項目を生成するようにしたので、必要以上に、または実施不可能な程度の大量にテスト項目が生成されることを防ぎ、適切な量のテスト項目を生成することができる。
【００４２】
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりテスト項目の生成を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００４３】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００４４】
１０  テスト項目生成装置
１１  フロー図記憶部
１２  経路抽出部
１３  中間ファイル生成部
１４  入力部
１５  中間ファイル記憶部
１６  優先レベル記憶部
１７  テスト項目生成部
１８  出力部
【図１】
2013161182.tif 000003
【図２】
2013161182.tif 000004
【図３】
2013161182.tif 000005
【図４】
2013161182.tif 000006
【図５】
2013161182.tif 000007
【図６】
2013161182.tif 000008
【図７】
2013161182.tif 000009
【図８】
2013161182.tif 000010