(57)【要約】【課題】高品質なソフトウェアを提供するとともに、開発期間の短縮化を図ること。【解決手段】開発対象のプログラムに対する試験項目を抽出する試験項目抽出方法をコンピュータに実行させる試験項目抽出プログラムにおいて、開発対象のプログラムが動作するシステムの取り得る状態と、システムの外部又は内部からの刺激であるイベントと、イベントによりシステムの遷移すべき状態の遷移とを示す仕様書データに基づいて、イベントに対する状態の遷移の状況を示す経路情報を検索し、イベントを発生させて検索された経路情報に対する実行処理を行う経路検索ステップと、経路検索手段の実行処理によるイベントと状態の遷移の経路情報を、試験項目として出力する試験項目出力処理ステップとを実行する。【選択図】      図２
2004151884.tif 000002
【特許請求の範囲】
【請求項１】
開発対象のプログラムに対する試験項目を抽出する試験項目抽出方法をコンピュータに実行させる試験項目抽出プログラムにおいて、
開発対象のプログラムが動作するシステムの取り得る状態と、前記システムの外部又は内部からの刺激であるイベントと、前記イベントにより前記システムの遷移すべき状態の遷移とを示す仕様書データに基づいて、前記イベントに対する前記状態の遷移の状況を示す経路情報を検索し、前記イベントを発生させて検索された経路情報に対する実行処理を行う経路検索ステップと、
前記経路検索ステップの実行処理による前記イベントと前記状態の遷移の経路情報を、前記試験項目として出力する試験項目出力処理ステップと、
を含むことを特徴とする試験項目抽出プログラム。
【請求項２】
抽出する試験項目または経路の抽出条件を設定する抽出項目設定ステップをさらに含み、
前記経路検索ステップは、前記抽出項目設定ステップによって設定された抽出条件に基づいて、前記状態の遷移の経路を検索して前記イベントの発生による実行処理を行うことを特徴とする請求項１に記載の試験項目抽出プログラム。
【請求項３】
前記試験項目出力処理ステップは、前記プログラムの試験項目を予め定められた記法に基づいて出力することを特徴とする請求項１または２に記載の試験項目抽出プログラム。
【請求項４】
前記試験項目出力処理ステップは、前記プログラムの試験項目をＴＴＣＮ（Ｔｒｅｅ  ａｎｄ  Ｔａｂｕｌａｒ  Ｃｏｍｂｉｎｅｄ  Ｎｏｔａｔｉｏｎ）の記法に従って出力することを特徴とする請求項３に記載の試験項目抽出プログラム。
【請求項５】
前記試験項目出力処理ステップは、前記プログラムの試験項目を、記憶手段に格納することを特徴とする請求項１〜４のいずれか一つに記載の試験項目抽出プログラム。
【請求項６】
前記記憶手段に格納された試験項目に基づいて、プログラムの試験実行を行う試験実行処理ステップをさらに含むことを特徴とする請求項５に記載の試験項目抽出プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、開発対象のプログラムの試験項目を抽出する試験項目抽出プログラムに関する。
【０００２】
【従来の技術】
通常、ソフトウェア開発を行う場合、開発段階でソフトウェア（プログラム）の試験作業を行うことが一般的である。このようなプログラムの試験は、開発段階で作成された仕様書などに従って、ソフトウェア開発者が試験する項目を人手で抽出する。そして、プログラムを動作させて、抽出された試験項目に従ったソフトウェア試験を行っている。ここで、試験項目を作成する際に使用される仕様書は、文書化された機能仕様書、詳細仕様書などや、例えばＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）等の表記法で記述された図表などがある。
【０００３】
昨今のソフトウェアは大規模化・複雑化の一途を辿り、特に携帯電話に代表される組込み機器の高機能化によるソフトウェアの大規模化・複雑化は試験項目を幾何級数的に増加させており、特に携帯電話で動作するソフトウェアでは、試験項目数は、１０万件とも言われている。
【０００４】
近年、ソフトウェア開発において、開発の複雑さを回避するため、ＵＭＬ、状態遷移図、状態遷移表などの表記方法によるソフトウェア設計手法が多数利用されている。例えば、状態遷移表を用いて自動的にプログラムを生成するプログラム生成装置なども一般的に知られている（例えば、特許文献１）。そして、このような手法を利用することにより、ソフトウェア開発の効率化、開発モレやヌケの防止は、徐々に改善されてきている。
【０００５】
【特許文献１】
特開２０００−２０３４７号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、ソフトウェア開発者は、仕様書を参照しながら、必要な試験項目を抽出する作業を人手で行っているため、開発対象のプログラムの機能の全てを網羅する試験項目を抽出することが困難である。すなわち、ソフトウェア開発者は、ソフトウェアの機能を熟知しているものの、すべての機能について的確な試験項目を抽出することには限度があり、このため、未試験項目が発生する可能性が高い。このような未試験項目がソフトウェアの重要な機能に関するものである場合には、最終製品に重大な障害が発生してしまい、高品質のソフトウェアを提供することができないという問題がある。
【０００７】
また、ＵＭＬ、状態遷移図、状態遷移表などの表記方法によるソフトウェア設計手法のような効率的な手法を利用した開発においても、仕様書に基づいて試験項目を抽出する作業は、あいかわらず人手に頼っており、試験項目の抽出モレやヌケが生じ、結果として、ソフトウェアの障害の原因となっている。また、このような試験項目の抽出作業には、大量の工数が必要となり、開発期間が長期化するという問題もある。
【０００８】
この発明は上記に鑑みてなされたもので、仕様書に基づくプログラムの試験項目を自動的に抽出することにより、高品質なソフトウェアを提供するとともに、開発期間の短縮化を図ることができる試験項目抽出プログラムを得ることを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するため、請求項１にかかる発明は、開発対象のプログラムに対する試験項目を抽出する試験項目抽出方法をコンピュータに実行させる試験項目抽出プログラムにおいて、開発対象のプログラムが動作するシステムの取り得る状態と、前記システムの外部又は内部からの刺激であるイベントと、前記イベントにより前記システムの遷移すべき状態の遷移とを示す仕様書データに基づいて、前記イベントに対する前記状態の遷移の状況を示す経路情報を検索し、前記イベントを発生させて検索された経路情報に対する実行処理を行う経路検索ステップと、前記経路検索手段の実行処理による前記イベントと前記状態の遷移の経路情報を、前記試験項目として出力する試験項目出力処理ステップと、を含むことを特徴とする。
【００１０】
この請求項１の発明によれば、開発対象のプログラムが動作するシステムの取り得る状態と、前記システムの外部又は内部からの刺激であるイベントと、前記イベントにより前記システムの遷移すべき状態の遷移とを示す仕様書データに基づいて、前記イベントに対する前記状態の遷移の状況を示す経路情報を検索し、前記イベントを発生させて検索された経路情報に対する実行処理を行う経路検索ステップと、前記経路検索手段の実行処理による前記イベントと前記状態の遷移の経路情報を、前記試験項目として出力する試験項目出力処理ステップと、を含むことで、仕様書データに基づくプログラムの試験項目を自動的に抽出することができ、高品質なソフトウェアを提供するとともに、開発期間の短縮化を図ることができる。
【００１１】
また、請求項２にかかる発明は、請求項１に記載の試験項目抽出プログラムにおいて、抽出する試験項目または経路の抽出条件を設定する抽出項目設定ステップをさらに含み、前記経路検索ステップは、前記抽出項目設定ステップによって設定された抽出条件に基づいて、前記状態の遷移の経路を検索して前記イベントの発生による実行処理を行うことを特徴とする。
【００１２】
この請求項２の発明によれば、抽出項目設定ステップによって、抽出する試験項目または経路の抽出条件を設定し、経路検索ステップによって、設定された抽出条件に基づいて、状態の遷移の経路を検索してイベントの発生による実行処理を行うことで、利用者が希望する範囲で試験項目を自動的に抽出することができ、利用者の便宜が図られる。
【００１３】
また、請求項３にかかる発明は、請求項１または２に記載の試験項目抽出プログラムにおいて、前記試験項目出力処理ステップは、前記プログラムの試験項目を予め定められた記法に基づいて出力することを特徴とする。
【００１４】
この請求項３の発明によれば、試験項目出力処理ステップによって、プログラムの試験項目を予め定められた記法に基づいて出力することで、抽出された試験項目の形式を統一することができる。
【００１５】
また、請求項４にかかる発明は、請求項３に記載の試験項目抽出プログラムにおいて、前記試験項目出力処理ステップは、前記プログラムの試験項目をＴＴＣＮの記法に従って出力することを特徴とする。
【００１６】
この請求項４の発明によれば、試験項目出力処理ステップは、前記プログラムの試験項目をＴＴＣＮの記法に従って出力することで、抽出された試験項目の形式を一般的に使用されている記法に統一することができ、試験項目の汎用性を向上させることができる。
【００１７】
また、請求項５にかかる発明は、請求項１〜４のいずれか一つに記載の試験項目抽出プログラムにおいて、前記試験項目出力処理ステップは、前記プログラムの試験項目を、記憶手段に格納することを特徴とする。
【００１８】
この請求項５の発明によれば、試験項目出力処理ステップによって、プログラムの試験項目を記憶手段に格納することで、抽出された試験項目を再利用することができる。
【００１９】
また、請求項６にかかる発明は、請求項５に記載の試験項目抽出プログラムにおいて、前記記憶手段に格納された試験項目に基づいて、プログラムの試験実行を行う試験実行処理ステップをさらに含むことを特徴とする。
【００２０】
この請求項６の発明によれば、試験実行処理ステップによって、記憶手段に格納された試験項目に基づいてプログラムの試験実行を行うことで、試験実行の自動化を実現することができ、開発期間のさらなる短縮化を図ることができる。
【００２１】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる試験項目抽出プログラムの好適な実施の形態を詳細に説明する。
【００２２】
（実施の形態１）
図１は、この発明の実施の形態１である試験項目抽出プログラムが動作することによって機能する試験項目抽出装置の機能的構成を示すブロック図である。本実施の形態の試験項目抽出装置は、試験項目抽出プログラムが実行されることによってＲＡＭ上に生成される試験項目抽出部１００と、ハードディスクドライブ装置（ＨＤＤ）などの記憶装置１１０から構成される。なお、本実施の形態の試験項目抽出装置は、ＣＰＵなどの制御装置、ＨＤＤなどの記憶装置、キーボードやマウスなどの入力装置、ディスプレイ装置などの表示装置などからなる通常のコンピュータと同様のハードウェア構成を有している。
【００２３】
本実施の形態の試験項目抽出装置において、試験項目抽出プログラムを実行することによって生成される試験項目抽出部１００は、図１に示すとおり、経路検索部１０１と、経路比較部１０２と、入力処理部１０３と、ループ判定部１０４と、試験項目出力処理部１０５と、試験実行処理部１０６とから構成される。これら各部は、試験項目抽出プログラムの内部モジュール構成と同様の構成となっている。
【００２４】
また、記憶装置１１０には、仕様書データ１１１と、経路データ１１２とがファイル形式で格納され、試験項目抽出部１００によって生成された試験項目データ１１３も格納されるようになっている。
【００２５】
入力処理部１０３は、記憶装置１１０に格納されている仕様書データ１１１を読み出し、読み出したデータを経路検索部１０１に送るものである。ここで、仕様書データとは、開発対象のプログラムを実行したときに、当該プログラムを実行するシステムの状態と、外部または内部からの刺激であるイベントと、イベントを受けたときの遷移先の状態とを記述したデータ、またはかかるデータを実行可能な形式の中間コードに変換したデータ、例えば状態遷移図、状態遷移表、ステートチャートなどのデータまたはその中間コードデータが該当する。本実施の形態では、仕様書データ１１１として主として状態遷移表データを使用している。
【００２６】
経路検索部１０１は、入力処理部１０３によって読み出された仕様書データ１１１から、イベント、状態、アクション、遷移先の状態の組で構成される経路データを検索するものである。具体的には、経路検索部１０１は、仕様書データ１１１のプログラムの開始位置からイベントを発生させて状態の遷移を行わせながら、イベントと状態の組で構成される経路データを記憶装置１１０に格納し、仕様書データ１１１に従った経路を辿ることによって、仕様書データ１１１に基づいた経路を検索する。
【００２７】
経路比較部１０２は、経路検索部１０１が開発対象のプログラム内のループ処理内の経路をプログラム進行の逆方向に辿っているときに、現時点の経路データと記憶装置１１０に記憶された経路データとを比較するものである。比較の結果、両経路データが一致しない場合に、検索再開メッセージを経路検索部１０１に送出する。
【００２８】
ループ判定部１０４は、経路検索部１０１によって現在辿っている経路がプログラムのループ処理内部のものか否かを判定するものである。具体的には、ループ判定部１０４は、経路検索部１０１から受け取った経路データを最初に受け取った経路データとを比較し、両経路データが一致する場合にはループ処理内部の経路であると判断し検索停止メッセージを経路検索部１０１に送出する。両経路データが一致しない場合に検索続行メッセージを経路検索部１０１に送出する。
【００２９】
試験項目出力処理部１０５は、経路検索部１０１によって経路検索処理が終了した後、経路検索部１０１によって記憶装置１１０に格納された経路データを、ＴＴＣＮ記法（Ｔｒｅｅ  ａｎｄ  Ｔａｂｕｌａｒ  Ｃｏｍｂｉｎｅｄ  Ｎｏｔａｔｉｏｎ）に変換し、変換後のデータを試験項目データ１１３としてファイル形式で記憶装置１１０に保存するものである。
【００３０】
試験実行処理部１０６は、記憶装置１１０に格納されている試験項目データ１１３を読み出して、当該データの内容に従ってプログラムの試験を実行するものである。
【００３１】
次に、記憶装置１１０に格納された各種データについて説明する。図２は、仕様書データ１１１としての状態遷移表の一例を示す説明図である。状態遷移表は、図２に示すように、表の行に開発対象のプログラムが動作するシステムが受信するイベント（発生するイベント）を、列にシステムが取りうる状態をとり、イベントと状態の交差点をセルとして、そのセルの上段に次の遷移先の状態を、下段にアクションを記述したものである。そして、システムがある状態にいるときに、あるイベントが発生した場合には、現在の状態と受信した事象の交差するセルに記述されたアクションを実行し、その後、セルに記述された遷移先の状態にシステムが遷移することを示すものである。例えば、図２では、イベントとして送信要求（イベントＮｏ．１）、送信完了（イベントＮｏ．２）、タイムアウト（イベントＮｏ．３）があり、状態として待機（状態Ｎｏ．１）、送信中（状態Ｎｏ．２）がある。
【００３２】
ここで、この状態遷移表で表現されたシステムの現在の状態が待機であり、このとき送信要求のイベントを受信したとすると、送信要求イベントと待機状態の交差するセルに記述されたアクションであるデータ送信が実行され、システムの状態はそのセルに記述された状態Ｎｏ．２、すなわち送信中に遷移する。
【００３３】
図３（ａ）は、経路データ１１２の一例を示す説明図であり、図２の状態遷移表に対応した経路データの例を示している。図３（ａ）に示すように、経路データは状態遷移表のイベント、状態、アクション、遷移先の状態の組からなるデータとなっている。
【００３４】
図３（ｂ）は、試験項目データ１１３の一例を示す説明図である。図３（ｂ）に示すように、試験項目データ１１３は、経路データと同様に、イベント、状態、アクションを含み、ＴＴＣＮ記法によって記述されている。
【００３５】
次に、以上のように構成された本実施の形態の試験項目抽出装置および試験項目抽出プログラムによる試験項目抽出処理について説明する。図４は、試験項目抽出の全体処理の手順を示すフローチャートである。
【００３６】
まず入力処理部１０３によって、記憶装置１１０から仕様書データ１１１（状態遷移表データ）を読み込み（ステップＳ４０１）、経路検索部１０１に送出する。そして、経路検索部１０１によって、この仕様書データ１１１から経路の検索処理を実行し、経路データ１１２を生成する（ステップＳ４０２）。そして、経路検索部１０１によって生成された経路データ１１２をＴＴＣＮ記法に変換して試験項目データ１１３を生成し、生成された試験項目データを記憶装置１１０に保存する（ステップＳ４０３）。
【００３７】
次に、ステップ４０２の経路検索部１０１で行われる経路検索処理について説明する。図５は、経路検索処理の手順を示すフローチャートである。経路検索部１０１は、まず入力処理部１０３から受け取った仕様書データ１１１（状態遷移表データ）を参照し、ポインタを開始位置のセルに移動する（ステップＳ５０１）。そして、かかる開始位置から経路の実行処理を行い、経路を辿る（ステップＳ５０２）。
【００３８】
図６は、経路検索部１０１の経路検索処理で行われる経路の実行処理の手順を示すフローチャートである。まず、ポインタが指す現在のセルの状態をメモリなどに一時的に記憶する（ステップＳ６０１）。次いで、ポインタが指す現在のセルのイベントを発生させる（ステップＳ６０２）。そして、イベントと状態とアクションを対応付けて記憶する（ステップＳ６０３）。そして、ステップＳ６０１からＳ６０３までの処理を、ポインタが終了位置のセルに到達するまで繰り返し行う（ステップＳ６０４）。ポインタが終了位置のセルに到達したら、記憶されている状態、イベント、アクションを一組単位で経路データとして記憶装置１１０に格納する（ステップＳ６０５）。
【００３９】
図５に戻り、このようなステップ５０２の経路の実行処理を行ったら、生成された経路データをループ判定部１０４に送出する（ステップＳ５０３）。ループ判定部１０４では、経路データから現在のポインタのセルの位置がループ処理内のものであるかどうかを判断する。なお、かかるループ判定部１０４による判断処理については後述する。
【００４０】
経路検索部１０１は、ループ判定部１０４から判断結果を受け取り（ステップＳ５０４）、その判断結果が検索停止メッセージであるか否かを判断する（ステップＳ５０５）。判断結果が検索停止メッセージでない場合（検索続行メッセージの場合）には、ループ処理でないと判断し、ステップＳ５０２からステップＳ５０４までの処理を繰り返す。すなわち、そのまま経路を辿って良いか否かの判断をループ判定部１０４から得ながら経路を辿ることになる。
【００４１】
一方、ループ判定部１０４による判断結果が検索停止メッセージである場合には現在のポインタ位置からプログラムの進行方向と逆方向に経路を戻りながら経路の実行処理を行う（ステップＳ５０６）。このとき、辿った経路を記憶装置１１０に経路データとして記憶する。かかる経路の逆方向の実行処理は、ポインタを今まで辿ってきた経路を逆方向に進めながら図６で説明した経路実行処理と同様の処理を行う。
【００４２】
次に、経路検索部１０１は、経路データを経路比較部１０２に送出する（ステップＳ５０７）。経路比較部１０２では、経路データを記憶装置１１０に格納されている経路データと比較して、ループ処理を抜け経路検索を再開するか否かの判断を行う。なお、かかる経路比較部１０２による判断処理については後述する。
【００４３】
経路検索部１０１は、経路比較部１０２から判断結果を受け取り（ステップＳ５０８）、その判断結果が検索再開メッセージであるか否かを判断する（ステップＳ５０９）。判断結果が検索再開メッセージでない場合には、ループ内をまだ抜けていないので、ステップＳ５０２からステップＳ５０８までの処理を繰り返す。
【００４４】
一方、判断結果が検索再開メッセージである場合には、ループ内をもう抜けたと判断し、ポインタの現在位置が終了位置であるか否かを判断する（ステップＳ５１０）。ポインタの現在位置が終了位置でない場合には、ステップＳ５０２からＳ５０９までの処理を繰り返し行う。一方、ポインタの現在位置が終了位置である場合には、検索終了通知を試験項目出力処理部１０５に通知する（ステップＳ５１１）。これによって、仕様書データ１１１の経路検索は終了する。
【００４５】
試験項目出力処理部１０５では、経路検索部１０１から検索終了通知を受け取った場合、記憶装置１１０に格納された経路データをＴＴＣＮ記法に変換し、試験項目データ１１３として記憶装置１１０に書き込む。なお、経路データのＴＴＣＮ記法への変換は、図３（ａ）に示す経路データの文字列操作、文字列結合などを行って、図３（ｂ）のＴＴＣＮ記法のデータへの整形を行い、試験項目データ１１３を生成する。
【００４６】
次に、ループ判定部１０４によるループ判定処理について説明する。図７は、ループ判定処理の手順を示すフローチャートである。ループ判定部１０４は、経路検索部１０１から経路データを受け取り（ステップＳ７０１）、経路検索部１０１から呼び出しは最初の呼び出しであるか否かを判断する（ステップＳ７０２）。そして、最初の呼び出しである場合には、検索続行メッセージを経路検索部１０１に送出し（ステップＳ７０５）、処理を終了する。
【００４７】
一方、２回目以降の呼び出しである場合には、受け取った経路データと最初の呼び出しで受け取った経路データが一致するか否かを判断する（ステップＳ７０３）。そして、一致する場合には、ループ処理内であると判断し、検索停止メッセージを経路検索部１０１に送出し（ステップＳ７０４）、処理を終了する。一方、、両経路データが一致しない場合には、ループ処理外であると判断し、検索続行メッセージを経路検索部１０１に送出し（ステップＳ７０５）、処理を終了する。このようにして現在のポインタのセルの位置がループ処理内であるか否かを判断している。
【００４８】
次に、経路比較部１０２による経路データの比較処理について説明する。図８は、経路比較処理の手順を示すフローチャートである。経路比較部１０２は、経路検索部１０１から経路データを受け取り（ステップＳ８０１）、記憶装置１１０に記憶されている経路データ１１２を読み出す（ステップＳ８０２）。そして、経路検索部１０１から受け取った経路データと記憶装置１１０の経路データが一致するか否かを判断する（ステップＳ８０３）。そして、一致しない場合には、検索再開メッセージを経路検索部１０１に送出し（ステップＳ８０４）、処理を終了する。一方、両経路データが一致する場合には、ステップＳ８０１およびステップＳ８０２の処理を繰り返して行う。このようにして、経路データの比較処理が行われる。
【００４９】
試験項目出力処理部１０５によって記憶装置１１０に生成されたＴＴＣＮ記法の試験項目データ１１３は、試験実行処理部１０６によって読み出されて、試験実行を行うことが可能である。すなわち、試験実行処理部１０６は、記憶装置１１０からＴＴＣＮ形式の試験項目データ１１３を読み込み、ＴＴＣＮ記法のフォーマッットに従って、イベント、状態、アクションを一組を単位に取得し、一組を単位に実行する。
【００５０】
このように実施の形態１の試験項目抽出装置および試験項目抽出プログラムでは、状態遷移表という仕様書データに基づいて、経路を辿って検索しながら試験項目を生成しているので仕様書データに基づくプログラムの試験項目を自動的に抽出することができ、高品質なソフトウェアを提供するとともに、開発期間の短縮化を図ることができる。
【００５１】
（実施の形態２）
実施の形態１の試験項目抽出装置および試験項目抽出プログラムは、仕様書データ１１１（状態遷移表）のすべての経路を辿って試験項目を生成していたが、この実施の形態２の試験項目抽出装置および試験項目抽出プログラムは、利用者に抽出条件を設定させ、仕様書データ１１１（状態遷移表）から設定された抽出条件の範囲で経路を辿り、試験項目を生成するものである。
【００５２】
図９は、実施の形態２の試験項目抽出プログラムが動作することによって機能する試験項目抽出装置の機能的構成を示すブロック図である。本実施の形態の試験項目抽出装置は、試験項目抽出プログラムが実行されることによってＲＡＭ上に生成される試験項目抽出部９００と、ハードディスクドライブ装置（ＨＤＤ）などの記憶装置１１０から構成される。
【００５３】
本実施の形態の試験項目抽出装置において、試験項目抽出プログラムを実行することによって生成される試験項目抽出部９００は、図９に示すとおり、経路検索部９０１と、経路比較部１０２と、入力処理部１０３と、ループ判定部１０４と、試験項目出力処理部１０５と、試験実行処理部１０６と、抽出条件設定部９０３と、抽出条件判定部９０２とから構成される。これら各部は、試験項目抽出プログラムの内部モジュール構成と同様の構成となっている。
【００５４】
経路検索部９０１は、実施の形態１と同様に、入力処理部１０３によって読み出された仕様書データ１１１から、イベント、状態、アクション、遷移先の状態の組で構成される経路データを検索するものである。本実施の形態では、具体的には、経路検索部９０１は、抽出条件設定部９０３によって設定された開始条件、終了条件の範囲内で、経路を辿るようになっている。すなわち、仕様書データ１１１の開始条件の位置からイベントを発生させて状態の遷移を行わせながら、経由条件の位置を通り、終了条件の位置まで、イベントと状態の組で構成される経路データを記憶装置１１０に格納し、仕様書データ１１１に従った経路を辿ることによって、仕様書データ１１１に基づいた経路を検索するようになっている。
【００５５】
抽出条件設定部９０３は、ディスプレイ装置などの表示装置に抽出条件設定画面を表示し、利用者に開始条件、経由条件、終了条件となるそれぞれのセルの位置を指定させて抽出条件を設定するものである。また、抽出条件設定部９０３は、利用者が設定した抽出条件を、抽出条件データ９０４として記憶装置１１０に格納する。
【００５６】
抽出条件判定部９０２は、経路検索部９０１による経路検索の処理中に現在のポインタのセルの位置が抽出条件で設定された開始条件と終了条件の範囲内にあるか否かを判定するものである。抽出条件判定部９０２は、ポインタの位置が当該範囲外となった場合、検索終了メッセージを経路検索部９０１に送出するようになっている。
【００５７】
次に、以上のように構成された本実施の形態の試験項目抽出装置および試験項目抽出プログラムによる試験項目抽出処理について説明する。図１０は、試験項目抽出の全体処理の手順を示すフローチャートである。
【００５８】
まず、入力処理部１０３によって、記憶装置１１０から仕様書データ１１１（状態遷移表データ）を読み込む（ステップＳ１００１）。そして、次に抽出条件設定部９０３によって仕様書データ（状態遷移表データ）１１１の中で試験項目を抽出する範囲である抽出条件を設定する（ステップＳ１００２）。
【００５９】
抽出条件設定部９０３では、まず試験項目抽出装置（コンピュータ）のディスプレイ装置に、抽出条件設定画面を表示出力する。図１１は、抽出条件設定画面の一例を示す説明図である。図１１に示すように、抽出条件設定画面には、試験を行うプログラムの仕様書データである状態遷移表が表示される。そして、かかる画面上で、マウスなどの入力装置によって状態遷移表の所望のセルをクリック操作することにより、抽出条件を設定するようになっている。抽出条件には、試験項目の抽出の開始位置を示す開始条件、試験項目の抽出の終了位置を示す終了条件、試験項目の抽出の際の経由位置を示す経由条件があり、経由条件は複数のセルを設定することができる。図１１に示すように、抽出条件設定部９０３によって各条件が設定されたセルは互いに異なる色彩等の属性で表示されるようになている。
【００６０】
また、抽出条件設定部９０３は、このように抽出条件設定画面で指定された各抽出条件を、抽出条件データ９０４として記憶装置１１０に保存する。図１２は、抽出条件データ９０４の一例を示す説明図である。図１２に示すように、抽出条件データ９０４は、開始条件、一または複数の経由条件、終了条件の各々に対し、「状態−イベント−アクション」が対応して設定されたものとなっている。
【００６１】
図１０に戻り、抽出条件設定部９０３によって抽出条件が設定されたら、経路検索部９０１によって、仕様書データ１１１から経路の検索処理を実行し、経路データ１１２を生成する（ステップＳ１００３）。そして、経路検索部９０１によって生成された経路データ１１２をＴＴＣＮ記法に変換して試験項目データ１１３を生成し、生成された試験項目データを記憶装置１１０に保存する（ステップＳ１００４）。
【００６２】
次に、上述のステップＳ１００３において経路検索部９０１で行われる経路検索処理について説明する。図１３は、経路検索処理の手順を示すフローチャートである。経路検索部９０１は、まず入力処理部１０３から受け取った仕様書データ１１１（状態遷移表データ）と記憶装置１１０の抽出条件データ９０４を参照し、ポインタを抽出条件データ９０４の開始条件に該当するセルに移動する（ステップＳ１３０１）。そして、かかる開始条件の位置から経路の実行処理を行い、経路を辿る（ステップＳ１３０２）。なお、かかる経路の実行処理は、実施の形態１（図６の処理）と同様に行われる。
【００６３】
経路の実行処理を行ったら、生成された経路データをループ判定部１０４と抽出条件判定部９０２に送出する（ステップＳ１３０３）。ループ判定部１０４では、経路データから現在のポインタのセルの位置がループ処理内のものであるかどうかを判断する。なお、かかるループ判定部１０４による判断処理については実施の形態１と同様である。
【００６４】
抽出条件判定部９０２では、現在のポインタ位置のセルが抽出条件である開始条件と終了条件の範囲内であるか否かが判断される。そして、範囲外であれば、検索終了メッセージを経路検索部９０１に送出する。
【００６５】
経路検索部９０１は、ループ判定部１０４と抽出条件判定部９０２から判断結果を受け取り（ステップＳ１３０４）、その判断結果がループ判定部１０４からの検索停止メッセージであるか否かまたは抽出条件判定部９０２からの検索終了メッセージであるか否かを判断する（ステップＳ１３０５）。判断結果が検索停止メッセージ、検索終了メッセージのいずれでもでない場合には、ループ処理でないと判断し、ステップＳ１３０２からステップＳ１３０４までの処理を繰り返す。
【００６６】
一方、判断結果が検索停止メッセージか検索終了メッセージのいずれかである場合には現在のポインタ位置からプログラムの進行方向と逆方向に経路を戻りながら経路の実行処理を行う（ステップＳ１３０６）。かかる経路の逆方向の実行処理は、ポインタを今まで辿ってきた経路を逆方向に進めながら実施の形態１の図６で説明した経路実行処理と同様の処理を行う。以下、ステップＳ１３０７からＳ１３１１までの処理は、実施の形態１で説明した経路検索処理と同様である。
【００６７】
このように実施の形態２の試験項目抽出装置および試験項目抽出プログラムでは、状態遷移表という仕様書データに基づいて、経路を辿って検索しながら試験項目を生成しているので仕様書データに基づくプログラムの試験項目を自動的に抽出することができ、高品質なソフトウェアを提供するとともに、開発期間の短縮化を図ることができる。
【００６８】
実施の形態２の試験項目抽出装置および試験項目抽出プログラムでは、利用者が希望する抽出条件の範囲で試験項目を抽出できるので、利用者の便宜が図られる。
【００６９】
なお、実施の形態１および２の試験項目抽出装置および試験項目抽出プログラムでは、仕様書データとして状態遷移表を利用したが、この他、状態遷移図、ステートチャートなど、状態、イベント、アクション、遷移先の状態がわかるものであれば、いずれの仕様書を用いてもよい。また、ユースケース図やアクティビティ図などを仕様書として用いることもできる。
【００７０】
【発明の効果】
以上説明したように、請求項１にかかる発明によれば、仕様書データに基づくプログラムの試験項目を自動的に抽出することができ、高品質なソフトウェアを提供するとともに、開発期間の短縮化を図ることができるという効果を奏する。
【００７１】
また、請求項２にかかる発明によれば、利用者が希望する範囲で試験項目を自動的に抽出することができ、利用者の便宜が図られるという効果を奏する。
【００７２】
また、請求項３にかかる発明によれば、抽出された試験項目の形式を統一することができるという効果を奏する。
【００７３】
また、請求項４にかかる発明によれば、抽出された試験項目の形式を一般的に使用されている記法に統一することができ、試験項目の汎用性を向上させることができるという効果を奏する。
【００７４】
また、請求項５にかかる発明によれば、抽出された試験項目を再利用することができるという効果を奏する。
【００７５】
また、請求項６にかかる発明によれば、試験実行の自動化を実現することができ、開発期間のさらなる短縮化を図ることができるという効果を奏する。
【図面の簡単な説明】
【図１】実施の形態１である試験項目抽出プログラムの機能的ブロック図である。
【図２】状態遷移表の一例を示す説明図である。
【図３】図３（ａ）は、経路データの一例を示す説明図であり、図３（ｂ）は、試験項目データの一例を示す説明図である。
【図４】試験項目抽出の全体処理の手順を示すフローチャートである。
【図５】経路検索処理の手順を示すフローチャートである。
【図６】経路検索部の経路検索処理で行われる経路の実行処理の手順を示すフローチャートである。
【図７】ループ判定処理の手順を示すフローチャートである。
【図８】経路比較処理の手順を示すフローチャートである。
【図９】実施の形態２の試験項目抽出プログラムの機能ブロック図である。
【図１０】実施の形態２の試験項目抽出プログラムにおける試験項目抽出の全体処理の手順を示すフローチャートである。
【図１１】抽出条件設定画面の一例を示す説明図である。
【図１２】抽出条件データの一例を示す説明図である。
【図１３】経路検索処理の手順を示すフローチャートである。
【符号の説明】
１００，９００  試験項目抽出部
１０１，９０１  経路検索部
１０２  経路比較部
１０３  入力処理部
１０４  ループ判定部
１０５  試験項目出力処理部
１０６  試験実行処理部
１１０  記憶装置
１１１  仕様書データ
１１２  経路データ
１１３  試験項目データ
９０２  抽出条件判定部
９０３  抽出条件設定部
９０４  抽出条件データ
【図１】
2004151884.tif 000003
【図２】
2004151884.tif 000004
【図３】
2004151884.tif 000005
【図４】
2004151884.tif 000006
【図５】
2004151884.tif 000007
【図６】
2004151884.tif 000008
【図７】
2004151884.tif 000009
【図８】
2004151884.tif 000010
【図９】
2004151884.tif 000011
【図１０】
2004151884.tif 000012
【図１１】
2004151884.tif 000013
【図１２】
2004151884.tif 000014
【図１３】
2004151884.tif 000015