JP2022136477A - テスト制御プログラム、情報処理装置およびテスト制御方法 - Google Patents
テスト制御プログラム、情報処理装置およびテスト制御方法 Download PDFInfo
- Publication number
- JP2022136477A JP2022136477A JP2021036108A JP2021036108A JP2022136477A JP 2022136477 A JP2022136477 A JP 2022136477A JP 2021036108 A JP2021036108 A JP 2021036108A JP 2021036108 A JP2021036108 A JP 2021036108A JP 2022136477 A JP2022136477 A JP 2022136477A
- Authority
- JP
- Japan
- Prior art keywords
- error
- log
- test
- information
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】リグレッションテストのエラー発生時における対処を得るための負荷の軽減を図る。【解決手段】情報処理装置1は、対象ソフトウェアの変更に伴い動作させる動作テストを実行する際に、対象ソフトウェアまたはテストプログラムの動作ログである第1ログと、テストプログラムの開始時刻および終了時刻を示す第2ログと、を記憶部に記録する。情報処理装置1は、特定のテストプログラムを用いた動作テストに関するエラーチェックを実行する場合に、第2ログに基づいて、第1ログの全体から特定のテストプログラムに対応するログを抽出する。情報処理装置1は、複数のエラーそれぞれについて、エラーに対応する第1ログを記憶したエラー情報に基づいて、抽出されたログの中からエラーに対応するログを特定する。【選択図】図8
Description
本発明は、テスト制御プログラムなどに関する。
ソフトウェア製品では、例えば、バージョンアップまたはレベルアップがされたり、修正パッチが適用されたりすることによる変更がされる場合がある。また、ソフトウェア製品を実行する環境において、OS(Operating System)または関連製品の修正が適用される場合がある。かかる場合には、ソフトウェア製品では、従来機能を保証するための確認テストが必要になる。従来機能の保証確認のテストは、リグレッションテスト(RT)と呼ばれる。
リグレッションテストの実施により期待した結果が得られなかった場合には、原因調査が必要になる。原因調査として、人がログファイルを用いて調査することが知られている。原因としては、該当製品または該当製品の修正パッチの不具合、関連製品または関連製品の修正パッチの不具合、テスト時に手動で環境構築したことによる環境構築の誤りなどが考えられる。該当製品または該当製品の修正パッチ、および、関連製品または関連製品の修正パッチは、リグレッションテストの実施の前に十分なテストが実施されている。このため、リグレッションテストの実施により期待した結果が得られなかった原因は、テスト時に手動で環境構築したことによる誤りであることが多い。
ここで、リグレッションテストの改善を試みる技術が開示されている(例えば、特許文献1参照)。かかる技術では、プログラムの変更が認証試験の各テスト項目の合否にどのように影響するのかを確認するために、リグレッションテストが実施される。かかる場合に、テスト装置は、既に実施したテスト結果情報がエラーの場合には、当該テスト結果情報に対応付いたテスト項目をスキップさせることで、テスト時間短縮を行う(例えば、特許文献1参照)。
しかしながら、リグレッションテストの実施によりテスト結果がエラーの場合に、原因調査に時間を要するという問題がある。すなわち、原因調査として、人がログファイルを用いて調査するので、原因調査に時間を要する。特に、環境構築の誤りに起因するエラーの場合には、エラーの原因や対処を得るには負荷がかかる。
1つの側面では、リグレッションテストにおいて、エラー発生時における対処を得るための負荷を軽減することを目的とする。
1つの態様では、テスト制御プログラムは、対象ソフトウェアの変更に伴い動作させる動作テストを実行する際に、前記対象ソフトウェアまたはテストプログラムの動作ログである第1ログと、前記テストプログラムの開始時刻および終了時刻を示す第2ログと、を記憶部に記録し、特定のテストプログラムを用いた前記動作テストに関するエラーチェックを実行する場合に、前記第2ログに基づいて、前記第1ログの全体から前記特定のテストプログラムに対応するログを抽出し、複数のエラーそれぞれについて、エラーに対応する第1ログを記憶したエラー情報に基づいて、抽出されたログの中からエラーに対応するログを特定する、処理をコンピュータに実行させる。
1つの態様によれば、リグレッションテストにおいて、エラー発生時における対処を得るための負荷を軽減することができる。
以下に、本願の開示するテスト制御プログラム、情報処理装置およびテスト制御方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
[情報処理装置の構成]
図1は、実施例に係る情報処理装置の構成を示す機能ブロック図である。実施例に係る情報処理装置1は、対象のソフトウェア製品のリグレッションテストにおけるテスト時の環境構築の誤りに起因するエラーの原因と対処を自動的に特定し、出力する。ここでいうリグレッションテスト(RT)とは、対象のソフトウェア製品の変更に伴い、システムの従来機能の保証を確認するテストのことをいう。対象のソフトウェアの製品の変更には、当該製品のバージョンアップまたはレベルアップや、当該製品の修正パッチの適用が挙げられる。また、対象のソフトウェアの製品の変更には、OSまたは関連製品の修正の適用が含まれる。
図1は、実施例に係る情報処理装置の構成を示す機能ブロック図である。実施例に係る情報処理装置1は、対象のソフトウェア製品のリグレッションテストにおけるテスト時の環境構築の誤りに起因するエラーの原因と対処を自動的に特定し、出力する。ここでいうリグレッションテスト(RT)とは、対象のソフトウェア製品の変更に伴い、システムの従来機能の保証を確認するテストのことをいう。対象のソフトウェアの製品の変更には、当該製品のバージョンアップまたはレベルアップや、当該製品の修正パッチの適用が挙げられる。また、対象のソフトウェアの製品の変更には、OSまたは関連製品の修正の適用が含まれる。
[情報処理装置の機能構成]
図1は、実施例に係る情報処理装置の機能構成の一例を示す図である。図1に示すように、情報処理装置1は、制御部10と、記憶部20とを有する。制御部10は、情報処理装置1全体を司る処理部であり、テスト実行部11、第1のエラー解析部12、第2のエラー解析部13および解析結果出力部14を有する。なお、テスト実行部11は、記録部の一例である。第1のエラー解析部12は、抽出部の一例である。第1のエラー解析部12および第2のエラー解析部13は、特定部の一例である。
図1は、実施例に係る情報処理装置の機能構成の一例を示す図である。図1に示すように、情報処理装置1は、制御部10と、記憶部20とを有する。制御部10は、情報処理装置1全体を司る処理部であり、テスト実行部11、第1のエラー解析部12、第2のエラー解析部13および解析結果出力部14を有する。なお、テスト実行部11は、記録部の一例である。第1のエラー解析部12は、抽出部の一例である。第1のエラー解析部12および第2のエラー解析部13は、特定部の一例である。
記憶部20は、各種データや制御部10が実行するプログラムなどを記憶する。例えば、記憶部20は、テストプログラム21、テスト実行ファイル22、テストログ23、テスト結果ログ24、エラー出力ログ25、製品/システムログ26およびエラー対照テーブル27を記憶する。
テストプログラム21は、リグレッションテストに用いられるテスト用のプログラムである。テストプログラム21は、1個存在しても良いし、複数個存在しても良い。各テストプログラム21には、例えば、テスト項目に対応するコードやコマンドが記述される。
テスト実行ファイル22は、テストを実行するために用いられるファイルである。テスト実行ファイル22には、例えば、各テストプログラム21の実行順に、各テストプログラム21の開始時刻および終了時刻を、後述するテストログ23へ出力する旨の指示が設定される。加えて、テスト実行ファイル22には、各テストプログラム21の実行時のエラーを後述するエラー出力ログ25へ出力する旨の指示が設定される。この指示は、例えば、OSのコマンドプロンプト上で利用できるコマンドによって設定される。なお、テスト実行ファイル22は、例えば、バッチファイルであるが、これに限定されるものではない。
ここで、テスト実行ファイル22の一例を、図2を参照して説明する。図2は、実施例に係るテスト実行ファイルの一例を示す図である。
図2に示すように、テスト実行ファイル22には、テストプログラム21として「Test01」が実行される場合のログを出力する旨の指示が設定されている。例えば、符号a1で示される行には、テストの開始時刻をテストログ23として「TestLog.log」へ出力する旨の指示が設定されている。符号a2で示される行には、テストプログラム21として「Test01」の開始時刻をテストログ23として「TestLog.log」へ出力する旨の指示が設定されている。符号a3で示される行には、テストプログラム21として「Test01」を実行する旨の指示が設定されている。さらに、実行した結果について、標準出力をエラー出力ログとしての「Test01.solog」へ出力する旨の指示と、標準エラー出力をエラー出力ログとしての「Test01.selog」へ出力する旨の指示が設定されている。また、テストプログラム21としての「Test01」内でテスト結果がテスト結果ログ24に出力されるように設定されている場合には、例えば、テスト結果ログ24として「TestResult.log」へテスト結果が出力される。そして、符号a4で示される行には、テストプログラム21として「Test01」の終了時刻をテストログ23として「TestLog.log」へ出力する旨の指示が設定されている。
図1に戻って、テストログ23、テスト結果ログ24、エラー出力ログ25および製品/システムログ26は、テストを実行した結果の各種ログであり、エラー解析に用いられる。テストログ23は、各テストプログラム21の開始および終了のタイムスタンプを記憶する。テスト結果ログ24は、各テストプログラム21の判定結果を記憶する。判定結果には、例えば、成功を示す「Success」または失敗を示す「Failure」が記憶される。エラー出力ログ25は、テストプログラム21および対象のソフトウェア製品の標準出力や標準エラー出力を記憶する。エラー出力ログ25は、標準出力や標準エラー出力をリダイレクトした出力先に記憶される。製品/システムログ26は、対象のソフトウェア製品やシステムによって検出されたログを記憶する。
ここで、テストログ23、テスト結果ログ24、エラー出力ログ25および製品/システムログ26の一例を、図3~図6を参照して説明する。図3は、実施例に係るテストログの一例を示す図である。図3に示すように、テストログ23のファイル名は、「TestLog.log」である。テストログ23は、テスト識別子(テスト番号)およびテストの各種タイムスタンプを対応付けて記憶する。各種タイムスタンプには、テストの開始時刻、テストプログラム21の開始時刻および終了時刻などが挙げられる。一例として、符号b1で示される行には、テスト番号が「07」である場合のテストの開始時刻「Nov/2020 13:40:18」が記憶されている。符号b2で示される行には、テスト番号が「07」である場合のテストプログラム21として「Test01」の開始時刻「Nov/2020 13:40:20」が記憶されている。符号b3で示される行には、テスト番号が「07」である場合のテストプログラム21として「Test01」の終了時刻「Nov/2020 13:42:08」が記憶されている。
図4は、実施例に係るテスト結果ログの一例を示す図である。図4に示すように、テスト結果ログ24のファイル名は、「TestResult.log」である。テスト結果ログ24は、各テストプログラム21の判定結果を記憶する。一例として、符号c1で示される行には、テストプログラム21が「Test01」である場合に、判定結果として失敗を示す「Failure」を記憶している。
図5は、実施例に係るエラー出力ログの一例を示す図である。図5に示すように、エラー出力ログ25における標準出力のファイル名は、「Test01.solog」である。「Test01.solog」は、標準出力のログを記憶している。エラー出力ログ25における標準エラー出力のファイル名は、「Test01.selog」である。「Test01.selog」は、標準エラー出力のログを記憶している。
図6は、実施例に係る製品/システムログの一例を示す図である。図6に示すように、製品/システムログ26のファイル名は、「access.log」である。「access.log」は、対象のソフトウェア製品やシステムによって検出されたログを記憶している。
図1に戻って、エラー対照テーブル27は、過去に発生したエラーに対応するログ(エラー解析ルールテーブル)と、エラーに対応した調査コマンド(詳細調査テーブル)と、エラーに対する原因および対処(エラー原因情報テーブル)とを関連付けて記憶する。ここでいうエラーは、環境構築の誤りに起因するエラーである。環境構築の誤りに起因するエラーに関し、エラー対照テーブル27は、予め過去ログなどから生成される。なお、後述する第1のエラー解析部12および第2のエラー解析部13が、エラー対照テーブル27を用いて、テストプログラム21を実行した結果出力されるエラーと照合することによって、出力されるエラーを解析する。
ここで、実施例に係るエラー対照テーブル27の一例を、図7を参照して説明する。図7は、実施例に係るエラー対照テーブルの一例を示す図である。図7に示すように、エラー対照テーブル27は、エラー解析ルールテーブル、詳細調査テーブルおよびエラー原因情報テーブルを含む。
エラー解析ルールテーブルは、原因特定の手掛かりとなるキーワードを蓄積する。例えば、エラー解析ルールテーブルは、No、ファイル名、キーワード、フラグおよびポインタを対応付けた情報である。Noは、項番を示す。ファイル名は、ログの種類に応じたファイルの名称である。ログの種類には、標準出力ログ、標準エラー出力ログ、製品/システムログなどが含まれる。キーワードは、過去に発生したエラーに対応するログの内容を示す。フラグは、原因判明フラグであり、キーワードに基づいて原因が判明するか否かを示すフラグである。フラグが「0」である場合には、原因が判明したことを示す。フラグが「1」である場合には、原因が判明せず、詳細な調査が必要であることを示す。ポインタは、フラグに応じた遷移先のアドレスを示す。ポインタは、フラグが「0」(原因判明)の場合には、エラー原因情報テーブルの所定のNoに対応するアドレスを示す。ポインタは、フラグが「1」(詳細調査)の場合には、詳細調査テーブルの所定のNoに対応するアドレスを示す。
詳細調査テーブルは、エラー解析ルールテーブルでキーワードと一致した場合に、より詳細な情報を取得するためのコマンド群を蓄積する。例えば、詳細調査テーブルは、No、コマンド、キーワード、フラグおよびポインタを対応付けた情報である。Noは、エラー解析ルールテーブルのポインタや詳細調査テーブルのポインタと紐付く。コマンドは、エラー原因について、より詳細な情報を取得するためのコマンドである。キーワードは、詳細な情報を示す。フラグは、原因判明フラグであり、キーワードに基づいて原因が判明するか否かを示すフラグである。フラグが「0」である場合には、原因が判明したことを示す。フラグが「1」である場合には、原因が判明せず、さらに詳細な調査が必要であることを示す。ポインタは、フラグに応じた遷移先のアドレスを示す。ポインタは、フラグが「0」(原因判明)の場合には、エラー原因情報テーブルの所定のNoに対応するアドレスを示す。ポインタは、フラグが「1」(詳細調査)の場合には、詳細調査テーブルの所定のNoに対応するアドレスを示す。なお、ポインタは、エラー原因情報テーブルを遷移先とする場合に限定されず、再び詳細調査テーブルを遷移先とする場合もある。
エラー原因情報テーブルは、エラーの原因および対処方法を蓄積する。例えば、エラー原因情報テーブルは、No、原因、対処、種別および詳細を対応付けた情報である。Noは、エラー解析ルール情報テーブルのポインタや詳細調査テーブルのポインタと紐付く。原因は、エラーの原因を示す。対処は、エラーの対処方法を示す。種別は、原因および対処から判別されるエラーの種別を示す。例えば、種別には、エラーの原因となった環境変数などが含まれる。詳細は、種別が設定されたファイルを示す。例えば、詳細には、環境変数が設定されたファイルの名称などが含まれる。
一例として、エラー解析ルールテーブルについて、Noが「3」である場合に、ファイル名として「STDOUT(エラー出力)」、キーワードとして「ADPT-32000 メッセージの送信に失敗しました」と記憶している。加えて、フラグとして「1(詳細調査)」、ポインタとして「201」と記憶している。そして、詳細調査テーブルについて、Noが「201」である場合に、コマンドとして「listCluster」、キーワードとして「cluster_Aが未起動」と記憶している。加えて、フラグとして「0(原因)」、ポインタとして「103」と記憶している。そして、エラー原因情報テーブルについて、Noが「103」である場合に、原因として「cluster_Aが起動されていない」、対処として「cluster_Aを起動する」、種別として「product」と記憶している。
別例として、詳細調査テーブルを再び遷移先とする場合を説明する。エラー解析ルールテーブルについて、Noが「3」である場合に、ファイル名が「STDOUT(エラー出力)」である場合に、キーワードとして「ADPT-32000 メッセージの送信に失敗しました」と記憶している。加えて、フラグとして「1(詳細調査)」、ポインタとして「201」と記憶している。そして、詳細調査テーブルについて、Noが「201」である場合に、コマンドとして「listCluster」、キーワードとして「サービスが起動されていない」と記憶している。加えて、フラグとして「1(詳細調査)」、ポインタとして「202」と記憶している。そして、再び詳細調査テーブルについて、Noが「202」である場合に、コマンドとして「listservice」、キーワードとして「未起動」と記憶している。加えて、フラグとして「0(原因)」、ポインタとして「106」と記憶している。そして、エラー原因情報テーブルについて、Noが「106」である場合に、原因として「サービスが起動されていない」、対処として「サービスを起動する」と記憶している。
図1に戻って、テスト実行部11は、対象ソフトウェアの製品の変更に伴い動作させるリグレッションテストを実行する。例えば、テスト実行部11は、テスト実行ファイル22を起動する。起動されたテスト実行ファイル22は、ファイル内に記述されたコマンドに応じて、テストの開始時刻をテストログ23に出力する。また、テスト実行ファイル22は、記述されたコマンドに応じて、テストプログラム21の開始時刻、終了時刻をテストログ23に出力する。また、テスト実行ファイル22は、記述されたコマンドに応じて、テストプログラム21を実行し、テスト結果をテスト結果ログ24に出力するとともに、エラーとなった箇所に応じてエラー情報をエラー出力ログ25や製品/システムログ26に出力する。
第1のエラー解析部12は、リグレッションテストに関するエラー解析を実行する場合に、テストログ23に基づいて、エラーログの全体から特定のテストプログラム21に対応するログを抽出する。例えば、第1のエラー解析部12は、テスト結果ログ24からテストプログラム21の名前とテスト結果を取得する。第1のエラー解析部12は、テストログ23を参照して、テスト結果が失敗を示すテストプログラム21について、テストログ23を参照して、開始時刻と終了時刻を取得し、開始時刻と終了時刻から得られるテスト実行時間帯を取得する。これにより、第1のエラー解析部12は、テストログ23からエラー解析の対称範囲を絞り込むことができる。そして、第1のエラー解析部12は、エラー出力ログ25および製品/システムログ26から、対象のテストプログラム21のテスト実行時間帯のログを抽出する。そして、第1のエラー解析部12は、抽出したログを一時フォルダに出力する。
また、第1のエラー解析部12は、エラー対照テーブル27に基づいて、抽出されたログの中からエラーに対応するログを特定する。例えば、第1のエラー解析部12は、エラー対照テーブル27のエラー解析ルールテーブルを参照して、抽出されたログの中でログの内容がキーワードと一致するログを特定する。
また、第1のエラー解析部12は、エラー対照テーブル27に基づいて、特定したログと関連付けられた対処情報を出力する。例えば、第1のエラー解析部12は、エラー対照テーブル27のエラー解析ルールテーブルについて、特定したログと一致したキーワードに対応するフラグを参照して、原因判明しているか否かを判定する。そして、第1のエラー解析部12は、原因判明している場合には、エラー解析ルールテーブルのポインタから関連付けられた、エラー原因情報テーブルの該当Noのレコードを参照して、テストプログラム21の名前、エラーの原因および対処を解析結果出力部14に出力する。
第2のエラー解析部13は、エラー対照テーブル27に基づいて、特定したログと関連付けられた調査用コマンドを発行する。例えば、第2のエラー解析部13は、エラー対照テーブル27のエラー解析ルールテーブルについて、特定したログと一致したキーワードに対応するフラグを参照して、原因判明しているか否かを判定する。そして、第2のエラー解析部13は、原因判明していない場合には、エラー解析ルールテーブルのポインタから関連付けられた、詳細調査テーブルの該当Noのレコードを参照して、調査用コマンドを取得する。そして、第2のエラー解析部13は、取得した調査用コマンドを発行する。なお、特定したログがキーワードと一致しているが原因が判明しない一例として、同一のメッセージのログ(エラーメッセージ)であっても異なる原因から出力される場合が挙げられる。かかる場合に、第2のエラー解析部13が、調査用コマンドを用いて、特定したログのエラーをさらに解析するのである。
また、第2のエラー解析部13は、調査用コマンドを発行した後、エラー対照テーブル27に基づいて、特定したログと関連付けられた対処情報を出力する。例えば、第2のエラー解析部13は、調査用コマンドを発行した結果が詳細調査テーブルのキーワードにあるか否かを判定する。第2のエラー解析部13は、調査用コマンドを発行した結果が詳細調査テーブルのキーワードにある場合には、キーワードの内容について、原因判明しているか否かを判定する。そして、第2のエラー解析部13は、原因判明している場合には、詳細調査テーブルのポインタから関連付けられた、エラー原因情報テーブルの該当Noのレコードを参照して、テストプログラム21の名前、エラーの原因および対処を解析結果出力部14に出力する。また、第2のエラー解析部13は、原因判明していない場合には、再び、詳細調査テーブルのポインタから関連付けられた、詳細調査テーブルの該当Noのレコードを参照して、調査用コマンドを発行して、発行した結果からエラー解析処理を行う。
解析結果出力部14は、解析結果を出力する。例えば、解析結果出力部14は、第1のエラー解析部12または第2のエラー解析部13から出力されたテストプログラム21の名前、エラーの原因および対処を含む解析結果を出力する。
[解析結果出力の一例]
ここで、解析結果出力の一例を、図8を参照して説明する。図8は、実施例に係る解析結果出力の一例を示す図である。図8に示す解析結果出力は、テスト実行部11によって「Test01」のテストプログラム21が実行された場合の解析結果の一例である。ここでは、「Test01.selog」に格納されたログと一致したキーワードが「ADPT-32000 メッセージの送信に失敗しました」であることが表わされている。なお、ログは、図5の「Test01.selog」に記憶された内容に対応する。また、ここでいうキーワードは、図7のエラー解析ルールテーブルのNo3のキーワードに対応する。
ここで、解析結果出力の一例を、図8を参照して説明する。図8は、実施例に係る解析結果出力の一例を示す図である。図8に示す解析結果出力は、テスト実行部11によって「Test01」のテストプログラム21が実行された場合の解析結果の一例である。ここでは、「Test01.selog」に格納されたログと一致したキーワードが「ADPT-32000 メッセージの送信に失敗しました」であることが表わされている。なお、ログは、図5の「Test01.selog」に記憶された内容に対応する。また、ここでいうキーワードは、図7のエラー解析ルールテーブルのNo3のキーワードに対応する。
さらに、「listCluster」という調査用コマンドが発行された結果が「Test01Analyze.log」に格納され、格納された内容と一致したキーワードが「cluster Aが未起動」であることが表わされている。なお、ここでいうキーワードは、図7の詳細調査テーブルのNo201に対応する1行目のキーワードに対応する。
そして、エラー原因が「cluster Aが起動されていない」であることが表わされている。対処方法が「cluster Aを起動する」であることが表わされている。なお、ここでいうエラー原因および対処方法は、図7のエラー原因情報テーブルのNo103に対応する原因および対処に対応する。
すなわち、「Test01」のテストプログラム21が実行され、「ADPT-32000 メッセージの送信に失敗しました」のエラーログが出力される場合に、解析結果出力部14は、エラーログに対するエラー原因および対処方法をユーザに提示する。
[エラー解析のフローチャート]
図9Aおよび図9Bは、実施例に係るエラー解析のフローチャートの一例を示す図である。なお、テスト実行部11によってテスト実行ファイル22が起動され、テストプログラム21(TP)が実行されたとする。そして、テストログ23、テスト結果ログ24、エラー出力ログ25および製品/システムログ26にそれぞれログが格納されているとする。
図9Aおよび図9Bは、実施例に係るエラー解析のフローチャートの一例を示す図である。なお、テスト実行部11によってテスト実行ファイル22が起動され、テストプログラム21(TP)が実行されたとする。そして、テストログ23、テスト結果ログ24、エラー出力ログ25および製品/システムログ26にそれぞれログが格納されているとする。
図9Aに示すように、第1のエラー解析部12は、テストプログラム21(TP)の個数分繰り返す(ステップS11)。第1のエラー解析部12は、テスト結果ログ24からTP名とテスト結果を取得する(ステップS12)。そして、第1のエラー解析部12は、テスト結果が成功であるか否かを判定する(ステップS13)。テスト結果が成功であると判定した場合には(ステップS13;Yes)、第1のエラー解析部12は、次のTPの処理に進むべく、ステップS11に移行する。
一方、テスト結果が失敗であると判定した場合には(ステップS13;No)、第1のエラー解析部12は、テストログ23からTP名と開始時刻/終了時刻のタイムスタンプを取得する(ステップS14)。そして、第1のエラー解析部12は、開始時刻/終了時刻のタイムスタンプからTPの実行時間帯を絞り込む(ステップS15)。
続いて、第1のエラー解析部12は、ログファイルの個数分ステップS17を繰り返す(ステップS16)。すなわち、第1のエラー解析部12は、対象のログファイルからTPの実行時間帯のログを抽出して一時フォルダに出力する(ステップS17)。例えば、第1のエラー解析部12は、対象のログファイルをエラー出力ログ25として、エラー出力ログ25からTPの実行時間帯のログを抽出して一時フォルダに出力する。また、第1のエラー解析部12は、対象のログファイルを製品/システムログ26として、エラー出力ログ25からTPの実行時間帯のログを抽出して一時フォルダに出力する。
図9Bに示すように、第1のエラー解析部12は、エラー対照テーブル27の情報の個数分ステップS19~ステップS24を繰り返す(ステップS18)。第1のエラー解析部12は、エラー対照テーブル27から1行を取り出す(ステップS19)。そして、第1のエラー解析部12は、取り出した1行について、エラー対照テーブル27のファイル名を取り出す(ステップS20)。すなわち、第1のエラー解析部12は、取り出したエラー解析ルールテーブルの中の1行に含まれるファイル名を取り出す。
続いて、第1のエラー解析部12は、抽出されたログの個数分ステップS22~ステップS24を繰り返す(ステップS21)。すなわち、第1のエラー解析部12は、一時フォルダに出力されたログであってTPの実行時間帯の抽出されたログを1個分取得する。以降、取得したログを対象のログと記述する。
そして、第1のエラー解析部12は、取得した対象のログのログファイルがエラー対照テーブル27のファイル名に該当するか否かを判定する(ステップS22)。対象のログのログファイルがエラー対照テーブル27のファイル名に該当しないと判定した場合には(ステップS22;No)、第1のエラー解析部12は、抽出された次のログの処理をすべく、ステップS21に移行する。
一方、対象のログファイルがエラー対照テーブル27のファイル名に該当すると判定した場合には(ステップS22;Yes)、第1のエラー解析部12および第2のエラー解析部13は、エラー対照テーブル27の対象の情報と、対象のログとに関し、キーワードに基づくエラー解析処理を行う。なお、かかるキーワードに基づくエラー解析処理のフローチャートは、後述する。
そして、第1のエラー解析部12は、キーワードに基づくエラー解析処理に基づき、エラー解析処理結果が有るか否かを判定する(ステップS24)。エラー解析処理結果が有ると判定した場合には(ステップS24;Yes)、第1のエラー解析部12は、次のTPを処理が全て終了していない場合には、ステップS11に移行する。また、第1のエラー解析部12は、TPの処理が全て終了した場合には、エラー解析処理を終了する。
一方、エラー解析処理結果が無いと判定した場合には(ステップS24;No)、第1のエラー解析部12は、抽出されたログの個数分の処理が全て終了していない場合には、抽出された次のログの処理をすべく、ステップS21に移行する。また、第1のエラー解析部12は、抽出されたログの個数分の処理が全て終了した場合には、エラー対照テーブル27の次の情報の処理が終了していない場合には、ステップS18に移行する。また、第1のエラー解析部12は、エラー対照テーブル27の情報の処理が全て終了した場合には、原因判明できなかったので、TP名と“原因不明”および“要調査”とを出力する(ステップS25)。そして、第1のエラー解析部12は、次のTPを処理が全て終了していない場合には、ステップS11に移行する。また、第1のエラー解析部12は、TPの処理が全て終了した場合には、エラー解析処理を終了する。
図10は、キーワードに基づくエラー解析処理のフローチャートの一例を示す図である。図10に示すように、第1のエラー解析部12は、対象のログとエラー対照テーブル27の対象の情報のキーワードとが一致するか否かを判定する(ステップS31)。例えば、第1のエラー解析部12は、対象のログと、エラー対照テーブル27のエラー解析ルールテーブルにおける対象レコードに含まれるキーワードとが一致するか否かを、grepコマンドを用いて検索すれば良い。対象のログとエラー対照テーブル27の対象の情報のキーワードとが一致しないと判定した場合には(ステップS31;No)、第1のエラー解析部12は、対象のログについて、エラー解析処理結果が無いと判断し、キーワードに基づくエラー解析処理を終了する。
一方、対象のログとエラー対照テーブル27の対象の情報のキーワードとが一致すると判定した場合には(ステップS31;Yes)、第1のエラー解析部12は、原因判明するか否かを判定する(ステップS32)。例えば、第1のエラー解析部12は、エラー対照テーブル27のエラー解析ルールテーブルにおける対象レコードのフラグを参照して、原因判明であることを示す「0」であるか否かを判定する。原因判明すると判定した場合には(ステップS32;Yes)、第1のエラー解析部12は、対象のログについて、原因と対処を出力すべく、ステップS39に移行する。
一方、原因判明しないと判定した場合には(ステップS32;No)、第2のエラー解析部13は、エラー対照テーブル27の情報のリンク先の詳細調査テーブルを参照する(ステップS33)。例えば、第2のエラー解析部13は、エラー対照テーブル27のエラー解析ルールテーブルのポインタから関連付けられた、詳細調査テーブルの該当Noのレコードを参照する。
そして、第2のエラー解析部13は、詳細調査テーブルから調査コマンドを取得する(ステップS34)。そして、第2のエラー解析部13は、取得した調査コマンドを実行して結果を取得する(ステップS35)。そして、第2のエラー解析部13は、調査コマンドの結果が詳細調査テーブルのキーワードに有るか否かを判定する(ステップS36)。キーワードに無いと判定した場合には(ステップS36;No)、第2のエラー解析部13は、対象のログについて、エラー解析処理結果が無いと判断し、キーワードに基づくエラー解析処理を終了する。
一方、キーワードが有ると判定した場合には(ステップS36;Yes)、第2のエラー解析部13は、原因判明するか否かを判定する(ステップS37)。原因判明すると判定した場合には(ステップS37;Yes)、第2のエラー解析部13は、対象のログについて、原因と対処を出力すべく、ステップS39に移行する。
一方、原因判明しないと判定した場合には(ステップS37;No)、第2のエラー解析部13は、詳細調査テーブルの該当情報のリンク先からさらに詳細調査テーブルを参照する(ステップS38)。例えば、第2のエラー解析部13は、エラー対照テーブル27の詳細調査テーブルのポインタから関連付けられた、詳細調査テーブルの該当Noのレコードを参照する。そして、第2のエラー解析部13は、再び対象の調査コマンドを実行すべく、ステップS34に移行する。
ステップ39において、第1のエラー解析部12および第2のエラー解析部13は、原因判明できたので、TP名およびエラー対照テーブル27の情報の原因と対処を出力する(ステップS39)。そして、第1のエラー解析部12および第2のエラー解析部13は、対象のログについて、エラー解析処理結果が有ると判断し、キーワードに基づくエラー解析処理を終了する。
なお、実施例では、第1のエラー解析部12は、エラー対照テーブル27のエラー解析ルールテーブルを参照して、テスト時間帯を絞り込んだログについて、キーワードと一致するログを特定すると説明した。また、第2のエラー解析部13は、調査コマンドを発行した結果の内容が詳細調査テーブルのキーワードにあるか否かを判定すると説明した。しかしながら、第1のエラー解析部12および第2のエラー解析部13は、キーワードとの照合について、全部一致に限定されず、一部一致であっても良い。すなわち、第1のエラー解析部12は、エラー対照テーブル27のエラー解析ルールテーブルを参照して、テスト時間帯を絞り込んだログについて、キーワードと一部一致するログを特定しても良い。また、第2のエラー解析部13は、調査用コマンドを発行した結果の内容が詳細調査テーブルのキーワードに含まれているか否か、または含んでいるか否かを判定しても良い。
[実施例の効果]
このようにして、上記実施例では、情報処理装置1は、対象ソフトウェアの変更に伴い動作させる動作テスト(リグレッションテスト)を実行する際に、対象ソフトウェアまたはテストプログラムの動作ログである第1ログと、テストプログラムの開始時刻および終了時刻を示す第2ログと、を記憶部に記録する。情報処理装置1は、特定のテストプログラムを用いた動作テストに関するエラーチェックを実行する場合に、第2ログに基づいて、第1ログの全体から特定のテストプログラムに対応するログを抽出する。そして、情報処理装置1は、複数のエラーそれぞれについて、エラーに対応する第1ログを記憶したエラー情報に基づいて、抽出されたログの中からエラーに対応するログを特定する。かかる構成によれば、情報処理装置1は、リグレッションテストでのエラー発生時における原因および対処の特定に要する負荷の軽減を図ることが可能となる。
このようにして、上記実施例では、情報処理装置1は、対象ソフトウェアの変更に伴い動作させる動作テスト(リグレッションテスト)を実行する際に、対象ソフトウェアまたはテストプログラムの動作ログである第1ログと、テストプログラムの開始時刻および終了時刻を示す第2ログと、を記憶部に記録する。情報処理装置1は、特定のテストプログラムを用いた動作テストに関するエラーチェックを実行する場合に、第2ログに基づいて、第1ログの全体から特定のテストプログラムに対応するログを抽出する。そして、情報処理装置1は、複数のエラーそれぞれについて、エラーに対応する第1ログを記憶したエラー情報に基づいて、抽出されたログの中からエラーに対応するログを特定する。かかる構成によれば、情報処理装置1は、リグレッションテストでのエラー発生時における原因および対処の特定に要する負荷の軽減を図ることが可能となる。
また、上記実施例によれば、エラー情報は、エラーに対応する第1ログと、当該エラーに対する対処情報とを関連付けて記憶する。情報処理装置1は、エラー情報に基づいて特定したログと関連付けられた対処情報を出力する。かかる構成によれば、情報処理装置1は、動作テストでのエラー発生時における対処の特定に要する負荷を軽減できる。
また、上記実施例によれば、エラー情報は、エラーに対応する第1ログと、当該エラーに対応した調査コマンドとを関連付けて記憶する。情報処理装置1は、エラー情報に基づいて特定したログと関連付けられた調査コマンドを発行する。かかる構成によれば、情報処理装置1は、ログと関連付けられた対処情報が無い場合であっても、ログと関連付けられた調査コマンドを発行することで、対処情報を特定することが可能となる。
また、上記実施例によれば、エラー情報は、エラーに対応する第1ログと、当該エラーに対する対処情報または調査コマンドとを関連付けて記憶する。情報処理装置1は、特定のエラーに対する対処情報が関連付けられていない場合には、特定のエラーに対する調査コマンドが関連付けられているか否かを判定する。情報処理装置1は、特定のエラーに対する調査コマンドが関連付けられていると判定した場合には、当該調査コマンドを発行して、情報を取得する。かかる構成によれば、情報処理装置1は、ログと関連付けられた対処情報が無い場合であっても、ログと関連付けられた調査コマンドを発行することで、対処情報を特定することが可能となる。
また、上記実施例によれば、情報処理装置1は、取得した情報に対する対処情報が関連付けられていない場合には、当該情報に対して発行する処理を実行する。情報処理装置1は、取得した情報に対する対処情報が関連付けられている場合には、対処情報を出力する。かかる構成によれば、情報処理装置1は、調査コマンドを発行した結果の情報と関連付けられた対処情報が無い場合であっても、当該情報と関連付けられた調査コマンドを再度発行することで、対処情報を特定することが可能となる。
また、上記実施例によれば、エラー情報に情報が格納されるエラーは、環境設定の誤りに起因するエラーである。これにより、情報処理装置1は、情報処理装置1は、リグレッションテストでの環境設定の誤りに起因するエラー発生時における原因および対処の特定に要する負荷の軽減を図ることが可能となる。
[その他]
なお、情報処理装置1は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した制御部10および記憶部20などの各機能を搭載することによって実現することができる。
なお、情報処理装置1は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した制御部10および記憶部20などの各機能を搭載することによって実現することができる。
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、第1のエラー解析部12と第2のエラー解析部13とを1個の部として統合しても良い。また、記憶部20を情報処理装置1の外部装置としてネットワーク経由で接続するようにしても良い。さらに、制御部10および記憶部20をクラウド上に置き、利用者はパーソナルコンピュータなどからネットワークを介して当該クラウドに接続して、制御部10により実行される処理を利用することも可能である。このようにすることで、本発明の処理をサービスとして提供することができるようになる。
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図1に示した情報処理装置1と同様の機能を実現するテスト制御プログラムを実行するコンピュータの一例を説明する。図11は、テスト制御プログラムを実行するコンピュータの一例を示す図である。
図11に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信I/F(Interface)217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD(Hard Disk Drive)205を有する。そして、メモリ201、CPU203、HDD205、表示装置209、ドライブ装置213、入力装置215、通信I/F217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、テスト制御プログラム205aおよびテスト制御処理関連情報205bを記憶する。通信I/F217は、ネットワークと装置内部とのインターフェースを司り、他のコンピュータからのデータの入出力を制御する。通信I/F217には、例えば、モデムやLANアダプタなどを採用することができる。
表示装置209は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する表示装置である。表示装置209は、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどを採用することができる。
CPU203は、テスト制御プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは情報処理装置1の各機能部に対応する。テスト制御処理関連情報205bは、テストプログラム21、テスト実行ファイル22、テストログ23、テスト結果ログ24、エラー出力ログ25、製品/システムログ26およびエラー対照テーブル27などに対応する。そして、例えばリムーバブルディスク211が、テスト制御プログラムなどの各情報を記憶する。
なお、テスト制御プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらからテスト制御プログラム205aを読み出して実行するようにしても良い。
1 情報処理装置
10 制御部
11 テスト実行部
12 第1のエラー解析部
13 第2のエラー解析部
14 解析結果出力部
20 記憶部
21 テストプログラム
22 テスト実行ファイル
23 テストログ
24 テスト結果ログ
25 エラー出力ログ
26 製品/システムログ
27 エラー対照テーブル
10 制御部
11 テスト実行部
12 第1のエラー解析部
13 第2のエラー解析部
14 解析結果出力部
20 記憶部
21 テストプログラム
22 テスト実行ファイル
23 テストログ
24 テスト結果ログ
25 エラー出力ログ
26 製品/システムログ
27 エラー対照テーブル
Claims (8)
- 対象ソフトウェアの変更に伴い動作させる動作テストを実行する際に、前記対象ソフトウェアまたはテストプログラムの動作ログである第1ログと、前記テストプログラムの開始時刻および終了時刻を示す第2ログと、を記憶部に記録し、
特定のテストプログラムを用いた前記動作テストに関するエラーチェックを実行する場合に、前記第2ログに基づいて、前記第1ログの全体から前記特定のテストプログラムに対応するログを抽出し、
複数のエラーそれぞれについて、エラーに対応する第1ログを記憶したエラー情報に基づいて、抽出されたログの中からエラーに対応するログを特定する
処理をコンピュータに実行させることを特徴とするテスト制御プログラム。 - 前記エラー情報は、エラーに対応する第1ログと、当該エラーに対する対処情報とを関連付けて記憶し、
前記エラー情報に基づいて特定した前記ログと関連付けられた対処情報を出力する
ことを特徴とする請求項1に記載のテスト制御プログラム。 - 前記エラー情報は、エラーに対応する第1ログと、当該エラーに対応した調査コマンドとを関連付けて記憶し、
前記エラー情報に基づいて特定した前記ログと関連付けられた調査コマンドを発行する
ことを特徴とする請求項1に記載のテスト制御プログラム。 - 前記エラー情報は、エラーに対応する第1ログと、当該エラーに対する対処情報または調査コマンドとを関連付けて記憶し、
前記発行する処理は、
特定のエラーに対する対処情報が関連付けられていない場合には、前記特定のエラーに対する調査コマンドが関連付けられているか否かを判定し、
前記特定のエラーに対する調査コマンドが関連付けられていると判定した場合には、当該調査コマンドを発行して、情報を取得する
ことを特徴とする請求項3に記載のテスト制御プログラム。 - 前記取得した情報に対する対処情報が関連付けられていない場合には、当該情報に対して前記発行する処理を実行し、
前記取得した情報に対する対処情報が関連付けられている場合には、前記対処情報を出力する
ことを特徴とする請求項4に記載のテスト制御プログラム。 - 前記エラー情報に情報が格納されるエラーは、環境設定の誤りに起因するエラーである ことを特徴とする請求項1に記載のテスト制御プログラム。
- 対象ソフトウェアの変更に伴い動作させる動作テストを実行する際に、前記対象ソフトウェアまたはテストプログラムの動作ログである第1ログと、前記テストプログラムの開始時刻および終了時刻を示す第2ログと、を記憶部に記録する記録部と、
特定のテストプログラムを用いた前記動作テストに関するエラーチェックを実行する場合に、前記第2ログに基づいて、前記第1ログの全体から前記特定のテストプログラムに対応するログを抽出する抽出部と、
複数のエラーそれぞれについて、エラーに対応する第1ログを記憶したエラー情報に基づいて、抽出されたログの中からエラーに対応するログを特定する特定部と、
を有することを特徴とする情報処理装置。 - 対象ソフトウェアの変更に伴い動作させる動作テストを実行する際に、前記対象ソフトウェアまたはテストプログラムの動作ログである第1ログと、前記テストプログラムの開始時刻および終了時刻を示す第2ログと、を記憶部に記録し、
特定のテストプログラムを用いた前記動作テストに関するエラーチェックを実行する場合に、前記第2ログに基づいて、前記第1ログの全体から前記特定のテストプログラムに対応するログを抽出し、
複数のエラーそれぞれについて、エラーに対応する第1ログを記憶したエラー情報に基づいて、抽出されたログの中からエラーに対応するログを特定する
処理をコンピュータが実行することを特徴とするテスト制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021036108A JP2022136477A (ja) | 2021-03-08 | 2021-03-08 | テスト制御プログラム、情報処理装置およびテスト制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021036108A JP2022136477A (ja) | 2021-03-08 | 2021-03-08 | テスト制御プログラム、情報処理装置およびテスト制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022136477A true JP2022136477A (ja) | 2022-09-21 |
Family
ID=83311858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021036108A Pending JP2022136477A (ja) | 2021-03-08 | 2021-03-08 | テスト制御プログラム、情報処理装置およびテスト制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022136477A (ja) |
-
2021
- 2021-03-08 JP JP2021036108A patent/JP2022136477A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100513551B1 (ko) | 주문 제작 컴퓨터시스템을 위한 소프트웨어 설치 및 테스트방법및 시스템 | |
KR100655124B1 (ko) | 주문 제작 컴퓨터시스템을 위한 소프트웨어 설치 및 테스트를촉진하는 데이타베이스 | |
US8930915B2 (en) | System and method for mitigating repeated crashes of an application resulting from supplemental code | |
US7080356B2 (en) | Certification test suite | |
US8468328B2 (en) | System and method for verifying compatibility of computer equipment with a software product | |
EP2646913B1 (en) | Repairing corrupt software | |
US7069474B2 (en) | System and method for assessing compatibility risk | |
US20120331449A1 (en) | Device, method and computer program product for evaluating a debugger script | |
US20080120601A1 (en) | Information processing apparatus, method and program for deciding priority of test case to be carried out in regression test background of the invention | |
CN102736978A (zh) | 一种检测应用程序的安装状态的方法及装置 | |
KR19990023212A (ko) | 주문 제작 컴퓨터시스템을 위한 소프트웨어 설치 및 테스트방법 및 시스템 | |
US8661418B2 (en) | Setting program, workflow creating method, and work flow creating apparatus | |
US7536599B2 (en) | Methods and systems for validating a system environment | |
US8327191B2 (en) | Automatically populating symptom databases for software applications | |
US9645911B2 (en) | System and method for debugging firmware/software by generating trace data | |
US20030088810A1 (en) | Methods and apparatus for determining software component sizes associated with errors | |
CN112930534A (zh) | 管理系统、取得装置和管理方法 | |
JP2022136477A (ja) | テスト制御プログラム、情報処理装置およびテスト制御方法 | |
US11748246B2 (en) | Crowd-sourced QA with trusted compute model | |
JP2022150518A (ja) | テスト処理プログラム、テスト処理方法および情報処理装置 | |
JPH11272451A (ja) | ソフトウェアのインストール制御システムと方法およびそのプログラムを記録した記録媒体 | |
JP5034292B2 (ja) | モジュール組込プログラム、モジュール組込装置およびモジュール組込方法 | |
JP2006260053A (ja) | 特定サブルーチン検索システムおよびこれに用いるプログラム | |
JP2024011996A (ja) | 動作検証プログラム、動作検証方法、および情報処理装置 | |
JPH10269065A (ja) | ライブラリ管理方法 |