(57)【要約】  本発明は、ソフトウェアテストの技術分野に関する、テストケースの生成方法であって、複数のベーステストケースを予め設定し、１つのベーステストケースに対し、正常値リストの正常値又はエラー値リストのエラー値に基づいて、各ベーステスト動作の数値をそれぞれ変更することで、複数の異なる派生テスト動作をそれぞれ形成し、複数の異なる派生テスト動作に基づいて、ベーステストケースに関連付けられた複数の異なる派生テストケースを形成する。全てのベーステストケースと全ての派生テストケースを共にテストケースとし、且つ、全てのベーステスト動作と全ての派生テスト動作を共にテスト動作として、テストケース及びテスト動作に基づきシステムの自動テストを行う。本発明の有益な効果は、テストケースの自動作成を実現し、テスト所要時間が短縮し、テスト効率が向上するとともに、人件費の節約となる。
2019525373.tif 000002
【特許請求の範囲】
【請求項１】
テストケースの自動生成方法であって、複数のベーステストケースを予め設定し、各前記ベーステストケースは複数のベーステスト動作を含み、前記ベーステスト動作ごとに、０乃至複数の正常値を含む正常値リストと、０乃至複数のエラー値を含むエラー値リストが１つずつ対応しており、
１つの前記ベーステストケースに対し、前記正常値リストの前記正常値又は前記エラー値リストの前記エラー値に基づいて、各前記ベーステスト動作の数値をそれぞれ変更することで、複数の異なる派生テスト動作をそれぞれ形成し、複数の異なる前記派生テスト動作に基づいて、前記ベーステストケースに関連付けられた複数の異なる派生テストケースを構成し、
全ての前記ベーステストケースと全ての前記派生テストケースを共にテストケースとし、且つ、全ての前記ベーステスト動作と全ての前記派生テスト動作を共にテスト動作として、前記テストケース及び前記テスト動作に基づきシステムの自動テストを行うことを特徴とするテストケースの自動生成方法。
【請求項２】
前記テストケースの自動生成方法では、前記ベーステストケースについて、
前記ベーステストケースにおける前記ベーステスト動作を拡張テスト動作として１つ選択するステップＡ１と、
前記拡張テスト動作に関連付けられた前記正常値リストから前記正常値を１つ選択するステップＡ２と、
選択された前記正常値が前記拡張テスト動作の値と同じか否かを判断し、同じであれば前記ステップＡ２に戻るステップＡ３と、
選択された前記正常値に基づいて前記拡張テスト動作に値を付与し、前記派生テスト動作を形成するステップＡ４と、
前記派生テスト動作と、前記ベーステストケースにおける前記拡張テスト動作以外の全ての前記ベーステスト動作に基づいて、これらを組み合わせて１つの前記派生テストケースを形成するステップＡ５と、
前記ベーステストケースに未選択の前記ベーステスト動作が存在するか否かを判断し、存在する場合には前記ステップＡ１に戻り、存在しない場合には退出するステップＡ６と、を実行することを特徴とする請求項１に記載のテストケースの自動生成方法。
【請求項３】
前記テストケースの自動生成方法では、前記ベーステストケースについて、
前記ベーステストケースにおける前記ベーステスト動作を拡張テスト動作として１つ選択するステップＢ１と、
前記拡張テスト動作に関連付けられた前記エラー値リストから前記エラー値を１つ選択するステップＢ２と、
選択された前記エラー値が前記拡張テスト動作の値と同じか否かを判断し、同じであれば前記ステップＢ２に戻るステップＢ３と、
選択された前記エラー値に基づいて前記拡張テスト動作に値を付与し、１つの前記派生テスト動作を形成するステップＢ４と、
前記派生テスト動作と、前記ベーステストケースにおける前記拡張テスト動作以外の全ての前記ベーステスト動作に基づき、これらを組み合わせて１つの前記派生テストケースを形成するステップＢ５と、
前記ベーステストケースに未選択の前記ベーステスト動作が存在するか否かを判断し、存在する場合には前記ステップＢ１に戻り、存在しない場合には退出するステップＢ６と、を実行することを特徴とする請求項１に記載のテストケースの自動生成方法。
【請求項４】
前記ベーステストケースにおける前記ベーステスト動作ごとに、対応する前記エラー値リストの前記エラー値を１つずつ用いて前記ベーステスト動作に値を付与することで、対応する前記派生テスト動作を１つずつ生成するとともに、全ての前記派生テスト動作を組み合わせて１つの前記派生テストケースを形成することを特徴とする請求項１に記載のテストケースの自動生成方法。
【請求項５】
前記テストケースの自動生成方法では、前記ベーステストケースについて、
前記ベーステストケースにおける前記ベーステスト動作を拡張テスト動作として１つ選択するステップＣ１と、
前記拡張テスト動作に空の値を付与することで、１つの前記派生テスト動作を形成するステップＣ２と、
前記派生テスト動作と、前記ベーステストケースにおける前記拡張テスト動作以外の全ての前記ベーステスト動作に基づいて、これらを組み合わせて１つの前記派生テストケースを形成するステップＣ３と、
前記ベーステストケースに未選択の前記ベーステスト動作が存在するか否かを判断し、存在する場合には前記ステップＣ１に戻り、存在しない場合には退出するステップＣ４と、を実行することを特徴とする請求項１に記載のテストケースの自動生成方法。
【請求項６】
前記ベーステストケースにおける前記ベーステスト動作ごとに、前記ベーステスト動作に空の値を付与することで対応する前記派生テスト動作を１つずつ生成するとともに、全ての前記派生テスト動作を組み合わせて１つの前記派生テストケースを形成することを特徴とする請求項１に記載のテストケースの自動生成方法。
【請求項７】
複数の前記テストケースを順に配列し、各前記テストケースは順に実行される複数の前記テスト動作に対応しており、前記テスト動作ごとにテストコントロールが１つずつ対応しており、前記テスト動作ごとに操作方法が１つずつ対応しており、前記テストコントロールごとにテスト画面が１つずつ対応しており、前記テスト動作ごとに複数の予測結果が対応しており、
今回実行したい全ての前記テストケースに対応する全ての前記テスト動作を前記テストケースの実行順に配列することでテスト動作リストを形成し、
前記テストケースと前記テスト動作に基づいてシステムの自動テストを実行する方法は、
前記動作リストから現在の動作として前記テスト動作を１つ選択し、前記現在の動作に対応する前記テストケースを現在のケースとしてテストを行うステップＳ１と、
テスト過程におけるシステムブラウザの表示画面の番号と、前記現在の動作に対応する前記テスト画面の番号を比較して前記表示画面を特定するステップＳ２と、
特定された前記表示画面から、前記現在の動作とマッチングする前記テストコントロールを現在のコントロールとして取得するステップＳ３と、
前記現在の動作の動作属性に基づいて、取得した前記現在のコントロールに対応する前記操作方法にしたがって操作した後に、前記現在の動作に対応する操作結果を出力するステップＳ４と、
前記操作結果を前記現在の動作に対応する前記予測結果と比較して、前記現在の動作の実行に成功したか否かを判断し、対応する比較結果を前記現在の動作のテスト結果として保存するステップＳ５と、を含むことを特徴とする請求項１に記載のテストケースの自動生成方法。
【請求項８】
前記ステップＳ１において、前記現在のケースに関連付けられた１つ目の前記テスト動作を実行する際に、前記現在のケースの１つ目の前記テストコントロールに対応する前記テスト画面をスタート画面として抽出し、前記スタート画面に関連付けられたアドレスで前記スタート画面を開くことで、前記現在のケースのテストを開始することを特徴とする請求項７に記載のテストケースの自動生成方法。
【請求項９】
前記ステップＳ１において、前記現在のケースに関連付けられた各前記テスト動作を実行する前に、前記テスト動作の動作属性に基づいて、前記テスト動作に対応する前記テストコントロールの前記テスト画面を開く必要があるか否かを判断するとともに、必要に応じて前記テスト画面に関連付けられたアドレスを抽出し、前記テスト画面を開くことを特徴とする請求項７に記載のテストケースの自動生成方法。
【請求項１０】
前記ステップＳ１では、前記テストケースを前記現在のケースとみなした後に前記現在のケースの初期化データを抽出し、前記現在のケースのテストを開始するために、前記現在のケースに関連付けられたデータベースのデータについて初期化操作を行い、
前記現在のケースの１つ目の前記テストコントロールに対応する前記テスト画面のアドレスを前記スタート画面の開始アドレスとして抽出するとともに、前記開始アドレスに基づき、前記現在のケースに関連付けられた起動パラメータを使用して前記スタート画面を開き、前記スタート画面のテストを実行することを特徴とする請求項７に記載のテストケースの自動生成方法。
【請求項１１】
前記ステップＳ２は具体的に、前記現在の動作の後続の前記テスト動作に対応する前記テスト画面の番号を取得するとともに、前記表示画面の番号をモニタリングして、前記表示画面の番号が前記テスト画面の番号と一致している場合には前記表示画面の切り替えに成功したとみなし、前記表示画面を特定することを特徴とする請求項７に記載のテストケースの自動生成方法。
【請求項１２】
前記ステップＳ２は具体的に、前記現在の動作の後続の前記テスト画面に対応する番号を取得するとともに、前記表示画面の番号をモニタリングして、前記表示画面の番号が前記テスト画面の番号と一致している場合には前記表示画面の切り替えに成功したとみなし、前記表示画面を特定することを特徴とする請求項７に記載のテストケースの自動生成方法。
【請求項１３】
前記ステップＳ３では、前記表示画面中の前記テストコントロールを１つ取得した後、前記テストコントロールのコントロール属性と前記現在の動作に対応する前記テストコントロールのコントロール属性をマッチングすることでマッチング結果を得て、前記マッチング結果がマッチングの成功を示している場合には、取得した前記テストコントロールを前記現在のコントロールとして特定することを特徴とする請求項７に記載のテストケースの自動生成方法。
【請求項１４】
前記ステップＳ４では、前記コントロールを操作する前にまず前記現在の動作の前記動作属性を判断するとともに、前記動作属性に基づいて前記現在のコントロールに対する操作を決定し、
前記現在の動作の前記動作属性が値の設定である場合には、前記現在のコントロールに対して行う操作は前記コントロールに対する値の付与となり、
前記現在の動作の前記動作属性が操作命令の実行である場合には、前記現在のコントロールに対して行う操作は前記コントロールを操作するための前記操作命令の実行となり、
前記現在の動作の前記動作属性が文字列メッセージの送信である場合には、前記現在のコントロールを操作して対応する前記文字列メッセージを送信し、
前記現在の動作の前記動作属性がメモリコピーである場合には、前記現在のコントロールの値をシステムメモリに保存し、
前記現在の動作の前記動作属性がメモリの値付与である場合には、前記現在のコントロールの値を前記システムメモリに保存する値に変更し、
前記現在の動作の前記動作属性が論理判断の場合、前記システムメモリに保存されている付与値を示すための式について判断し、判断結果に基づいて、前記現在の動作に関連付けられている予め設定された後続の前記テスト動作をスキップし、
前記現在の動作の前記動作属性がファンクションキーの組み合わせによる操作の実行である場合、システムの入力装置に対して対応するファンクションキーの組み合わせ命令を送信することで前記現在のコントロールを操作することを特徴とする請求項７に記載のテストケースの自動生成方法。
【請求項１５】
前記ステップＳ５では、前記操作結果の種別に応じて前記操作結果と前記予測結果を比較し、
前記操作結果が前記表示画面に含まれる前記コントロールを操作した結果である場合、システムは前記ブラウザ内の前記表示画面に対応する前記コントロールの情報を読み取るとともに、読み取った情報を前記予測結果と比較し、
前記操作結果が前記ブラウザの欄内データに対応する結果である場合、システムは前記ブラウザにおける対応する前記欄内データを読み取り、読み取った情報を前記予測結果と比較し、
前記操作結果がシステムのデータベース内のデータである場合、システムは前記データベース内のデータを読み取って、読み取った情報を前記予測結果と比較することを特徴とする請求項７に記載のテストケースの自動生成方法。
【請求項１６】
前記ステップＳ５では、前記現在の動作の実行に成功したか否かを判断し、成功した場合には、前記現在の動作に関連付けられた前記操作結果を保存した後、前記ステップＳ５の実行を継続し、成功しなかった場合には前記現在のケースのテストを終了し、次の前記テストケースに進行して前記ステップＳ１に戻ることを特徴とする請求項７に記載のテストケースの自動生成方法。
【請求項１７】
前記ステップＳ５では、対応する比較結果を前記現在の動作のテスト結果として保存した後、次の前記テスト動作に進行し、進行した次の前記テスト動作が全体のコントロールに対する操作を示している場合には、前記ステップＳ４に戻ることを特徴とする請求項７に記載のテストケースの自動生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアテストの技術分野に関し、特に、テストケースの生成方法に関する。
【背景技術】
【０００２】
従来のソフトウェアテスト技術には人為的介入段階が存在しており、人がテストケース及びテストケースに含まれる各種テスト動作を手作業で設定するとともに、手作業でテストを実施し、手作業でテスト結果を比較して、比較結果に基づきテストが成功したか否かを判断せねばならない。換言すれば、従来のソフトウェアテスト技術には人為的介入の手順が過剰に存在している。そのため、大量のヒューマンリソースを占有することになり、ソフトウェアテストが長時間化し、テスト効率を低下させている。
【０００３】
また、従来のソフトウェアテスト技術では、一般的に大量のテストケースを使用して多くのテストサンプルを生成しなければ、テスト結果からシステムの機能や安定性を判断することができない。しかし、通常、従来技術においては、テスト担当者が各テストケースやテストケースごとの各テスト動作を手作業で作成又は設定することが求められる。そのため、テストケースの作成に非常に多くの時間を取られ、テスト時間が大幅に伸びる結果、テスト効率を低下させてしまう。また、多くの人件費も費やすことになる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来技術に存在する上記の課題に基づき、テストケースの自動作成を実現することでテスト所要時間を短縮し、テスト効率を向上するとともに、人件費を節約するテストケースの生成方法にかかる技術方案を提供する。
【課題を解決するための手段】
【０００５】
上記の技術方案は、具体的に以下を含む。
【０００６】
テストケースの自動生成方法であって、複数のベーステストケースを予め設定する。各前記ベーステストケースは複数のベーステスト動作を含み、前記ベーステスト動作ごとに、０乃至複数の正常値を含む正常値リストと、０乃至複数のエラー値を含むエラー値リストが１つずつ対応している。
【０００７】
１つの前記ベーステストケースに対し、前記正常値リストの前記正常値又は前記エラー値リストの前記エラー値に基づいて、各前記ベーステスト動作の数値をそれぞれ変更することで、複数の異なる派生テスト動作をそれぞれ形成する。また、複数の異なる前記派生テスト動作に基づいて、前記ベーステストケースに関連付けられた複数の異なる派生テストケースを構成する。
【０００８】
全ての前記ベーステストケースと全ての前記派生テストケースを共にテストケースとし、且つ、全ての前記ベーステスト動作と全ての前記派生テスト動作を共にテスト動作として、前記テストケース及び前記テスト動作に基づきシステムの自動テストを行う。
【０００９】
好ましくは、当該テストケースの自動生成方法では、前記ベーステストケースについて以下のステップを実行する。
ステップＡ１：前記ベーステストケースにおける前記ベーステスト動作を拡張テスト動作として１つ選択する。
ステップＡ２：前記拡張テスト動作に関連付けられた前記正常値リストから前記正常値を１つ選択する。
ステップＡ３：選択された前記正常値が前記拡張テスト動作の値と同じか否かを判断し、同じであれば前記ステップＡ２に戻る。
ステップＡ４：選択された前記正常値に基づいて前記拡張テスト動作に値を付与し、前記派生テスト動作を形成する。
ステップＡ５：前記派生テスト動作と、前記ベーステストケースにおける前記拡張テスト動作以外の全ての前記ベーステスト動作を組み合わせて前記派生テストケースを形成する。
ステップＡ６：前記ベーステストケースに未選択の前記ベーステスト動作が存在するか否かを判断し、存在する場合には前記ステップＡ１に戻り、存在しない場合には退出する。
【００１０】
好ましくは、当該テストケースの自動生成方法では、前記ベーステストケースについて以下のステップを実行する。
ステップＢ１：前記ベーステストケースにおける前記ベーステスト動作を拡張テスト動作として１つ選択する。
ステップＢ２：前記拡張テスト動作に関連付けられた前記エラー値リストから前記エラー値を１つ選択する。
ステップＢ３：選択された前記エラー値が前記拡張テスト動作の値と同じか否かを判断し、同じであれば前記ステップＢ２に戻る。
ステップＢ４：選択された前記エラー値に基づいて前記拡張テスト動作に値を付与し、前記派生テスト動作を形成する。
ステップＢ５：前記派生テスト動作と、前記ベーステストケースにおける前記拡張テスト動作以外の全ての前記ベーステスト動作を組み合わせて前記派生テストケースを形成する。
ステップＢ６：前記ベーステストケースに未選択の前記ベーステスト動作が存在するか否かを判断し、存在する場合には前記ステップＢ１に戻り、存在しない場合には退出する。
【００１１】
好ましくは、当該テストケースの自動生成方法において、前記ベーステストケースにおける前記ベーステスト動作ごとに、対応する前記エラー値リストの前記エラー値を１つずつ用いて前記ベーステスト動作に値を付与することで、対応する前記派生テスト動作を１つずつ生成するとともに、全ての前記派生テスト動作を組み合わせて前記派生テストケースを形成する。
【００１２】
好ましくは、当該テストケースの自動生成方法では、前記ベーステストケースについて以下のステップを実行する。
ステップＣ１：前記ベーステストケースにおける前記ベーステスト動作を拡張テスト動作として１つ選択する。
ステップＣ２：前記拡張テスト動作に空の値を付与することで、前記派生テスト動作を形成する。
ステップＣ３：前記派生テスト動作と、前記ベーステストケースにおける前記拡張テスト動作以外の全ての前記ベーステスト動作を組み合わせて前記派生テストケースを形成する。
ステップＣ４：前記ベーステストケースに未選択の前記ベーステスト動作が存在するか否かを判断し、存在する場合には前記ステップＣ１に戻り、存在しない場合には退出する。
【００１３】
好ましくは、当該テストケースの自動生成方法において、前記ベーステストケースにおける前記ベーステスト動作ごとに、前記ベーステスト動作に空の値を付与することで対応する前記派生テスト動作を１つずつ生成するとともに、全ての前記派生テスト動作を組み合わせて前記派生テストケースを形成する。
【００１４】
好ましくは、当該テストケースの自動生成方法において、複数の前記テストケースを順に配列する。各前記テストケースは順に実行される複数の前記テスト動作に対応している。また、前記テスト動作ごとにテストコントロールが１つずつ対応しており、前記テスト動作ごとに操作方法が１つずつ対応しており、前記テストコントロールごとにテスト画面が１つずつ対応しており、前記テスト動作ごとに複数の予測結果が対応している。
【００１５】
今回実行したい全ての前記テストケースに対応する全ての前記テスト動作を前記テストケースの実行順に配列することでテスト動作リストを形成する。
【００１６】
前記テストケースと前記テスト動作に基づいてシステムの自動テストを実行する方法は、具体的に以下を含む。
ステップＳ１：前記動作リストから現在の動作として前記テスト動作を１つ選択し、前記現在の動作に対応する前記テストケースを現在のケースとしてテストを行う。
ステップＳ２：テスト過程におけるシステムブラウザの表示画面の番号と、前記現在の動作に対応する前記テスト画面の番号を比較して前記表示画面を特定する。
ステップＳ３：特定された前記表示画面から、前記現在の動作とマッチングする前記テストコントロールを現在のコントロールとして取得する。
ステップＳ４：前記現在の動作の動作属性に基づいて、取得した前記現在のコントロールに対応する前記操作方法にしたがって操作した後に、前記現在の動作に対応する操作結果を出力する。
ステップＳ５：前記操作結果を前記現在の動作に対応する前記予測結果と比較して、前記現在の動作の実行に成功したか否かを判断し、対応する比較結果を前記現在の動作のテスト結果として保存する。
【００１７】
好ましくは、当該テストケースの自動生成方法において、上記ステップＳ１において、前記現在のケースに関連付けられた１つ目の前記テスト動作を実行する際に、前記現在のケースの１つ目の前記テストコントロールに対応する前記テスト画面をスタート画面として抽出する。そして、前記スタート画面に関連付けられたアドレスで前記スタート画面を開くことで、前記現在のケースのテストを開始する。
【００１８】
好ましくは、当該テストケースの自動生成方法において、上記ステップＳ１において、前記現在のケースに関連付けられた各前記テスト動作を実行する前に、前記テスト動作の動作属性に基づいて、前記テスト動作に対応する前記テストコントロールの前記テスト画面を開く必要があるか否かを判断するとともに、必要に応じて前記テスト画面に関連付けられたアドレスを抽出し、前記テスト画面を開く。
【００１９】
好ましくは、当該テストケースの自動生成方法において、上記ステップＳ１では、前記テストケースを前記現在のケースとみなした後に前記現在のケースの初期化データを抽出し、前記現在のケースのテストを開始するために、前記現在のケースに関連付けられたデータベースのデータについて初期化操作を行う。
【００２０】
前記現在のケースの１つ目の前記テストコントロールに対応する前記テスト画面のアドレスを前記スタート画面の開始アドレスとして抽出するとともに、前記開始アドレスに基づき、前記現在のケースに関連付けられた起動パラメータを使用して前記スタート画面を開き、前記スタート画面のテストを実行する。
【００２１】
好ましくは、当該テストケースの自動生成方法において、前記ステップＳ２は具体的に、前記現在の動作の後続の前記テスト動作に対応する前記テスト画面の番号を取得するとともに、前記表示画面の番号をモニタリングして、前記表示画面の番号が前記テスト画面の番号と一致している場合には前記表示画面の切り替えに成功したとみなし、前記表示画面を特定する。
【００２２】
好ましくは、当該テストケースの自動生成方法において、前記ステップＳ２は具体的に、前記現在の動作の後続の前記テスト画面に対応する番号を取得するとともに、前記表示画面の番号をモニタリングして、前記表示画面の番号が前記テスト画面の番号と一致している場合には前記表示画面の切り替えに成功したとみなし、前記表示画面を特定する。
【００２３】
好ましくは、当該テストケースの自動生成方法において、前記ステップＳ３では、前記表示画面中の前記テストコントロールを１つ取得した後、前記テストコントロールのコントロール属性と前記現在の動作に対応する前記テストコントロールのコントロール属性をマッチングすることでマッチング結果を得る。そして、前記マッチング結果がマッチングの成功を示している場合には、取得した前記テストコントロールを前記現在のコントロールとして特定する。
【００２４】
好ましくは、当該テストケースの自動生成方法において、上記ステップＳ４では、前記コントロールを操作する前にまず前記現在の動作の前記動作属性を判断するとともに、前記動作属性に基づいて前記現在のコントロールに対する操作を決定する。
前記現在の動作の前記動作属性が値の設定である場合には、前記現在のコントロールに対して行う操作は前記コントロールに対する値の付与となる。
前記現在の動作の前記動作属性が操作命令の実行である場合には、前記現在のコントロールに対して行う操作は前記コントロールを操作するための前記操作命令の実行となる。
前記現在の動作の前記動作属性が文字列メッセージの送信である場合には、前記現在のコントロールを操作して対応する前記文字列メッセージを送信する。
前記現在の動作の前記動作属性がメモリコピーである場合には、前記現在のコントロールの値をシステムメモリに保存する。
前記現在の動作の前記動作属性がメモリの値付与である場合には、前記現在のコントロールの値を前記システムメモリに保存する値に変更する。
前記現在の動作の前記動作属性が論理判断の場合、前記システムメモリに保存されている付与値を示すための式について判断し、判断結果に基づいて、前記現在の動作に関連付けられている予め設定された後続の前記テスト動作をスキップする。
前記現在の動作の前記動作属性がファンクションキーの組み合わせによる操作の実行である場合、システムの入力装置に対して対応するファンクションキーの組み合わせ命令を送信することで前記現在のコントロールを操作する。
【００２５】
好ましくは、当該テストケースの自動生成方法において、上記ステップＳ５では、前記操作結果の種別に応じて前記操作結果と前記予測結果を比較する。
前記操作結果が前記表示画面に含まれる前記コントロールを操作した結果である場合、システムは前記ブラウザ内の前記表示画面に対応する前記コントロールの情報を読み取るとともに、読み取った情報を前記予測結果と比較する。
前記操作結果が前記ブラウザの欄内データに対応する結果である場合、システムは前記ブラウザにおける対応する前記欄内データを読み取り、読み取った情報を前記予測結果と比較する。
前記操作結果がシステムのデータベース内のデータである場合、システムは前記データベース内のデータを読み取って、読み取った情報を前記予測結果と比較する。
【００２６】
好ましくは、当該テストケースの自動生成方法において、上記ステップＳ５では、前記現在の動作の実行に成功したか否かを判断する。そして、成功した場合には、前記現在の動作に関連付けられた前記操作結果を保存した後、前記ステップＳ５の実行を継続する。一方、成功しなかった場合には前記現在のケースのテストを終了し、次の前記テストケースに進行して前記ステップＳ１に戻る。
【００２７】
好ましくは、当該テストケースの自動生成方法において、上記ステップＳ５では、対応する比較結果を前記現在の動作のテスト結果として保存した後、次の前記テスト動作に進行する。そして、進行した次の前記テスト動作が全体のコントロールに対する操作を示している場合には、前記ステップＳ４に戻る。
【発明の効果】
【００２８】
上記技術方案の有益な効果は以下の通りである。即ち、テストケースの自動作成を実現可能なテストケースの生成方法を提供することで、テスト所要時間が短縮し、テスト効率が向上するとともに、人件費の節約となる。
【図面の簡単な説明】
【００２９】
【図１】図１は、本発明の好ましい実施例におけるテストケース自動生成方法のフローチャートである。
【図２】図２は、本発明の好ましい実施例におけるテストケース自動生成方法のフローチャートである。
【図３】図３は、本発明の好ましい実施例におけるテストケース自動生成方法のフローチャートである。
【図４】図４は、本発明の好ましい実施例における前記テストケースの生成方法で生成したテストケースとテスト動作を用いて自動テストする場合の全体フローである。
【図５】図５は、本発明の好ましい実施例におけるテストケースの事前設定を示す図である。
【図６】図６は、本発明の好ましい実施例におけるテストケースの事前設定を示す図である。
【図７】図７は、本発明の好ましい実施例における画面の事前設定を示す図である。
【図８】図８は、本発明の好ましい実施例におけるテスト動作の事前設定を示す図である。
【図９】図９は、本発明の好ましい実施例におけるコントロールの事前設定を示す図である。
【図１０】図１０は、本発明の好ましい実施例における予測結果を示す図である。
【図１１】図１１は、本発明の好ましい実施例における予測結果を示す図である。
【図１２】図１２は、本発明の好ましい実施例における予測結果を示す図である。
【発明を実施するための形態】
【００３０】
以下に、本発明の実施例にかかる図面を組み合わせて、本発明の実施例の技術方案について明瞭且つ完全に述べる。なお、言うまでもなく、ここで記載する実施例は本発明の実施例の一部にすぎず、全ての実施例ではない。本発明の実施例に基づいて当業者が創造的労働を要さずに取得するその他あらゆる実施例は、いずれも本発明による保護の範囲に属する。
【００３１】
なお、本発明の実施例及び実施例における特徴は、互いに矛盾しないことを前提に組み合わせてもよい。
【００３２】
以下に、図面と具体的実施例を組み合わせて本発明につき更に説明するが、本発明を限定するとの主旨ではない。
【００３３】
本発明の好ましい実施例では、従来技術に存在する上記の課題に基づいて、テストケースの生成方法を提供する。当該テストケースの生成方法では、複数のベーステストケースを予め設定する。各ベーステストケースは複数のベーステスト動作を含み、ベーステスト動作ごとに、０乃至複数の正常値を含む正常値リストと、０乃至複数のエラー値を含むエラー値リストが１つずつ対応している。
【００３４】
１つのベーステストケースに対し、正常値リストの正常値又はエラー値リストのエラー値に基づいて、各ベーステスト動作の数値をそれぞれ変更することで、複数の異なる派生テスト動作をそれぞれ形成する。また、複数の異なる派生テスト動作に基づいて、ベーステストケースに関連付けられた複数の異なる派生テストケースを構成する。
【００３５】
全てのベーステストケースと全ての派生テストケースを共にテストケースとし、且つ、全てのベーステスト動作と全ての派生テスト動作を共にテスト動作として、テストケース及びテスト動作に基づきシステムの自動テストを行う。
【００３６】
具体的に、上記実施例では、まず１つのベーステストケースと当該ベーステストケースに含まれる複数のベーステスト動作を設定する。即ち、ベーステストケース及び対応する複数のベーステスト動作について対応するパラメータやその他の初期化データ等を設定することで、実行可能な完全なベーステストケース及びベーステスト動作を形成する。
【００３７】
続いて、上記実施例では、前記ベーステストケースにおけるベーステスト動作ごとに、それぞれ正常値リストとエラー値リストを１つずつ予め設定する。正常値リストに含まれる数値は全て正常値、即ち当該ベーステスト動作を有効とする値である。また、前記エラー値リストに含まれる数値は全てエラー値、即ち当該ベーステスト動作を無効とする値である。
【００３８】
したがって、上記実施例では、最後に各ベーステスト動作に対応する正常値リスト及びエラー値リストに基づいて、それぞれランダムに複数の異なる派生テスト動作を生成する（例えば、正常値リスト／エラー値リストのいずれかの正常値／エラー値をベーステスト動作に付与して派生テスト動作を形成する）とともに、複数の異なる派生テスト動作を組み合わせて複数の異なる派生テストケースを形成する。前記ベーステストケース及び派生テストケースはいずれもテストケースとみなされ、且つ、これに応じて、前記ベーステスト動作及び派生テスト動作はいずれもテスト動作とみなされる。最後に、前記テストケースとテスト動作によってシステム全体の自動テストを行うことで、システム機能及びシステム動作の安定性をテスト可能である。
【００３９】
上記実施例で言うところの「０乃至複数の正常値」及び「０乃至複数のエラー値」とは、正常値リスト／エラー値リストが空であってもよいし、複数の正常値／エラー値を含んでもよいことを意味している。正常値リストが空の場合には、対応するベーステスト動作の正常値の拡張は実行不要である。同様に、エラー値リストが空の場合には、対応するベーステスト動作のエラー値の拡張は実行不要である。以下では、この点についてこれ以上詳述しない。
【００４０】
本発明の好ましい実施例では、図１に示すように、ベーステストケースについて以下のステップを実行することで、全てが正常値である派生テスト動作を含む派生テストケースを生成可能である。
ステップＡ１：ベーステストケースにおけるベーステスト動作を拡張テスト動作として１つ選択する。
ステップＡ２：拡張テスト動作に関連付けられた正常値リストから正常値を１つ選択する。
ステップＡ３：選択された正常値が拡張テスト動作の値と同じか否かを判断し、同じであればステップＡ２に戻る。
ステップＡ４：選択された正常値に基づいて拡張テスト動作に値を付与し、派生テスト動作を形成する。
ステップＡ５：派生テスト動作と、ベーステストケースにおける拡張テスト動作以外の全てのベーステスト動作を組み合わせて派生テストケースを形成する。
ステップＡ６：ベーステストケースに未選択のベーステスト動作が存在するか否かを判断し、存在する場合にはステップＡ１に戻り、存在しない場合には退出する。
【００４１】
具体的に、本発明の好ましい実施例において、前記ベーステストケースは航空券購入のテストケースとしてもよい。この場合、テストケースに含まれるベーステスト動作としては以下が考えられる。
Ａ．出発日：２０１６０４１２と入力
Ｂ．帰着日：２０１６０４１８と入力
Ｃ．出発地：北京と入力
Ｄ．目的地：上海と入力
Ｅ．出発人数：２と入力
Ｆ．検索
【００４２】
また、ベーステスト動作ごとに対応する正常値リスト及びエラー値リストは、それぞれ次のように設定可能である。
Ａ．出発日：正常値リスト（２０１６０４１２，２０１６０２２８，２０１６０２２９，２０１６０４１８）、エラー値リスト（００，１１０００２０３，２０１６０２３０，２１０６１２５５，２０１６／１６／１０）
Ｂ．帰着日：正常値リスト（２０１６０４１２，２０１６０２２８，２０１６０２２９，２０１６０４１８）、エラー値リスト（００，１１０００２０３，２０１６０２３０，２１０６１２５５，２０１６／１６／０１）
Ｃ．出発地：正常値リスト（北京，天津，石家荘）、エラー値リスト（００，ＡＡ，東北，北京１１，２２北京，アジア，北海道）
Ｄ．目的地：正常値リスト（北京，天津，石家荘）、エラー値リスト（００，ＡＡ，東北，北京１１，２２北京，アジア，北海道）
Ｅ．出発人数：正常値リスト（１，２，９，９９）、エラー値リスト（０，Ａ，−１，１００，１０１）。
【００４３】
前記ベーステスト動作における１つ目の動作を拡張テスト動作として選択するとともに（即ち、テスト動作Ａ）、対応する正常値リストにおける正常値を１つ選択して、当該正常値がベーステスト動作の初期値と同じか否か（例えば、前記正常値リストにおける２０１６０４１２がベーステスト動作の初期値と同じ）を判断すればよい。そして、同じ場合には、正常値リストから改めて正常値を１つ取得する。
【００４４】
上記実施例では、初期値と異なる正常値を取得した後に、当該正常値を用いて拡張テスト動作に値を付与することで、当該拡張テスト動作とは異なる派生テスト動作を形成する。
【００４５】
最後に、本実施例では、当該派生テスト動作と元のベーステストケースにおける拡張テスト動作以外のその他のベーステスト動作を組み合わせて、当該ベーステストケースとは異なる派生テストケースとする。例えば、Ａ’（ベーステスト動作Ａに正常値を充填して取得した派生テスト動作）、Ｂ、Ｃ、Ｄ、Ｅ及びＦを組み合わせて派生テストケースとする。
【００４６】
上記実施例では、ベーステスト動作ごとにその正常値リストにおける各正常値を１回ずつ付与することで、最終的に複数の異なる派生テストケースを形成可能である。例えば、上記実施例では、全てが正常値である１４個の派生テストケースを形成可能である。
【００４７】
本発明の好ましい実施例では、図２に示すように、前記ベーステストケースについて以下のステップを実行することで、エラー値の派生テスト動作を含む派生テストケースを生成可能である。
ステップＢ１：ベーステストケースにおけるベーステスト動作を拡張テスト動作として１つ選択する。
ステップＢ２：拡張テスト動作に関連付けられたエラー値リストからエラー値を１つ選択する。
ステップＢ３：選択されたエラー値が拡張テスト動作の値と同じか否かを判断し、同じであればステップＢ２に戻る。
ステップＢ４：選択されたエラー値に基づいて拡張テスト動作に値を付与し、派生テスト動作を形成する。
ステップＢ５：派生テスト動作と、ベーステストケースにおける拡張テスト動作以外の全てのベーステスト動作を組み合わせて派生テストケースを形成する。
ステップＢ６：ベーステストケースに未選択のベーステスト動作が存在するか否かを判断し、存在する場合にはステップＢ１に戻り、存在しない場合には退出する。
【００４８】
具体的に、本発明の好ましい実施例では、上記のステップＡ１〜Ａ６と同様に、ステップＢ１〜Ｂ６においても、まず拡張テスト動作を決定し、当該拡張テスト動作に関連付けられたエラー値リストからエラー値を１つ選択するとともに、当該エラー値が拡張テスト動作の初期値と同じか否かを判断する（同じ場合には改めて選択する）。続いて、選択されたエラー値に基づいて拡張テスト動作に値を付与し、全く新しい派生テスト動作を形成する。当該派生テスト動作はエラーのテスト動作となる。
【００４９】
最後に、上記実施例では、新たに生成した派生テスト動作とベーステストケースにおける前記拡張テスト動作を除いた残りのベーステスト動作とを組み合わせて新たな派生テストケースとする。
【００５０】
そして、最終的に、例えば上記のベーステストケースの場合には、ベーステスト動作ごとの各エラー値リストに基づいて順に値を付与することで、３１個の異なる派生テストケースを取得可能である。これらの派生テストケースは、いずれもエラー値が付与された派生テスト動作を含む。
【００５１】
本発明の好ましい実施例では、ベーステストケースにおけるベーステスト動作ごとに、対応するエラー値リストのエラー値を１つずつ用いてベーステスト動作に値を付与することで、対応する派生テスト動作を１つずつ生成するとともに、全ての派生テスト動作を組み合わせて派生テストケースを形成する。即ち、上記実施例では、ベーステスト動作ごとにエラー値を１つ選択することで、異なるエラー値が付与された派生テスト動作をそれぞれ形成するとともに、更に、エラーの派生テスト動作のみを含む派生テストケースを形成する。
【００５２】
つまり、上述したベーステストケースの場合には、最終的に形成されるエラーの派生テスト動作のみを含む派生テストケースは１つとなる。
【００５３】
本発明の好ましい実施例では、図３に示すように、ベーステストケースについて以下のステップを実行することで、全てが空の派生テストケースを生成可能である。
ステップＣ１：ベーステストケースにおけるベーステスト動作を拡張テスト動作として１つ選択する。
ステップＣ２：拡張テスト動作に空の値を付与することで、派生テスト動作を形成する。
ステップＣ３：派生テスト動作と、ベーステストケースにおける拡張テスト動作以外の全てのベーステスト動作組み合わせて派生テストケースを形成する。
ステップＣ４：ベーステストケースに未選択のベーステスト動作が存在するか否かを判断し、存在する場合にはステップＣ１に戻り、存在しない場合には退出する。
【００５４】
具体的に、本発明の好ましい実施例では、ベーステストケースにおけるベーステスト動作ごとに空の値をそれぞれ付与することで、値が空の派生テスト動作を含む派生テストケースを形成可能である。上述したベーステストケースの場合には、最終的に、値が空の派生テスト動作を含む５つの派生テストケースを形成可能である。
【００５５】
本発明の好ましい実施例では、ベーステストケースにおけるベーステスト動作ごとに空の値をそれぞれ付与することで、値が空の派生テスト動作のみを含む派生テストケースを形成可能である。上述したベーステストケースの場合には、最終的に、値が空の派生テスト動作のみを含む派生テストケースを１つ形成可能である。
【００５６】
したがって、上述したように、１つのベーステストケースを利用して、最終的には５１個までの派生テストケースを生成可能である。また、派生テストケースの生成前に正常値リスト／エラー値リストに含まれる値の数を修正すれば、より多くの派生テストケースを生成して、異なる自動テストニーズに応えることが可能となる。
【００５７】
本発明の好ましい実施例では、上述した０個の正常値を含む正常値リストの場合、上記の派生テストケースの生成に対応するステップ（即ち、正常値を含む派生テストケースの生成）をスキップ可能であるが、全てが空の派生テストケースを生成すべく、ステップＣ１〜Ｃ４のステップについては実行してもよい。同様に、０個のエラー値を含むエラー値リストの場合にも、エラー値を含む派生テストケースを生成するステップをスキップ可能であるが、全てが空の派生テストケースを生成すべく、ステップＣ１〜Ｃ４のステップについては実行してもよい。
【００５８】
上述したように、本発明の技術方案では、ベーステスト動作ごとに正常値リストとエラー値リストを設け、正常値リスト及びエラー値リストの値と空の値に基づいて各ベーステスト動作に値を付与するとともに、値を付与して形成される異なる派生テスト動作を組み合わせることで複数の異なる派生テストケースを形成する。これにより、１つのベーステストケースを複数の異なる派生テストケースに拡張して、テストケースの自動拡張操作を完了する。
【００５９】
本発明の好ましい実施例において、上記テストケースの自動拡張を完了した後、複数のテストケースを順に配列する。各テストケースは順に実行される複数のテスト動作に対応している。また、テスト動作ごとにテストコントロールが１つずつ対応しており、テスト動作ごとに操作方法が１つずつ対応しており、テストコントロールごとにテスト画面が１つずつ対応しており、テスト動作ごとに複数の予測結果が対応している。
【００６０】
今回実行したい全てのテストケースに対応する全てのテスト動作をテストケースの実行順に配列することでテスト動作リストを形成する。
【００６１】
図４に示すように、テストケースとテスト動作に基づいてシステムの自動テストを実行する方法は、具体的に以下を含む。
ステップＳ１：動作リストから現在の動作としてテスト動作を１つ選択し、現在の動作に対応するテストケースを現在のケースとしてテストを行う。
ステップＳ２：テスト過程におけるシステムブラウザの表示画面の番号と、現在の動作に対応するテスト画面の番号を比較して表示画面を特定する。
ステップＳ３：特定された表示画面から、現在の動作とマッチングするテストコントロールを現在のコントロールとして取得する。
ステップＳ４：現在の動作の動作属性に基づいて、取得した現在のコントロールに対応する操作方法にしたがって操作した後に、現在の動作に対応する操作結果を出力する。
ステップＳ５：操作結果を現在の動作に対応する予測結果と比較して、現在の動作の実行に成功したか否かを判断し、対応する比較結果を現在の動作のテスト結果として保存する。
【００６２】
具体的実施例では、まず複数のテストケースを予め設定する。各テストケースには複数のテスト動作が含まれており、テスト動作ごとにテストコントロールが１つずつ対応している。また、テストコントロールごとにテスト画面が１つずつ対応しているため、各テストケースには複数のテスト画面が対応付けられている。
【００６３】
具体的に、前記テストケースは順に予め設定される。即ち、一定の実行順にしたがって複数のテストケースを予め設定しておき、１つのテストケースの実行が完了すると、次のテストケースの実行に移行する。同様に、同一のテストケースにおいて、異なるテスト動作も順に配列される。また、テスト動作ごとにテストコントロールが１つずつ対応しており、テストコントロールごとにテスト画面が１つずつ対応している。前記テスト画面は、スタート画面と後続画面に分けられる。１つのテストケースに対しスタート画面は１つのみであるが、後続画面は複数存在してもよい。前記スタート画面はテストケースの実行の１つ目の画面とし、後続画面は前記スタート画面の後に順に配列される表示画面とすればよい。各テスト画面（スタート画面及び後続画面を含む）は、いずれも１つのテストコントロールの操作に対応する画面である。例えば、ユーザがこのテストケースにログインする場合には、ユーザ名及びパスワードを入力するテスト動作と、ログインコントロールをクリックするテスト動作が含まれ得る。前記ログインコントロールに対応するテスト画面は、ユーザがユーザ名及びパスワードを入力可能となるよう提供されるログイン画面とすればよく、且つ、当該画面をテストケースのスタート画面とすればよい。前記テストケースにおける複数の後続画面は、ログイン成功後に表示されるシステムブラウザのその他の画面としてもよいし、ログインの失敗を表示する画面としてもよい。前記画面は、テストロジックにしたがって配列される。
【００６４】
上記実施例において、テストケースの設定インターフェースは図５〜６のようになる。当該テストケースのスタート画面の名称は「アカウント情報」、当該テストケースの名称は「アカウント・パスワード修正インターフェースへ移行」、当該テストケースの前期の関連テストケースは「アカウント情報インターフェースへ移行」である。また、これに対応して、当該テストケースの前期の関連テストケースは、更に、「ログイン」、「システム管理へ移行」及び「アカウント情報インターフェースへ移行」を含む。上記の前期の関連テストケースは順に配列される。図２に示すテストケースの設定インターフェースは可視化インターフェースであり、従来技術におけるコードレベルの設定インターフェースではないため、テストケースの設定プロセスを簡略化できる。また、図３は、上記の予め設定されるテストケースのリストを示す。
【００６５】
上記実施例において、テストケースに関連付けられたテスト画面（スタート画面及び後続画面を含む）の設定インターフェースは図７のようになる。図７の画面情報には、画面番号（ＩＤ）、画面名及び画面アクセスアドレスが含まれる。アクセスアドレスとは、ＵＲＬ（Ｕｎｉｆｏｒｍ Ｒｅｓｏｕｒｅ Ｌｏｃａｔｏｒ，統一資源位置指定子）アドレスのことである。前記画面設定インターフェースも同様に可視化されたインターフェースである。
【００６６】
上記実施例において、テスト動作の設定インターフェースは図８のようになる。図８において、テスト動作は「検索条件入力」と設定可能であり、複数の表示画面名、複数のコントロール名、複数の動作属性（方法）及び複数のテスト動作に付与される値等が関連付けられている。前記テスト動作の設定インターフェースも同様に可視化されているため、操作が容易である。
【００６７】
上記実施例において、各テスト動作に対応する操作方法は、一連の演算を通じて動作属性から取得可能である。また、前記動作属性は対応の式で表すことができる。
【００６８】
上記実施例では、設定を完了した異なるテストケースに関連付けられるテスト動作から動作リストを形成する。具体的には、例えば、テストケースＡ、Ｂ、Ｃが順に配列されるようそれぞれ設定されているとする。テストケースＡには、テスト動作Ａ１、Ａ２、Ａ３が順に配列されるようそれぞれ設定されており、テストケースＢには、テスト動作Ｂ１、Ｂ２が順に配列されるようそれぞれ設定されており、テストケースＣには、テスト動作Ｃ１、Ｃ２、Ｃ３、Ｃ４が順に配列されるようそれぞれ設定されている。この場合、前記動作リストは、Ａ１、Ａ２、Ａ３、Ｂ１、Ｂ２、Ｃ１、Ｃ２、Ｃ３、Ｃ４の順に配列すればよい。
【００６９】
上記実施例において、各テスト動作に関連付けられるコントロールの設定インターフェースは図９のようになる。図６において、各コントロールのコントロール情報には、コントロール番号（ＩＤ）、コントロールタイトル、コントロール種別、コントロールのフロントエンド技術、コントロール特定用の属性名称、コントロール特定用の属性値、コントロールの最大値／最小値／最大長さ／最小長さ、コントロールのデフォルト値、コントロールの正常値リスト／エラー値リスト等が含まれる。前記コントロールの設定画面も可視化画面である。
【００７０】
上記実施例において、前記テストケース、テスト動作、画面及びコントロール等の設定については、１）システムにより予め設定するか、２）システムに各テスト要素を予め設定しておき、ユーザが対応する可視化インターフェースを通じて異なるテスト要素を選択し、組み合わせて、テストケース、テスト動作、画面及びコントロール等の設定情報を形成する、という２種類の方式が可能である。
【００７１】
なお、上記実施例で記載した予測結果の設定インターフェースについては後に詳述する。
【００７２】
上記実施例では、今回実行したい全テストケースについて、各テストケースの配列順序にしたがってテストケースに含まれる全てのテスト動作を１つの動作リストに配置する。
【００７３】
前記ステップＳ１では、まずテスト動作を１つ選択してテストの実行を開始する。具体的には、当該テスト動作について対応するテストケースを決定し、決定したテストケースを現在のケースとしてテストを開始すればよい。
【００７４】
上記実施例では、現在の動作と現在のケースを特定した後、ブラウザの表示画面の切替状態をモニタリングすることで、現時点でブラウザにロード済みの表示画面の画面番号を探し出し、現在の動作におけるテスト画面の番号と当該表示画面の番号とを比較する。即ち、現在の表示画面における画面番号に基づいて、現在の動作に対応するテスト画面とのマッチングを行い、現時点のブラウザの表示画面を現在のケースにおける現在の動作に対応するテスト画面として特定する。
【００７５】
上記実施例では、表示画面を特定した後、表示画面の表示内容を分析し、表示画面における全てのコントロールのリアルタイム情報を取得する。そして、表示画面から取得したコントロールの関連情報に基づいて、テスト動作に対応するコントロール情報（例えば、特定用の属性）とマッチングすることで、正確なコントロールを特定するとともに、特定されたコントロールの位置情報を記録すればよい。具体的には、表示画面中のコントロールを１つ取得した後に、コントロールのコントロール属性と現在の動作に対応するテストコントロールのコントロール属性をマッチングすることでマッチング結果を得る。そして、マッチング結果がマッチングの成功を示している場合には、取得したコントロールを現在のコントロールとして特定する。例えば、コントロールを１つ取得した後に、当該コントロールとテスト動作に対応するテストコントロールとを比較して、異なる場合には現在の動作のコントロールではないことを意味し、同じ場合には現在の動作のコントロールであることを意味する。そして、マッチングに成功したコントロールを現在のコントロールとみなす。したがって、前記コントロールの特定方式としては、まず、テスト動作に対応するテストコントロールを用い、現在表示中の表示画面であるテスト画面を特定する。表示画面に含まれるコントロールは１つとは限らない。そのため、当該表示画面において、更にコントロール属性を比較することで前記テスト動作に対応するテストコントロールを特定し、テストコントロールの特定を完了する。
【００７６】
上記実施例では、テストコントロールの特定後に、現在の動作の動作属性に基づいて当該テストコントロールに対し相応の操作を実行可能となる。そして、現在の動作の実行が完了すると、現在の動作に対応する操作結果を記録する。
【００７７】
上記実施例では、操作結果の取得後に、当該操作結果を現在の動作に対応する予測結果と比較することで、現在の動作の操作に成功したか否かを判断し、比較結果を記録する。
【００７８】
上記プロセスの実行完了後、現在の動作については実行を終えたと判断すると、次のテスト動作に移行して上記ステップＳ１に戻る。
【００７９】
上述したように、本発明の技術方案では、可視化した操作方法によって、テストケース、テスト動作、テストコントロール、テスト画面及び予測結果等のテストパラメータを予め設定するプロセスを簡単・明瞭としている。且つ、設定されたこれらテストパラメータに基づいて、可視化したソフトウェアテストをスピーディー且つ自動的に実行可能なことから、ソフトウェアテストのニーズに応えることが可能となり、且つ、ソフトウェアテストの効率も向上する。
【００８０】
本発明の好ましい実施例では、上記ステップＳ１において、現在のケースに関連付けられた各テスト動作を実行する前に、テスト動作の動作属性に基づいて、テスト動作に対応するテストコントロールのテスト画面を開く必要があるか否かを判断するとともに、必要に応じてテスト画面に関連付けられたアドレスを抽出し、テスト画面を開く。具体的に、上記実施例では、各テスト動作を実行する前に、当該テスト動作に対応するテストコントロールのテスト画面をロードする必要があるか否かを判断し、必要であれば対応するテスト画面をロードする一方、不要な場合には画面を一切変更しない。上記実施例において、前記テスト画面の抽出及びロードは、対応するコントロールの対応画面のＵＲＬアドレスを抽出することで実現される。具体的には、対応するコントロールの対応画面に関連付けられたＵＲＬアドレスを抽出し、現在のケースが指定する起動パラメータを使用するとともに、ブラウザにおいて対応するＵＲＬアドレスを開くことで、現在のケースをテストする。その時点で指定されたブラウザがすでに開いている場合には、画面に関連付けられたＵＲＬアドレスを抽出してブラウザの表示画面を更新するだけでよい。且つ、上記実施例で言うところのテスト動作の動作属性には、テスト動作と、その前後の動作との関連性が含まれる。システムは、テスト動作とその前後の動作との関連性を判断した後、対応するＵＲＬアドレスを抽出して相応のテスト画面を開く必要があるか否かを判断する。
【００８１】
本発明の他の好ましい実施例では、上記ステップＳ１において、現在のケースに関連付けられた１つ目のテスト動作を実行する際に、現在のケースに対応する１つ目のテストコントロールのテスト画面をスタート画面として抽出する。そして、スタート画面に関連付けられたアドレスでスタート画面を開くことで、現在のケースのテストを開始する。具体的に、上記実施例では、テストケースにおける１つ目のテスト動作を実行する際にのみ、当該テスト動作に対応するテストコントロールのテスト画面をスタート画面としてロードする。具体的に、最初にテストを開始する際には、前記動作リストにおける１つ目のテスト動作を選択してテストを開始すればよい。テスト動作を選択した後、当該テスト動作を現在の動作とし、且つ、現在の動作に基づいて対応するテストケースを特定するとともに、当該テストケースを現在のケースとする。続いて、当該現在の動作に対応するテストコントロールの対応テスト画面を抽出し、テストを開始する。上記実施例では、最初にテストを開始する際のテスト動作を１つ目のテスト動作とするため、上記で抽出される画面が対応する現在のケースのスタート画面となるはずである。なお、スタート画面をロード及び抽出する方法は上記の実施例と同様である。即ち、スタート画面のＵＲＬアドレスを抽出するとともに、現在のケースが指定する起動パラメータを使用して、所定のシステムブラウザで開くことにより実現する。
【００８２】
本発明の好ましい実施例では、前記各テストケースの実行を開始する前に、まず当該テストケースの初期化データを設定する。即ち、テストケースのデータについて初期化操作を行う。データの初期化操作には、データベース内の対応するデータについて初期化処理を実施することで、それ以前のテストデータが残留することによる今回のテストへの影響を回避することや、データベース内に対応する初期化データを追加することでテストの初期化テスト環境を形成し、テスト開始環境の統一性を保証すること等が含まれ得る。
【００８３】
したがって、本発明の好ましい実施例では、新たなテスト動作を実行する際に、まず当該テスト動作がいずれかのテストケースにおける１つ目のテスト動作であるか否かを判断する必要がある。そして、１つ目の場合には、テストケースについてデータの初期化操作を行ってからテスト動作を実行する一方、１つ目でない場合には当該テスト動作をそのまま実行する。
【００８４】
或いは、本発明における他の好ましい実施例では、各テストケースのスタート画面をラベリングしておく。そして、テスト過程においてスタート画面に進行した場合には、対応するテストケースについてデータの初期化操作を行ってから、スタート画面に対応するテスト動作を実行する。
【００８５】
本発明における好ましい実施例では、上記ステップＳ１においてテストケースを現在のケースとみなした後に、現在のケースのテストを開始すべく現在のケースの初期化データを抽出する。
【００８６】
現在のケースの１つ目のテストコントロールに対応するテスト画面のアドレスをスタート画面として抽出した後、現在のケースが指定する起動パラメータを使用してスタート画面を開き、テストを実行する。
【００８７】
上記実施例で言うところの起動パラメータとは、上記のスタート画面としてのテスト画面を開く際の基準ネットワークパラメータのことである。
【００８８】
本発明の好ましい実施例において、上記ステップＳ２は具体的に、現在の動作の後続のテスト動作に対応するテスト画面の番号を取得するとともに、表示画面の番号をモニタリングして、表示画面の番号がテスト画面の番号と一致している場合には表示画面の切り替えに成功したとみなし、表示画面を特定する。具体的に、上記ステップＳ２では、現在の表示画面の番号が現在の動作の後続の動作に対応するテスト画面の番号と一致している場合には、現在の表示画面の切り替えに成功したとみなして、当該表示画面を現在の動作の後続の動作におけるテスト画面として特定する。
【００８９】
本発明の他の好ましい実施例において、上記ステップＳ２は具体的に、現在の動作の後続のテスト画面に対応する番号を取得するとともに、表示画面の番号をモニタリングして、表示画面の番号がテスト画面の番号と一致している場合には表示画面の切り替えに成功したとみなし、表示画面を特定する。具体的に、上記ステップＳ２では、現在の表示画面の番号が現在の動作の後続の画面の番号と一致している場合には、現在の表示画面の切り替えに成功したとみなして、当該表示画面を現在の動作の後続の画面と特定する。
【００９０】
本発明の好ましい実施例において、上記ステップＳ４では、コントロールを操作する前にまず現在の動作の動作属性を判断するとともに、動作属性に基づいて現在のコントロールに対する操作を決定する。
【００９１】
現在の動作の動作属性が値の設定である場合には、現在のコントロールに対して行う操作はコントロールに対する値の付与となる。例えば、コントロールに対し予め設定した数値を付与する等となる。
【００９２】
現在の動作の動作属性が操作命令の実行である場合には、現在のコントロールに対して行う操作はコントロールを操作するための操作命令の実行となる。例えば、操作命令が「クリック」の場合、現在のコントロールに対しコントロールのクリック操作を実行すればよい。
【００９３】
現在の動作の動作属性がファンクションキーの組み合わせによる操作の実行である場合には、システムの入力装置に対して対応するファンクションキーの組み合わせ命令を送信することで現在のコントロールを操作する。例えば、ファンクションキーの組み合わせが、入力キーボード上の「Ｓｈｉｆｔ」キー、「Ａｌｔ」キー及び「Ｅｎｔｅｒ」キーの組み合わせである場合、システムはキーボードに対し前記３つのキーの組み合わせ命令を出力するよう通知すべく、対応するファンクションキーの組み合わせ命令をキーボードに送信すればよい。
【００９４】
現在の動作の動作属性が文字列メッセージの送信である場合には、現在のコントロールを操作して対応する文字列メッセージを送信する。具体的には、ブラウザを通じて対応する文字列メッセージを送信すればよい。
【００９５】
現在の動作の動作属性がメモリコピーである場合には、現在のコントロールに付与される値をシステムメモリに保存する。具体的には、現在のコントロールに付与される値、又はその他特定の値をシステムメモリに保存することで、即ち、システムメモリの「クリップボード」機能を実現する。
【００９６】
現在の動作の動作属性がメモリからの値付与である場合には、現在の動作の動作属性に基づいて、システムメモリに保存されている値を現在のコントロールに付与する。
【００９７】
現在の動作の動作属性が論理判断の場合、メモリに保存されている値について判断し、判断結果に基づいて予め設定された後続のテスト動作をスキップする。具体的に、論理判断とは、システムメモリ内の付与値を示す式について判断することをいう。例えば、当該式が予め設定された何らかの値よりも大きい／小さいか否かを判断するか、システムメモリに保存されている値がｔｒｕｅ／ｆａｌｓｅであるか否かを判断する。また、上記のスキップ動作を示すスキッププランについては、各テスト動作のテスト属性に予め設定しておけばよい。具体的な判断プロセスとしては、前記システムメモリに保存されている数値を示す式について判断する。そして、判断結果に基づき、上記の予め設定されたスキッププランを実行すべきか否かを決定し、１又は複数の後続のテスト動作をスキップする。なお、上記実施例においては、前記スキッププランが後続の動作を１つも含まなくともよい。即ち、判断結果がどうであれ、どの後続動作もスキップしなくともよい。
【００９８】
本発明の好ましい実施例では、上述したように、現在の画面が進行した場合、ブラウザの表示内容をモニタリングすることで新たな画面の番号を特定するとともに、新たなテストコントロールを特定する。
【００９９】
本発明の好ましい実施例では、上記ステップＳ５において、操作結果の種別に応じて操作結果と予測結果を比較する。
【０１００】
操作結果が表示画面のコントロールを操作した結果である場合、システムはブラウザ内の表示画面に含まれる対応するコントロールの情報を読み取るとともに、読み取った情報を予測結果と比較する。具体的に、コントロールの情報と予測結果を比較する際には、まとまったコントロールを一括して比較する。例えば、現在の表示画面における全てのコントロールに対応する情報を取得して、予測結果とそれぞれ比較する。
【０１０１】
操作結果がブラウザの欄内データに対応する結果である場合、システムはブラウザにおける対応する欄内データを読み取り、読み取った情報を予測結果と比較する。
【０１０２】
操作結果がシステムのデータベース内のデータである場合、システムはデータベース内のデータを読み取って、読み取った情報を予測結果と比較する。
【０１０３】
具体的に、本発明の好ましい実施例において、前記予測結果が予め設定されたインターフェースは図１０〜１２のようになる。
図１０は、画面内のコントロールの予測結果を示す。予測結果には、コントロールのＩＤ、コントロールタイトル、予測結果の種別及び予測結果の値が含まれ得る。
図１１は、テーブル類の予測結果を示す。予測結果には、コントロールＩＤ、コントロールのタイトル、予測件数、比較件数及びテーブルデータ等の属性が含まれ得る。
図１２は、データベース類の予測結果を示す。予測結果には、検索条件、ソート条件、制限行数及びデータ等の属性が含まれ得る。
【０１０４】
本発明の好ましい実施例では、コントロールの比較の場合、システムはブラウザにおける対応するコントロールの情報を読み取るとともに、読み取った情報を予測結果と比較する。
【０１０５】
欄内データの比較の場合、システムはブラウザにおける対応する欄内データを読み取るとともに、読み取った情報を予測結果と比較する。
【０１０６】
また、データベースの比較の場合、システムは所定のデータベース内のデータを読み取るとともに、読み取った情報を予測結果と比較する。
【０１０７】
本発明の好ましい実施例において、上記ステップＳ５では、現在の動作の実行に成功したか否かを判断する。そして、成功した場合には、現在の動作に関連付けられた操作結果を保存した後、ステップＳ５の実行を継続する。一方、成功しなかった場合には現在のケースのテストを終了し、次のテストケースに進行してステップＳ１に戻る。
【０１０８】
具体的に、本発明の好ましい実施例では、現在の動作の実行に成功した場合には、同一の現在のケースにおける次のテスト動作に自動的に進行して実行する（ステップＳ５の実行を継続する）とともに、実行に成功した操作結果を保存する。
【０１０９】
また、現在の動作の実行に失敗した場合には、現在のケースのテストを終了し、次のテストケースに進行して実行する（ステップＳ１に戻る）。つまり、動作リストのうち現在のケースに対応する後続のテスト動作については進行して、次のテストケースにおける１つ目のテスト動作から改めてテストを開始する。
【０１１０】
本発明の好ましい実施例では、１つの現在の動作における操作結果が完了すると、ブラウザの表示ページ（即ち、操作結果を表すページ）をスクリーンショットにより保存するとともに、スクリーンショット内に現在の動作に対応するコントロールの位置を表記する（その前のコントロールの特定を元に表記する）。
【０１１１】
本発明の好ましい実施例において、上記ステップＳ５では、対応する比較結果を現在の動作のテスト結果として保存した後、次のテスト動作に進行する。そして、進行した次のテスト動作が全体のコントロールに対する操作を示している場合には、ステップＳ４に戻る。
【０１１２】
本発明の好ましい実施例において、上記ステップＳ５では、対応する比較結果を現在の動作のテスト結果として保存した後、次のテスト動作に進行する。
【０１１３】
本発明の好ましい実施例において、前記テストケースの生成方法は主流なソフトウェアシステムのいずれにも適用可能である。これは、主流ソフトウェアシステムの動作方法の駆動を保証するよう、予め設定される前記テストケース、テスト動作、テストコントロール、テスト画面等のデータベースにおいて、主流ソフトウェアシステムが使用を要する駆動方法の実現形態を予め保証しているからである。
【０１１４】
以上は本発明の好ましい実施例にすぎず、本発明の実施形態及び保護の範囲を制限するものではない。当業者であれば、本発明の明細書及び図面の内容を利用して実施される等価の置き換えや自明の変更により得られる方案が、いずれも本発明による保護の範囲に含まれるものと意識し得る。
【図１】
2019525373.tif 000003
【図２】
2019525373.tif 000004
【図３】
2019525373.tif 000005
【図４】
2019525373.tif 000006
【図５】
2019525373.tif 000007
【図６】
2019525373.tif 000008
【図７】
2019525373.tif 000009
【図８】
2019525373.tif 000010
【図９】
2019525373.tif 000011
【図１０】
2019525373.tif 000012
【図１１】
2019525373.tif 000013
【図１２】
2019525373.tif 000014
【国際調査報告】
2019525373.tif 000015
2019525373.tif 000016
2019525373.tif 000017
2019525373.tif 000018