(57)【特許請求の範囲】
【請求項１】
対象物を制御するためのソフトウェアの開発段階において、前記対象物が設計仕様を満足しているかを検証するためテストケースを抽出するための抽出装置であって、
前記ソフトウェアは複数の部品を含み、
前記対象物の取り得る状態と、発生したイベントに対して前記取り得る状態が遷移する先の状態とが予め関連付けられた情報、および前記対象物の取り得る状態のうちの前記対象物の動作初期状態を含む、前記対象物の設計仕様に基づく第１の状態遷移情報を記憶するための状態遷移情報記憶部と、
前記ソフトウェアの開発段階において、前記対象物の機能ごとに、当該機能に属する前記取り得る状態および前記対象物の機能を実現するための前記部品の前記設計仕様に基づく開発が完了したか否かを示す機能完成情報を記憶するための機能完成情報記憶部と、
前記第１の状態遷移情報の中から、前記機能完成情報に基づき、前記開発の完了状況において前記動作初期状態から遷移可能な状態で構成される第２の状態遷移情報を生成するための状態遷移情報再構成部と、
前記対象物が前記設計仕様を満足しているかを検証するために予め設定されている情報であるテストケースごとに、前記第１の状態遷移情報に基づくテストケース情報を記憶するためのテストケース情報記憶部と、
前記開発段階においてテスト可能なテストケース情報を、前記テストケース情報記憶部から抽出するためのテストケース抽出部とを備え、
前記テストケース情報は、前記テストケースの開始時点における前記対象物の状態を示すテスト開始状態から、前記テストケースにおいて発生した前記イベントによって前記対象物が遷移する最終到達状態までの状態の系列として、前記テスト開始状態から前記最終到達状態までの取り得る状態の遷移を特定する情報を含み、
前記状態遷移情報再構成部は、
前記第１の状態遷移情報に含まれる前記取り得る状態の中から、前記機能完成情報に基づき、未完成の前記ソフトウェアの部品と対応する前記対象物の機能に属する前記取り得る状態を削除し、完成した機能に属する前記取り得る状態のみに基づく状態遷移情報を生成するための手段と、
前記完成した機能に属する前記取り得る状態のみに基づく状態遷移情報の中から、前記動作初期状態から到達可能な前記取り得る状態を抽出するための手段とを含み、
前記テストケース抽出部は、前記テストケース情報記憶部に記憶されるテストケース情報の中から、前記テスト開始状態から前記最終到達状態まで順に遷移するすべての取り得る状態が、前記状態遷移情報再構成部によって前記動作初期状態から到達可能として抽出された前記取り得る状態であるテストケース情報を、テスト可能なテストケース情報として抽出する、テストケース抽出装置。
【請求項２】
ユーザが、前記設計仕様の変更に応じて、前記状態遷移情報記憶部に記憶された前記状態遷移情報を書き換えるための手段をさらに備える、請求項１記載のテストケース抽出装置。
【請求項３】
前記ユーザが、前記開発の完了状況の変更に応じて、前記機能完成情報記憶部に記憶された前記機能完成情報を書き換えるための手段をさらに備える、請求項１記載のテストケース抽出装置。
【請求項４】
前記ユーザが、前記テストケースの変更に応じて、前記テストケース情報記憶部に記憶された前記テストケース情報を書き換えるための手段をさらに備える、請求項１記載のテストケース抽出装置。
【請求項５】
対象物が設計仕様を満足しているかを検証するために予め設定されている第１のテストケースの中から、前記対象物を制御するためのソフトウェアの開発段階において実行可能な第２のテストケースを抽出する処理を、演算部および記憶部を有するコンピュータに実行させるためのプログラムであって、
前記ソフトウェアは複数の部品を含み、
前記演算部が、前記対象物の取り得る状態と、発生したイベントに対して前記取り得る状態が遷移する先の状態とが予め関連付けられた情報、および前記対象物の取り得る状態のうちの前記対象物の動作初期状態を含む、前記対象物の設計仕様に基づく第１の状態遷移情報を前記記憶部から読み込むステップと、
前記演算部が、前記開発段階において、前記対象物の機能ごとに、当該機能に属する前記取り得る状態および前記対象物の機能を実現するための前記部品の前記設計仕様に基づく開発が完了したか否かを示す機能完成情報を前記記憶部から読み込むステップと、
前記演算部が、前記第１の状態遷移情報の中から、前記機能完成情報に基づき、前記開発の完了状況において前記動作初期状態から遷移可能な状態で構成される第２の状態遷移情報を生成するステップと、
前記演算部が、前記第１のテストケースごとに、前記第１の状態遷移情報に基づく第１のテストケース情報を前記記憶部から読み込むステップと、
前記演算部が、前記開発段階においてテスト可能なテストケース情報を、前記読み込まれた第１のテストケース情報から第２のテストケース情報として抽出するステップとを備え、
前記第１のテストケース情報は、前記第１のテストケースの開始時点における前記対象物の状態を示すテスト開始状態から、前記第１のテストケースにおいて発生した前記イベントによって前記対象物が遷移する最終到達状態までの状態の系列として、前記テスト開始状態から前記最終到達状態までの取り得る状態の遷移を特定する情報を含み、
前記第２の状態遷移情報を生成するステップは、
前記第１の状態遷移情報に含まれる前記取り得る状態の中から、前記機能完成情報に基づき、未完成の前記ソフトウェアの部品と対応する前記対象物の機能に属する前記取り得る状態を削除し、完成した機能に属する前記取り得る状態のみに基づく状態遷移情報を生成するステップと、
前記完成した機能に属する前記取り得る状態のみに基づく状態遷移情報の中から、前記動作初期状態から到達可能な前記取り得る状態を抽出するステップとを含み、
前記第２のテストケース情報を抽出するステップでは、前記記憶部に記憶される第１のテストケース情報の中から、前記テスト開始状態から前記最終到達状態まで順に遷移するすべての取り得る状態が、前記第２の状態遷移情報を生成するステップによって前記動作初期状態から到達可能として抽出された前記取り得る状態であるテストケース情報を、テスト可能な第２のテストケース情報として抽出する、テストケース抽出プログラム。
【請求項６】
請求項５記載のテストケース抽出プログラムを格納したコンピュータ読み取り可能な記憶媒体。
【請求項７】
対象物が設計仕様を満足しているかを検証するために予め設定されている第１のテストケースの中から、前記対象物を制御するためのソフトウェアの開発段階において実行可能な第２のテストケースを抽出する方法であって、
前記ソフトウェアは複数の部品を含み、
前記対象物の取り得る状態と、発生したイベントに対して前記取り得る状態が遷移する先の状態とが予め関連付けられた情報、および前記対象物の取り得る状態のうちの前記対象物の動作初期状態を含む、前記対象物の設計仕様に基づく第１の状態遷移情報を読み込むステップと、
前記開発段階において、前記対象物の機能ごとに、当該機能に属する前記取り得る状態および前記対象物の機能を実現するための前記部品の前記設計仕様に基づく開発が完了したか否かを示す機能完成情報を読み込むステップと、
前記第１の状態遷移情報の中から、前記機能完成情報に基づき、前記開発の完了状況において前記動作初期状態から遷移可能な状態で構成される第２の状態遷移情報を生成するステップと、
前記第１のテストケースごとに、前記第１の状態遷移情報に基づく第１のテストケース情報を読み込むステップと、
前記開発段階においてテスト可能なテストケース情報を、前記読み込まれた第１のテストケース情報から第２のテストケース情報として抽出するステップとを備え、
前記第１のテストケース情報は、前記第１のテストケースの開始時点における前記対象物の状態を示すテスト開始状態から、前記第１のテストケースにおいて発生した前記イベントによって前記対象物が遷移する最終到達状態までの状態の系列として、前記テスト開始状態から前記最終到達状態までの取り得る状態の遷移を特定する情報を含み、
前記第２の状態遷移情報を生成するステップは、
前記第１の状態遷移情報に含まれる前記取り得る状態の中から、前記機能完成情報に基づき、未完成の前記ソフトウェアの部品と対応する前記対象物の機能に属する前記取り得る状態を削除し、完成した機能に属する前記取り得る状態のみに基づく状態遷移情報を生成するステップと、
前記完成した機能に属する前記取り得る状態のみに基づく状態遷移情報の中から、前記動作初期状態から到達可能な前記取り得る状態を抽出するステップとを含み、
前記第２のテストケース情報を抽出するステップでは、前記読み込まれた第１のテストケース情報の中から、前記テスト開始状態から前記最終到達状態まで順に遷移するすべての取り得る状態が、前記第２の状態遷移情報を生成するステップによって前記動作初期状態から到達可能として抽出された前記取り得る状態であるテストケース情報を、テスト可能な第２のテストケース情報として抽出する、テストケース抽出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ応用製品の開発において、その動作試験に使用される技術に関する。特に、動作試験に使用されるテストケースを抽出する装置、テストケースを抽出するプログラム、テストケースを抽出するプログラムが格納された記憶媒体およびテストケースを抽出する方法に関する。
【背景技術】
【０００２】
携帯電話端末や産業機器、家電製品などのコンピュータ応用製品に内蔵されるマイクロコンピュータを制御するためのソフトウェアを総称して、組み込みソフトウェアと呼ぶ。
【０００３】
昨今、携帯電話端末に代表されるコンピュータ応用製品の高機能化、高性能化にともなう組み込みソフトウェアの大規模化が急速に進んでいる。その一方で、市場の競争激化による、組み込みソフトウェアの開発期間の短縮化が要請されている。そのため、高品質なソフトウェアを、効率的に開発するための取り組みが広く行なわれている。
【０００４】
ソフトウェアの開発段階においては、ソフトウェアが設計仕様にしたがって、正しく動作しているかをテストするための情報（以下、テストケースと呼ぶ）が作成される。特許文献１では、完成したソフトウェアの動作確認がもれなく効率的に実施できるようなテストケースを自動的に作成する装置について記載されている。
【特許文献１】特開平７−２５３９０５号公報明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１で開示されるテストケース作成装置は、ソフトウェアの部品の完成状況を考慮してテストケースを作成しない。このため、作成されたテストケースには、未完成の部品に関するテストケースも含まれる。未完成の部品がテスト対象に含まれる場合、そのソフトウェアに対するテストを実行したとしても、その結果には信頼性がない。また、不具合が検出された場合であっても、部品が完成していないことによるものなのか、プログラムミスなどのソフトウェア中の誤りによるものなのか分からず、分析に時間を要していた。
【０００６】
このため、すべてのソフトウェア開発が完了してから、テストを開始する必要があり、開発からテスト終了まで、長い期間が必要となる。
【０００７】
本発明は、上記のような問題を解決するためになされたものであって、その目的は、作成したテストケースから、ソフトウェアの部品の完成状況を考慮したテストケースを抽出する装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明の１つの局面に従うと、対象物を制御するためのソフトウェアの開発段階において、対象物が設計仕様を満足しているかを検証するためテストケースを抽出するための抽出装置であって、ソフトウェアは複数の部品を含み、対象物の取り得る状態と、発生したイベントに対して取り得る状態が遷移する先の状態とが予め関連付けられた情報、および対象物の取り得る状態のうちの対象物の動作初期状態を含む、対象物の設計仕様に基づく第１の状態遷移情報を記憶するための状態遷移情報記憶部と、対象物を制御するためのソフトウェアの開発段階において、対象物の機能ごとに、当該機能に属する取り得る状態および対象物の機能を実現するための部品の設計仕様に基づく開発が完了したか否かを示す機能完成情報を記憶するための機能完成情報記憶部と、第１の状態遷移情報の中から、機能完成情報に基づき、開発の完了状況において動作初期状態から遷移可能な状態で構成される第２の状態遷移情報を生成するための状態遷移情報再構成部と、対象物が設計仕様を満足しているかを検証するために予め設定されている情報であるテストケースごとに、第１の状態遷移情報に基づくテストケース情報を記憶するためのテストケース情報記憶部と、開発段階においてテスト可能なテストケース情報を、テストケース情報記憶部から抽出するためのテストケース抽出部とを備える。テストケース情報は、テストケースの開始時点における対象物の状態を示すテスト開始状態から、テストケースにおいて発生したイベントによって対象物が遷移する最終到達状態までの状態の系列として、テスト開始状態から最終到達状態までの取り得る状態の遷移を特定する情報を含む。状態遷移情報再構成部は、第１の状態遷移情報に含まれる取り得る状態の中から、機能完成情報に基づき、未完成のソフトウェアの部品と対応する対象物の機能に属する取り得る状態を削除し、完成した機能に属する取り得る状態のみに基づく状態遷移情報を生成するための手段と、完成した機能に属する取り得る状態のみに基づく状態遷移情報の中から、動作初期状態から到達可能な取り得る状態を抽出するための手段とを含む。テストケース抽出部は、テストケース情報記憶部に記憶されるテストケース情報の中から、テスト開始状態から最終到達状態まで順に遷移するすべての取り得る状態が、状態遷移情報再構成部によって動作初期状態から到達可能として抽出された取り得る状態であるテストケース情報を、テスト可能なテストケース情報として抽出する。
【００１０】
好ましくは、ユーザが、設計仕様の変更に応じて、状態遷移情報記憶部に記憶された状態遷移情報を書き換えるための手段をさらに備える。
【００１１】
好ましくは、ユーザが、開発の完了状況状況の変更に応じて、機能完成情報記憶部に記憶された機能完成情報を書き換えるための手段をさらに備える。
【００１２】
好ましくは、ユーザが、テストケースの変更に応じて、テストケース情報記憶部に記憶されたテストケース情報を書き換えるための手段をさらに備える。
【００１３】
本発明の他の局面に従うと、対象物が設計仕様を満足しているかを検証するために予め設定されている第１のテストケースの中から、対象物を制御するためのソフトウェアの開発段階において実行可能な第２のテストケースを抽出する処理を、演算部および記憶部を有するコンピュータに実行させるためのプログラムであって、ソフトウェアは複数の部品を含み、演算部が、対象物の取り得る状態と、発生したイベントに対して取り得る状態が遷移する先の状態とが予め関連付けられた情報、および対象物の取り得る状態のうちの対象物の動作初期状態を含む、対象物の設計仕様に基づく第１の状態遷移情報を記憶部から読み込むステップと、演算部が、開発段階において、対象物の機能ごとに、当該機能に属する取り得る状態および対象物の機能を実現するための部品の設計仕様に基づく開発が完了したか否かを示す機能完成情報を記憶部から読み込むステップと、演算部が、第１の状態遷移情報の中から、機能完成情報に基づき、開発の完了状況において動作初期状態から遷移可能な状態で構成される第２の状態遷移情報を生成するステップと、演算部が、第１のテストケースごとに、第１の状態遷移情報に基づく第１のテストケース情報を記憶部から読み込むステップと、演算部が、開発段階においてテスト可能なテストケース情報を、読み込まれた第１のテストケース情報から第２のテストケース情報として抽出するステップとを備える。第１のテストケース情報は、第１のテストケースの開始時点における対象物の状態を示すテスト開始状態から、第１のテストケースにおいて発生したイベントによって対象物が遷移する最終到達状態までの状態の系列として、テスト開始状態から最終到達状態までの取り得る状態の遷移を特定する情報を含む。第２の状態遷移情報を生成するステップは、第１の状態遷移情報に含まれる取り得る状態の中から、機能完成情報に基づき、未完成のソフトウェアの部品と対応する対象物の機能に属する取り得る状態を削除し、完成した機能に属する取り得る状態のみに基づく状態遷移情報を生成するステップと、完成した機能に属する取り得る状態のみに基づく状態遷移情報の中から、動作初期状態から到達可能な取り得る状態を抽出するステップとを含む。第２のテストケース情報を抽出するステップでは、記憶部に記憶される第１のテストケース情報の中から、テスト開始状態から最終到達状態まで順に遷移するすべての取り得る状態が、第２の状態遷移情報を生成するステップによって動作初期状態から到達可能として抽出された取り得る状態であるテストケース情報を、テスト可能な第２のテストケース情報として抽出する。
【００１４】
本発明のさらに他の局面に従うと、上記テストケース抽出プログラムを格納したコンピュータ読み取り可能な記憶媒体を提供する。
【００１５】
本発明のさらに他の局面に従うと、対象物が設計仕様を満足しているかを検証するために予め設定されている第１のテストケースの中から、対象物を制御するためのソフトウェアの開発段階において実行可能な第２のテストケースを抽出する方法であって、ソフトウェアは複数の部品を含み、対象物の取り得る状態と、発生したイベントに対して取り得る状態が遷移する先の状態とが予め関連付けられた情報、および対象物の取り得る状態のうちの対象物の動作初期状態を含む、対象物の設計仕様に基づく第１の状態遷移情報を読み込むステップと、開発段階において、対象物の機能ごとに、当該機能に属する取り得る状態および対象物の機能を実現するための部品の設計仕様に基づく開発が完了したか否かを示す機能完成情報を読み込むステップと、第１の状態遷移情報の中から、機能完成情報に基づき、完成状況において動作初期状態から遷移可能な状態で構成される第２の状態遷移情報を生成するステップと、第１のテストケースごとに、第１の状態遷移情報に基づく第１のテストケース情報を読み込むステップと、開発段階においてテスト可能なテストケース情報を、読み込まれた第１のテストケース情報から第２のテストケース情報として抽出するステップとを備え、第１のテストケース情報は、第１のテストケースの開始時点における対象物の状態を示すテスト開始状態から、第１のテストケースにおいて発生したイベントによって対象物が遷移する最終到達状態までの状態の系列として、テスト開始状態から最終到達状態までの取り得る状態の遷移を特定する情報を含む。第２の状態遷移情報を生成するステップは、第１の状態遷移情報に含まれる取り得る状態の中から、機能完成情報に基づき、未完成のソフトウェアの部品と対応する対象物の機能に属する取り得る状態を削除し、完成した機能に属する取り得る状態のみに基づく状態遷移情報を生成するステップと、完成した機能に属する取り得る状態のみに基づく状態遷移情報の中から、動作初期状態から到達可能な取り得る状態を抽出するステップとを含む。第２のテストケース情報を抽出するステップでは、読み込まれた第１のテストケース情報の中から、テスト開始状態から最終到達状態まで順に遷移するすべての取り得る状態が、第２の状態遷移情報を生成するステップによって動作初期状態から到達可能として抽出された取り得る状態であるテストケース情報を、テスト可能な第２のテストケース情報として抽出する。
【発明の効果】
【００１６】
本発明によれば、作成したテストケースから、ソフトウェアの部品の完成状況を考慮したテストケースを抽出することができる。これにより、開発途中においてもテストを開始することができる。したがって、開発期間、およびテスト期間を短縮することができ、効率的にソフトウェア開発を行なうことが可能である。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照しつつ本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについては詳細な説明は繰り返さない。
【００１８】
本実施の形態の説明に先立って、コンピュータ応用製品に組み込まれるソフトウェアの一般的な開発工程について述べる。
【００１９】
図１は、ソフトウェアの開発工程の概略を示したフローチャートである。
図１を参照して、一般的なソフトウェアの開発工程について説明する。まず、製品開発者によって、製品に要求される機能、および性能が分析される（Ｓ１２００）。ここで、製品に対する要求が明文化され、製品の仕様を記述した状態遷移モデルが作成される。その仕様に基づいて、製品の仕様を満たすためのシステムの基本設計を行なう（Ｓ１２０２）。次いで、そのシステムを制御するためのソフトウェアの詳細設計を行ない（Ｓ１２０４）、実装する（Ｓ１２０６）。
【００２０】
また、これらの処理と並行して、製品の動作試験担当者によって、テスト設計が行なわれる（Ｓ１２１２）。ここでは、試験担当者によって、テストケースが作成される。
【００２１】
最後に、システムが要求を満足するかどうかを確認するために、上記のテストケースを用いて、システムテストを行なう（Ｓ１２０８）。ここで不具合が生じると（Ｓ１２１０にて、ＹＥＳ）、システムの基本設計を再度行なう（Ｓ１２０２）。また、図示しないが、不具合の内容によっては、コード変更等の詳細設計を再度行なう（Ｓ１２０６）。
【００２２】
このような開発工程においては、テストは完成したソフトウェアに対して実行されており、開発途中のソフトウェアに対してテストを実行する手法は明らかではなかった。
【００２３】
本発明に係るテストケース抽出装置は、試験担当者によって作成されたテストケース情報の中から、開発途中でも実行可能なテストケース情報を抽出するものである。
【００２４】
図２は、テストケース抽出装置１の構成例を示すブロック図である。
図２を参照して、テストケース抽出装置１の構成について説明する。
【００２５】
テストケース抽出装置１は、コンピュータ本体１０２と、コンピュータ本体１０２とバス１２６を介して接続される、フレキシブルディスク（Flexible Disk、以下ＦＤ）１１６に情報を読み書きするためのＦＤドライブ１０６と、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）１１８等の光ディスク上の情報を読み込むための光ディスクドライブ１０８と、外部とデータの授受を行なうための通信インターフェイス１２８と、表示装置としてのモニタ１０４と、入力装置としてのキーボード１１０およびマウス１１２とを備える。また、通信インターフェイス１２８を経由して、外部より、状態遷移情報１４０、機能完成情報１４２、およびテストケース情報１４４が与えられる。コンピュータ本体１０２は、バス１２６に接続されたＣＰＵ（Central Processing Unit）１２０と、ＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）を含むメモリ１２２と、直接アクセスメモリ装置、たとえば、ハードディスク１２４を含む。
【００２６】
また、光ディスクドライブ１０８にはＣＤ−ＲＯＭ１１８などの光ディスクが装着される。ＦＤドライブ１０６にはＦＤ１１６が装着される。なお、ＣＤ−ＲＯＭ１１８は、コンピュータ本体に対してインストールされるプログラム等の情報を記録可能な媒体であれば、他の媒体、たとえば、ＤＶＤ−ＲＯＭ（Digital Versatile Disc）やメモリーカードなどでもよく、その場合は、コンピュータ本体１０２には、これらの媒体を読み取ることが可能なドライブ装置が設けられる。
【００２７】
テストケースを抽出するプログラム（以下、単にテストケース抽出プログラムと呼ぶ）は、ＦＤ１１６またはＣＤ−ＲＯＭ１１８等の記憶媒体によって供給される。テストケース抽出プログラムがコンピュータ本体１０２によって実行されることにより、上述のようなテスト可能なテストケースの抽出が行なわれる。また、テストケース抽出プログラムは他のコンピュータより通信インターフェイス１２８を経由し、コンピュータ本体１０２に供給されてもよい。
【００２８】
また、本実施の形態では、状態遷移情報１４０、機能完成情報１４２、およびテストケース情報１４４は、通信インターフェイス１２８を介してコンピュータ本体１０２に与えられるが、記憶媒体によって供給されてもよい。なお、これらの情報は、一旦ハードディスク１２４に格納されることにより、ユーザは、これらの情報に対して、キーボード１１０を介して、追加、修正、削除等の編集を行なうことが可能である。
【００２９】
ＣＰＵ１２０は、メモリ１２２をワーキングメモリとして、上述したテストケース抽出プログラムに対応した処理を実行する。
【００３０】
テストケース抽出プログラムは、上述の通り、ＣＰＵ１２０により実行されるソフトウェアである。一般的に、こうしたソフトウェアは、ＣＤ−ＲＯＭ１１８、ＦＤ１１６等の記憶媒体に格納されて流通し、光ディスクドライブ１０８またはＦＤドライブ１０６等により記憶媒体から読み取られてハードディスク１２４に一旦格納される。または、コンピュータ１００がネットワークに接続されている場合には、ネットワーク上のサーバから一旦ハードディスク１２４にコピーされる。そうしてさらにハードディスク１２４からメモリ１２２中のＲＡＭに読み出されてＣＰＵ１２０により実行される。なお、ネットワーク接続されている場合には、ハードディスク１２４に格納することなくＲＡＭに直接ロードして実行するようにしてもよい。
【００３１】
図２に示したコンピュータのハードウェア自体およびその動作原理は一般的なものである。したがって、本発明の機能を実現するに当り本質的な部分は、ＦＤ１１６、ＣＤ−ＲＯＭ１１８、ハードディスク１２４等の記憶媒体に記憶されたソフトウェアである。
【００３２】
図３は、ＣＰＵ１２０の機能的構成を示すブロック図である。
図３を参照して、ＣＰＵ１２０の機能的構成を説明する。
【００３３】
ＣＰＵ１２０は、状態遷移情報１３４と機能完成情報１３６とから状態遷移情報１３４を再構成する状態遷移情報再構成部２０４と、再構成された状態遷移情報をもとに、テストケース情報１３８の中からテスト可能なテストケースを抽出するテスト可能テストケース抽出部２０８と、抽出したテストケースを表示するための処理を行なう表示処理部２１０とを含む。
【００３４】
記憶部２２０は、状態遷移情報１３４と、機能完成情報１３６と、テストケース情報１３８と、状態遷移情報再構成部２０４から与えられた遷移可能な状態のみで構築された状態遷移情報１３０と、テスト可能テストケース抽出部２０８から与えられたテスト可能テストケース１３２とを保存する。なお、遷移可能な状態のみで構成された状態遷移情報１３０は、テスト可能テストケース抽出部２０８に与えられる。また、テスト可能テストケース１３２は、表示処理部２１０に与えられる。
【００３５】
状態遷移情報は、製品開発者によって、製品に要求される機能および性能が分析される際に作成される、その製品の仕様を記述した情報である。この状態遷移情報には、テスト対象の製品の取り得る状態と、ある処理が与えられたときに遷移する先の状態とが予め関連付けられている。このような処理が与えられることを、「イベントが発生する」と呼ぶ。
【００３６】
図４は、状態遷移情報の一例を示した図である。
図４を参照して、状態遷移情報について説明する。
【００３７】
図４において、列３０には、「条件」、「状態名」、および条件と状態名とから決定される「ＩＤ」が示され、列３２には、「イベント名」が示されている。また、イベント発生時の遷移先のＩＤが各行の下段３６に示される。イベント発生時に、条件も変更される場合は、変更内容が上段３５に示される。遷移先がない場合、および変更内容がない場合は、「−」で表示されており、条件によって、遷移先が異なる場合は、その条件が遷移先のＩＤの前に表示されている。なお、欄３４に示される「ボイスレコーダトップ」は、製品が最初にとる状態である「動作初期状態」として表わされている。
【００３８】
製品の取り得る状態は、内部あるいは外部の少なくとも一方による条件と、製品の状態とによって決定される。したがって、ここでは、状態名が同一でも、条件によって異なる状態として区別し、それぞれに異なるＩＤが割り振られる。以下、ＩＤが割り振られた状態名を、ＩＤ付き状態名と呼ぶ。
【００３９】
ＩＤ付き状態名ごとに、発生したイベントに対する遷移先状態のＩＤが示される。たとえば、ＩＤ１１の状態（条件が「ファイル数＞０」で、状態名が「録音中」である状態）に対して、「停止ボタン」のイベントが発生した場合、「ファイル数＋１」のように条件が変更され、ＩＤ１２の状態に遷移する。
【００４０】
動作初期状態は、ＩＤ付き状態名で表現してもよいし、特定のＩＤ（たとえば、００など）として定義してもよい。また、外部入力情報として指定してもよい。
【００４１】
上記のような状態遷移情報は、図４で示すようなテーブル形式で表現してもよいし、状態を頂点、遷移の様子を向きによって示す辺とからなる有向グラフを用いた表現でもよい。有向グラフについては、後述する。
【００４２】
機能完成情報は、製品を制御するためのソフトウェアの開発段階において、製品の機能に対応するソフトウェアの部品ごとの完成状況が示された、製品開発者によって与えられる情報である。
【００４３】
図５は、機能完成情報の一例を示した図である。
図５を参照して、機能完成情報について説明する。
【００４４】
図５において、各列は、製品の開発単位となる機能の名称を表わす「機能名」、その機能に関する製品の状態遷移情報での状態名を表わす「機能の属している状態名」、および開発途中での各機能の完成状況を表わす「完成状況」を示す。なお、ここでは、完成済みの機能に対しては「○」、未完成の機能に対しては「×」で表示されているが、二値の情報として示された他の表現を用いてもよい。
【００４５】
図５では、たとえば、「ボイスレコーダ機能」が属する状態は、図４で示した状態遷移情報中の「ボイスレコーダトップ」であり、この機能は「完成済み」であることを示している。
【００４６】
上記のような機能完成情報は、図５で示すようなテーブル形式で表現してもよいし、他の形式で表現してもよい。
【００４７】
テストケースは、テスト担当者によって、状態遷移情報に基づいて自然言語で作成される、テスト手順を示した情報である。テストケース情報は、この自然言語で記載されるテスト手順を状態遷移情報において示されるＩＤを用いて記述した情報である。
【００４８】
図６は、テストケース情報の一例を示した図である。
図６を参照して、テストケース情報について説明する。
【００４９】
図６において、各列は、テストケースを識別するための「テストケースＩＤ」、テスト開始時における製品状態のＩＤを表わす「テスト開始状態」、テスト終了時における製品状態のＩＤを表わす「最終到達状態」、及び、イベント発生順に遷移した状態のＩＤを表わす「イベント発生順の遷移状態の一覧」を示す。
【００５０】
テスト開始状態、最終到達状態、およびイベント発生順の遷移状態の一覧は、状態遷移情報で割り振られたＩＤのみで表現してもよいし、ＩＤ付き状態名で表現してもよい。
【００５１】
テスト担当者は、製品の機能をテストするため、機能に対する操作とその操作によって得られる結果が示されたテストケースを作成する。そして、この操作と結果を、状態遷移情報で用いられたＩＤで記述し、テストケース情報を得る。
【００５２】
図６では、たとえば、Ｔｅｓｔ０１は、ボイスレコーダ録音テストである。まず、テスト担当者は、機能「音声ファイルなしボイスレコーダ機能」に対して、操作「録音ボタンを押し、１０秒後に停止ボタンを押す」をすると、結果「リスト表示機能に遷移し、音声ファイルがリストに追加される」というテストケースを自然言語で作成する。図４において、テスト開始状態は、ＩＤ００の状態（動作初期状態３４）である。この状態で、「録音ボタンを押す」イベントが発生すると、ＩＤ０１の状態に遷移する。次いで、録音中（ＩＤ０１の状態）に「停止ボタンを押す」イベントが発生すると、「ファイル数＋１」という条件変更をし、ＩＤ１２の状態に遷移する。したがって、図６において、Ｔｅｓｔ１では、テスト開始状態は「００」、最終到達状態は「１２」、イベント発生順の遷移状態の一覧は「００，０１，１２」となる。
【００５３】
上記のようなテストケース情報は、図６で示すようなテーブル形式で表現してもよいし、リスト形式など他の形式で表現してもよい。
【００５４】
以上のような情報を用いて、テストケース抽出装置１は、与えられたテストケースの中からテスト可能なテストケースを抽出する。以下に、テストケース抽出装置１が実行する処理について説明する。
【００５５】
図７は、テスト可能なテストケースを抽出する処理の流れを示したフローチャートである。
【００５６】
図７を参照して、テストケース抽出装置１がテスト可能なテストケースを抽出する処理について説明する。
【００５７】
Ｓ６００では、ＣＰＵ１２０は、通信インターフェイス１２８を介して与えられる状態遷移情報１４０および機能完成情報１４２を読み込み、ハードディスク１２４に一旦格納する。
【００５８】
Ｓ６０２では、ＣＰＵ１２０は、状態遷移情報１４０および機能完成情報１４２を、メモリ１２２中のＲＡＭに読み出して、動作初期状態から遷移可能な状態のみで構成された状態遷移情報を再構成する。
【００５９】
ここでは、まず、ＣＰＵ１２０は、状態遷移情報の中から、未完成の機能に関連付けられた状態を削除し、完成した機能に基づく状態遷移情報を作成する。さらに、完成した機能に基づく状態遷移情報の中から、動作初期状態から到達可能な遷移状態を抽出したものを出力する。
【００６０】
Ｓ６０４では、ＣＰＵ１２０は、通信インターフェイス１２８を介して与えられるテストケース情報１４４を読み込み、ハードディスク１２４に一旦格納する。
【００６１】
Ｓ６０６では、ＣＰＵ１２０は、Ｓ６０４で読み込んだテストケース情報１４４からテスト可能なテストケースを抽出する。ＣＰＵ１２０は、遷移可能な状態のみで構成された状態遷移情報１３０から、遷移可能な状態を読み込む。そして、テストケース情報１４４のうち、遷移可能な状態から構成されているテストケースを、テスト可能なテストケースとして抽出し、ハードディスク１２４に書き込む。
【００６２】
また、ＣＰＵ１２０は、ハードディスク１２４からテスト可能なテストケース１３２を読み込み、モニタ１０４に表示させることもできる。
【００６３】
以下に、テストケース抽出のための具体的な手順の一例について示す。ここでは、ＣＰＵ１２０は、説明のため、図４で示した状態遷移情報、図５で示した機能完成情報、および図６で示したテストケース情報を読み込むとする。
【００６４】
まず、ＣＰＵ１２０は、状態遷移情報をもとに、有向グラフを作成する。
図８は、図４に示す状態遷移情報に基づいて作成した有向グラフを示した図である。
【００６５】
図８を参照して、有向グラフについて説明する。
有向グラフは、状態に対応する頂点と、遷移の様子を向きによって示す辺とから構成される。たとえば、頂点７００は、図４におけるＩＤ００の状態に対応する。頂点７０２，７０４，７０６，７０８，７１０，７１２，７１４，７１６に対しても同様である。辺７３０は、遷移前の状態を示す頂点７００を始点、遷移後の状態を示す頂点７０２を終点とする。
【００６６】
ここでは、遷移するときに条件があるものに対しては、辺に条件が示されている。また、遷移するときに条件が変更されるものに対しては、頂点に変更内容が示されている。なお、頂点７００に対しては、動作初期状態における条件が付されている。
【００６７】
この有向グラフを用いると、辺の向きに従って頂点をたどることで、状態遷移を表現することができる。たとえば、図８において、頂点７００から、辺７３０の向きに従えば、頂点７０２に到達する。これは、図４において、頂点７００に対応するＩＤ００の状態で、「録音ボタンを押す」イベントが発生し、頂点７０２に対応するＩＤ０１の状態へ遷移することに対応する。
【００６８】
次に、ＣＰＵ１２０は、図８のように作成した有向グラフから、機能完成情報をもとに、未完成の機能に属する状態に対応する頂点を除去する。
【００６９】
図９は、図５に示す機能完成情報をもとに、頂点を除去した有向グラフを示した図である。
【００７０】
図９および図８を参照して、未完成の機能に属する状態に対応する頂点を除去する処理について説明する。
【００７１】
まず、ＣＰＵ１２０は、図５に示される機能完成情報から、録音機能が未完成であると判断する。そして、ＣＰＵ１２０は、録音機能が属する状態と、図４に示される状態遷移情報の状態名とに基づき、遷移することができない状態を検索する。ここでは、ＩＤ０１とＩＤ１１が遷移できない状態である。ＣＰＵ１２０は、遷移できない状態に対応する頂点を図８に示す有向グラフから除去する。つまり、ＣＰＵ１２０は、図８に示す有向グラフから、遷移することができない状態であるＩＤ０１に対応する頂点７０２、ＩＤ１１に対応する頂点７０８、および、これらの頂点に接続する辺７３０，７３２，７３４，７３６を取り除く。このような処理の結果、図９に示すような有向グラフが得られる。
【００７２】
次に、ＣＰＵ１２０は、頂点を除去してできた有向グラフにおいて、動作初期状態に対応する頂点７００から到達可能な頂点で構成される有向グラフを再構成する。
【００７３】
図１０は、図９に示す有向グラフから、頂点７００から到達可能な頂点によって誘導される有向グラフを示した図である。
【００７４】
図１０および図９を参照して、頂点７００から到達可能な頂点によって誘導される有向グラフを構築する処理について説明する。
【００７５】
ＣＰＵ１２０は、図９に示す有向グラフにおいて、深さ優先探索や幅優先探索などのアルゴリズムに従い、頂点７００から到達可能な頂点を探索する。図９において、辺の向きに従って、頂点７００から到達可能な頂点は、頂点７００および頂点７０４である。ＣＰＵ１２０は、図９に示す有向グラフから、これらの頂点によって誘導される有向グラフを抽出する。このような処理の結果、図１０に示すような有向グラフが得られる。
【００７６】
次いで、ＣＰＵ１２０は、状態遷移情報から遷移可能な状態のみを抽出する。
図１１は、図４に示す状態遷移情報のうち、遷移可能な状態のみで構成された状態遷移情報を示す図である。
【００７７】
図１１を参照して、状態遷移情報から遷移可能な状態のみを抽出する処理について説明する。
【００７８】
ＣＰＵ１２０は、図１０で示される有向グラフから、遷移可能な状態が、ＩＤ００とＩＤ０２の示す状態であると判断する。ＣＰＵ１２０は、状態遷移情報から、これらのＩＤが示す状態を抽出する。このような処理の結果、図１１に示すような、遷移可能な状態のみの状態遷移情報が得られる。
【００７９】
最後に、ＣＰＵ１２０は、テスト可能なテストケース情報を抽出する。
図１２は、図６に示すテストケース情報のうち、テスト可能なテストケース情報を示した図である。
【００８０】
図１２、図６および図１１を参照して、テスト可能なテストケース情報を抽出する処理について説明する。
【００８１】
ＣＰＵ１２０は、図１１で示す遷移可能な状態遷移情報より、遷移可能な状態がＩＤ００とＩＤ０２の示す状態であると判断する。ＣＰＵ１２０は、図６で示すテストケース情報のうち、イベント発生順の遷移状態の一覧で、遷移可能な状態のみから構成されるテストケースを検索する。図６では、Ｔｅｓｔ０５が該当する。このような処理の結果、図１２に示すような、テスト可能なテストケース情報が抽出される。
【００８２】
以上のような処理に従えば、本発明に係るテストケース抽出装置は、テスト担当者によって作成されたテストケースの中から、各ソフトウェアによって実現される機能の完成状況を考慮して、実行可能なテストケースを抽出できる。これにより、すべての機能が完成していない開発途中においても、完成している機能だけに対するテストを実行することができるため、開発期間およびテスト期間を短縮することができる。
【００８３】
また、完成している機能だけに対してテストを実行するため、検出された不具合の原因を特定しやすくなる。
【００８４】
また、ソフトウェアに対する要求の変更や、完成状況が変わっても、作成されたテストケースから、変更に応じた、テスト可能なテストケースを抽出することができる。
【００８５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００８６】
【図１】コンピュータ応用製品の開発工程の概略を示したフローチャートである。
【図２】テストケース抽出装置１の構成例を示すブロック図である。
【図３】ＣＰＵ１２０の機能的構成を示すブロック図である。
【図４】状態遷移情報の一例を示した図である。
【図５】機能完成情報の一例を示した図である。
【図６】テストケース情報の一例を示した図である。
【図７】テスト可能なテストケースを抽出する処理の流れを示したフローチャートである。
【図８】図４に示す状態遷移情報に基づいて作成した有向グラフを示した図である。
【図９】図５に示す機能完成情報をもとに、頂点を除去した有向グラフを示した図である。
【図１０】図９に示す有向グラフから、頂点７００から到達可能な頂点によって誘導される有向グラフを示した図である。
【図１１】図４に示す状態遷移情報のうち、遷移可能な状態のみで構成された状態遷移情報を示す図である。
【図１２】図６に示すテストケース情報のうち、テスト可能なテストケース情報を示した図である。
【符号の説明】
【００８７】
１０２  コンピュータ本体、１０４  モニタ、１０６  ＦＤドライブ、１０８  光ディスクドライブ、１１０  キーボード、１１２  マウス、１１６  ＦＤ、１１８  ＣＤ−ＲＯＭ、１２０  ＣＰＵ、１２２  メモリ、１２４  ハードディスク、１２８  通信インターフェイス、１３０  遷移可能な状態のみで構成された状態遷移情報、１３２  テスト可能なテストケース、１３４，１４０  状態遷移情報、１３６，１４２  機能完成情報、１３９，１４４  テストケース情報、２０４  状態遷移情報再構成部、２０８  テスト可能テストケース抽出部、２１０  表示処理部、２２０  記憶部。
【図１】
0005225553.tif 000002
【図２】
0005225553.tif 000003
【図３】
0005225553.tif 000004
【図４】
0005225553.tif 000005
【図５】
0005225553.tif 000006
【図６】
0005225553.tif 000007
【図７】
0005225553.tif 000008
【図８】
0005225553.tif 000009
【図９】
0005225553.tif 000010
【図１０】
0005225553.tif 000011
【図１１】
0005225553.tif 000012
【図１２】
0005225553.tif 000013