(57)【要約】【課題】技術標準の勧告などや入力された機能仕様からテスト項目の作成および抽出を自動的に行う。【解決手段】規格等を格納し修正や追加を行う規格格納部１０１、システムの仕様や制限条件等を入力するユーザ仕様入力部１０２、システムのフローチャートを作成するフローチャート作成部１０３、このフローチャートからシステムが実現するシーケンスをプログラムとして作成するシーケンス作成部１０４、システムが実現する機能のテスト項目を自動作成するテスト項目作成部１０５、自動作成されたテスト項目に対する抽出条件の設定および抽出を行うテスト項目抽出部１０６、メモリ部１０７、全体を制御する制御部１０８を備えてテスト項目自動生成装置を構成し、システムの仕様や規格の要求条件を満たすテスト項目を自動生成する。【選択図】  図１
2006209521.tif 000002
【特許請求の範囲】
【請求項１】
規格等を格納し修正や追加を行う規格格納部と、システムの仕様や制限条件等を入力するユーザ仕様入力部と、システムのフローチャートを作成するフローチャート作成部と、前記フローチャートからシステムが実現するシーケンスを高級プログラミング言語などでプログラムとして作成するシーケンス作成部と、システムが実現する機能のテスト項目を自動作成するテスト項目作成部と、自動作成されたテスト項目に対する抽出条件の設定および抽出を行うテスト項目抽出部と、プログラムなどを格納するメモリ部と、前記規格格納部、ユーザ仕様入力部、フローチャート作成部、テスト項目作成部、テスト項目抽出部およびメモリ部を制御する制御部と、を備えたテスト項目自動生成装置。
【請求項２】
前記シーケンス作成部は前記フローチャートから前記プログラムを自動的に作成する請求項１に記載のテスト項目自動生成装置。
【請求項３】
前記シーケンス作成部は前記フローチャートにおけるステップの形状（シェイプ）を前記プログラムのステップに関連付ける情報を保持する請求項２に記載のテスト項目自動生成装置。
【請求項４】
前記規格格納部は技術標準の勧告書などに基づいて作成される規格イメージを有し、前記規格イメージおよび前記ユーザ仕様入力手段により入力されるシステム固有の仕様や制限事項や条件や使用するパラメータリストを検索し、シンボルの仕様や制限事項や条件を決定する請求項１に記載のテスト項目自動生成装置。
【請求項５】
システムのフローチャートを作成するフローチャート作成手段、前記フローチャートからシステムが実現するシーケンスを高級プログラミング言語などでプログラムとして作成するシーケンス作成手段、システムが実現する機能のテスト項目を自動作成するテスト項目作成手段、自動作成されたテスト項目に対する抽出条件の設定および抽出を行うテスト項目抽出手段としてコンピュータを機能させるプログラム。
【請求項６】
請求項５に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェア開発などに用いるテスト項目を自動的に作成する技術に関する。
【背景技術】
【０００２】
通常、ソフトウェア開発を伴うシステムのテストを行う際は、テストを行うシステムの各機能仕様、システムにおいて実現される処理フロー、テスト項目、およびテスト結果を準備する必要がある。
【０００３】
システムの機能仕様とはそれぞれの機能の入力データ、出力データ、処理内容、制限や制約である。処理フローとはシステムにおける各機能の処理順序や分岐条件などである。テスト項目とは試験装置と被試験装置で送受されるパラメータの値である。テスト結果とは、指定されたテスト項目および処理フローに基づいた処理を行った際に、想定している仕様と一致しているか否かをその終了状態に応じて判定するものである。
【０００４】
従来、テスト項目を作成する場合は、システムにおいて実現される処理フローの全パスに対してテストを行うために、処理フローにおける全パスのパターンを手作業で抽出しなければならず、また技術標準の勧告などに準じた機能を有するシステムでは、勧告の要求条件を満たし、その適用範囲を考慮したテスト項目を作成しなければならず、システムの各機能におけるこれらの処理内容や制限、制約を考慮した上で、パスのパターン毎に設定するパラメータ値をテスト項目として手作業で決定していたため、膨大な作業量が発生していた。
【０００５】
さらに、技術標準の勧告の内容を熟知していない開発者がこれらのテスト項目作成作業を行った場合には、勧告の適用範囲外のテスト項目を作成したり、テスト項目不足やケアレスミスによる誤りなどが生じたりすることで、テスト項目自体の信頼性低下を招く結果となっていた。
【０００６】
このような問題を解決するために、入力された機能仕様から試験項目を自動的に抽出する技術が従来開発されている。例えば特許文献１に開示されている技術は、通信プロトコルを実装した通信ノードにおいて、プロトコル仕様に対して適合しているか否かを確認するための試験項目を知識ベースと推論機構を用いて自動的に抽出する方式に関するものである。
【特許文献１】特公平７−１０５８２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記特許文献１に開示された方法は、エキスパートシステムを利用して試験項目を自動的に抽出し、試験すべき機能と試験シーケンスと試験データおよび試験結果を与えるものであり、システム開発を効率的に支援することができる点で優れている。
【０００８】
しかしながら、エキスパートシステムを利用する方法は、通信プロトコルを実装した通信ノードのように知識ベースを作成して推論機構を用いることに適したシステムにおいては極めて有用であるが、一般的なソフトウェア開発などに適用することは必ずしも容易ではない。
【０００９】
本発明は、一般的なソフトウェア開発を伴うシステムのテストにおいて、技術標準の勧告などや入力された機能仕様からテスト項目の作成および抽出を自動的に行うことができるテスト項目自動生成装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明のテスト項目自動生成装置は、規格等を格納し修正や追加を行う規格格納部と、システムの仕様や制限条件等を入力するユーザ仕様入力部と、システムのフローチャートを作成するフローチャート作成部と、前記フローチャートからシステムが実現するシーケンスを高級プログラミング言語などでプログラムとして作成するシーケンス作成部と、システムが実現する機能のテスト項目を自動作成するテスト項目作成部と、自動作成されたテスト項目に対する抽出条件の設定および抽出を行うテスト項目抽出部と、プログラムなどを格納するメモリ部と、前記規格格納部、ユーザ仕様入力部、フローチャート作成部、テスト項目作成部、テスト項目抽出部およびメモリ部を制御する制御部とを備える。
【００１１】
上記構成によれば、入力されたシステムの仕様や技術標準の勧告集などの規格に準じた機能を有したシステムのテスト項目の作成および抽出を行う場合に、これらの要求条件を満たす適用範囲およびその他各機能の処理内容や制約を加味したテスト項目を自動生成することができるため、テスト項目作成の作業量の削減およびテスト項目の信頼性向上を図ることができる。
【００１２】
本発明において、前記シーケンス作成部は前記フローチャートから前記プログラムを自動的に作成するものである。
【００１３】
本発明において、前記シーケンス作成部は前記フローチャートにおけるステップの形状（シェイプ）を前記プログラムのステップに関連付ける情報を保持する。
【００１４】
本発明において、前記規格格納部は技術標準の勧告書などに基づいて作成される規格イメージを有し、前記規格イメージおよび前記ユーザ仕様入力手段により入力されるシステム固有の仕様や制限事項や条件や使用するパラメータリストを検索し、シンボルの仕様や制限事項や条件を決定する。
【００１５】
上記構成によれば、勧告集の内容を熟知していない開発者が作業を行う場合にも、これらの要求条件を満たす適用範囲およびその他各機能の処理内容や制約を決定することができるため、生成されるテスト項目における誤りや漏れの発生を回避することができる。
【発明の効果】
【００１６】
本発明によれば、入力されたシステムの仕様や技術標準の勧告集などの規格の要求条件を満たす適用範囲およびその他各機能の処理内容や制約を加味したテスト項目作成において、作業量の削減およびテスト項目の信頼性向上を図ることができる。また、システムが実現する機能のテスト項目を誤りや漏れなく作成することが可能となる。
【発明を実施するための最良の形態】
【００１７】
図１は本発明の一実施形態に係るテスト項目自動生成装置の構成を示すブロック図である。図１において、１０１は規格格納部、１０２はユーザ仕様入力部、１０３はフローチャート作成部、１０４はシーケンス作成部、１０５はテスト項目作成部、１０６はテスト項目抽出部、１０７はメモリ部、１０８は制御部である。
【００１８】
規格格納部１０１には、技術標準の勧告などの規格等が規格格納手段により格納され、修正、追加される。ユーザ仕様入力部１０２では、システムが実現する規格の指定や制限事項、条件がユーザ仕様入力手段により入力される。また、規格で定義される機能だけでなくシステムが実現する他機能の制限事項、条件が入力される。
【００１９】
フローチャート作成部１０３は、ユーザ仕様入力部１０２から入力された情報を用いて、システムが実現する処理フローのフローチャートを作成する。シーケンス作成部１０４は、フローチャート作成部１０３で作成したフローチャートから高級プログラミング言語などを用いたシーケンスプログラムを作成する。
【００２０】
テスト項目作成部１０５はテスト項目を自動作成する。テスト項目抽出部１０６は、自動作成されたテスト項目のうちどのテスト項目を抽出するかといった抽出条件の設定や、新たに追加、削除したいテスト項目の抽出条件の設定を行い、設定した抽出条件によりテスト項目の抽出を行う。
【００２１】
メモリ部１０７はコンピュータに実行させるプログラムを格納し、制御部１０８は規格格納部１０１、ユーザ仕様入力部１０２、シーケンス作成部１０３、テスト項目作成部１０５、テスト項目抽出部１０６、メモリ部１０７を制御する。
【００２２】
以下、それぞれの処理について順を追って詳しく説明する。図２は規格格納部１０１に格納される規格イメージの例として、“ディジタル静止画像圧縮符号化関連勧告集”の基本ＤＣＴシーケンシャル方式を記述したものである。以降の図においても“ディジタル静止画像圧縮符号化関連勧告集”に即した例を用いて記述する。
【００２３】
規格イメージとは、例えば新日本ＩＴＵ協会で発行する勧告書などに基づいて作成されるものである。本テスト項目自動生成装置はシステムの動作確認を行うためのテスト項目作成を目的とするため、規格イメージは規格を実現するためのアルゴリズムではなく、規格特有の許容値、制限などを高級プログラミング言語などで表わしたものとする。
【００２４】
ここで、高級プログラミング言語などで許容値、制限などを記述する際は、勧告書などで定義されているシンボルを使用しなければならない。また関連するカテゴリ毎に分類した記述を推奨する。
【００２５】
規格格納手段は規格イメージを通常のデータダウンロードと同等の手段を用いて格納し、その修正や追加を行う。また、格納した規格イメージは、ユーザ仕様入力画面での表示や選択を可能にするために、作成した規格イメージの勧告集名および方式名を規格イメージリストとしてリスト形式で記述し、作成した規格イメージと関連づける。
【００２６】
図３および図４は、ユーザ仕様入力手段によりシステム固有の仕様をユーザが入力するためのユーザ仕様入力画面を示す。入力すべき項目は規格関連、ユーザ仕様関連、他機能関連、パラメータリストから構成される。
【００２７】
図３は規格関連、ユーザ仕様関連、他機能関連の入力画面の一例を示す。規格関連は、すでに規格格納手段により規格格納部１０１に格納されている規格イメージリストから、システムが実現する規格および方式の選択を行う。
【００２８】
複数の規格イメージが格納されている場合は、図３に示すように複数の勧告集名および方式名が画面に表示され、その中から選択を行う。本選択によりテスト項目作成部１０５においてテスト項目を自動的に作成する際に使用する規格が決定される。
【００２９】
ユーザ仕様関連は、規格に対するシステムの実現範囲（制限、制約など）を高級プログラミング言語などで記述する。また制限事項、条件などを記述する際には勧告書などで定義されているシンボルを使用する。
【００３０】
テスト項目作成部１０５においてテスト項目を自動作成する際は、正常系テスト項目作成時には本ユーザ仕様関連で記述された実現範囲内においてテスト項目を作成し、異常系テスト項目作成時には後述の他機能関連で記述する機能、制約条件により、あるいは本ユーザ仕様関連で記述された実現範囲外となるようにテスト項目を作成する。
【００３１】
他機能関連は、規格で定義される機能だけでなく、システムが実現する各種他機能の制限事項、条件を高級プログラミング言語などで記述する。ユーザ仕様入力画面では機能欄、制約条件欄が任意の数、用意される。機能欄は実現する機能名を記述し、制約条件欄は機能に対する制限、制約事項を自由記述形式で記入する。機能欄に記述した機能名は、フローチャート作成部１０３でフローチャートを作成する際の情報として認識される。
【００３２】
図４はパラメータリストの入力画面の一例を示す。表は機能毎に作成され、第１行目には図３の機能欄で入力された文字列が挿入される。パラメータリストは、テスト項目作成時に決定するパラメータとして使用するか否かを指定する使用有無欄と、システムが使用するパラメータ名を記入するパラメータ名欄と、（パラメータの）型欄、パラメータの説明などを記入する説明欄とで構成される。
【００３３】
勧告書などで定義されているシンボルと同じ意味で使用するパラメータについては、パラメータ名欄に勧告書などで定義されているシンボル名を記入する。使用有無欄は、チェックボックス形式などによりテスト項目作成時に決定するパラメータとして使用する場合はチェックを行い、使用しない場合はチェックを行わない。
【００３４】
このとき、勧告書などで定義されているパラメータはシンボルであることを表すチェックを行い、ユーザが定義したパラメータはシンボル以外であることを表すチェックを行う。本パラメータリストは次に記述するシーケンス作成手法および後述するテスト項目作成手段で使用する。
【００３５】
図５はフローチャート作成部１０３でシステムのフローチャートを作成するためのフローチャートシェイプを示す。ユーザはフローチャートシェイプから適当なシェイプを選択し、フローチャートを作成する。
【００３６】
フローチャートシェイプは、機能の“はじめ”を表す２００、機能の“正常終了”を表す２０１、機能の“異常終了”を表す２０２、処理フローの“分岐条件”を表す２０３、機能の“処理”を表す２０４、“分岐条件”２０３が真の場合に選択される“パス”を表す２０５、２０８、２１０、“分岐条件”２０３が偽の場合に選択される“パス”を表す２０６、２０９、２１１、および２００または２０４から２０１、２０２、２０３、２０４への“パス”を表す２０７で構成される。
【００３７】
図６はフローチャートシェイプを用いたフローチャートの例である。“分岐条件”２０３はユーザ仕様入力手段でパラメータリストに入力されたパラメータと記号を用いて記述する。機能の“処理”２０４においては、処理を行った際にパラメータが変化する場合はパラメータリストに入力されたパラメータと記号を用いて記述し、変化しない場合は０を記述する。
【００３８】
シーケンス作成部１０４では、フローチャートから高級プログラミング言語などを用いたシーケンスプログラムを作成するため、各フローチャートシェイプとシーケンスプログラミング作成動作を関連付け、シーケンス作成ルールとして規定する。
【００３９】
例えば、機能の“正常終了”を表す２０１はプログラムの戻り値を０と設定し、機能の“異常終了”を表す２０２はプログラムの戻り値を１と設定する。
【００４０】
処理フローの“分岐条件”２０３は“Ｉｆ（Ａ）｛Ｂ｝ｅｌｓｅ｛Ｃ｝”に関連付けられ、“分岐条件”２０３で示す内容をＡ、分岐条件が真の場合に選択される２０１、２０２、２０３、２０４で示す内容をＢ、分岐条件が偽の場合に選択される２０１、２０２、２０３、２０４で示す内容をＣとする。
【００４１】
機能の“処理”を表す２０４で０が記述されている場合は、“処理”によって入力パラメータ（引数）が変化しないため、２０４に関連するプログラム行を作成せず、０以外が記述されている場合は２０４で示す内容をプログラム行とする。
【００４２】
これらのシーケンス作成ルールに基づきフローチャートから自動作成した高級プログラミング言語形式のシーケンスプログラムを図７に示す。
【００４３】
次に、テスト項目作成手段について説明する。テスト項目作成手段はユーザ仕様入力画面で説明したパラメータリストの使用有無欄においてチェックされたパラメータをテスト項目パラメータとし、順次パラメータ値を決定するための手段である。図８にテスト項目作成手段の処理フローを示す。
【００４４】
テスト項目作成手段は、初めにフローチャート作成部１０３で作成したフローチャートからシステムが取り得る全パスのパターンをサーチし、ナンバリングする。
【００４５】
次に勧告書などで定義され、かつパラメータリストでチェックされているパラメータ（シンボル）の値について、まず規格イメージからシンボルをキーワードに許容値や制限などを検索した後、テスト項目抽出条件からシンボルをキーワードに検索した許容値、制限と、ユーザ仕様入力画面のユーザ仕様関連で入力された規格に対するシステムの実現範囲（制限、制約など）と、テスト項目抽出手段でテスト項目抽出条件が設定された場合にはテスト項目抽出条件とを満たす範囲の最大値、最小値、中間値の組み合わせでパラメータ（シンボル）値を決定する。
【００４６】
中間値については、最大値に最小値を加算したものを２で除算した値を一番目の中間値とし、さらに、得られた一番目の中間値に最大値、または最小値を加算したものを２で除算した値を二番目の中間値とする、といった方法で決定し、とりうる中間値の個数は任意に定めるものとする。
【００４７】
次にシーケンス作成部１０４でフローチャートから作成される高級プログラミング言語形式のシーケンスプログラムを用いて、機能毎にパラメータリストでチェックされたシンボル以外のパラメータ値を、ユーザ仕様入力画面の他機能関連で入力した機能毎の制約条件内において、ナンバリングされたパスの１番目から順次決定し、後述するテスト仕様書に決定したパラメータ値を記入する。
【００４８】
フローチャートで“正常終了”となるパスは正常系のテスト仕様となり、フローチャートで“異常終了”となるパスは異常系のテスト仕様となる。また、後述するテスト項目抽出手段のテスト項目抽出条件画面でユーザが意図するパラメータに即値あるいは条件が入力された場合も、このテスト項目作成手段の処理フローに基いてパラメータ値を決定する。
【００４９】
テスト項目作成手段は、パラメータリストでチェックされたパラメータから構成される図９に示すようなテスト仕様書を作成する。テスト仕様書の見出し行は“テストＮｏ”と、パラメータリストでチェックされているパラメータのパラメータ名欄から文字列を自動的に抽出したものとで構成する。
【００５０】
テスト仕様書は正常系テスト仕様書、異常系テスト仕様書のどちらかあるいは両方を作成することができる。また作成されたテスト仕様書は、ユーザが任意に各欄の内容を修正することや、行の挿入、削除などを行うことができる。
【００５１】
次に、テスト項目抽出手段について記述する。テスト項目抽出手段は、テスト項目作成部１０５で自動作成したテスト項目に対する追加、抽出を行うための手段である。図１０にテスト項目抽出機能によりユーザが追加または抽出したいテスト項目抽出条件を入力するためのテスト項目抽出条件画面を示す。
【００５２】
テスト項目抽出条件画面はパラメータ名欄と設定値欄から構成され、パラメータ名欄にはパラメータリストの使用有無欄でチェックされたパラメータが表示されるようにする。設定値欄は、ユーザが追加または抽出したいテスト項目の条件を即値あるいは高級プログラミング言語などで入力する。
【００５３】
ユーザが意図するパラメータに即値あるいは条件を入力し、それ以外のパラメータをランダム値としてテスト項目を追加、抽出したい場合は、ユーザ仕様関連で記述された実現範囲内において値をランダムに選択してよいことを表す“−”などを記述することで可能とする。
【００５４】
次に、本テスト項目自動生成装置の各手段を制御するプログラムについて記述する。メニュー画面イメージを図１１に示す。メニュー画面イメージは、規格イメージ関連処理を起動するための規格イメージ関連処理ボタン３０１、ユーザ仕様入力処理を起動するためのユーザ仕様入力ボタン３０２、フローチャート作成処理を起動するためのフローチャート作成処理ボタン３０３、テスト項目作成処理ボタン３０４、テスト項目抽出処理ボタン３０５で構成され、ユーザはメニュー画面イメージより起動する処理を選択する。
【００５５】
図１２は制御プログラムのフローチャートである。図１２において、４０１は規格イメージ関連処理ボタン３０１が選択されたか否かの分岐条件、４０３はユーザ仕様入力ボタン３０２が選択されたか否かの分岐条件、４０５はフローチャート作成処理ボタン３０３が選択されたか否かの分岐条件である。
【００５６】
４０２は規格イメージ関連処理ボタン３０１が選択された際に行う規格イメージ格納、追加、修正処理であり、４０４はユーザ仕様入力ボタン３０２が選択された際に行うユーザ仕様入力処理であり、４０６はフローチャート作成処理ボタン３０３が選択された際に行うフローチャート作成処理である。
【００５７】
さらに、４０７はフローチャート作成処理４０６の後にフローチャートからシーケンスを作成するシーケンス作成処理、４０８はテスト項目作成ボタン３０４が選択されたか否かの分岐条件、４０９はテスト項目作成ボタン３０４が選択際に行うテスト項目作成処理、４１０はテスト項目抽出ボタン３０５が選択されたか否かの分岐条件、４１１はテスト項目抽出ボタン３０５が選択された際に行うテスト項目抽出処理である。
【００５８】
上記テスト項目自動生成装置によれば、入力されたシステムの仕様や技術標準の勧告集などの規格の要求条件を満たす適用範囲およびその他各機能の処理内容や制約を加味したパラメータ値を決定し、システムが実現するフローの全パスのパターンに対してテスト項目の自動作成／抽出を行うことができる。
【００５９】
これにより、テスト項目作成の作業量の削減およびテスト項目の信頼性向上を図ることができる。また、システムが実現する機能のテスト項目を誤りや漏れなく作成することが可能となり、作業量の削減およびテスト性能の向上を図ることができる。
【産業上の利用可能性】
【００６０】
本発明のテスト項目自動生成装置は、入力されたシステムの仕様や技術標準の勧告集などの規格の要求条件を満たす適用範囲およびその他各機能の処理内容や制約を加味したテスト項目作成において、作業量の削減およびテスト項目の信頼性向上を図ることができる。また、システムが実現する機能のテスト項目を誤りや漏れなく作成することが可能となるという効果を有し、ソフトウェア開発などに用いるテスト項目を自動的に作成する技術等として有用である。
【図面の簡単な説明】
【００６１】
【図１】本発明の一実施形態に係るテスト項目自動生成装置の構成を示すブロック図。
【図２】テスト項目自動生成装置の規格格納部に格納される規格イメージの一例。
【図３】ユーザ仕様入力画面における規格関連、ユーザ仕様関連、他機能関連の例。
【図４】ユーザ仕様入力画面におけるパラメータリストの入力画面例。
【図５】システムのフローチャートを作成するためのフローチャートシェイプ。
【図６】フローチャートシェイプを用いたフローチャートの例。
【図７】フローチャートから自動作成したシーケンスプログラムの例。
【図８】テスト項目作成手段によるパラメータ値を決定する処理のフローチャート。
【図９】テスト項目作成手段により作成されたテスト仕様書の例。
【図１０】テスト項目抽出機能によるテスト項目抽出条件画面の例。
【図１１】テスト項目自動生成装置の制御プログラムによるメニュー画面の例。
【図１２】テスト項目自動生成装置の制御プログラムのフローチャート。
【符号の説明】
【００６２】
１０１  規格格納部
１０２  ユーザ仕様入力部
１０３  フローチャート作成部
１０４  シーケンス作成部
１０５  テスト項目作成部
１０６  テスト項目抽出部
１０７  メモリ部
１０８  制御部
２００  はじめのフローチャートシェイプ
２０１  正常終了のフローチャートシェイプ
２０２  異常終了のフローチャートシェイプ
２０３  分岐条件のフローチャートシェイプ
２０４  処理のフローチャートシェイプ
２０５〜２１１  パスのフローチャートシェイプ
３０１〜３０５  メニュー画面イメージの処理起動ボタン
４０１〜４１１  制御プログラムの処理ステップ
【図１】
2006209521.tif 000003
【図２】
2006209521.tif 000004
【図３】
2006209521.tif 000005
【図４】
2006209521.tif 000006
【図５】
2006209521.tif 000007
【図６】
2006209521.tif 000008
【図７】
2006209521.tif 000009
【図８】
2006209521.tif 000010
【図９】
2006209521.tif 000011
【図１０】
2006209521.tif 000012
【図１１】
2006209521.tif 000013
【図１２】
2006209521.tif 000014