(57)【要約】【課題】ＧＵＩを持つアプリケーションのテスト項目作成のため、当該アプリケーションから直接ボタン等のＧＵＩに関する情報を抽出して因子・水準を決定し、テストの実行を自動的に行うソフトウェアテスト支援装置、ソフトウェアテスト支援方法、及びプログラムを提供する。【解決手段】ＧＵＩを有する被テストアプリケーション１１から表示装置１６に表示するための画面情報をＧＵＩ情報として抽出するＧＵＩ情報抽出部１２と、ＧＵＩ情報抽出部１２により抽出されたＧＵＩ情報を表示装置１６に表示させるＧＵＩ情報表示制御部１４と、ＧＵＩ情報抽出部１２により抽出されたＧＵＩ情報とユーザにより外部から入力されたテスト対象を特定するためのテスト対象情報とに基づいて被テストＧＵＩ部品の判定を行うとともに、判定結果に基づいて因子・水準を決定するＧＵＩ情報判定部１７と、ＧＵＩ情報判定部１７により決定された因子・水準に基づいて直交表を生成する直交表生成部１８とを備える。【選択図】図１
2011039786.tif 000002
【特許請求の範囲】
【請求項１】
ＧＵＩを有する被テストアプリケーションから表示装置に表示するための画面情報をＧＵＩ情報として抽出するＧＵＩ情報抽出部と、
前記ＧＵＩ情報抽出部により抽出されたＧＵＩ情報を前記表示装置に表示させるＧＵＩ情報表示制御部と、
前記ＧＵＩ情報抽出部により抽出されたＧＵＩ情報とユーザにより外部から入力されたテスト対象を特定するためのテスト対象情報とに基づいて被テストＧＵＩ部品の判定を行うとともに、判定結果に基づいて因子・水準を決定するＧＵＩ情報判定部と、
前記ＧＵＩ情報判定部により決定された因子・水準に基づいて直交表を生成する直交表生成部と、
を備えることを特徴とするソフトウェアテスト支援装置。
【請求項２】
前記ＧＵＩ情報判定部は、被テストＧＵＩ部品の判定を行う際に、各部品の部品種がプッシュボタン、チェックボックス、ラジオボタン、コンボボックス、及びエディットボックスのいずれの部品種であるかを判定し、部品種に応じた因子・水準を決定することを特徴とする請求項１記載のソフトウェアテスト支援装置。
【請求項３】
前記ＧＵＩ情報判定部により判定された被テストＧＵＩ部品の部品情報と前記直交表生成部により生成された直交表とユーザにより外部から入力されたテスト条件情報とに基づいて前記被テストアプリケーションに対するテストを行うテスト自動実行部を備えることを特徴とする請求項１又は請求項２記載のソフトウェアテスト支援装置。
【請求項４】
前記テスト自動実行部は、前記テスト条件情報に基づいて前記直交表の行と列の実行順序を決定するとともに、前記実行順序に基づいて被テストアプリケーションを制御するためのメッセージを生成し、前記メッセージを前記被テストアプリケーションに対して出力することによりテストを行うことを特徴とする請求項３記載のソフトウェアテスト支援装置。
【請求項５】
ＧＵＩを有する被テストアプリケーションから表示装置に表示するための画面情報をＧＵＩ情報として抽出するＧＵＩ情報抽出ステップと、
前記ＧＵＩ情報抽出ステップにより抽出されたＧＵＩ情報を前記表示装置に表示させるＧＵＩ情報表示制御ステップと、
前記ＧＵＩ情報抽出ステップにより抽出されたＧＵＩ情報とユーザにより外部から入力されたテスト対象を特定するためのテスト対象情報とに基づいて被テストＧＵＩ部品の判定を行うとともに、判定結果に基づいて因子・水準を決定するＧＵＩ情報判定ステップと、
前記ＧＵＩ情報判定ステップにより決定された因子・水準に基づいて直交表を生成する直交表生成ステップと、
を備えることを特徴とするソフトウェアテスト支援方法。
【請求項６】
ＧＵＩを有する被テストアプリケーションから表示装置に表示するための画面情報をＧＵＩ情報として抽出する処理と、
抽出されたＧＵＩ情報を前記表示装置に表示させる処理と、
抽出されたＧＵＩ情報とユーザにより外部から入力されたテスト対象を特定するためのテスト対象情報とに基づいて被テストＧＵＩ部品の判定を行うとともに、判定結果に基づいて因子・水準を決定する処理と、
決定された因子・水準に基づいて直交表を生成する処理と、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を備えるソフトウェアに対し、直交表を利用したテスト項目を作成するための因子・水準の入力を支援し、テスト項目を自動的に実行するソフトウェアテスト支援装置、ソフトウェアテスト支援方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ソフトウェアテストの際に、テスト項目の多様性を保ちつつ、少ないテスト数で不具合検出が行えることから直交表を利用したテスト項目作成手法が着目されている。
【０００３】
直交表とは、どの列をとっても同じ組み合わせが同じ回数出現する表のことである。図９は、Ｌ４直交表の例を示す図であり、因子Ａ、因子Ｂ、及び因子Ｃの各々が２通りの水準をとる場合の直交表である。図９において例えば、テスト１は、（因子Ａ，因子Ｂ，因子Ｃ）＝（１，１，１）の組み合わせでテストを行い、テスト２は、（因子Ａ，因子Ｂ，因子Ｃ）＝（１，２，２）の組み合わせでテストを行うことを意味する。
【０００４】
ここで、因子Ａと因子Ｂとの組み合わせに着目すると、（因子Ａ，因子Ｂ）＝｛（１，１），（１，２），（２，１），（２，２）｝となり、因子Ａと因子Ｂとで生成できるすべての組み合わせを網羅しているといえる。同様に、因子Ａと因子Ｃとの組み合わせ、及び因子Ｂと因子Ｃとの組み合わせにおいても生成できるすべての組み合わせを網羅している。ソフトウェアテストに直交表を利用することにより、少ないテスト回数で網羅度の高いテストを作成できるといえる。
【０００５】
次に、直交表を用いてソフトウェアテストを作成する場合の一般的なプロセスを説明する。図１０は、直交表を用いたソフトウェアテストの流れを示すフローチャート図である。まず、因子・水準の抽出を行い、テストにおいて必要とされる因子とその水準を決定する（ステップＳ１）。次に、抽出された因子・水準から、二因子間の直交性を保証する最小の直交表の大きさを計算する（ステップＳ２）。
【０００６】
次に、直交表に因子・水準を割り当てる（ステップＳ３）。この際、最小の直交表は、必ずしもテストが必要な因子数、水準数と等しくなるわけではないため、余剰した因子・水準についてはダミー水準法や、Ｅｍｐｔｙ法等により補完される。
【０００７】
次に、禁則の除外により、テストが必要な因子・水準から有効でないテスト項目を削除する（ステップＳ４）。これにより、ありえない組み合わせとして予め認識されているテストを排除することができ、高効率化に資する。
【０００８】
次に、組み合わせ網羅率の計算として、二因子間の網羅度を計算する（ステップＳ５）。これは、ステップＳ４の禁則の除外によりテスト項目が削除された結果、二因子間の網羅度が１００％ではなくなるため、要求されるテストの網羅度を保っているか否かの確認に利用する。
【０００９】
最後に、直交表へのテスト項目追加を行う（ステップＳ６）。これは、直交表に新たにテスト項目追加することで先の二因子間の網羅度を、要求されるテストの網羅度まで向上させる処理である。
【００１０】
例えば、図９の直交表において、（因子Ａ，因子Ｂ）＝（１，２）の組み合わせがありえないことが予めわかっている場合には、ステップＳ４の禁則の除外において「テスト２」の項目は削除される。その場合に、（因子Ｂ，因子Ｃ）＝（２，２）の組み合わせもテストされないこととなり、組み合わせ網羅率が低下する。そこで、ステップＳ６において（因子Ａ，因子Ｂ，因子Ｃ）＝（２，２，２）のテスト項目を追加することにより、因子ＢＣ間の網羅率低下を防止することができる。
【００１１】
なお、ステップＳ６において、ユーザが特に確認しておきたいテスト項目を追加することもできる。
【００１２】
以上のプロセスにより、直交表に基づいたテスト項目を作成し実際のテストを行う。直交表の因子・水準抽出支援に関する先行技術文献として、以下に示す特許文献が挙げられる。
【００１３】
特許文献１には、プログラムテスト用のデータを、必要な多様性を確保しつつ少ないデータ量で生成するテストデータ生成システム及びテストデータ生成方法が記載されている。このテストデータ生成システムは、プログラムに入力され得る合計Ｍ個のパラメータのうち、任意のＮ（Ｍ≧Ｎ＞１）個のパラメータの組合せについて全てのパターンをそれぞれ網羅するテストデータを生成させるので、全てのパターンに従ってテストデータを生成する場合に比べて、テストデータのデータ量を低減することができ、多様なテストデータを効率よく生成することができるとともに、プログラムテストに要する時間を短縮することができる。
【００１４】
さらに、特許文献１に記載のテストデータ生成システムは、禁則パターンを除外してテストデータを生成できるため、無駄なテストデータの生成を未然に防止し、多様性を確保しつつテストデータのデータ量をより一層少なくすることができる。
【００１５】
特許文献２には、仕様情報の制御の分岐条件からテスト項目し、抽出したテスト項目の組み合わせを最適化したテスト項目組み合わせ情報を生成するテスト項目生成装置が記載されている。このテスト項目生成装置は、ガード条件情報解釈部、組合せ最適化部、組合せ情報出力部、及び直交表データ記憶部を備えている。
【００１６】
ガード条件情報解釈部は、アクティビティ図による仕様情報からテスト項目であるガード条件を２つ以上有する構成モデル要素を抽出し、抽出した構成モデル要素に対応付けて当該構成モデル要素が有するガード条件数、およびガード条件の文字列を登録したガード条件情報を生成する。
【００１７】
組合せ最適化部内部の因子数算出部は、ガード条件情報に登録されている構成モデル要素毎の水準値およびガード条件の割付に必要な因子数と、各構成モデル要素の因子数の合計値とを算出する。また、組合せ最適化部内部の直交表検索部は、直交表データ記憶部に登録されている直交表の中から因子数算出部によって算出された因子数の合計値を含む直交表に対応付けられた線点図の因子の水準値と因子数算出部が算出した各構成モデル要素の水準値とに基づいて直交表および線点図を選択してガード条件情報に登録された各構成モデル要素が有するガード条件の組合せを最適化する。
【００１８】
組合せ情報出力部は、直交表検索部によって最適化されたガード条件の組合せをテスト項目組合せ情報として出力する。
【００１９】
以上の構成を備えた特許文献２に記載のテスト項目生成装置によれば、仕様情報の制御の分岐条件からテスト項目を抽出するとともに、抽出したテスト項目の中で同時にテスト可能なテスト項目の組合せを最適化したテスト項目組合せ情報を生成することができる。すなわち、仕様情報から抽出したすべてのテスト項目であるガード条件を、直交表を用いて最適化して出力するようにしているため、テスト項目の組合せの数を最低限にすることができる。
【００２０】
特許文献３には、最適化解析を行う実験計画や田口メソッドの前処理として、制御因子や誤差因子あるいは信号因子を直交表や外側表等の水準表に対して割り付けして編集する際に好適なグラフィカルなユーザインターフェースを提供する実験計画法の支援装置が記載されている。この実験計画法の支援装置は、実験計画法に沿った最適化解析を支援する支援装置において、最適化解析に必要なデータの準備に用いられる水準値表に対して割り付ける誤差因子若しくは信号因子を、表示画面に表示された複数の候補一覧のなかから選択する選択手段と、候補一覧の中から制御因子として既に選択がなされている候補を識別し、他の候補と区別可能なように表示属性を変更する表示制御手段とを備えている。
【００２１】
この実験計画法の支援装置によれば、実験計画法や田口メソッドにおいて、制御因子のみならず誤差因子や信号因子を選択して最適化解析を行うにあたり、ユーザの不注意等により不適切なデータが設定されることなく安定して解析を行うことができる。
【先行技術文献】
【特許文献】
【００２２】
【特許文献１】特開２００６−２２７９５８号公報
【特許文献２】特開２００７−２４９８２６号公報
【特許文献３】特開２００２−２５９４６４号公報
【発明の概要】
【発明が解決しようとする課題】
【００２３】
直交表作成において最も重要なプロセスは、因子・水準の抽出である。しかしながら、今日においてインターフェースとして広く普及しているＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を備えるソフトウェアに対して直交表を利用したテスト項目を作成するために、ボタン等のＧＵＩ部品に関する情報から直接的に必要な因子・水準を抽出する技術は開示されていない。
【００２４】
特許文献１に記載のテストデータ生成システムは、データ生成プログラムにより、データベース等に登録されたテーブル情報からテストテーブルを作成し、テストテーブルに基づいてテストを行うためのものである。しかしながら、データ生成プログラムに入力される条件やパラメータは、データベース等の表をベースにしたものであるため、ＧＵＩ情報から直接的に因子・水準抽出を行うことはできない。したがって、ＧＵＩのテストの際には、ＧＵＩに関する情報を表情報に変換する必要がある。
【００２５】
特許文献２に記載のテスト項目生成装置は、アクティビティ図のような仕様情報からガード条件や状態遷移を検出してテスト項目を作成する。しかしながら、ＧＵＩのテストの際には、このような状態遷移がガード条件をＧＵＩ部品から直接的に抽出することができないため、単純に適用することは困難である。
【００２６】
特許文献３に記載の実験計画法の支援装置は、入力編集部により、設計情報ＤＢに制御因子、信号因子、誤差因子等の変数を登録し、その直交表を作成するシステムである。しかしながら、設計情報ＤＢに登録されるのは数式等の数理モデルであり、ＧＵＩに関する情報を扱うことはできない。
【００２７】
本発明は上述した従来技術の問題点を解決するもので、ＧＵＩを持つアプリケーションのテスト項目作成のため、当該アプリケーションから直接ボタン等のＧＵＩに関する情報を抽出して因子・水準を決定し、テストの実行を自動的に行うソフトウェアテスト支援装置、ソフトウェアテスト支援方法、及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【００２８】
本発明に係るソフトウェアテスト支援装置は、上記課題を解決するために、ＧＵＩを有する被テストアプリケーションから表示装置に表示するための画面情報をＧＵＩ情報として抽出するＧＵＩ情報抽出部と、前記ＧＵＩ情報抽出部により抽出されたＧＵＩ情報を前記表示装置に表示させるＧＵＩ情報表示制御部と、前記ＧＵＩ情報抽出部により抽出されたＧＵＩ情報とユーザにより外部から入力されたテスト対象を特定するためのテスト対象情報とに基づいて被テストＧＵＩ部品の判定を行うとともに、判定結果に基づいて因子・水準を決定するＧＵＩ情報判定部と、前記ＧＵＩ情報判定部により決定された因子・水準に基づいて直交表を生成する直交表生成部とを備えることを特徴とする。
【発明の効果】
【００２９】
本発明によれば、ＧＵＩを持つアプリケーションのテスト項目作成のため、当該アプリケーションから直接ボタン等のＧＵＩに関する情報を抽出して因子・水準を決定し、テストの実行を自動的に行うことができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施例１の形態のソフトウェアテスト支援装置の構成を示すブロック図である。
【図２】本発明の実施例１の形態のソフトウェアテスト支援装置のＧＵＩ情報抽出部によるＧＵＩ情報抽出例を示す図である。
【図３】本発明の実施例１の形態のソフトウェアテスト支援装置のＧＵＩ情報判定部による因子・水準の抽出例を示す図である。
【図４】本発明の実施例１の形態のソフトウェアテスト支援装置のＧＵＩ情報判定部の動作を示すフローチャート図である。
【図５】本発明の実施例１の形態のソフトウェアテスト支援装置の直交表生成部による直交表の作成例を示す図である。
【図６】本発明の実施例２の形態のソフトウェアテスト支援装置の構成を示すブロック図である。
【図７】本発明の実施例２の形態のソフトウェアテスト支援装置のＧＵＩ情報判定部によるテスト自動実行部に対する出力例を示す図である。
【図８】本発明の実施例２の形態のソフトウェアテスト支援装置のテスト自動実行部の動作を示すフローチャート図である。
【図９】Ｌ４直交表の例を示す図である。
【図１０】直交表を用いたソフトウェアテストの流れを示すフローチャート図である。
【発明を実施するための形態】
【００３１】
以下、本発明のソフトウェアテスト支援装置、ソフトウェアテスト支援方法、及びプログラムの実施の形態について、図面を参照して詳細に説明する。
【実施例１】
【００３２】
図１は、本発明の実施例１のソフトウェアテスト支援装置１ａの構成を示すブロック図である。図１を参照して、ソフトウェアテスト支援装置１ａの構成を説明する。本実施例のソフトウェアテスト支援装置１ａは、図１に示すように、ＧＵＩ情報抽出部１２、ＧＵＩ情報記憶部１３、ＧＵＩ情報表示制御部１４、ＧＵＩ情報判定部１７、直交表生成部１８、及び直交表出力部１９により構成されている。
【００３３】
被テストアプリケーション１１は、テストが行われるＧＵＩを有するアプリケーションであり、ソフトウェアテスト支援装置１ａ内のＧＵＩ情報抽出部１２との間で情報の授受を行う。被テストアプリケーション１１とソフトウェアテスト支援装置１ａとは、通常、同一のＣＰＵ内に構成されている。
【００３４】
ＧＵＩ情報抽出部１２は、ＧＵＩを有する被テストアプリケーション１１から表示装置１６に表示するための画面情報をＧＵＩ情報として抽出し、抽出結果をＧＵＩ情報記憶部１３に対して出力する。ここで、表示装置１６は、被テストアプリケーション１１やソフトウェアテスト支援装置１ａからの情報を表示する装置であり、例えばディスプレイである。
【００３５】
ＧＵＩ情報記憶部１３は、ＧＵＩ情報抽出部１２により抽出されたＧＵＩ情報を格納する場所である。ここで、ＧＵＩ情報とは、被テストアプリケーション１１の画面を構成するＧＵＩ部品を列挙した情報である。
【００３６】
ＧＵＩ情報表示制御部１４は、ＧＵＩ情報抽出部１２により抽出されたＧＵＩ情報をＧＵＩ情報記憶部１３から取得し、取得したＧＵＩ情報を表示装置１６に表示させる。なお、表示形式は、表形式であってもよいし、ＧＵＩ部品を実際の位置に配置した画面でもよい。
【００３７】
ＧＵＩ情報判定部１７は、ＧＵＩ情報抽出部１２により抽出されたＧＵＩ情報とユーザにより外部から入力されたテスト対象を特定するためのテスト対象情報とに基づいて被テストＧＵＩ部品の判定を行うとともに、判定結果に基づいて因子・水準を決定する。ユーザは、表示装置１６に表示されたＧＵＩ情報を元に、テストを行いたい項目を決定し、入力装置１５を介してテスト対象情報をＧＵＩ情報判定部１７に送る。
【００３８】
ここで、入力装置１５は、ユーザが操作することにより情報を送信する機器であり、例えばキーボードやマウス等である。また、テスト対象情報は、例えばユーザにより選択された被テストＧＵＩ部品の情報である。
【００３９】
直交表生成部１８は、ＧＵＩ情報判定部１７により決定された因子・水準に基づいて直交表を生成し、直交表出力部１９に出力する。
【００４０】
直交表出力部１９は、直交表生成部１８により生成された直交表を出力する。出力は、ＣＳＶ形式等の表形式や、ＸＭＬ等のタグ形式等でもよい。本実施例において、直交表出力部１９は、直交表を表示装置１６に表示させるものとするが、メモリ等の記憶部やネットワークを介したデータベース等に記憶させてもよい。
【００４１】
なお、ソフトウェアテスト支援装置１ａは、プログラムにより実現することも可能であり、ＧＵＩを有する被テストアプリケーション１１から表示装置１６に表示するための画面情報をＧＵＩ情報として抽出する処理と、抽出されたＧＵＩ情報を表示装置１６に表示させる処理と、抽出されたＧＵＩ情報とユーザにより外部から入力されたテスト対象を特定するためのテスト対象情報とに基づいて被テストＧＵＩ部品の判定を行うとともに、判定結果に基づいて因子・水準を決定する処理と、決定された因子・水準に基づいて直交表を生成する処理とをコンピュータに実行させるプログラムであればよい。
【００４２】
次に、上述のように構成された本実施の形態の作用を説明する。まず、ＧＵＩ情報抽出部１２は、ＧＵＩを有する被テストアプリケーション１１から表示装置１６に表示するための画面情報をＧＵＩ情報として抽出する（ＧＵＩ情報抽出ステップ）。図２は、本実施例のソフトウェアテスト支援装置１ａのＧＵＩ情報抽出部１２によるＧＵＩ情報抽出例を示す図である。左側に示す「ご旅行予約画面」は、被テストアプリケーション１１の有するＧＵＩによる表示画面である。また、右側に示す表は、ＧＵＩ情報抽出部１２により抽出されたＧＵＩ情報である。本実施例において、ＧＵＩ情報抽出部１２は、図４に示すように、各ＧＵＩ部品からそのキャプション名、表示座標、部品情報を抽出する。部品情報は、部品毎に異なる。
【００４３】
ＧＵＩ情報抽出部１２は、ＧＵＩ情報の抽出結果をＧＵＩ情報記憶部１３に対して出力する。ＧＵＩ情報表示制御部１４は、ＧＵＩ情報抽出部１２により抽出されたＧＵＩ情報をＧＵＩ情報記憶部１３から取得し、取得したＧＵＩ情報を表示装置１６に表示させる（ＧＵＩ情報表示制御ステップ）。
【００４４】
次に、ユーザは、ディスプレイ等の表示装置１６に表示されたＧＵＩ情報を確認し、入力装置１５を使用してテストを行う部品を選択する。図３は、本実施例のソフトウェアテスト支援装置１ａのＧＵＩ情報判定部１７による因子・水準の抽出例を示す図である。本実施例において、ユーザは、図２，３に示すように列挙されたＧＵＩ情報の中からグループボックス「オプション」のチェックボックスを全て選択し、さらにグループボックス「現地での移動手段」のラジオボタンを選択している。これらの選択情報は、本発明のテスト対象情報に対応する。
【００４５】
ＧＵＩ情報判定部１７は、ＧＵＩ情報抽出部１２により抽出されたＧＵＩ情報とユーザにより外部から入力されたテスト対象を特定するためのテスト対象情報とに基づいて被テストＧＵＩ部品の判定を行うとともに、判定結果に基づいて因子・水準を決定する（ＧＵＩ情報判定ステップ）。図３の右側の表に示すように、ＧＵＩ情報判定部１７は、因子・水準を抽出する。図３において、因子・水準は表形式になっているが、必ずしもこの形式にかぎらず、ＧＵＩ情報判定部１７は、後段の直交表生成部１８に合わせた形式で出力する。
【００４６】
ここで、ＧＵＩ情報判定部１７の動作の詳細について説明する。ＧＵＩ情報判定部１７は、被テストＧＵＩ部品の判定を行う際に、各部品の部品種がプッシュボタン、チェックボックス、ラジオボタン、コンボボックス、及びエディットボックスのいずれの部品種であるかを判定し、部品種に応じた因子・水準を決定する。
【００４７】
図４は、本実施例のソフトウェアテスト支援装置１ａのＧＵＩ情報判定部１７の動作を示すフローチャート図である。ＧＵＩ情報判定部１７は、ユーザにより選択された全てのＧＵＩ部品に対して図４に示すフローチャートの動作を行う。逆に、ＧＵＩ情報判定部１７は、ＧＵＩ情報に含まれる部品であってもユーザにより選択されていない部品に対しては、図４に示すフローチャートの動作を行わない。このような部品は、因子・水準の対象とする必要がないためである。
【００４８】
まず、ＧＵＩ情報判定部１７は、ユーザにより選択された部品の種類を判定する（ステップＳ１１）。もし部品種がＢｕｔｔｏｎである場合には、ＧＵＩ情報判定部１７は、ボタンの種類の判定を行う（ステップＳ１２）。本実施例においては、ユーザにより選択されたＧＵＩ部品の部品種は全てＢｕｔｔｏｎであるため、ＧＵＩ情報判定部１７は、各部品のボタンの種類の判定を行う。
【００４９】
ステップＳ１２でのボタンの判定の結果、ボタンがプッシュボタンである場合には、ＧＵＩ情報判定部１７は、プッシュボタン用の因子・水準の決定を行う（ステップＳ１３）。プッシュボタンでは「押す」、「押さない」の２つの状態が発生するので、ＧＵＩ情報判定部１７は、これらを水準として登録し、因子にはプッシュボタンのキャプション名を設定する。
【００５０】
ステップＳ１２でのボタンの判定の結果、ボタンがチェックボックスである場合には、ＧＵＩ情報判定部１７は、チェックボックス用の因子・水準の決定を行う（ステップＳ１４）。チェックボックスでは「チェックする」、「チェックしない」の２つの状態が発生するので、ＧＵＩ情報判定部１７は、これらを水準として登録し、因子にはチェックボックスのキャプション名を設定する。
【００５１】
本実施例において、ユーザは、グループボックス「オプション」のチェックボックスを選択しているため、ＧＵＩ情報判定部１７は、「チェックする」、「チェックしない」の２つを水準とし、「昼食付き」、「ホテルグレードアップ」等のキャプション名を因子とする。
【００５２】
ステップＳ１２でのボタンの判定の結果、ボタンがラジオボタンである場合には、ＧＵＩ情報判定部１７は、ラジオボタン用の因子・水準の決定を行う（ステップＳ１５，１６）。ラジオボタンでは、複数のボタンが排他的関係になっているため、ＧＵＩ情報判定部１７は、まず同一グループのラジオボタンの取得を行う（ステップＳ１５）。次に、ＧＵＩ情報判定部１７は、取得されたグループのラジオボタンのキャプション名を水準にし、ラジオボタンを因子に設定する（ステップＳ１６）。
【００５３】
本実施例においては、ユーザがグループボックス「現地での移動手段」のラジオボタンを選択しているため、ＧＵＩ情報判定部１７は、同一グループのラジオボタンの取得を行い、キャプション名である「バス」、「電車」、「レンタカー」の３つを水準にするとともに、「ラジオボタン」を因子に設定する。
【００５４】
ステップＳ１１での部品種の判定の結果、部品種がＣｏｍｂｏＢｏｘである場合には、ＧＵＩ情報判定部１７は、コンボボックス用の因子・水準の決定を行う（ステップＳ１７，１８）。コンボボックスでは、複数の要素の中から一つを選ぶような操作が行われるため、ＧＵＩ情報判定部１７は、まずリスト(ドロップダウンリスト)の取得を行う（ステップＳ１７）。次に、ＧＵＩ情報判定部１７は、取得したリストの各々のアイテム名を水準に、因子をリストとする（ステップＳ１８）。
【００５５】
ステップＳ１１での部品種の判定の結果、部品種がＥｄｉｔＢｏｘである場合には、ＧＵＩ情報判定部１７は、エディットボックス用の因子・水準の決定を行う（ステップＳ１９〜Ｓ２４）。エディットボックスにおいては、文字列や数列のユーザ入力及びその表示が行われるので、ＧＵＩ情報判定部１７は、まず入力可能なエディットボックスであるか否かの判定を行う（ステップＳ１９）。
【００５６】
入力不可能である場合には、ＧＵＩ情報判定部１７は、因子・水準の抽出を行わない。入力可能なエディットボックスである場合に、ＧＵＩ情報判定部１７は、入力可能な文字の判定を行う（ステップＳ２０）。数字のみ入力可能である場合には、ＧＵＩ情報判定部１７は、ランダムな数字列を生成し（ステップＳ２１）、生成した数字列を水準として設定するとともに、エディットを因子に設定する（ステップＳ２２）。この場合の水準の数は予め設定されており、ＧＵＩ情報判定部１７は、水準の数だけランダムな数字列を生成する。例えば水準が２つであれば、ＧＵＩ情報判定部１７は、「７１３８９４」、「２３５４１６」のようにランダムな数字列を２つ生成する。
【００５７】
なお、ＧＵＩ情報判定部１７の代わりにユーザが水準としての数字列を決定する構成でもよい。その場合には、ユーザは、自ら決定した数字列を入力装置１５を介して入力する。ＧＵＩ情報判定部１７は、ユーザにより入力された数字列を水準に設定する。これにより、ユーザは、有効な数字と無効な数字についてのテストや、不具合が生じるかもしれないと予想される数字列についてのテストを行うことができる。
【００５８】
エディットボックスに文字列も入力可能である場合に、ＧＵＩ情報判定部１７は、ランダムな文字列を生成し（ステップＳ２３）、生成した文字列を水準として設定するとともに、エディットを因子に設定する（ステップＳ２４）。上述したように、ＧＵＩ情報判定部１７の代わりにユーザが水準としての文字列を決定する構成でもよい。
【００５９】
次に、直交表生成部１８は、ＧＵＩ情報判定部１７により決定された因子・水準に基づいて直交表を生成する（直交表生成ステップ）。図５は、本実施例のソフトウェアテスト支援装置１ａの直交表生成部１８による直交表の作成例を示す図である。図５に示すように、直交表生成部１８は、３水準の因子1個と２水準の因子６個を入力とし、Ｌ１６直交表を作成する。Ｌ１６直交表では、最大４水準の因子１個と２水準の因子１２個を取ることができるため、直交表生成部１８は、４水準の因子については３水準の因子を割り当てる。ただし、このとき、直交表生成部１８は、余った１水準についてはダミー水準として３水準の中から任意の１水準（ここではバス）を重複して割り当てる。網羅率の低下を防止するためである。２水準の因子についてはそのまま割り当て、あまった６因子については、空欄（Ｅｍｐｔｙ）としておく。
【００６０】
以上述べたプロセスを経て、本実施例のソフトウェアテスト支援装置１ａは、画面を持った被テストアプリケーション１１から、そのテストを行うための直交表を生成する。直交表出力部１９は、直交表生成部１８により生成された直交表を表示装置１６あるいは記憶部やデータベース等に出力する。ユーザは、出力された直交表に基づいて自らテストを行ってもよいし、機械器具等にテストを行わせてもよい。
【００６１】
上述のとおり、本発明の実施例１の形態に係るソフトウェアテスト支援装置１ａによれば、ＧＵＩを持つ被テストアプリケーション１１のテスト項目作成のため、被テストアプリケーション１１から直接ボタン等のＧＵＩに関する情報を抽出して因子・水準を決定し、直交表を作成することができる。
【００６２】
すなわち、従来の直交表作成プロセスにおいては、ユーザが画面を見てその因子・水準を決定していたのに対し、本実施例のソフトウェアテスト支援装置１ａは、画面を持つアプリケーションから、その画面の部品を列挙し、それぞれの部品に応じた操作により、因子・水準を決定して自動的に直交表を作成することができる。これにより、ユーザは、テストを行いたいＧＵＩ部品を選択するのみで直交表の作成を行うことができ、因子・水準の抽出に不慣れなテスト作成者であっても容易にテストケースを作成することができる。
【００６３】
また、本実施例のソフトウェアテスト支援装置１ａは、各ＧＵＩ部品に応じた操作を自動的に判定するので、ユーザが部品に対して行える操作を意識する必要が無くなり、直交表を作る際に必要な因子・水準の決定プロセスを、より直感的に行うことができ、従来よりも短い時間でテストケースを作成することができる。
【実施例２】
【００６４】
次に、本発明の実施例２のソフトウェアテスト支援装置１ｂについて説明する。図６は、本実施例のソフトウェアテスト支援装置１ｂの構成を示すブロック図である。実施例１に示すソフトウェアテスト支援装置１ａと異なる点は、テスト自動実行部３１と実行結果出力部３２とをさらに備える点である。
【００６５】
テスト自動実行部３１は、ＧＵＩ情報判定部２７により判定された被テストＧＵＩ部品の部品情報及び因子と直交表生成部２８により生成された直交表とユーザにより外部から入力されたテスト条件情報とに基づいて被テストアプリケーション２１に対するテストを行う。
【００６６】
具体的に言うと、テスト自動実行部３１は、テスト条件情報に基づいて直交表の行と列の実行順序を決定するとともに、実行順序に基づいて被テストアプリケーション２１を制御するためのメッセージを生成し、当該メッセージを被テストアプリケーション２１に対して出力することによりテストを行う。テスト条件情報については後述する。
【００６７】
実行結果出力部３２は、テスト自動実行部３１により実行された実行結果を出力し、表示装置３０に表示させる。
【００６８】
その他の構成は、実施例１と同様であり、重複した説明を省略する。
【００６９】
次に、上述のように構成された本実施の形態の作用を説明する。本実施例のソフトウェアテスト支援装置１ｂは、直交表生成部２８が直交表を生成するところまで実施例１のソフトウェアテスト支援装置１ａと同様の動作を行う。直交表生成部１８は、生成した直交表を直交表出力部２９のみならず、テスト自動実行部３１に対しても出力する。
【００７０】
また、ＧＵＩ情報判定部２７は、テスト自動実行部３１に対して因子とその部品種、部品情報を関連付けた情報（被テストＧＵＩ部品の部品情報）を出力する。図７は、本実施例のソフトウェアテスト支援装置１ｂのＧＵＩ情報判定部２７によるテスト自動実行部に対する出力例を示す図である。なお、テスト自動実行部３１が図７に示すような部品情報を必要とするのは、単に図５に示すような直交表を直交表生成部２８から受け取るのみでは、部品情報及び因子と部品情報との対応関係に関する情報が失われており、テストの自動実行を行うにあたって支障をきたすためである。
【００７１】
また、ＧＵＩ情報判定部２７は、表示装置３０に対しても部品情報を出力し、表示装置３０に表示させる。これにより、ユーザは、部品情報を画面上で確認することができる。同様に、直交表出力部２９は、実施例１の場合と同様に、直交表生成部２８により生成された直交表を表示装置３０に出力する。
【００７２】
ユーザは、ディスプレイ等の表示装置３０に表示された部品情報及び直交表を確認し、実行順序を選択して入力装置２５から入力する。実行順序とは、直交表の列に対する順序と行に対する順序との２つの要素からなる。
【００７３】
例えば、図５に示す直交表において、ユーザは、自由にテストが行われる順番を変更することができる。図５の直交表は、１６個のテストケースを示しているが、ユーザは、テストの実行順序を例えばテストケース２，８，３，５，１，・・・のように任意に変更することができる。
【００７４】
さらに、ユーザは、同じテストケース内における因子の実行順序の変更も可能である。例えば、図５の直交表における1つ目のテストケースにおいて、テスト自動実行部３１は、最初にラジオボタンに対して「バス」が選択されるようにメッセージを送信し、次に「昼食付き」、「ホテルグレードアップ」、「夕食グレードアップ」、「ゴルフ付き」、「ナイトショー付き」、「オーロラ体験」のキャプションを持つチェックボックスに対して、順番にチェックのメッセージを送信する。
【００７５】
ところが、ユーザが入力装置２５を介して事前に順序を指定することにより、列の実行順序を変更して設定することができる。これにより、例えば「夕食グレードアップ」、「オーロラ体験」、「昼食付き」、「ナイトショー付き」、「ホテルグレードアップ」、「ゴルフ付き」の順序にチェックし、最後にラジオボタンの選択を行うといったテストも可能である。
【００７６】
ユーザによる列の実行順序の変更を可能としているのは、列の実行順序によっては結果に変化が出てしまう場合があると想定されるためである。１例としては、プッシュボタンを押すと画面の状態が変化するような場合であり、ユーザは、プッシュボタンの順番を最後にするか、プッシュボタンに対するテストを行わないように指定することも可能である。
【００７７】
次に、テスト自動実行部３１の動作について説明する。図８は、本実施例のソフトウェアテスト支援装置１ｂのテスト自動実行部３１の動作を示すフローチャート図である。テスト自動実行部３１は、直交表の各行に対してそれぞれ図８に示す流れを実行する。
【００７８】
テスト自動実行部３１は、まず、ユーザから入力された直交表の行の実行順序に従って、直交表から１行を入力する（ステップＳ３１）。次に、テスト自動実行部３１は、入力された行に対してユーザから入力された列の実行順序に従って、１列を入力する（ステップＳ３２）。次に、テスト自動実行部３１は、ＧＵＩ情報判定部２７から取得した図７に示す情報に基づき、１列の因子に対応した部品種、部品情報を取得する。
【００７９】
次に、テスト自動実行部３１は、取得した部品種、部品情報からそれぞれの部品に対応したメッセージを作成する（ステップＳ３４）。ここで、テスト自動実行部３１は、図４の流れと同様の処理を行うが、「因子、水準の決定」のプロセスに代わって「対応するメッセージの作成処理」を行うものとする。ここで、メッセージとは、各部品に対し可能な操作を外部から入力することができる機能である。
【００８０】
最後に、テスト自動実行部３１は、被テストアプリケーション２１に対してメッセージを出力する（ステップＳ３５）。この際に、テスト自動実行部３１は、メッセージを実際に送信（実行）してもよいし、メッセージを送信するスクリプトを作成してもよい。テスト自動実行部３１は、以上説明したステップＳ３２〜ステップＳ３５のプロセスを取得した行の全列に対して繰り返す（ステップＳ３６）ことにより、1回のテストケースを実行できる。
【００８１】
実行結果出力部３２は、テスト自動実行部３１により実行された実行結果を出力し、表示装置３０に表示させる。この際に、実行結果出力部３２は、被テストアプリケーションに対するテスト結果をそのままディスプレイ等の表示装置３０に表示させてもよいし、テスト結果が容易に理解できるように適切な形に変えて表示させてもよい。例えば、実行結果出力部３２は、画面をキャプチャして画面の変化を観察したものを出力してもよいし、ＧＵＩ情報を再度取得して特定の部品の出力結果を取得してもよい。１例として、図２に示す画面例の場合には、チェックの結果によって「金額」のエディットボックスが変化すると想定されるので、実行結果出力部３２は、この「金額」の値を好適な形で出力する等が考えられる。また、テストの結果エラー等が生じる場合には、実行結果出力部３２は、生じたエラーの種類等を出力してもよい。
【００８２】
なお、実行結果出力部３２は、表示装置３０にテストの実行結果を表示させる代わりに（あるいは表示させるとともに）、メモリ等の記憶部やネットワーク上のデータベース等にテストの実行結果を出力してもよい。
【００８３】
その他の作用は、実施例１と同様であり、重複した説明を省略する。
【００８４】
上述のとおり、本発明の実施例２の形態に係るソフトウェアテスト支援装置１ｂによれば、実施例１と同様の効果に加え、画面を持つ被テストアプリケーションから出力された直交表の各行のテストケースを、ユーザから指定された順序で自動的に実行することができる。その際、ユーザは、表示装置３０に表示されたＧＵＩ部品からテストを望む部品を選ぶことにより、容易にテストを実行することができる。また、ユーザが直接ＧＵＩを持つアプリケーションのテストケースを手入力で実行する方法に比して、本実施例のソフトウェアテスト支援装置１ｂは、生成した直交表に基づいて高速且つ短時間にテストを行うことができる。
【００８５】
また、スクリプトの出力により、同じ操作を繰り返し再現することができることになり、操作ミスを防ぎ、結果としてテストの効率化を図ることができる。
【産業上の利用可能性】
【００８６】
本発明に係るソフトウェアテスト支援装置は、直交表を利用したテスト項目を作成するソフトウェアテスト支援装置に利用可能である。
【符号の説明】
【００８７】
１ａ，１ｂ  ソフトウェアテスト支援装置
１１  被テストアプリケーション
１２  ＧＵＩ情報抽出部
１３  ＧＵＩ情報記憶部
１４  ＧＵＩ情報表示制御部
１５  入力装置
１６  表示装置
１７  ＧＵＩ情報判定部
１８  直交表生成部
１９  直交表出力部
２１  被テストアプリケーション
２２  ＧＵＩ情報抽出部
２３  ＧＵＩ情報記憶部
２４  ＧＵＩ情報表示制御部
２５  入力装置
２７  ＧＵＩ情報判定部
２８  直交表生成部
２９  直交表出力部
３０  表示装置
３１  テスト自動実行部
３２  実行結果出力部
【図１】
2011039786.tif 000003
【図２】
2011039786.tif 000004
【図３】
2011039786.tif 000005
【図４】
2011039786.tif 000006
【図５】
2011039786.tif 000007
【図６】
2011039786.tif 000008
【図７】
2011039786.tif 000009
【図８】
2011039786.tif 000010
【図９】
2011039786.tif 000011
【図１０】
2011039786.tif 000012