(57)【要約】【課題】ソフトウエアモジュールを結合して実施するテストの負担を軽減する。【解決手段】テスト結果解析部２５は、解析対象テスト結果テーブルと前回の同テスト実施時のテスト結果テーブルをテスト結果データベース２３から読み込み、解析対象テスト結果テーブルの各テスト項目について、当該テスト項目のテスト実施結果が、前回テストのテスト結果テーブルの同テスト項目のテスト実施結果と一致するかどうかを比較し比較結果を得る。そして、解析対象テスト結果テーブルの各テスト項目について、テスト解析ルールテーブル２４に、そのテスト項目に対して定義されている判定ルールを適用し最終的なテスト結果を求める。前回から修正／変更されていないソフトウエアモジュールに関わるテスト項目については、前回テストのテスト実施結果と一致した場合には、最終的なテスト結果としてＯＫが提示されるよう、判定ルールは設定する、【選択図】図２
2004126899.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウエアに対して複数のテスト項目を含むテストを実施するテストシステムであって、
実施したテストの各テスト項目のテスト結果の可否を表すテスト結果情報を記憶するテスト結果記憶手段と、
前記各テスト項目のテスト結果の良否判定のルールを規定する判定ルールを記憶した判定ルール記憶手段と、
今回行ったテストの前記テスト結果情報が示す各テスト項目のテスト結果と、前回または過去に行ったテストの前記テスト結果情報が示す当該テスト項目のテスト結果との一致の有無を判定する一致判定手段と、
今回行ったテストの前記テスト結果情報が示す各テスト項目のテスト結果の可否と、当該テスト項目について前記一致判定手段が判定した一致の有無と、当該テスト項目の前記判定ルールとに応じて、当該テスト項目のテスト結果の良否を判定し出力するテスト結果判定手段とを有し、
前記各テスト項目の判定ルールは、当該テスト項目のテスト結果と、今回行ったテストの前記テスト結果情報が示す各テスト項目のテスト結果の可否と当該テスト項目について前記一致判定手段が判定した一致の有無との組み合わせとの対応を定義するものであることを特徴とするテストシステム。
【請求項２】
請求項１記載のテストシステムであって、
前記各テスト項目の判定ルールには、前記テスト項目のテスト結果が可であった場合にテスト結果を良と判定するという良否判定のルールと、前記テスト項目について前記一致判定手段の判定が一致であった場合にテスト結果を良と判定するという良否判定のルールと、前記テスト項目のテスト結果が可であるか前記テスト項目について前記一致判定手段の判定が一致であった場合にテスト結果を良と判定するという良否判定のルールと、の３つの良否判定のルールのうちの少なくとも２つの良否判定のルールを前記テスト項目毎に選択的に設定可能であることを特徴とするテストシステム。
【請求項３】
請求項１または２記載のテストシステムであって、
前記テスト結果判定手段は、前記各テスト項目について前記一致判定手段が判定した一致の有無を出力することを特徴とするテストシステム。
【請求項４】
コンピュータシステムに読み取られ実行されるコンピュータプログラムであって、
前記コンピュータプログラムは前記コンピュータシステムを、
ソフトウエアに対して複数のテスト項目を含むテストを実施するテストシステムであって、
実施したテストの各テスト項目のテスト結果の可否を表すテスト結果情報を記憶するテスト結果記憶手段と、
前記各テスト項目のテスト結果の良否判定のルールを規定する判定ルールを記憶した判定ルール記憶手段と、
今回行ったテストの前記テスト結果情報が示す各テスト項目のテスト結果と、前回または過去に行ったテストの前記テスト結果情報が示す当該テスト項目のテスト結果との一致の有無を判定する一致判定手段と、
今回行ったテストの前記テスト結果情報が示す各テスト項目のテスト結果の可否と、当該テスト項目について前記一致判定手段が判定した一致の有無と、当該テスト項目の前記判定ルールとに応じて、当該テスト項目のテスト結果の良否を判定し出力するテスト結果判定手段と、
して機能させ、
前記各テスト項目の判定ルールは、当該テスト項目のテスト結果と、今回行ったテストの前記テスト結果情報が示す各テスト項目のテスト結果の可否と当該テスト項目について前記一致判定手段が判定した一致の有無との組み合わせとの対応を定義するものであることを特徴とするコンピュータプログラム。
【請求項５】
コンピュータを用いて、ソフトウエアに対して複数のテスト項目を含むテストを実施するテスト方法であって、
前記コンピュータに、各テスト項目のテスト結果の良否判定のルールを規定する判定ルールを設定するステップと、
前記コンピュータが、実施したテストの各テスト項目のテスト結果の可否を表すテスト結果情報を記憶するステップと、
前記コンピュータが、今回行ったテストの前記テスト結果情報が示す各テスト項目のテスト結果と、前回または過去に行ったテストの前記テスト結果情報が示す当該テスト項目のテスト結果との一致の有無を判定するステップと、
前記コンピュータが、今回行ったテストの前記テスト結果情報が示す各テスト項目のテスト結果の可否と、当該テスト項目について判定した前記一致の有無と、当該テスト項目の前記設定した判定ルールとに応じて、当該テスト項目のテスト結果の良否を判定し出力するステップとを有し、
前記判定ルールを設定するステップにおいては、ソフトウエアを構成するソフトウエアモジュールの内で前回のテスト実施以後に変更があったソフトウエアモジュールの影響を受けるテスト項目の判定ルールには、前記テスト項目のテスト結果が可であった場合にテスト結果を良と判定するという良否判定のルールを設定し、完成していないソフトウエアモジュールの影響を受けるテスト項目の判定ルールには、前記テスト項目について前記一致判定手段の判定が一致であった場合にテスト結果を良と判定するという良否判定のルール、または、前記テスト項目のテスト結果が可であるか前記テスト項目について前記一致判定手段の判定が一致であった場合にテスト結果を良と判定するという良否判定のルールを設定することを特徴とするソフトウエアのテスト方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ソフトウエアが仕様通りの機能を実現しているか等をテストする技術に関するものである。
【０００２】
【従来の技術】
ある程度の大きな規模を有するソフトウエア製品は、複数のソフトウエアモジュールの組み合わせとして作成される場合が多い。そして、このような場合、各ソフトウエアモジュールは、個別に、その開発担当者毎に並行して作成されるのが一般的である。
【０００３】
このようなソフトウエア製品が仕様通りの機能を実現しているか等のテストは、最終的には全てのソフトウエアモジュールの作成が完了した後に、全てのソフトウエアモジュールを結合した状態において行うことになる。
しかし、開発の効率化やその他の理由により、全てのソフトウエアモジュールの完成を待たずに、一部のソフトウエアモジュールが完成した時点で、完成したソフトウエアモジュールだけを部分的に結合してテストを実施することも有意義である。
【０００４】
【発明が解決しようとする課題】
前述したように、全てのソフトウエアモジュールの完成を待たずに、一部のソフトウエアモジュールが完成した時点で、完成したソフトウエアモジュールだけを部分的に結合してテストを実施する場合には、テストするテスト項目のうち完成していないソフトウエアモジュールに機能が関わるテスト項目についてはテスト結果が当然に不良となる。このため、テスト実施者は、テストの度に、各テスト項目のテスト結果について、その不良となったテスト結果がソフトウエアモジュールの不具合によるものなのか、それとも完成していないソフトウエアモジュールに関連する機能についてのテスト項目であるために不良となったものなのかを、一つ一つ判定していかなければならず、その作業が煩雑であった。
【０００５】
そこで、本発明は、部分的にソフトウエアモジュールを結合して実施するテストの負担の軽減と、効率化を図ることを課題とする。
【０００６】
【課題を解決するための手段】
前記課題達成のために本発明は、ソフトウエアに対して複数のテスト項目を含むテストを実施するテストシステムを、実施したテストの各テスト項目のテスト結果の可否を表すテスト結果情報を記憶するテスト結果記憶手段と、前記各テスト項目のテスト結果の良否判定のルールを規定する判定ルールを記憶した判定ルール記憶手段と、今回行ったテストの前記テスト結果情報が示す各テスト項目のテスト結果と、前回または過去に行ったテストの前記テスト結果情報が示す当該テスト項目のテスト結果との一致の有無を判定する一致判定手段と、今回行ったテストの前記テスト結果情報が示す各テスト項目のテスト結果の可否と、当該テスト項目について前記一致判定手段が判定した一致の有無と、当該テスト項目の前記判定ルールとに応じて、当該テスト項目のテスト結果の良否を判定し出力するテスト結果判定手段とより構成し、前記各テスト項目の判定ルールを、当該テスト項目のテスト結果と、今回行ったテストの前記テスト結果情報が示す各テスト項目のテスト結果の可否と当該テスト項目について前記一致判定手段が判定した一致の有無との組み合わせとの対応を定義するものとしたものである。
より具体的には、前記テスト項目の判定ルールには、前記テスト項目のテスト結果が可であった場合にテスト結果を良と判定するという良否判定のルールと、前記テスト項目について前記一致判定手段の判定が一致であった場合にテスト結果を良と判定するという良否判定のルールと、前記テスト項目のテスト結果が可であるか前記テスト項目について前記一致判定手段の判定が一致であった場合にテスト結果を良と判定するという良否判定のルールと、の３つの良否判定のルールのうちの少なくとも２つの良否判定のルールを前記テスト項目毎に選択的に設定可能としてよい。
【０００７】
ここで、このようなテストシステムにおいては、前記テスト結果判定手段で、前記各テスト項目について前記一致判定手段が判定した一致の有無も出力するようにして良い。
このようなテストシステムによれば、たとえば、テスト対象のソフトウエアを構成するソフトウエアモジュールのうち、完成していないソフトウエアモジュールの影響を受けるテスト項目の判定ルールには、前記テスト項目について前記一致判定手段の判定が一致であった場合にテスト結果を良と判定するという良否判定のルール、または、前記テスト項目のテスト結果が可であるか前記テスト項目について前記一致判定手段の判定が一致であった場合にテスト結果を良と判定するという良否判定のルールを予め設定することにより、これらソフトウエアモジュールが完成していないためにテスト結果が否となるテスト項目をマスクし、このテスト項目のテスト結果に、テスト実施者が、テストの度に煩わされることを排除することができる。
【０００８】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
図１に本実施形態に係るソフトウエアのテストシステムが適用されるコンピュータシステムの構成例を示す。
図示するように、このコンピュータシステムは、ソフトウエア作成者が使用するプログラム開発用のコンピュータ１と、ソフトウエアのテスト実施者が使用するコンピュータ２とがネットワーク３で接続された構成を有している。
各ソフトウエア開発者は、コンピュータ１上でソフトウエアモジュールのプログラムを作成し、作成したプログラムをテスト対象プログラムとしてコンピュータ２にネットワーク３を介して転送する。一方、テスト実施者は、コンピュータ２上でコンピュータ２に転送された各テスト対象プログラムを結合したテスト対象ソフトウエアに対してテストを実行する。
【０００９】
図２にコンピュータ２上に、コンピュータ２のテストシステムプログラムの実行によって構築されるテストシステムの構成を示す。
図示するように、本テストシステムは、複数のテスト対象プログラムの結合として形成されるテスト対象ソフトウエア１０、テストの内容を定義するテスト定義テーブル２１、テスト定義テーブル２１の定義に従ってテスト対象プログラムを実行しテスト結果を得るテスト実行部２２、テスト結果を蓄積するテスト結果データベース２３、テスト結果の解析ルールを格納したテスト解析ルールテーブル２４、テスト解析ルールテーブル２４に従ってテスト結果データベース２３に格納されたテスト結果を解析し、解析結果を最終的なテスト結果として出力するテスト結果解析部２５とを有する。
【００１０】
ここで、テスト定義テーブル２１は、図３ａに示すように、テスト定義テーブル２１が規定するテストの識別子であるテストＩＤと、ソフトウエアをテストする細目であるテスト項目毎に設けられたテスト項目定義エントリを複数有する。そして、各テスト項目定義エントリには当該テスト項目の識別子であるテスト項目ＩＤと、当該テスト項目をテストするためにテスト対象ソフトウエア１０に実行させる動作を規定した動作定義Ａｉと、その動作が仕様通りのものであった場合に得られるはずの結果が適正動作結果Ｘｉとして記述されている。
【００１１】
次に、テスト結果データベース２３には、以上のようなテスト定義テーブル２１に従ったテスト実行部２２によるテスト対象ソフトウエア１０の各テスト項目毎のテスト結果を示すテスト結果テーブルが蓄積される。図３ｂに示すように、各テスト結果テーブルは、対応するテストのテストＩＤ、当該テストＩＤのテストの何回目の実施に対応するテスト結果であるかを示すシリアル番号、対応するテストの実施日時を示すテスト実施日時と、テスト項目毎に設けたテスト項目のテスト結果を示すテスト項目結果エントリを複数有する。そして、テスト項目結果エントリは、当該テスト項目のテスト項目ＩＤと、当該テスト項目のテスト実施結果がテスト定義テーブル２１に記述された当該テスト項目の適正動作結果通りであったかどうかを示すテスト実施結果（ＯＫ／ＮＧ）が格納される。
【００１２】
次に、図３ｃに示すように、テスト解析ルールテーブル２４は、当該テスト解析ルールテーブル２４がテスト結果の解析に適用されるテストのテストＩＤと、テスト項目毎に設けたテスト項目の解析ルールを示すテスト項目解析エントリを複数有する。そして、各テスト項目解析エントリには、対応するテスト項目のテストＩＤと、判定ルールが記述される。ここで、判定ルールは、解析対象のテスト結果テーブルに記述された当該テスト項目のテスト実施結果の値と、当該解析対象のテスト結果テーブルと同じテストＩＤを持つ、解析対象のテスト結果テーブルよりシリアル番号が一つ前のテスト結果テーブル（前回の同テスト実施時のテスト結果テーブル）に記述された当該テスト項目のテスト実施結果の値との組み合わせが、どのようなものであった場合に、当該テスト項目のテスト結果をＯＫとするかのルールが記述されている。
【００１３】
すなわち、判定ルールでは、たとえば、あるテスト項目に対して、解析対象のテスト結果テーブルの当該テスト項目のテスト実施結果がＯＫの場合に無条件に最終的なテスト結果をＯＫとするように定義することができる。また、たとえば、あるテスト項目に対しては、解析対象のテスト結果テーブルの当該テスト項目のテスト実施結果が、前回の同テスト実施時のテスト結果テーブルの当該テスト項目のテスト実施結果とが同じである場合には、最終的なテスト結果をＯＫとするように定義することができる。また、たとえば、あるテスト項目に対しては、解析対象のテスト結果テーブルの当該テスト項目のテスト実施結果がＯＫか、または、解析対象のテスト結果テーブルの当該テスト項目のテスト実施結果がＮＧの場合であっても前回の同テスト実施時のテスト結果テーブルとテスト実施結果が同じである場合には、最終的なテスト結果をＯＫとするように定義することができる。
【００１４】
なお、図中の判定ルール中の「ＯＫ」は解析対象のテスト結果テーブルの当該テスト項目のテスト実施結果がＯＫであることを、「ＮＧ」は解析対象のテスト結果テーブルの当該テスト項目のテスト実施結果がＮＧであることを、「一致」は解析対象のテスト結果テーブルの当該テスト項目のテスト実施結果が、前回の同テスト実施時のテスト結果テーブル当該テスト項目のテスト実施結果と同じであることを表す。そして、図中の判定ルール中の論理式が真であった場合、最終的なテスト結果がＯＫとなる。
【００１５】
ここで、テスト実施者やソフトウエア開発者は、予め各判定ルールを、たとえば、次のように設定する。
すなわち、テスト項目のテスト実施結果に関わるソフトウエアモジュールの全ての作成が完了しているテスト項目については、解析対象のテスト結果テーブルの当該テスト項目のテスト実施結果がＯＫの場合にのみ最終的なテスト結果をＯＫとするように定義する。一方、テスト項目のテスト実施結果に関わるソフトウエアモジュールの全ての作成が完了していないテスト項目については、解析対象のテスト結果テーブルの当該テスト項目のテスト実施結果がＯＫか、または、解析対象のテスト結果テーブルの当該テスト項目のテスト実施結果がＮＧの場合であっても前回の同テスト実施時のテスト結果テーブルとテスト実施結果が同じである場合には、最終的なテスト結果をＯＫとするように定義する。
【００１６】
または、テスト実施者やソフトウエア開発者は、予め各判定ルールを、たとえば、次のように設定する。
すなわち、前回のテスト実施時以降に変更、修正等があったソフトウエアモジュールが関わるテスト項目については、解析対象のテスト結果テーブルの当該テスト項目のテスト実施結果がＯＫの場合にのみ最終的なテスト結果をＯＫとするように定義する。そして、他のテスト項目については、解析対象のテスト結果テーブルの当該テスト項目のテスト実施結果が、前回の同テスト実施時のテスト結果テーブル当該テスト項目のテスト実施結果と同じである場合に最終的なテスト結果をＯＫとするように定義する。
【００１７】
以下、このようなテスト解析ルールテーブル２４を用いたテスト結果解析の動作について説明する。
図２において、テスト実行部２２は、テスト定義テーブル２１に従ってテストを実施し、その結果を格納したテスト結果テーブルをテスト結果データベース２３に格納すると、格納したテスト結果テーブルの処理をテスト結果解析部２５に要求する。
【００１８】
この要求を受けたテスト結果解析部２５は、図４ａに示す解析処理を実行する。
図示するように、解析処理では、まず、処理を要求されたテスト結果テーブルを解析対象テスト結果テーブルとしてテスト結果データベース２３から読み込み（ステップ４１）、読み込んだテスト結果テーブルと同じテストＩＤを持つテスト解析ルールテーブル２４を読み込む（ステップ４３）。また、解析対象テスト結果テーブルと同じテストＩＤを持つ、解析対象のテスト結果テーブルよりシリアル番号が一つ前のテスト結果テーブル（前回の同テスト実施時のテスト結果テーブル）を参照テスト結果テーブルとしてテスト結果データベース２３から読み込む（ステップ４５）。
【００１９】
そして、解析対象テスト結果テーブルの各テスト項目結果エントリについて（ステップ４７、５３、５７）、当該テスト項目結果エントリのテスト実施結果が、当該テスト項目結果エントリと同じテスト項目ＩＤを持つ、参照テスト結果テーブルのテスト項目結果エントリのテスト実施結果を一致するかどうかを比較し比較結果を得る（ステップ４９）。なお、ステップ５３のＭａｘｉは、テスト項目ＩＤの数を表す。
【００２０】
そして、次に、解析対象テスト結果テーブルの各テスト項目結果エントリについて、読み込んでおいたテスト解析ルールテーブル２４の同テスト項目ＩＤの判定ルールを適用し、必要に応じてステップ４９で求めた比較結果を参照しながら、最終的なテスト結果を求める（ステップ５１）。
【００２１】
そして、以上の処理によって解析対象テスト結果テーブルの各テスト項目結果エントリについて比較結果と、最終的なテスト結果が求まったならば、これをたとえば、図４ｂに示すような形式で表示等によりテスト実施者に提示する（ステップ５５）。
【００２２】
この結果、テスト実施者は、この最終的なテスト結果の提示より、ソフトウエアモジュールの未完成によらない不具合箇所や、変更、追加されたソフトウエアモジュールの可否判定を容易に判定することができるようになる。
以上、本発明の実施形態について説明した。
ところで、以上では、テストシステムが稼働するコンピュータ２上でテスト対象ソフトウエア１０を実行してテストする場合について説明したが、テスト対象ソフトウエア１０はコンピュータ２に接続した他装置上で実行されるものであってもよい。すなわち、テスト対象ソフトウエア１０は、任意の電子機器用のファームウエアなどであってよく、この場合、テストシステムは、当該電子機器上でテスト対象ソフトウエア１０を実行させ、その実行結果を得て、各テスト項目のテスト実施結果を得るようにしてよい。
また、以上では、解析対象テスト結果テーブルと同テストの前回実施に対して作成されたテスト結果テーブルを参照テスト結果テーブルとして、解析対象テスト結果テーブルの各テスト項目結果エントリについて、当該テスト項目結果エントリのテスト実施結果が、当該テスト項目結果エントリと同じテスト項目ＩＤを持つ、参照テスト結果テーブルのテスト項目結果エントリのテスト実施結果を一致するかどうかを比較したが、参照テスト結果テーブルとしては、前回の同テストに対して作成されたテスト結果テーブル以外の、解析対象テスト結果テーブルと同テストの過去任意の回の実施に対して作成したテスト結果テーブルをテスト実施者の選択などに応じて用るようにしてもよい。
また、テスト結果データベース２３に格納された各テスト結果テーブルは、適宜、テスト実施者の操作に応じて印刷・表示出力するようにするのが良い。
また、テスト解析ルールテーブル２４を、ネットワーク３上に公開し、コンピュータ２を利用するソフトウエア開発者やソフトウエア開発統轄者が、直接、テスト解析ルールテーブル２４の各テスト項目の判定ルールを各ソフトウエアモジュールの開発の進捗状況に応じて設定することができるようにしてもよい。また、ソフトウエアの各ソフトウエアモジュールの開発の進捗を管理する管理システムを備えている場合などには、このような管理システムとテストシステムを連携させ、管理システムの管理する各ソフトウエアモジュールの開発の進捗状況に応じて、テスト解析ルールテーブル２４の各テスト項目の判定ルールが、たとえば前記テスト実施者の判定ルール設定の仕方と同様の仕方で自動的に更新されるようにしてもよい。
【００２３】
【発明の効果】
以上のように、本発明によれば、部分的にソフトウエアモジュールを結合して実施するテストの負担の軽減と、効率化を図ることができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係るテストシステムが適用されるコンピュータシステムの構成例を示すブロック図である。
【図２】本発明の実施形態に係るテストシステムの構成を示すブロック図である。
【図３】本発明の実施形態で用いるテーブルを示す図である。
【図４】本発明の実施形態に係る解析処理の手順を示すフローチャートである。
【符号の説明】
１０：テスト対象ソフトウエア、２１：テスト定義テーブル、２２：テスト実行部、２３：テスト結果データベース、２４：テスト解析ルールテーブル、２５：テスト結果解析部。
【図１】
2004126899.tif 000003
【図２】
2004126899.tif 000004
【図３】
2004126899.tif 000005
【図４】
2004126899.tif 000006