(57)【要約】【課題】任意経路上を移動するエージェントの進行制御用ソフトウェアの開発に伴うテスト工数を削減すると共に、良好なソフトウェア品質を確保可能とする。【解決手段】テスト支援装置１００が、外部記憶装置２０４に格納したオブジェクト情報及びダイヤ情報に基づき、エージェントが経路上で取り得る全ての進路をテスト項目の候補とした、全組合せテスト項目のデータを生成する処理と、エージェントが経路上で所定進路をとる場合のテスト要件を、入力装置２０６においてユーザから受け付けて、ユーザ定義テスト項目のデータとして取得する処理と、全組合せテスト項目のデータとユーザ定義テスト項目のデータとを照合し、ユーザ定義テスト項目の包含度に応じて、全組合せテスト項目から推奨するテスト項目を特定し、当該特定した推奨テスト項目を表示装置２０５に出力する処理とを実行する。【選択図】図１
2014170285.tif 000002
【特許請求の範囲】
【請求項１】
所定経路上を移動するエージェントの進行制御用ソフトウェアに関するテスト支援を行う情報処理装置であって、
前記経路の構成要素及び前記エージェントの情報を含むオブジェクト情報と、前記経路における前記エージェントの進行計画が記述されたダイヤ情報と、を格納する記憶装置と、
前記オブジェクト情報及び前記ダイヤ情報に基づき、エージェントが経路上で取り得る全ての進路をテスト項目の候補とした、全組合せテスト項目のデータを生成する処理と、
エージェントが経路上で所定進路をとる場合のテスト要件を、入力装置においてユーザから受け付けて、ユーザ定義テスト項目のデータとして取得する処理と、
前記全組合せテスト項目のデータと前記ユーザ定義テスト項目のデータとを照合し、前記ユーザ定義テスト項目の包含度に応じて、前記全組合せテスト項目から推奨するテスト項目を特定し、当該特定した推奨テスト項目を表示装置に出力する処理を実行する演算装置と、
を備えることを特徴とするテスト支援装置。
【請求項２】
前記記憶装置は、
前記進行制御用ソフトウェアの現在の開発状況を示す指標と、ソフトウェアの開発状況に応じて推奨されるテスト項目について、前記包含度に対応付けて定めた導出ルールとを、プロジェクト情報として格納するものであり、
前記演算装置は、
前記プロジェクト情報が含む前記指標を前記導出ルールに照合し、該当導出ルールが示す包含度に基づいて、現在の開発状況で推奨する推奨テスト項目を特定し、当該特定した推奨テスト項目を表示装置に出力する処理を実行するものである、
ことを特徴とする請求項１に記載のテスト支援装置。
【請求項３】
前記記憶装置は、
前記ダイヤ情報が含む、各エージェントの所定時刻および経路上の所定位置における移動状況の各データに基づいて、エージェントの移動種別ごとに経路上の所定位置と移動方向について少なくとも定めてパタン化したダイヤパタン情報を更に格納するものであり、
前記演算装置は、
前記全組合せテスト項目のデータを生成する処理において、前記オブジェクト情報及び前記ダイヤ情報と、前記ダイヤパタン情報が含む全ダイヤパタンとに基づき、エージェントが経路上で取り得る全ての進路を特定してテスト項目の候補とし、
前記ユーザ定義テスト項目のデータを取得する処理において、ユーザによる前記テスト要件の入力を受け付ける際、前記ダイヤパタン情報を表示装置に出力して入力支援を行うものである、
ことを特徴とする請求項１に記載のテスト支援装置。
【請求項４】
前記演算装置は、
前記ユーザ定義テスト項目のデータを、所定形状の経路における各構成要素の役割属性と一般的な配置位置の規定と、前記役割属性を備えた構成要素に対応付いたエージェントの移動パタンの規定とに照合して、前記ユーザ定義テスト項目の各データを前記各規定において対応する値に更新して汎化し、ユーザ定義テスト項目汎化情報とする処理を更に実行し、
前記推奨テスト項目の特定と出力を行う処理において、前記全組合せテスト項目のデータと前記ユーザ定義テスト項目汎化情報とを照合し、前記ユーザ定義テスト項目汎化情報の包含度に応じて、前記全組合せテスト項目から推奨するテスト項目を特定し、当該特定した推奨テスト項目を表示装置に出力するものである、
ことを特徴とする請求項３に記載のテスト支援装置。
【請求項５】
所定経路上を移動するエージェントの進行制御用ソフトウェアに関するテスト支援を行う方法であって、
前記経路の構成要素及び前記エージェントの情報を含むオブジェクト情報と、前記経路における前記エージェントの進行計画が記述されたダイヤ情報と、を格納する記憶装置を備えた情報処理装置が、
前記オブジェクト情報及び前記ダイヤ情報に基づき、エージェントが経路上で取り得る全ての進路をテスト項目の候補とした、全組合せテスト項目のデータを生成する処理と、
エージェントが経路上で所定進路をとる場合のテスト要件を、入力装置においてユーザから受け付けて、ユーザ定義テスト項目のデータとして取得する処理と、
前記全組合せテスト項目のデータと前記ユーザ定義テスト項目のデータとを照合し、前記ユーザ定義テスト項目の包含度に応じて、前記全組合せテスト項目から推奨するテスト項目を特定し、当該特定した推奨テスト項目を表示装置に出力する処理と、
を実行することを特徴とするテスト支援方法。
【請求項６】
所定経路上を移動するエージェントの進行制御用ソフトウェアに関するテスト支援を行う方法を情報処理装置に実行させるプログラムであって、
前記経路の構成要素及び前記エージェントの情報を含むオブジェクト情報と、前記経路における前記エージェントの進行計画が記述されたダイヤ情報と、を格納する記憶装置を備えた情報処理装置に、
前記オブジェクト情報及び前記ダイヤ情報に基づき、エージェントが経路上で取り得る全ての進路をテスト項目の候補とした、全組合せテスト項目のデータを生成する処理と、
エージェントが経路上で所定進路をとる場合のテスト要件を、入力装置においてユーザから受け付けて、ユーザ定義テスト項目のデータとして取得する処理と、
前記全組合せテスト項目のデータと前記ユーザ定義テスト項目のデータとを照合し、前記ユーザ定義テスト項目の包含度に応じて、前記全組合せテスト項目から推奨するテスト項目を特定し、当該特定した推奨テスト項目を表示装置に出力する処理と、
を実行させることを特徴とするテスト支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト支援装置、テスト支援方法、およびテスト支援プログラムに関するものであり、具体的には、任意経路上を移動するエージェントの進行制御用ソフトウェアの開発に伴うテスト工数を削減すると共に、良好なソフトウェア品質を確保可能とする技術に関する。
【背景技術】
【０００２】
ソフトウェア開発において、ソフトウェアの要求や仕様の理解を深めることや、システムの特徴を抽出し、設計、実装、テストに利用することを目的として、システムを抽象化して記述するモデリング言語を用いたモデルベース開発が普及している。モデリング言語の例としては、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）等が著名である。
【０００３】
モデルベース開発に関する技術としては、例えば、鉄道設備の監視情報を試験装置に記憶して、必要な情報に絞って運行管理装置に対して再生し、本番／試験時の運行管理装置の出力を識別して比較することで、運行管理装置の応答性を検証する技術（特許文献１参照）などが提案されている。
【０００４】
また、ソフトウェアモデルのテストケースの妥当性を自動検証するため、モデルでのシミュレーション結果として得られるブロックの入出力情報をもとに、テストケースの妥当性を検証する技術（特許文献２参照）なども提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２１１５１７号公報
【特許文献２】特開２００４−２８７６９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、一般にソフトウェア開発では、要件に対する設計、実装の妥当性を評価するテスト工程において、テスト仕様の設計、テスト実行のための実装、テスト結果の評価に、多大な工数を必要とする。特に、任意経路上を移動するエージェントの進行制御用のソフトウェアに関しては、経路形状やエージェントの特性に応じた、複雑、多岐に渡るテストの実施が必要となり、そのテスト工数は膨大なものとなる。
【０００７】
従来技術のように、モデルベース開発を採用し、システム入出力や処理（の実行順序や互いの関連具合等）のモデル化を行うことにより、テスト支援を行う技術は提案されているが、上述した進行制御用ソフトウェアのごとく、経路上でのエージェントの移動パタン等が非常に多岐にわたる特異な状況、条件が想定されるソフトウェアの開発に対応したテスト支援の手法は提案されていない。
【０００８】
そこで本発明の目的は、任意経路上を移動するエージェントの進行制御用ソフトウェアの開発に伴うテスト工数を削減すると共に、良好なソフトウェア品質を確保可能とする技術を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決する本発明のテスト支援装置は、所定経路上を移動するエージェントの進行制御用ソフトウェアに関するテスト支援を行う情報処理装置であって、前記経路の構成要素及び前記エージェントの情報を含むオブジェクト情報と、前記経路における前記エージェントの進行計画が記述されたダイヤ情報と、を格納する記憶装置と、前記オブジェクト情報及び前記ダイヤ情報に基づき、エージェントが経路上で取り得る全ての進路をテスト項目の候補とした、全組合せテスト項目のデータを生成する処理と、エージェントが経路上で所定進路をとる場合のテスト要件を、入力装置においてユーザから受け付けて、ユーザ定義テスト項目のデータとして取得する処理と、前記全組合せテスト項目のデータと前記ユーザ定義テスト項目のデータとを照合し、前記ユーザ定義テスト項目の包含度に応じて、前記全組合せテスト項目から推奨するテスト項目を特定し、当該特定した推奨テスト項目を表示装置に出力する処理を実行する演算装置と、を備えることを特徴とする。
【００１０】
また、本発明のテスト支援方法は、所定経路上を移動するエージェントの進行制御用ソフトウェアに関するテスト支援を行う方法であって、前記経路の構成要素及び前記エージェントの情報を含むオブジェクト情報と、前記経路における前記エージェントの進行計画が記述されたダイヤ情報と、を格納する記憶装置を備えた情報処理装置が、前記オブジェクト情報及び前記ダイヤ情報に基づき、エージェントが経路上で取り得る全ての進路をテスト項目の候補とした、全組合せテスト項目のデータを生成する処理と、エージェントが経路上で所定進路をとる場合のテスト要件を、入力装置においてユーザから受け付けて、ユーザ定義テスト項目のデータとして取得する処理と、前記全組合せテスト項目のデータと前記ユーザ定義テスト項目のデータとを照合し、前記ユーザ定義テスト項目の包含度に応じて、前記全組合せテスト項目から推奨するテスト項目を特定し、当該特定した推奨テスト項目を表示装置に出力する処理と、を実行することを特徴とする。
【００１１】
また、本発明のテスト支援プログラムは、所定経路上を移動するエージェントの進行制御用ソフトウェアに関するテスト支援を行う方法を情報処理装置に実行させるプログラムであって、前記経路の構成要素及び前記エージェントの情報を含むオブジェクト情報と、前記経路における前記エージェントの進行計画が記述されたダイヤ情報と、を格納する記憶装置を備えた情報処理装置に、前記オブジェクト情報及び前記ダイヤ情報に基づき、エージェントが経路上で取り得る全ての進路をテスト項目の候補とした、全組合せテスト項目のデータを生成する処理と、エージェントが経路上で所定進路をとる場合のテスト要件を、入力装置においてユーザから受け付けて、ユーザ定義テスト項目のデータとして取得する処理と、前記全組合せテスト項目のデータと前記ユーザ定義テスト項目のデータとを照合し、前記ユーザ定義テスト項目の包含度に応じて、前記全組合せテスト項目から推奨するテスト項目を特定し、当該特定した推奨テスト項目を表示装置に出力する処理と、を実行させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、任意経路上を移動するエージェントの進行制御用ソフトウェアの開発に伴うテスト工数を削減すると共に、良好なソフトウェア品質も確保できる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態のテスト支援装置の機能構成例を示すブロック図である。
【図２】本実施形態のテスト支援装置のハードウェア構成例を示す図である。
【図３】本実施形態におけるオブジェクト間の関係例を示す図である。
【図４】本実施形態におけるオブジェクト情報（信号機クラス）の例を示す図である。
【図５】本実施形態におけるオブジェクト情報（設備間関係クラス）の例を示す図である。
【図６】本実施形態におけるオブジェクト描画の例を示す図である。
【図７】本実施形態におけるダイヤ情報の例を示す図である。
【図８】本実施形態におけるダイヤパタンの例を示す図である。
【図９】本実施形態における全組合せテスト項目のイメージ例を示す図である。
【図１０】本実施形態における全組合せテスト項目のデータ例を示す図である。
【図１１】本実施形態におけるユーザ定義テスト項目（具体情報）のイメージ例を示す図である。
【図１２】本実施形態におけるユーザ定義テスト項目（具体情報）のデータ例を示す図である。
【図１３】本実施形態におけるユーザ定義テスト項目（汎化情報）のデータ例を示す図である。
【図１４】本実施形態における全組合せテスト項目とユーザ定義テスト項目のマッピング例のイメージを示す図である。
【図１５】本実施形態における全組合せテスト項目とユーザ定義テスト項目をマッピングした評価テーブルの例を示す図である。
【図１６】本実施形態における推奨テスト項目の評価指標の概念例を示す図である。
【図１７】本実施形態における推奨テスト項目の導出ルール例を示す図である。
【図１８】本実施形態におけるテスト支援方法の手順例１を示すフロー図である。
【図１９】本実施形態におけるテスト支援方法の手順例２を示すフロー図である。
【図２０】本実施形態におけるテスト支援方法の手順例３を示すフロー図である。
【図２１】本実施形態におけるテスト支援方法の手順例４を示すフロー図である。
【図２２】本実施形態における画面例１を示す図である。
【図２３】本実施形態における画面例２を示す図である。
【図２４】本実施形態における画面例３を示す図である。
【図２５】本実施形態における画面例４を示す図である。
【図２６】本実施形態における画面例５を示す図である。
【発明を実施するための形態】
【００１４】
以下に本発明の実施形態について図面を用いて詳細に説明する。なお、本実施形態のテスト支援装置は、任意の経路たる「グラフ」上を移動する「エージェント」の進行／停止を「進行計画」をもとに制御する「制御器」の制御用ソフトウェア開発に際しての、テスト工程に適用して用いるものとする。ここで制御器は、グラフ、エージェント、進行計画の属性や状態を取得し、エージェントの進行／停止を判断するためのロジックを、ソフトウェアの実装として有する。
【００１５】
本実施形態では、上述のグラフ、エージェント、制御器（以下、「オブジェクト」と総称する）、および、進行計画を、ソフトウェアにおいてモデル化することを前提とする。また本実施形態では、以降、鉄道の運行管理システムを例に説明することとする。鉄道の運行管理システムでは、前述のグラフが「線路の形状」、エージェントが「列車」、制御器が「信号機」、進行計画が「運行ダイヤ」に、それぞれ相当する。
【００１６】
図１は本実施形態のテスト支援装置１００の機能構成例を示すブロック図であり、図２は本実施形態のテスト支援装置１００のハードウェア構成例を示す図である。以下に説明する各機能部１２１、１２２、１３１〜１３３は、テスト支援装置１００が実行するプログラム２０１によって実装される機能である。テスト支援装置１００は、線路の構成要素及び列車の情報を含むオブジェクト情報や、線路における列車の運行ダイヤが記述されたダイヤ情報に関するユーザ入力を、ユーザインターフェイスを介して受け付け、オブジェクト情報はオブジェクト情報格納部１１１に、ダイヤ情報はダイヤ情報格納部１１１２にそれぞれ格納するオブジェクト情報入力部１３１を備えている。
【００１７】
また、テスト支援装置１００は、列車が線路上で所定進路をとる場合のテスト要件に関するユーザ入力を、ユーザインターフェイスを介して受け付け、これをユーザ定義テスト項目のデータとしてユーザ定義テスト項目格納部１１４に格納する、ユーザ定義テスト項目入力部１３２を備えている。
【００１８】
また、テスト支援装置１００は、上述のオブジェクト情報とダイヤ情報に基づき、列車が線路上で取り得る全ての進路をテスト項目の候補とした、全組合せテスト項目のデータを生成し、これを全組合せテスト項目格納部１１３に格納する全組合せテスト項目生成部１２１を備えている。
【００１９】
また、テスト支援装置１００は、上述の全組合せテスト項目のデータとユーザ定義テスト項目のデータとを照合し、ユーザ定義テスト項目の包含度に応じて、全組合せテスト項目から推奨するテスト項目を特定し、当該特定した推奨テスト項目を表示装置２０５におけるユーザインターフェイス１０１に出力する推奨テスト項目生成部１２２を備えている。
【００２０】
また、本実施形態のテスト支援装置１００のハードウェア構成は以下の如くとなる。テスト支援装置１００は、ＣＰＵ２０２、メモリ２０３、外部記憶装置２０４、表示装置２０５、入力装置２０６、外部媒体入出力装置２０７、および、ネットワーク通信装置２０８、等を備えている。
【００２１】
このうちＣＰＵ２０２は、メモリ２０３に記憶されたプログラムを実行することによって、各種処理を実行する。メモリ２０３は、ＣＰＵ２０２のワークエリアとして機能し、プログラム及びプログラムの実行に必要なデータを記憶する。
【００２２】
ここで、プログラムとは、具体的には、全組合せテスト項目生成部１２１、推奨テスト項目生成部１２２、オブジェクト情報入力部１３１、ユーザ定義テスト項目入力部１３２、推奨テスト項目出力部１３３、に該当する機能を情報処理装置たるテスト支援装置１００に実装するものとなる。また、データとは、具体的には、オブジェクト情報格納部１１１、ダイヤ情報格納部１１２、全組合せテスト項目格納部１１３、ユーザ定義テスト項目格納部１１４、推奨テスト項目格納部１１５、プロジェクト情報格納部１１６、に格納する各情報に該当する。
【００２３】
外部記憶装置２０４は、例えば、ハードディスク装置等、各種データを永続的に格納する装置である。ここで、メモリ２０３に記憶するデータを外部記憶装置２０４に格納してもよいし、あるいは、外部記憶装置２０４に格納したデータをメモリ２０３に記憶してもよい。また、各プログラムは、予めメモリ２０３または外部記憶装置２０４に格納しても良いし、必要に応じて、利用可能な媒体を介して、他の装置からメモリ２０３または外部記憶装置２０４に導入してもよい。媒体とは、例えば、外部媒体入出力装置２０７に着脱可能な記憶媒体、または、ネットワーク通信装置２０８を指す。
【００２４】
表示装置２０５は、ディスプレイ等、プログラムの処理結果等を表示するユーザインターフェイスである。入力装置２０６は、キーボード及びマウス等、処理の実行指示、及び、処理に必要な情報の入力をユーザが行うためのユーザインターフェイスである。
【００２５】
また、外部媒体入出力装置２０７は、当該外部媒体入出力装置２０７に着脱可能で可搬性のある外部媒体と、メモリ２０３や外部記憶装置２０４に格納されているデータとの間で入出力を行う。また、ネットワーク通信装置２０８は、有線／無線にて外部装置との情報伝達を可能とする外部インターフェイスである。
【００２６】
続いて、テスト支援装置１００が上述した各情報格納部１１１〜１１６に格納する情報の構成例について説明する。図３は、オブジェクト情報格納部１１１に格納するオブジェクト情報（データ構造）の例である。ここでは、オブジェクトとして、設備の集合である駅クラス３０１、グラフ（線路）の最小単位である軌道回路クラス３０４、制御器に相当する信号機クラス３０５、グラフ（線路）の特定位置に配置される転轍機クラス３０６、等を挙げている。
【００２７】
また、軌道回路クラス３０４、信号機クラス３０５、転轍機クラス３０６、等が設備クラス３０２という概念で汎化されることを示す定義３１２や、駅３０１が設備３０２を有するという定義３１３を挙げている。さらに、オブジェクト間の関係情報を保持するオブジェクトの例として、設備間関係クラス３０３を挙げている。当該関係情報を定義することにより、軌道回路クラスの集合がグラフ（線路）として分析され得る。
【００２８】
図４は、図３に挙げたオブジェクトの詳細情報の例のうち信号機クラスに関するデータを示しており、また、図５は設備間関係クラスに関するデータを示しており、いずれもオブジェクト情報格納部１１１に格納されているデータとなる。
【００２９】
まず、信号機クラス３０５は、該当信号機を特定可能なユニークな文字列である「設備ＩＤ」４１１をキーに、信号機の名称である「設備名」４１２、信号機が所属する駅であり、駅クラス３０１と設備クラス３０２の関係の具体的な定義となる「所属駅」４１３、信号機が属性として保持する定数である「属性定数」４１４、ネットワーク通信装置２０８等を介して送受信される当該信号機の状態を格納する「状態変数」４１５、等の値を持つ。ここで、状態変数４１５では、物理世界における信号機の状態（故障有／故障無、等）や、指令員からの制御命令（ｏｆｆ／ｏｎ、等）を、ソフトウェアにおいて保持する。
【００３０】
また、図５の設備間関係クラス３０３は、当該関係の対象となる設備を特定するＩＤの組である「対象設備ＩＤ（１）」４２１、および、「対象設備ＩＤ（２）」４２２、当該関係の種別を示す「関係種別」４２３、当該関係が属性として保持する定数である「属性定数」４２４、ネットワーク通信装置２０８等を介して送受信される当該関係の状態を格納する「状態変数」４２５、等を持つ。
【００３１】
図６は、上述の図３〜５に例示したオブジェクト情報を、オブジェクト情報入力部１３１を介してユーザインターフェイス１０１に表示し、ユーザに編集させるため、描画可能なモデルとして表現した例である。この場合、駅単位の観点でオブジェクト情報を描画するモデル５０１では、駅クラス３０１に相当する描画パーツ５１１に対し、パーツ間を連結線パーツ５１２で結ぶことで、駅クラス間の関係を定義可能である。
【００３２】
また、駅内の観点でオブジェクト情報を描画するモデル５０２では、軌道回路クラス３０４に相当する描画パーツ５２２、信号機クラス３０５に相当する描画パーツ５２１、等により、軌道回路間の関係、軌道回路と信号機の関係、等を定義可能である。
【００３３】
図７は、ダイヤ情報格納部１１２に格納されているダイヤ情報６０１の例を示している。また、図８は、ダイヤ情報格納部１１２に格納されているダイヤパタン６０２の例を示している。図７に例示したダイヤ情報６０１は、列車が進行／停止する時間と位置を一覧した情報であり、当該ダイヤの対象となる列車を特定する文字列である「列車ＩＤ」６１１、当該ダイヤの時間情報となる「時刻」６１２、当該ダイヤの位置情報となる「駅」６１３、「番線」６１４、等を持つ。また、このダイヤ情報６０１は、ある時間、位置における列車の状況をパタン化した「ダイヤパタン」６０２を特定する文字列である「パタンＩＤ」６１５を持つ。さらに、ダイヤ情報６０１は、ある時間、位置において、対象列車６１１と進路上で競合関係にある列車の列車ＩＤである「競合列車ＩＤ」を持つ。
【００３４】
一方、図８に示すダイヤパタン６０２は、当該パタンを特定する文字列である「パタンＩＤ」６２１、当該パタンの名称である「パタン名」６２２、当該パタンが対象とする番線の種別（本線、副線、等）を示す「番線種別」６２３、当該パタンが対象とする列車進行の方向（上り、下り、等）を示す「方向」６２４、等を持つ。つまり、ダイヤパタン６０２は、ダイヤ情報６０１が含む、各列車の所定時刻および線路上の所定位置（例：本線、支線）における移動状況（例：停車、通過、折返、交差、上り、下り等）、の各データに基づいて、列車の移動種別（パタン名）ごとに線路上の所定位置たる番線と移動方向（上り、下り）について少なくとも定めてパタン化したパタン情報となる。
【００３５】
本実施形態のテスト支援装置１００は、こうしたダイヤ情報６０１及びダイヤパタン６０２を、全組合せテスト項目の生成や、推奨テスト項目の生成に用いる。ダイヤ情報６０１、および、ダイヤパタン６０２は、オブジェクト情報入力部１３１等を介してユーザインターフェイスからユーザが入力することも、ネットワーク通信装置２０８等を介して外部から取得することも可能である。
【００３６】
図９は、全組合せテスト項目生成部１２１が生成し、全組合せテスト項目格納部１１３に格納する、全組合せテスト項目７０２のデータ（図１０）を画面表示する場合のイメージ７０１である。全組合せテスト項目生成部１２１は、オブジェクト情報格納部１１１に格納されたオブジェクト情報を解析することで、上述のイメージ７０１にて示すように、軌道回路の並び、信号機の位置、等を網羅的に再現することが可能である。
【００３７】
また、全組合せテスト項目生成部１２１は、ダイヤ情報格納部１１２に格納されたダイヤ情報を解析することで、イメージ７０１に示すように、列車が取り得る進路７１２、および、特定の位置（番線）での動き７１１、等を再現することが可能である。ここで、全組合せテスト項目７０２は、想定し得る全ての「起点」７２２から、想定し得る全ての「進路（軌道回路のパス）」７２３を網羅的に取得した一覧である。本例では、起点７２２と進路７２３の組を特定する文字列である「全組合せテスト項目ＩＤ」７２１を付加している。
【００３８】
図１１は、ユーザ定義テスト項目格納部１１４に格納する、ユーザ定義テスト項目８０２のデータ（図１２）を画面表示する場合のイメージ図である。本例において、テスト支援装置１００は、ユーザに対し、ユーザ定義テスト項目入力部１３２において、イメージ８０１に示すような描画形式、もしくは、図１２のユーザ定義テスト項目８０２に示すような表形式で、ユーザ定義テスト項目のユーザ入力を受け付ける。
【００３９】
図１２にて示すように、ユーザ定義テスト項目８０２は、ユーザ定義テスト項目を一意に特定する文字列である「ユーザ定義テスト項目ＩＤ」８２１、当該ユーザ定義テスト項目がテストの対象とする制御器である「制御対象」８２２、当該ユーザ定義テスト項目を実行・確認するために必要な列車の動きを示す「起点」８２３、「進路」８２５、および、設備等の条件を示す「付帯条件」８２４、当該ユーザ定義テスト項目において、項目８２３〜８２５の各条件を実行した後に遷移すべき設備等の状態を示す「確認項目」８２６、等を持つ。ここで、ユーザ定義テスト項目入力部１３２は、ユーザ定義テスト項目入力のユーザ支援情報として、オブジェクト情報格納部１１１やダイヤ情報格納部１１２から、情報を取得し、ユーザインターフェイス１０１にて表示すれば好適である。
【００４０】
図１３は、推奨テスト項目生成部１２２が使用するために、ユーザが入力したユーザ定義テスト項目８０２から特定の駅や設備の情報を抽象化した、ユーザ定義テスト項目汎化情報９０１を示している。本例では、ユーザ定義テスト項目汎化情報９０１は、ユーザ定義テスト項目８０２と同等の項目を持つものとする。
【００４１】
こうしたユーザ定義テスト項目汎化情報９０１は、推奨テスト項目生成部１２２がオブジェクト情報格納部１１１やダイヤ情報１１２の各情報を参照することで、特定の設備や条件を、類似の他位置に転用可能な条件に変換したものとなる。ユーザ定義テスト項目８０２とユーザ定義テスト項目汎化情報９０１の例では、例えば、制御対象８２２の「信号機４Ｒ」は、当該オブジェクト情報から、制御対象９１２の種別を表す定義として制御対象９１２の「出発信号機」に、起点８２３の「（ｅ）」は、当該オブジェクト情報から、制御対象９１２との位置関係を表す定義として制御対象９１３の「制御対象前の軌道回路」に、それぞれ変換可能である。いずれにしても、ユーザ定義テスト項目８０２のデータを、所定形状の線路における各構成要素の役割属性（例：出発信号機、入場信号機等）と一般的な配置位置の規定（例：出発、入場、駅間）と、役割属性を備えた構成要素に対応付いた列車の移動パタン（例：出発、入場、駅間）の規定とに照合して、ユーザ定義テスト項目８０２の各データを上述の各規定において対応する値に更新して汎化したものとなる。
【００４２】
図１４は、推奨テスト項目生成部１２２が、上述の全組合せテスト項目７０２をなす各テスト項目（一意にテスト項目ＩＤ１０２１が付与されている）と各ユーザ定義テスト項目汎化情報９０１（情報毎に一意にユーザ定義テスト項目汎化情報ＩＤ１０２２が付与されている）とを対比することで、全組合せテスト項目７０２をなす各テスト項目を評価する概念のイメージ図である。ここで、図１５に例示する評価テーブル１００２は、横軸に全組合せテスト項目７０２をなす各テスト項目のテスト項目ＩＤ１０２１を、縦軸に各ユーザ定義テスト項目汎化情報９０１のユーザ定義テスト項目汎化情報ＩＤ１０２２を、それぞれマトリクス化したものであり、推奨テスト項目生成部１２２が、各テスト項目ＩＤ１０２１に対応したテスト項目において、あるユーザ定義テスト項目汎化情報ＩＤ１０２２に対応したユーザ定義テスト項目汎化情報９１０を再現可能であると場合に、表の該当箇所に所定の評価ポイントを設定する。
【００４３】
本例において上述の評価ポイントとしては、ユーザ定義テスト項目汎化情報が合致した際に、該当テスト項目に対し１ポイント加算としているが、別途条件に応じて評価ポイントの重み付けを行うとしてもよい。
【００４４】
図１６は、プロジェクト情報格納部１１６が、開発プロジェクトの状況を示す指標として格納している、バグ曲線１１０１の例を示している。また、図１７はこのバグ曲線１１１０１を踏まえた推奨テスト項目の導出ルール１１０２の説明図である。
【００４５】
ここでバグ曲線１１０１とは、開発プロジェクトの期間１１１１に対してバグ出現数１１１２をプロットしたものであり、一般に、開発プロジェクトの序盤は傾きが小さく、中盤に傾きが大きくなり、終盤に傾きが小さくなることが知られている。
【００４６】
本例では、バグの多い開発期間の序盤では、テスト項目とテストで確認したい事象（以下、テスト要件）が１：１に近い方が原因分析し易く、逆に、バグの収束した開発期間の終盤では、テスト効率を重視し、少ないテスト項目でより多くのテスト要件を確認できることが望ましいという仮説のもと、推奨テスト項目生成部１２２により、バグの収束度合いと連動した推奨テスト項目の生成を実行している。そのため図１７でも示すように、導出ルール１１０２は、バグ出現数やバグ収束率に閾値（区間１１２１）を設定し、閾値に対するバグ出現数やバグ収束率の現状値をもとに、推奨するテスト項目を切り替えるルール１１２２が設定されたテーブルとなっている。なお、プロジェクト情報格納部１１６が格納する上述の情報は、ユーザインターフェイス１０１、もしくは、他の入力手段を用いて、プロジェクト情報格納部１１６に格納されるものとする。
【００４７】
以下、本実施形態におけるテスト支援方法の実際手順について図に基づき説明する。以下で説明するテスト支援方法に対応する各種動作は、テスト支援装置１００が実行するプログラム２０１によって実現される。そして、このプログラム２０１は、以下に説明される各種の動作を行うためのコードから構成されている。
【００４８】
図１８は、オブジェクト情報入力部１３１の処理フローであり、図２２は、オブジェクト情報入力部１３１がユーザ入力を受け付ける際に利用するユーザインターフェイス（画面）１０１での画面例である。ここで、主画面１６０１は、描画に用いるモデル部品１６３１を備えるフレーム１６１１と、描画を行うフレーム１６１２に分割される。ユーザは、信号機や軌道回路を表すモデル部品を用いて、オブジェクト情報のもととなる線路の形状や信号機の配置の描画を行う。ユーザが、登録ボタン１６１３を押下することで、描画内容がオブジェクト情報として、オブジェクト情報格納部１１１に格納される。
【００４９】
また、ユーザが、任意のモデル部品を選択中１６３２に、プロパティボタン１６１４を押下することで、オブジェクト情報入力部１３１は、選択中のモデル部品の詳細情報を編集する副画面１６０２（図２３）を起動する。ユーザは、この副画面１６０２において、オブジェクト情報３０５に相当する属性値１６２１を編集可能であり、ユーザが登録ボタン１６２２を押下することで編集が終了され、編集結果がオブジェクト情報として、オブジェクト情報格納部１１１に格納される。
【００５０】
こうした構成において、オブジェクト情報入力部１３１は、ユーザがユーザインターフェイス１０１を介して入力したオブジェクト情報としての描画情報および付帯情報（図２２、２３でユーザから入力されたもの）を取得し、各描画情報（モデル部品等）に紐付けされたオブジェクトの情報（記憶装置にてテスト支援装置１００が予め保持）を抽出する（１２０１）。
【００５１】
次に、オブジェクト情報入力部１３１は、個々のオブジェクトに対して、上述の描画情報や付帯情報に応じて、オブジェクト情報格納部１１１のオブジェクト情報を追加／更新する（１２０３）。次に、オブジェクト情報入力部１３１は、当該オブジェクトと他オブジェクトの関係情報を、描画情報や付帯情報に応じて、オブジェクト情報格納部１１１のオブジェクト情報において追加／更新する（１２０４）。なお、テスト支援装置１００は、オブジェクト情報を予め保持しており、それをそのまま処理に利用する場合、こうしたオブジェクト情報の取得や更新に関する処理は不要となる。
【００５２】
図１９は、ユーザ定義テスト項目入力部１３２の処理フローであり、図２４は、ユーザ定義テスト項目入力部１３２がユーザ入力を受け付ける際に利用するユーザインターフェイス（画面）１０１での画面例である。ここで主画面１７０１には、オブジェクト情報入力部１３１を介して入力されたオブジェクト情報が、ユーザ定義テスト項目入力部１３２により描画形式１７１１で表示される。ユーザは、描画や副画面１７０２（図２５）を用い、ユーザ定義テスト項目８０２を定義する。ここで、副画面１７０２では、ユーザ定義テスト項目８０２に相当する属性値１７２１を編集可能であり、ユーザが登録ボタン１７２２を押下することで編集が終了され、これを受けたユーザ定義テスト項目入力部１３２が、編集結果をユーザ定義テスト項目としてユーザ定義テスト項目格納部１１４に格納する。
【００５３】
この場合、ユーザ定義テスト項目入力部１３２は、ユーザがユーザインターフェイス１０１を介して入力した描画情報１７１１（図２４）および付帯情報１７２１（図２５）を取得し、各描画情報（信号機や転轍機等を示すモデル部品等）や付帯情報１７２１に紐付けされたユーザ定義テスト項目の情報（記憶装置にてテスト支援装置１００が予め保持）を抽出する（１３０２）。次に、ユーザ定義テスト項目入力部１３２は、ユーザ定義テスト項目８０２とオブジェクト情報１１１をもとに、ユーザ定義テスト項目汎化情報９０１を生成する（１３０３）。こうしたユーザ定義テスト項目汎化情報９０１を生成する手順については既に述べたとおりである。
【００５４】
図２０は、全組合せテスト項目生成部１２１の処理フローである。まず、全組合せテスト項目生成部１２１は、図１８と同様の処理により、オブジェクト情報格納部１１１を更新する（１４０１）。次に、全組合せテスト項目生成部１２１は、テスト項目の基点となる任意の軌道回路に対して、オブジェクト情報格納部１１１とダイヤ情報格納部１１２の情報をもとに、軌道回路のパスの候補を導出し、全組合せテスト項目格納部１１３に登録する（１４０３）。
【００５５】
図２１は、推奨テスト項目生成部１２２の処理フローである。まず、推奨テスト項目生成部１２２は、全組合せテスト項目と、ユーザ定義テスト項目汎化情報の任意の組に対して、双方を対比し、当該全組合せテスト項目において、当該ユーザ定義テスト項目汎化情報が再現可能であれば、当該の組に対して評価ポイントを加算する（１５０３）。評価ポイントの加算手法については図１４に基づき既に上述したように、推奨テスト項目生成部１２２が、全組合せテスト項目７０２をなす各テスト項目（一意にテスト項目ＩＤ１０２１が付与されている）と各ユーザ定義テスト項目汎化情報９０１（情報毎に一意にユーザ定義テスト項目汎化情報ＩＤ１０２２が付与されている）とを対比することで、あるユーザ定義テスト項目汎化情報ＩＤ１０２２に対応したユーザ定義テスト項目汎化情報９１０を再現可能であると場合に、表の該当箇所に所定の評価ポイントを設定する。
【００５６】
全ての組に対する評価が終了後、推奨テスト項目生成部１２２は、評価結果に対し、導出ルール１１０２に従って、推奨テスト項目を導出し、推奨テスト項目格納部１１５に格納する（１５０４）。具体的には、推奨テスト項目生成部１２２は、プロジェクト情報格納部１１６が保持している、開発プロジェクトの状況を示す指標と、上述のバグ曲線１１１０１を踏まえた推奨テスト項目の導出ルール１１０２（図１７）と、ステップ１５０３でポイントを加算して生成した評価テーブル１００２（図１５）とに基づいて、指標が示す開発段階に該当する導出ルールを導出ルール１１０２から特定し、該当導出ルールが示す評価ポイントの程度（例：最大、平均、最小）に合致するテスト項目を、上述の評価テーブル１００２をなす各テスト項目より特定し、これを推奨テスト項目とする。
【００５７】
図２６は、推奨テスト項目出力部１３３にて表示されるユーザインターフェイス（画面）１０１の例である。主画面１８０１には、推奨テスト項目生成部１２２の出力である推奨結果１８２１（評価テーブル１００２のサマリに相当）、適用中の導出ルール１８３１（導出ルール１１０２から抽出）、および、オブジェクト情報の描画形式１８１１に対する、推奨テスト項目の内容に関する強調表示１８１１、等を表示する。
【００５８】
本例にて、ユーザが推奨ボタン１８２２を押下すると、テスト支援装置１００は、選択中の推奨テスト項目の導出ルール１８３１に従い、推奨テスト項目の算出を再実行し、推奨結果１８２１にて表示することとなる。また、ユーザがルール変更ボタン１８３２を押下すると、テスト支援装置１００は、副画面におけるユーザ選択を受け付ける等の処理を介し、推奨テスト項目の導出ルール１８３１の変更を行う。さらに、テスト支援装置１００と、上述した制御用ソフトウェアのテスト実行環境とを予め連携させておくことで、ユーザがテスト実行ボタン１８４１を押下すると、これを受けたテスト支援装置１００が制御用ソフトウェアのテスト実行環境に対し、上述の推奨テスト項目に沿ったテストの実行指示を行うことが出来る。
【００５９】
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【００６０】
こうした本実施形態によれば、任意経路上を移動するエージェントの進行制御用ソフトウェアの開発に伴うテスト工数を削減すると共に、良好なソフトウェア品質も確保可能となる。
【００６１】
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態のテスト支援装置において、記憶装置は、進行制御用ソフトウェアの現在の開発状況を示す指標と、ソフトウェアの開発状況に応じて推奨されるテスト項目について、包含度に対応付けて定めた導出ルールとを、プロジェクト情報として格納するものであり、この場合、演算装置は、プロジェクト情報が含む指標を導出ルールに照合し、該当導出ルールが示す包含度に基づいて、現在の開発状況で推奨する推奨テスト項目を特定し、当該特定した推奨テスト項目を表示装置に出力する処理を実行するものである、としてもよい。これによれば、進行制御用ソフトウェアの現在の開発状況に応じて、必要な精度は確保した上で無駄のないテスト項目を特定することが出来る。
【００６２】
また、上述のテスト支援装置において、記憶装置は、ダイヤ情報が含む、各エージェントの所定時刻および経路上の所定位置における移動状況の各データに基づいて、エージェントの移動種別ごとに経路上の所定位置と移動方向について少なくとも定めてパタン化したダイヤパタン情報を更に格納するものであり、この場合、演算装置は、全組合せテスト項目のデータを生成する処理において、オブジェクト情報及びダイヤ情報と、ダイヤパタン情報が含む全ダイヤパタンとに基づき、エージェントが経路上で取り得る全ての進路を特定してテスト項目の候補とし、ユーザ定義テスト項目のデータを取得する処理において、ユーザによるテスト要件の入力を受け付ける際、ダイヤパタン情報を表示装置に出力して入力支援を行うものである、としてもよい。これによれば、ダイヤ情報を解析して処理を行う場合にくらべ、パタン化したダイヤの情報に基づいた、効率的でユーザビリティの良好な処理が可能となる。
【００６３】
また、上述のテスト支援装置１００において、演算装置は、ユーザ定義テスト項目のデータを、所定形状の経路における各構成要素の役割属性と一般的な配置位置の規定と、役割属性を備えた構成要素に対応付いたエージェントの移動パタンの規定とに照合して、ユーザ定義テスト項目の各データを各規定において対応する値に更新して汎化し、ユーザ定義テスト項目汎化情報とする処理を更に実行し、推奨テスト項目の特定と出力を行う処理において、全組合せテスト項目のデータとユーザ定義テスト項目汎化情報とを照合し、ユーザ定義テスト項目汎化情報の包含度に応じて、全組合せテスト項目から推奨するテスト項目を特定し、当該特定した推奨テスト項目を表示装置に出力するものである、としててもよい。これによれば、推奨テスト項目を特定する際の処理効率が向上し、テスト支援方法全体の効率も向上する。
【符号の説明】
【００６４】
１００  テスト支援装置
１０１  ユーザインターフェイス
１１１  オブジェクト情報格納部
１１２  ダイヤ情報格納部
１１３  全組合せテスト項目格納部
１１４  ユーザ定義テスト項目格納部
１１５  推奨テスト項目格納部
１１６  プロジェクト情報格納部
１２１  全組合せテスト項目生成部
１２２  推奨テスト項目生成部
１３１  オブジェクト情報入力部
１３２  ユーザ定義テスト項目入力部
１３３  推奨テスト項目出力部
２０１  プログラム
２０２  ＣＰＵ（演算装置）
２０３  メモリ
２０４  外部記憶装置（記憶装置）
２０５  表示装置
２０６  入力装置
２０７  外部媒体出力装置
２０８  ネットワーク通信装置
【図１】
2014170285.tif 000003
【図２】
2014170285.tif 000004
【図３】
2014170285.tif 000005
【図４】
2014170285.tif 000006
【図５】
2014170285.tif 000007
【図６】
2014170285.tif 000008
【図７】
2014170285.tif 000009
【図８】
2014170285.tif 000010
【図９】
2014170285.tif 000011
【図１０】
2014170285.tif 000012
【図１１】
2014170285.tif 000013
【図１２】
2014170285.tif 000014
【図１３】
2014170285.tif 000015
【図１４】
2014170285.tif 000016
【図１５】
2014170285.tif 000017
【図１６】
2014170285.tif 000018
【図１７】
2014170285.tif 000019
【図１８】
2014170285.tif 000020
【図１９】
2014170285.tif 000021
【図２０】
2014170285.tif 000022
【図２１】
2014170285.tif 000023
【図２２】
2014170285.tif 000024
【図２３】
2014170285.tif 000025
【図２４】
2014170285.tif 000026
【図２５】
2014170285.tif 000027
【図２６】
2014170285.tif 000028