(57)【要約】      （修正有）【課題】回帰テストを能率良く極力自動的に行うと共に、効果的に不具合を見出す方法を提供する。【解決手段】時系列実行結果データ取得処理部６０は、テスト対象プログラムの実行結果を、逐次時系列で取得する。実行結果のソート処理指定情報作成処理部８０は、テスト対象プログラムの実行状況によって変化する順序変動の許容指定を示すソート処理指定情報を生成して、ソート処理指定情報格納装置８２に保存する。回帰テスト支援装置３２は、ソート処理部で整合されたソート処理指定情報を用いながら、プログラム修正前後の実行結果を比較し、プログラムの不具合を判定する情報を生成し、比較用データ格納装置４２に保存する。【選択図】図４
2015176455.tif 000002
【特許請求の範囲】
【請求項１】
テスト対象プログラムのプログラム修正後の不具合を見出すための回帰テスト支援方法において、
時系列実行結果データ取得処理部により、前記テスト対象プログラムの実行結果を、逐次時系列で取得し、
ソート処理指定情報作成処理部により、プログラム修正の有無には依存しない、乃至は依存しない可能性があるものの、前記テスト対象プログラムの実行状況によって変化する、実行結果の順序変動の許容指定を示すソート処理指定情報を生成して、ソート処理指定情報格納装置に格納し、
前記ソート処理指定情報を用いながら、プログラム修正前後の実行結果を比較し、プログラムの不具合を判定する情報を生成するようにしたことを特徴とする回帰テスト支援方法。
【請求項２】
請求項１に記載の回帰テスト支援方法において、
前記時系列実行結果データ取得処理部により、修正前のプログラムの複数回の実行結果を、それぞれの実行中に取得し、
前記ソート処理指定情報作成処理部により、これら取得した複数回の実行結果を比較することで、前記ソート処理指定情報を自動的に生成し、前記ソート処理指定情報格納装置に保存するようにしたことを特徴とする回帰テスト支援方法。
【請求項３】
請求項１又は２に記載の回帰テスト支援方法において、
前記ソート処理指定情報作成処理部により、前記ソート処理指定情報の自動設定、又は手動設定を可能とするようにしたことを特徴とする回帰テスト支援方法。
【請求項４】
請求項１乃至３のいずれか１つに記載の回帰テスト支援方法において、
判定除外設定処理部により、修正前のプログラムの実行結果、及び修正後のプログラムの実行結果の比較による、プログラムの不具合の判定の対象外とする判定除外情報を取得し、
比較判定処理部により、前記判定除外情報を参照しながら、修正前及び修正後の前記実行結果を比較し、プログラムの不具合を判定する情報を生成するようにしたことを特徴とする回帰テスト支援方法。
【請求項５】
テスト対象プログラムのプログラム修正後の不具合を見出すための回帰テスト支援装置において、
前記テスト対象プログラムの実行結果を、逐次時系列で取得する時系列実行結果データ取得処理部と、
プログラム修正の有無には依存しない、乃至は依存しない可能性があるものの、前記テスト対象プログラムの実行状況によって変化する、実行結果の順序変動の許容指定を示すソート処理指定情報が格納されるソート処理指定情報格納装置と、
前記ソート処理指定情報を生成するソート処理指定情報作成処理部と、
前記ソート処理指定情報を用いながら、個々の前記テスト対象プログラムの逐次時系列となっている実行結果を元データとして、不具合を見出すためのプログラム修正前後の実行結果の比較に用いる比較用実行結果データが格納される比較用データ格納装置と、
前記比較用実行結果データを生成するソート処理部と、
プログラム修正前後の前記比較用実行結果データを比較し、プログラムの不具合を判定する情報を生成する比較判定処理部と、を備えることを特徴とする回帰テスト支援装置。
【請求項６】
請求項５に記載の回帰テスト支援装置において、
前記時系列実行結果データ取得処理部が、修正前のプログラムの複数回の実行結果を、それぞれの実行中に取得するものであり、
前記ソート処理指定情報作成処理部が、これら取得した複数回の実行結果を比較することで、前記ソート処理指定情報を自動的に生成し、前記ソート処理指定情報格納装置に保存するものであり、
更に、前記ソート処理指定情報作成処理部が、前記ソート処理指定情報の自動設定、又は手動設定を可能とするものであることを特徴とする回帰テスト支援装置。
【請求項７】
請求項５又は６に記載の回帰テスト支援装置において、
修正前のプログラムの実行結果、及び修正後のプログラムの実行結果の比較による、プログラムの不具合の判定の対象外とする判定除外情報を取得する判定除外設定処理部と、
前記判定除外情報を参照しながら、修正前及び修正後の前記実行結果を比較し、プログラムの不具合を判定する情報を生成する比較判定処理部と、を更に備えるようにしたことを特徴とする回帰テスト支援装置。
【請求項８】
請求項１乃至請求項４のいずれか１つに記載の回帰テスト支援方法、又は、請求項５乃至請求項７のいずれか１つに記載の回帰テスト支援装置を実施するためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回帰テストを能率良く極力自動的に行うことができると共に、効果的に不具合を見出すことができる回帰テスト支援方法、回帰テスト支援装置、及び、これら回帰テスト支援方法又は回帰テスト支援装置を実施するためのコンピュータ・プログラムに関する。
【背景技術】
【０００２】
既存システムで運用されているプログラムの保守・改善開発にあたっては、プログラム自体を修正する場合、回帰テストと称し、不具合を見出すテストを十分に実施する必要がある。この回帰テストでは、そのテスト品質の面だけでなく、手間や費用の面が従来から課題になっている。
【０００３】
特許文献１では、ソースコードに含まれる条件式を自動的に演算することで、テスト品質という面で、入力値に対する出力値が変更されていないかを漏れなく検証することを支援するようにしている。
【０００４】
特許文献２は、回帰テストの性質に鑑み、複数のモジュールを含む元の第１のソースコードと、この第１のソースコードに含まれるモジュールの少なくとも一部に変更が加えられた第２のソースコードとを比較し、変更が行われたモジュールを特定するようにしている。これにより、プログラムの詳細な解析を必要とせず、また、ユーザが変更箇所を指定しなくても、修正後のソースコードについて実行すべきテスト項目を抽出できるようにしている。
【０００５】
特許文献３では、テスト結果となる、対象のプログラムからの出力を容易に確認できるようにするために、画面やファイル、外部装置等のテスト対象のプログラムから出力される全ての情報を時系列に残すようにしている。これにより、画面の遷移を容易に確認でき、また予測しない画面の変更に対しても容易に対処でき、さらには性能の劣化を評価することができるようにしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−０４１８０４号公報
【特許文献２】特開２０１０−１２２９５９号公報
【特許文献３】特開平１０−２７５０９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、以上のような従来技術においては、回帰テストの面で改善の余地が多々存在している。
【０００８】
特許文献１では、ソースコードに含まれる条件式についてなど、特定の対応部分については、人為的なテスト漏れを防ぐことが予想されるが、網羅されない不具合も存在することになる。
【０００９】
特許文献２では、変更が行われたモジュールを特定することが課題であり、当該モジュール自体のテストについては何ら提案されていない。
【００１０】
特許文献３では、対象のプログラムからの情報を時系列で残すことができるが、このような情報が多大になると、作業量が増大するだけでなく、正しい不具合検証を行うことが困難になる。
【００１１】
本発明は、前記従来の問題点を解決するべくなされたもので、回帰テストを能率良く極力自動的に行うことができると共に、効果的に不具合を見出すことができる回帰テスト支援システムを提供することを課題とする。
【課題を解決するための手段】
【００１２】
本発明は、テスト対象プログラムのプログラム修正後の不具合を見出すための回帰テスト支援方法において、時系列実行結果データ取得処理部により、前記テスト対象プログラムの実行結果を、逐次時系列で取得し、ソート処理指定情報作成処理部により、プログラム修正の有無には依存しない、乃至は依存しない可能性があるものの、前記テスト対象プログラムの実行状況によって変化する、実行結果の順序変動の許容指定を示すソート処理指定情報を生成して、ソート処理指定情報格納装置に格納して保存し、前記ソート処理指定情報を用いながら、プログラム修正前後の実行結果を比較し、プログラムの不具合を判定する情報を生成することにより前記課題を解決するものである。
【００１３】
なお、本発明の回帰テスト支援方法において、前記時系列実行結果データ取得処理部により、修正前のプログラムの複数回の実行結果を、それぞれの実行中に取得し、前記ソート処理指定情報作成処理部により、これら取得した複数回の実行結果を比較することで、前記ソート処理指定情報を自動的に生成し、前記ソート処理指定情報格納装置に保存するようにしてもよい。
【００１４】
ここで、本発明の回帰テスト支援方法において、前記ソート処理指定情報作成処理部により、前記ソート処理指定情報の自動設定、又は手動設定を可能とすることができる。
【００１５】
又、本発明の回帰テスト支援方法において、判定除外設定処理部により、修正前のプログラムの実行結果、及び修正後のプログラムの実行結果の比較による、プログラムの不具合の判定の対象外とする判定除外情報を取得し、比較判定処理部により、前記判定除外情報を参照しながら、修正前及び修正後の前記実行結果を比較し、プログラムの不具合を判定する情報を生成することができる。
【００１６】
本発明は、又、テスト対象プログラムのプログラム修正後の不具合を見出すための回帰テスト支援装置において、前記テスト対象プログラムの実行結果を、逐次時系列で取得する時系列実行結果データ取得処理部と、プログラム修正の有無には依存しない、乃至は依存しない可能性があるものの、前記テスト対象プログラムの実行状況によって変化する、実行結果の順序変動の許容指定を示すソート処理指定情報が格納されるソート処理指定情報格納装置と、前記ソート処理指定情報を生成するソート処理指定情報作成処理部と、前記ソート処理指定情報を用いながら、個々の前記テスト対象プログラムの逐次時系列となっている実行結果を元データとして、不具合を見出すためのプログラム修正前後の実行結果の比較に用いる比較用実行結果データが格納される比較用データ格納装置と、前記比較用実行結果データを生成するソート処理部と、プログラム修正前後の前記比較用実行結果データを比較し、プログラムの不具合を判定する情報を生成する比較判定処理部と、を備えることを特徴とする回帰テスト支援装置により前記課題を解決するものである。
【００１７】
又、前記時系列実行結果データ取得処理部が、修正前のプログラムの複数回の実行結果を、それぞれの実行中に取得するものであり、前記ソート処理指定情報作成処理部が、これら取得した複数回の実行結果を比較することで、前記ソート処理指定情報を自動的に生成し、前記ソート処理指定情報格納装置に保存するものであり、更に、前記ソート処理指定情報作成処理部が、前記ソート処理指定情報の自動設定、又は手動設定を可能とすることができる。
【００１８】
加えて、修正前のプログラムの実行結果、及び修正後のプログラムの実行結果の比較による、プログラムの不具合の判定の対象外とする判定除外情報を取得する判定除外設定処理部と、前記判定除外情報を参照しながら、修正前及び修正後の前記実行結果を比較し、プログラムの不具合を判定する情報を生成する比較判定処理部と、を更に備えるようにしてもよい。
【００１９】
以上の回帰テスト支援方法及び回帰テスト支援装置は、コンピュータ・プログラムによって実現することができる。
【発明の効果】
【００２０】
回帰テストの対象になるプログラムによっては、実行結果が実行状況によって変化する場合があり、例えば、実行している日時に関係する情報や、実行時に入力した情報に関係する情報が実行結果に含まれるのであれば、当然ながら、実行結果は毎回異なることになる。大抵の回帰テストの対象になるプログラムには、このような、プログラム修正の有無（修正の前後）には依存しない、乃至は依存しない可能性があるものの、前記テスト対象プログラムの実行状況によって変化する、実行結果の部分が存在するものである。
【００２１】
例えば、実行結果にはプログラム不具合による誤りは存在しないものの、実行時に関係する情報によって、実行結果に含まれる情報事項において、単純な順序変化が生じる場合がある。
【００２２】
このような実行結果の部分は、回帰テストとして、修正前後を単純に比較すると不一致となるため、そのプログラムの不具合の判定対象から除外することも考えられる。
【００２３】
本発明によれば、このように実行状況によって変化する、実行結果の部分を区別すると共に、順序変化を許容する比較を前提として、回帰テストの対象になるプログラムの修正前と、修正後の動作を、柔軟に比較することで、不具合を能率よく見出すことができる。本発明のソート処理指定情報は、このような実行状況によって変化する実行結果の部分を、実行状況に応じて回帰テストで比較できるように、ソート処理を施すなどして整合させるためのものである。このソート処理指定情報には、上記のような整合のためのソート処理に必要な情報が含まれている。
【００２４】
例えば、これによって、このような実行状況によって変化する実行結果部分を、プログラムの不具合の判定対象から除外する手間がなくなり、これにより作業の手間を削減しながら、テスト精度を向上させ、より確実に不具合を見出すことができる。
【００２５】
本発明では、プログラム修正の有無には依存しない、乃至は依存しない可能性があるものの、前記テスト対象プログラムの実行状況によって変化する、実行結果の順序変動の許容指定を示すソート処理指定情報を用いて、順序変化を許容する比較を行うようにしている。ここで、このソート処理指定情報は、自動的に生成することができる。又、テスト利用者は、このソート処理指定情報に対して種々の設定を容易に行うことができる。従って、この面でも、回帰テストの能率向上を図ることができる。
【００２６】
なお、上述したプログラムの修正前と修正後の動作との比較については、具体的に限定されるものではない。テスト対象のプログラムが出力する情報を、修正前と修正後とで対応するもの同士について相互に比較するものであればよい。例えば、テスト対象のプログラムが出力する、利用者に表示する画面に含まれる情報、印字出力する情報、Ｉ／Ｏやネットワークを介して、データベース装置などの様々な外部装置に出力する情報、同一ハードウェアに構築されている他のシステムや装置（他のアプリケーションなどのプログラムを含む）に出力する情報などであってもよい。
【００２７】
又、本発明において、前述のソート処理指定情報の生成方法や、テスト対象プログラムのプログラム修正前後の実行結果の比較における、このソート処理指定情報の利用形態について具体的に限定するものではない。
【００２８】
例えば、このソート処理指定情報を、テスト対象プログラムのプログラム修正前の実行結果から生成すると共に、プログラム修正後の実行結果からも生成するようにしてもよい。あるいは、テスト対象プログラムのプログラム修正前の実行結果から生成したものを、プログラム修正後の実行結果に対する処理に用いるようにしてもよい。
【００２９】
又、テスト対象プログラムのプログラム修正前後の実行結果の比較による、プログラム不具合の判定については、このソート処理指定情報を用いてプログラム修正前後のそれぞれの実行結果に対する何らかの処理を行ってから、不具合判定のために、これら処理後のプログラム修正前後の実行結果を比較してもよい。あるいは、不具合判定の比較を行っている際に、このソート処理指定情報を用いるようにしてもよい。
【図面の簡単な説明】
【００３０】
【図１】本発明が適用される実施形態の回帰テスト支援システムが導入されたプログラム保守・改善開発基幹システムの全体的な構成を示すブロック図
【図２】前記プログラム保守・改善開発基幹システムで用いられるコンピュータ装置のハードウェア構成を示すブロック図
【図３】前記実施形態の主要部である回帰テスト支援装置の構成を示すブロック図
【図４】前記回帰テスト支援装置の主要部の構成を示すブロック図
【図５】前記実施形態における回帰テストの処理の流れを示すフローチャート
【図６】前記実施形態において回帰テストの実施例となる商品販売店精算レシート出力プログラムにおける印字レシートを示す線図
【図７】前記実施例の商品販売店精算レシート出力プログラムの操作の流れを示すフローチャート
【発明を実施するための形態】
【００３１】
以下、図面を参照して、本発明を好適に実施するための形態（以下、実施形態という）について詳細に説明する。
【００３２】
なお、本発明は、以下の実施形態及び実施例に記載した内容により限定されるものではない。又、以下に記載した実施形態及び実施例による構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。更に、以下に記載した実施形態及び実施例で開示した構成要素は、適宜組み合わせてもよいし、適宜選択して用いてもよい。
【００３３】
図１は、本発明が適用される実施形態の回帰テスト支援システムが導入されたプログラム保守・改善開発基幹システムの全体的な構成を示すブロック図である。
【００３４】
この図において、保守・改善開発支援装置２０において設けられる、後述する回帰テスト支援装置３２が、本発明の適用された主要部である。又、テスト対象装置３０が、本実施形態の回帰テストの対象になるプログラムを内蔵している。
【００３５】
又、図示されるように、これら保守・改善開発支援装置２０、及びテスト対象装置３０は、相互に、ネットワーク１により接続されている。加えて、これら装置２０、３０に接続するクライアント装置５も、ネットワーク１により接続されている。該接続により、種々の情報交換がなされる。
【００３６】
なお、回帰テスト支援装置３２に対するテスト対象装置３０の関係は、この図にあるように、ネットワーク１によって接続されるようなものに限定されるものではない。例えば、回帰テスト支援装置３２の内部において、回帰テスト対象のプログラムを実行させるようにしてもよい。回帰テスト支援装置３２を構成するものと同一のハードウェア上において、回帰テスト対象の装置やプログラムを設けるようにしてもよい。
【００３７】
なお、ネットワーク１は、特に限定されるものではない。公衆回線あるいは専用回線を用いるものでも、インターネットやＷＡＮ（Wide  Area  Network）やＬＡＮ（Local  Area  Network）を用いるものでも、あるいはこれらを複合的に接続し構成するものであってもよい。
【００３８】
図２は、本実施形態の各装置に用いるコンピュータ装置のハードウェアの構成を示すブロック図である。
【００３９】
この図２においては、保守・改善開発支援装置２０、テスト対象装置３０、更にはクライアント装置５の各装置として利用可能な、ある種のコンピュータ装置のハードウェア構成が示される。しかしながら、各装置は、このようなものに限定されるものではない。
【００４０】
図２の該コンピュータ装置は、ＯＳ（Operating  System）は一例として米国マイクロ
ソフト社のＷｉｎｄｏｗｓ（登録商標）を搭載する、一般的なＰＣ（Personal  Computer）装置であってもよく、特に限定されるものではない。あるいは、ＰＣ装置以外のハードウェアを用いてもよく、例えばＥＷＳ（Engineering  Work  Station）などの、いわゆるワークステーションなどのハードウェアを用いるようにしてもよい。なお、この図において、ハードウェア構成は、説明の関係上一部抽象化されている。
【００４１】
この図において、コンピュータ装置は、ＣＰＵ（Central  Processing  Unit）３１０
と、ＲＡＭ（Random  Access  Memory）３１１と、ＲＯＭ（Read  Only  Memory）３１２と、ＬＡＮ−Ｉ／Ｆ（Inter  Face）３１３と、ＭＯＤＥＭ（modulator-demodulator）３１４と、種々のＩ／Ｆ３２０〜３２２とを有している。これらは、バス３０１によって相互接続されている。
【００４２】
なお、ＬＡＮ−Ｉ／Ｆ３１３は、ネットワーク１に対して接続するために用いられる。
【００４３】
又、バス３０１に対して、Ｉ／Ｆ３２０を介して、画面表示装置３３０が接続されている。又、バス３０３によって相互接続されている、キーボード３３１と、マウス３３２と、プリンタ装置３３３とは、バス３０１に対して、Ｉ／Ｆ３２１を介して接続されている。
【００４４】
更に、バス３０１に対して、Ｉ／Ｆ３２２を介して、ＨＤＤ（Hard  Disc  Drive）装
置３４０と、ＣＤ（Compact  Disc）ドライブ装置３４１と、ＦＤＤ（Floppy（登録商標
）  Disc  Drive）装置３４２とが接続されている。これらはバス３０２によって相互接
続されている。
【００４５】
以上のようなハードウェア構成において、記憶手段、及び記憶装置は、ＲＡＭ３１１、ＲＯＭ３１２、ＨＤＤ装置３４０、ＣＤドライブ装置３４１、ＦＤＤ装置３４２などである。このような記憶手段や記憶装置において、ＣＰＵ３１０で実行される様々なプログラムや、本実施形態においてアクセスされるデータベースや諸ファイルやデータが保存され、電子的にアクセスができるようになっている。例えば、ＯＳや、データベースやＪＡＶＡ（登録商標)やＪＳＰ（Java（登録商標)  Server  Page）などのソフトウェア資源を利用する環境を提供するためのプログラム、本実施形態に係るアプリケーション・プログラム、及びウェブ・ブラウザ・プログラムは、ＨＤＤ装置３４０に格納されていて、実行時には、ＲＡＭ３１１に読み出されてＣＰＵ３１０によって実行される。なお、ＣＰＵ３１０で実行されるアプリケーション・プログラムには、ネットワーク１経由で取得される、ＪＡＶＡ（登録商標)のアプレットや、ＡＳＰ（Active  Server  Page）の機能によって
提供されるものも含まれる。
【００４６】
又、ＯＳやアプリケーション・プログラムその他の実行に際して、オペレータは、画面表示装置３３０に表示出力される情報を参照しつつ、キーボード３３１によって文字入力や諸操作を行ったり、マウス３３２によって座標入力や諸操作の入力を行ったりする。例えば、マウス３３２によって、一覧表示される電子的な帳票の選択をしたり、閲覧中の電子的な帳票において、検索などの範囲指定を行ったり、その他、クリック操作や、いわゆるドラッグ・アンド・ドロップ操作により様々な操作を行ったりする。又、適宜、プリンタ装置３３３からは必要な情報を印字出力したりすることができる。言うまでもなく、これら諸出力や入力は、ＣＰＵ３１０で実行されるプログラムによって、電子的な処理により行われるものである。
【００４７】
なお、ＣＤドライブ装置３４１やＦＤＤ装置３４２は、本発明を適用して実施する際の、アプリケーション・プログラムのインストールや、その他のオフラインでの情報交換に用いられる。
【００４８】
図３は、本実施形態の主要部である回帰テスト支援装置の構成を示すブロック図である。
【００４９】
図示されるように、前述の保守・改善開発支援装置２０が内蔵する回帰テスト支援装置３２は、操作記録処理部３４と、自動操作用データ格納装置３６と、自動操作処理部３８と、時系列テスト情報取得処理部４０と、比較用データ格納装置４２と、判定除外設定処理部４４と、比較除外データ格納装置５０と、比較判定処理部５２と、判定結果出力処理部５４とを備えている。又、上記の判定除外設定処理部４４は、除外手動設定処理部４６と、差分抽出処理部４８とを備える。この差分抽出処理部４８は、判定除外情報の自動的な設定処理を行うものともいうことができる。
【００５０】
まず、操作記録処理部３４は、回帰テストに際し、テスト対象装置３０のテスト対象プログラムをテスト作業者が動作させる操作に用いられる。又、行われた操作は、該操作記録処理部３４によって、通常時系列的に自動操作用データ格納装置３６に保存される。
【００５１】
次に、自動操作処理部３８は、このように保存された操作内容を再生しつつ、テスト対象装置３０のテスト対象プログラムを自動的に動作させるものである。このようなテスト対象プログラムの自動動作によって、回帰テストを能率よく行うことができる。
【００５２】
続いて、時系列テスト情報取得処理部４０は、修正前の回帰テスト対象のプログラムの実行結果、及び修正後の同プログラムの実行結果を、それぞれの実行中に逐次時系列で比較用データ格納装置４２に保存する。保存される情報には、自動操作処理部３８による自動操作内容、回帰テスト対象のプログラムからの画面表示出力やネットワーク１出力などの様々な出力が含まれる。
【００５３】
判定除外設定処理部４４は、修正前のプログラムの実行結果、及び修正後のプログラムの実行結果の比較による、プログラムの不具合の判定の対象外とする判定除外情報を取得するものである。この判定除外情報は、異常や不具合と判断すべきではない不一致を効果的に除外するための情報であり、判定除外設定処理部４４が内蔵する除外手動設定処理部４６により手動で設定したり、差分抽出処理部４８により自動的に設定したりすることができる。
【００５４】
なお、除外手動設定処理部４６は、差分抽出処理部４８により自動的に設定された情報に対して、追加、修正、及び削除の編集作業をテスト作業者が行えるようになっている。加えて、画面表示装置３３０やキーボード３３１やマウス３３２やプリンタ装置３３３などを活用しながら、テスト作業者がこの編集作業を行う際、修正前のプログラムの実行結果や、修正後のプログラムの実行結果や、該プログラムのソースリストの該当部分なども、テスト作業者に対して画面表示したり印字出力したりして提示することで、作業能率向上が図られている。
【００５５】
次に、比較判定処理部５２は、比較用データ格納装置４２に保存されている、修正前の回帰テスト対象のプログラムの実行結果、及び修正後の同プログラムの実行結果を比較し、プログラムの不具合を判定する情報を生成する。この比較や判定の際には、比較除外データ格納装置５０に保存されている判定除外情報を参照することで、異常や不具合と判断すべきではない不一致を効果的に除外することができる。
【００５６】
判定結果出力処理部５４は、比較判定処理部５２により得られたプログラムの不具合を判定する情報を加工し、テスト作業者に対して画面表示したり印字出力したりすることができる。
【００５７】
ここで、本実施形態では、自動操作処理部３８により、テスト対象装置３０の修正前のプログラム（回帰テスト対象）を、例えばプログラムに対する操作など一部実行条件を異ならせるなどして、複数回実行させるようにしている。この際、時系列テスト情報取得処理部４０は、このような複数回の実行結果を、それぞれの実行中に時系列的に、比較用データ格納装置４２に保存する。そうして、判定除外設定処理部４４の差分抽出処理部４８は、これら保存した複数回の実行結果を比較することで、前述した判定除外情報を、自動的に生成する。
【００５８】
具体的には、このような複数回の実行の際に、異なる実行結果であれば、修正後のプログラム（回帰テスト対象）について、修正前と実行結果が同じになることが期待し難いので、前述した判定除外情報に設定することができる。
【００５９】
なお、除外手動設定処理部４６は、例えば図１のクライアント装置５などから、このような判定除外情報をテスト作業者が手動で設定するものであるが、正確に能率よく設定できるようになっている。例えば、判定除外設定するか否かの判断に用いられる付加情報を併せて表示されるようになっている。又、差分抽出処理部４８により自動的に設定された判定除外情報についても、除外手動設定処理部４６により、テスト作業者は修正することができ、この修正の際、自動設定に用いられた、回帰テスト対象のプログラムの修正前の実行結果を併せて表示することができる。
【００６０】
図４は、本実施形態の回帰テスト支援装置の主要部の構成を示すブロック図である。
【００６１】
図示されるように、前述の回帰テスト支援装置３２が内蔵する時系列テスト情報取得処理部４０は、時系列実行結果データ取得処理部６０と、実行結果データ格納装置６２と、ソート処理指定情報作成処理部８０と、ソート処理指定情報格納装置８２と、ソート処理部８４とを備えている。
【００６２】
時系列実行結果データ取得処理部６０は、修正前の前記テスト対象プログラムの実行結果、及び修正後の前記テスト対象プログラムの実行結果を、それぞれの実行中に逐次時系列で取得し、実行結果データ格納装置６２に格納する。この時系列実行結果データ取得処理部６０は、修正前のプログラムの少なくとも１回の実行結果を、それぞれの実行中に取得するようになっている。必要であれば、この時系列実行結果データ取得処理部６０は、修正後のプログラムの実行結果を実行中に取得するようになっている。
【００６３】
又、ソート処理指定情報作成処理部８０は、このような少なくとも１回の実行結果を用いて、例えば、これら取得した複数回の実行結果を比較することで、ソート処理指定情報を自動的に生成し、ソート処理指定情報格納装置８２に保存する。又、このソート処理指定情報作成処理部８０は、人手による入力による、ソート処理指定情報のレコードの新規作成、修正、及び削除の機能を備えている。
【００６４】
回帰テストの対象になるプログラムによっては、実行結果が実行状況によって変化する場合があり、実行結果は毎回異なることになる。例えば、実行結果にはプログラム不具合による誤りは存在しないものの、実行時に関係する情報によって、実行結果に含まれる情報事項において、単純な順序変化が生じる場合がある。
【００６５】
本発明のソート処理指定情報は、このような実行状況によって変化する実行結果の部分を、実行状況に応じて回帰テストで比較できるように、ソート処理を施すなどして整合させるものである。このソート処理指定情報には、上記のような整合のためのソート処理に必要な情報が含まれている。
【００６６】
ソート処理部８４は、このように保存されたソート処理指定情報を用いながら、個々の前記テスト対象プログラムの逐次時系列となっている実行結果を元データとして、不具合を見出すためのプログラム修正前後の実行結果の比較に用いる比較用実行結果データを生成し、これを比較用データ格納装置４２に格納する。そうして、図３の比較判定処理部５２は、このように作成され比較用データ格納装置４２に格納された、プログラム修正前後の比較用実行結果データを比較し、プログラムの不具合を判定する情報を生成する。
【００６７】
図５は、本実施形態における回帰テストの処理の流れを示すフローチャートである。
【００６８】
まず、ステップＳ１０２からステップＳ１０８では、準備段階として、判定除外情報を取得する。
【００６９】
ステップＳ１０２では、操作記録処理部３４の操作記録機能により、テスト作業者によるテスト対象の操作の登録を行なう。具体的には、テスト作業者が回帰テストの対象プログラム操作を行うと、自動操作用データが自動操作用データ格納装置３６に蓄積される。この自動操作用データは、テスト作業者の操作内容や、テスト作業者への画面表示情報などの情報である。
【００７０】
次に、ステップＳ１０４では、自動操作用データ格納装置３６に蓄積された自動操作用データに従って、自動操作処理部３８は、回帰テスト対象のプログラムを自動的に実行ささせる。例えば、上述のテスト作業者操作による自動操作用データの蓄積に引き続いて、テスト対象をアップデートしない状態で、自動操作用データを元にテスト対象の操作を自動的に行なう。
【００７１】
このような自動実行の最中において、ステップＳ１０６では、時系列テスト情報取得処理部４０は、比較用データ格納装置４２へと実行結果を時系列的に保存する。
【００７２】
又、これらステップＳ１０４及びステップＳ１０６の自動実行及び実行結果保存は、適宜実行条件を変えるなどしつつ、複数回行う。そして、ステップＳ１０８では、差分抽出処理部４８により、このような複数回の実行結果のデータを採取して差分を抽出し比較除外情報（比較除外データ）を生成する。
【００７３】
ここで、このような複数回の実行により、比較除外データの精度が向上する。又、このように得られた比較除外データは、除外手動設定処理部４６により、テスト作業者が妥当性の確認をしたり、手動により修正をしたりすることができる。
【００７４】
次に、ステップＳ１１０からステップＳ１１４が修正後の回帰テスト対象のプログラムのテスト作業となる。この作業に際しては、テスト対象のプログラムを適宜アップデートする。
【００７５】
まず、ステップＳ１１０では、自動操作処理部３８は、自動操作用データ格納装置３６に保存されている自動操作用データを元に、修正後の回帰テスト対象のプログラムを自動的に操作し、自動的に動作させる。
【００７６】
そうして、ステップＳ１１２では、ステップＳ１０４及びステップＳ１０６の修正前の回帰テスト対象のプログラムの場合と同様、時系列テスト情報取得処理部４０は、実行結果を比較用データ格納装置４２に保存する。
【００７７】
ステップＳ１１４では、比較判定処理部５２は、比較除外データ格納装置５０に保存されている比較除外情報（比較除外データ）に合致する部分以外について、修正前のプログラムの実行結果、及び修正後のプログラムの実行結果を比較し、プログラムの不具合を判定する情報を生成する。又、比較判定処理部５２で得られた情報は、判定結果出力処理部５４により加工され、テスト作業者に画面表示や印字出力により提示される。例えば、判定結果出力処理部５４は、修正前のプログラムの実行結果のデータと、修正後のプログラムの実行結果・比較先データが異なる場合には、「回帰テスト失敗」とする。内容が異なるケースが無い場合、「正常終了」として扱う。
【実施例】
【００７８】
以下、上述の本発明の実施形態が適用された実施例について説明する。この実施例は、商品販売店精算レシート出力プログラムを回帰テスト対象とするものである。
【００７９】
このプログラムは、「商品販売店精算レシート出力アプリケーション」である。又、この回帰テストは、この「商品販売店精算レシート出力アプリケーション」にプログラム修正を加えたため、修正後に異常がないことを確認するものである。
【００８０】
又、回帰テスト対象のプログラムは、画面表示や印字出力その他をＨＴＭＬ（hypertext  markup  language）を用いて行っている。このため、回帰テストの実行中に取得される実行結果としては、ＨＴＭＬに従った情報が取得される。
【００８１】
図６は、本実施例がプリント出力する商品販売店精算レシートの一例を示す線図である。又、図７は、本実施例の操作及び処理を示すフローチャートである。
【００８２】
この図７の処理は、各顧客がスーパー店内で購入しようとする商品を店舗備え付けバスケットに入れ、精算レジにおいて、商品をチェックして合計金額を求めて支払うというものである。
【００８３】
なお、前提条件として、テスト対象のアプリケーションは精算レジの「レシート」に出力される情報をログ化したものとする。テストの度に、同じ対象商品を用いるが認識させる順番が毎回異なる可能性がある状態となるものとする。又、テスト準備の際の「比較除外データの採取」は１回とする。除外データから手動でソート処理の置き換え対象の選別を実施するものとする。
【００８４】
まず、ステップＳ１６２では、スーパー店員は、テスト対象装置３０において、顧客がバスケットに入れた商品の精算を開始する。ステップＳ１６４では、スーパー店員は、顧客がバスケットに入れた各購入商品のバーコードを順にスキャンするなどして、各購入商品の商品タグを順にテスト対象装置３０へ認識させる。
【００８５】
そうして、ステップＳ１６６では、バスケットに入れた全ての購入商品の、このような商品タグ認識を完了した後、購入商品の合計金額を算出するなどの精算処理を完了する。又、ステップＳ１６８では、完了した精算結果をレシート出力する。このレシート出力は、例えば前述の図６のようなものである。
【００８６】
以下において、操作・処理段階Ａ１〜Ａ１１は、回帰テストの準備の操作・処理であり、主として操作記録処理部３４や時系列テスト情報取得処理部４０や判定除外設定処理部４４を用いて行われる。
【００８７】
続く操作・処理段階Ａ１２〜Ａ１６は、正常と判断されるケースとなる回帰テスト準備の操作・処理であり、操作・処理段階Ａ１７〜Ａ２１は、異常と判断されるケースとなる回帰テスト準備の操作・処理であり、いずれも、主として、時系列テスト情報取得処理部４０や比較判定処理部５２や判定結果出力処理部５４を用いて行われる。
【００８８】
操作・処理段階Ａ１：
テストの準備を行なう。
以後、同じ商品をレジに通せる状態になる。
【００８９】
操作・処理段階Ａ２：
レジを操作し、精算を開始する。
バスケット内の商品のタグを認識させ、全商品を精算する。
精算を終了し、レシートを出力する。
【００９０】
操作・処理段階Ａ３：
レシートに出力される内容がログ（操作・処理段階Ａ４）に記録される。
【００９１】
操作・処理段階Ａ４：
<Log c=1>
<header>
XXストア YY支店
東京都墨田区…
TEL：03-5637-xxxx
</header>
<timestamp>2013年12月25日（水） 13：50</timestamp>
<person>014</person>
<detail>
<goods code="000123" price=118 s=1>鮭おにぎり</goods>
<goods code="000245" price=147 s=2>スポーツドリンク</goods>
<goods code="000333" price=220 s=3>サラダ</goods>
</detail>
<sum>485</sum><tax>23</tax>
<deposit>500</deposit><change>15</change>
<seq>0001</seq><number>3</number>
</Log>
【００９２】
操作・処理段階Ａ５：
再テストのための準備を行なう。
【００９３】
操作・処理段階Ａ６：
レジを操作し、精算を開始する。
バスケット内の商品のタグを認識させ、全商品を精算する（バスケット内は操作・処理段階Ａ２と同じ状態だが、レジを通す順番は任意である。）。
精算を終了し、レシートを出力する。
【００９４】
操作・処理段階Ａ７：
レシートに出力される内容がログ（操作・処理段階Ａ８）に記録される。
【００９５】
操作・処理段階Ａ８：
<Log c=1>
<header>
XXストア YY支店
東京都墨田区…
TEL：03-5637-xxxx
</header>
<timestamp>2013年12月25日（水） 14：10</timestamp>
<person>014</person>
<detail>
<goods code="000245" price=147 s=1>スポーツドリンク</goods>
<goods code="000333" price=220 s=2>サラダ</goods>
<goods code="000123" price=118 s=3>鮭おにぎり</goods>
</detail>
<sum>485</sum><tax>23</tax>
<deposit>500</deposit><change>15</change>
<seq>0001</seq><number>3</number>
</Log>
【００９６】
操作・処理段階Ａ９：
操作・処理段階Ａ４と操作・処理段階Ａ８を比較して自動的に比較除外データを作成すると、以下のようになり、このままでは明細部分の検証が行なえない（明細部分の比較除外データの作成状況が、順序変化が生じて、毎回異なる可能性がある。）。
/Log/timestamp
/Log/detail/goods[@s=1]
/Log/detail/goods[@s=1]/@price
/Log/detail/goods[@s=1]/@code
/Log/detail/goods[@s=2]
/Log/detail/goods[@s=2]/@price
/Log/detail/goods[@s=2]/@code
/Log/detail/goods[@s=3]
/Log/detail/goods[@s=3]/@price
/Log/detail/goods[@s=3]/@code
【００９７】
操作・処理段階Ａ１０：
順序変化を許容する比較を行なうために、以下の順序変動許容比較指定を行ない、比較除外データから明細関連（「detail」を含むもの）を削除し、逆に明細内の順序に関わる情報を無視するよう指定する。
［順序変動許容指定］
/Log/detail/
（この指定では「detail」直下のエレメントのテキスト値で、エレメント群をソートする）
［比較除外データ］
/Log/timestamp
/Log/detail/goods/@s
【００９８】
操作・処理段階Ａ１１：
操作・処理段階Ａ１０の状態で実際に比較が行なわれるＸＭＬは以下のようになる。
・初回実行分
<Log c=1>
<header>
XXストア YY支店
東京都墨田区…
TEL：03-5637-xxxx
</header>
<timestamp></timestamp>
<person>014</person>
<detail>
<goods code="000333" price=220>サラダ</goods>
<goods code="000245" price=147>スポーツドリンク</goods>
<goods code="000123" price=118>鮭おにぎり</goods>
</detail>
<sum>485</sum><tax>23</tax>
<deposit>500</deposit><change>15</change>
<seq>0001</seq><number>3</number>
</Log>
・2回目実行分
<Log c=1>
<header>
XXストア YY支店
東京都墨田区…
TEL：03-5637-xxxx
</header>
<timestamp></timestamp>
<person>014</person>
<detail>
<goods code="000333" price=220>サラダ</goods>
<goods code="000245" price=147>スポーツドリンク</goods>
<goods code="000123" price=118>鮭おにぎり</goods>
</detail>
<sum>485</sum><tax>23</tax>
<deposit>500</deposit><change>15</change>
<seq>0001</seq><number>3</number>
</Log>
これにより差分無しと判定されるよう設定できたことになる。
【００９９】
以下、操作・処理段階Ａ１２からは、正常と判断されるケースとなる、回帰テストの内容となる。
【０１００】
操作・処理段階Ａ１２：
以後、同じ商品をレジに通せる状態になる。
【０１０１】
操作・処理段階Ａ１３：
レジを操作し、精算を開始する。
バスケット内の商品のタグを認識させ、全商品を精算する（バスケット内は操作・処理段階Ａ２と同じ状態だが、レジを通す順番は任意。）。
精算を終了し、レシートを出力する。
【０１０２】
操作・処理段階Ａ１４：
レシートに出力される内容がログ（操作・処理段階Ａ１５）に記録される。
【０１０３】
操作・処理段階Ａ１５：
<Log c=1>
<header>
XXストア YY支店
東京都墨田区…
TEL：03-5637-xxxx
</header>
<timestamp>2013年12月25日（水） 16：00</timestamp>
<person>014</person>
<detail>
<goods code="000123" price=118 s=1>鮭おにぎり</goods>
<goods code="000245" price=147 s=2>スポーツドリンク</goods>
<goods code="000333" price=220 s=3>サラダ</goods>
</detail>
<sum>485</sum><tax>23</tax>
<deposit>500</deposit><change>15</change>
<seq>0001</seq><number>3</number>
</Log>
【０１０４】
操作・処理段階Ａ１６：
「比較除外データ」「順序変動許容」を考慮し比較元データと比較先データの差分を抽出する。
タイムスタンプ部分が無視され、また、明細行部分が名称順にソートされ、「s」の値が無視されて比較されるため、内容が一致する。
「順序変動許容」比較ができない状態では、一旦差分を抽出し目視で妥当性を判断するか、該当箇所全体を比較対象から外す形になる（後者は回帰テストという意味ではあまり適切ではない。）。
【０１０５】
以下、操作・処理段階Ａ１７からは、異常と判断されるケースとなる、回帰テストの内容となる。これは、商品を取り違えたケースであり、一例として「鮭おにぎり」と「スポーツドリンク」を取り違えたケースである。
【０１０６】
操作・処理段階Ａ１７：
テストの準備を行なう。
以後、同じ商品をレジに通せる状態になる。
【０１０７】
操作・処理段階Ａ１８：
レジを操作し、精算を開始する。
バスケット内の商品のタグを認識させ、全商品を精算する（バスケット内は操作・処理段階Ａ２と同じ状態だが、レジを通す順番は任意。）。
精算を終了し、レシートを出力する。
【０１０８】
操作・処理段階Ａ１９：
レシートに出力される内容がログ（操作・処理段階Ａ１５）に記録される。
【０１０９】
操作・処理段階Ａ２０：
<Log c=1>
<header>
XXストア YY支店
東京都墨田区…
TEL：03-5637-xxxx
</header>
<timestamp>2013年12月25日（水） 16：30</timestamp>
<person>014</person>
<detail>
<goods code="000123" price=118 s=1>鮭おにぎり</goods>
<goods code="000123" price=118 s=2>鮭おにぎり</goods>
<goods code="000333" price=220 s=3>サラダ</goods>
</detail>
<sum>456</sum><tax>22</tax>
<deposit>500</deposit><change>44</change>
<seq>0001</seq><number>3</number>
</Log>
【０１１０】
操作・処理段階Ａ２１：
「比較除外データ」「順序変動許容」を考慮し比較元データと比較先データの差分を抽出する。
明細行に加え、合計値等他の項目に関しても差分が検出される。
このケースの場合、商品の取り違えにより合計金額等の値も変化するため、明細行を比較除外として扱っても不具合の検出は可能である。
【０１１１】
なお、実施形態や実施例では、ソート処理指定情報は、ソート処理指定情報作成処理部８０により、自動設定、又は手動設定を可能としている。
【０１１２】
時系列テスト情報取得処理部４０の時系列実行結果データ取得処理部６０は、修正前のプログラムの複数回の実行結果を、それぞれの実行中に取得して実行結果データ格納装置６２へと格納する。又、ソート処理指定情報作成処理部８０は、これら取得した複数回の
実行結果を比較することで、ソート処理指定情報を自動的に生成し、ソート処理指定情報格納装置８２に保存する。これにより、ソート処理指定情報作成処理部８０は、ソート処理指定情報を自動設定することができる。
【０１１３】
又、ソート処理指定情報作成処理部８０は、図４において符号８６で示されるように、ソート処理指定情報の手動設定（手動入力）ができるようになっている。例えば、ソート処理指定情報の新規設定だけでなく、上述のように自動設定されたソート処理指定情報の
修正も可能になっている。
【符号の説明】
【０１１４】
１…ネットワーク
５…クライアント装置
２０…保守・改善開発支援装置
３０…テスト対象装置
３２…回帰テスト支援装置
３４…操作記録処理部
３６…自動操作用データ格納装置
３８…自動操作処理部
４０…時系列テスト情報取得処理部
４２…比較用データ格納装置
４４…判定除外設定処理部
４６…除外手動設定処理部
４８…差分抽出処理部
５０…比較除外データ格納装置
５２…比較判定処理部
５４…判定結果出力処理部
６０…時系列実行結果データ取得処理部
６２…実行結果データ格納装置
８０…ソート処理指定情報作成処理部
８２…ソート処理指定情報格納装置
８４…ソート処理部
８６…ソート処理指定情報手動入力
３０１〜３０３…バス
３１０…ＣＰＵ
３１１…ＲＡＭ
３１２…ＲＯＭ
３１３…ＬＡＮ−Ｉ／Ｆ
３１４…ＭＯＤＥＭ
３２０〜３２２…Ｉ／Ｆ
３３０…画面表示装置
３３１…キーボード
３３２…マウス
３３３…プリンタ装置
３４０…ＨＤＤ装置
３４１…ＣＤドライブ装置
３４２…ＦＤＤ装置
【図１】
2015176455.tif 000003
【図２】
2015176455.tif 000004
【図３】
2015176455.tif 000005
【図４】
2015176455.tif 000006
【図５】
2015176455.tif 000007
【図６】
2015176455.tif 000008
【図７】
2015176455.tif 000009