(57)【特許請求の範囲】
【請求項１】
コンピュータが、
テストケース別のトレース情報を分割したテスト要素内の関数の実行回数を比較するステップと、
前記関数の実行回数を比較した結果、前記関数の実行回数が一致する前記テスト要素間でトレース情報を比較するステップと、
前記トレース情報を比較した結果、前記トレース情報が一致するテスト要素に基づいて前記テスト要素を含む前記テストケース間の関係を定義するステップと
を実行すること
を特徴とするテストケース関係抽出方法。
【請求項２】
前記テストケース別のトレース情報を、テスト要素設定情報を利用して分割して前記テスト要素を定義するステップを更に実行すること
を特徴とする請求項１記載のテストケース関係抽出方法。
【請求項３】
前記テスト要素内の関数の実行回数を、前記関数別に計測するステップを更に実行することを特徴とし、
前記テストケース別のトレース情報を分割したテスト要素内の関数の実行回数を比較するステップは、前記テスト要素内の関数の実行回数を加算した加算結果が一致した前記テスト要素について、更に、前記テスト要素内の関数別の実行回数を比較すること
を特徴とする請求項２記載のテストケース関係抽出方法。
【請求項４】
テストケース別のトレース情報を分割したテスト要素内の関数の実行回数を比較する実行回数比較手段と、
前記関数の実行回数を比較した結果、前記関数の実行回数が一致する前記テスト要素間でトレース情報を比較するトレース比較手段と、
前記トレース情報を比較した結果、前記トレース情報が一致するテスト要素に基づいて前記テスト要素を含む前記テストケース間の関係を定義する定義手段と
を有すること
を特徴とするテストケース関係抽出装置。
【請求項５】
コンピュータに、
テストケース別のトレース情報を分割したテスト要素内の関数の実行回数を比較するステップと、
前記関数の実行回数を比較した結果、前記関数の実行回数が一致する前記テスト要素間でトレース情報を比較するステップと、
前記トレース情報を比較した結果、前記トレース情報が一致するテスト要素に基づいて前記テスト要素を含む前記テストケース間の関係を定義するステップと
を実行させることを特徴とするテストケース関係抽出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はテストケース間の関係を抽出するテストケース関係抽出方法、テストケース関係抽出装置及びテストケース関係抽出プログラムに関する。
【背景技術】
【０００２】
近年のコンピュータシステムの発達により、コンピュータシステムは世の中の様々な場面で活用されるようになっている。一度構築しても歳月を経ることで、コンピュータシステムは改良を行う必要性や、あるいは、全体を見直す必要性が生じることがある。改良を行う必要性や、あるいは、全体を見直す必要性が生じたとき、コンピュータシステムは既に作成したプログラムの一部に修正を行うが、同時に既存の機能に対して、影響がないことを確認する必要がある。
【０００３】
プログラムの一部に修正を行ったとき、既存の機能に対して影響がないことを確認するテストとしてはリグレッションテスト（回帰テスト）がある。リグレッションテストはプログラムの一部に修正を行ったとき、機能のレベルダウンがないかどうかを確認するテストとして、実施する必要がある。しかし、リグレッションテストは、全テストケースを実行するために、大きな工数がかかっている。テストケースとは、プログラムのテストを行うために、あらゆる場合を想定して作成されたテストの項目や条件のことをいう。
【０００４】
リグレッションテストは、従来から開発時に行ったテストケースを全て実施することで実現している。開発時に作成したテストケースは、個々のコンポーネント単位のテストを実施するプログラムテスト及び外部仕様に記述する機能の観点として確認する統合テストとして、実施している。
【０００５】
その為、プログラムテスト及び統合テストは同じ箇所のテストケースをそれぞれの観点で確認をしている可能性があり、重複が存在する可能性がある。効率的にリグレッションテストを行うためには重複するテストケースを除くことが望ましい。
【０００６】
従来、テストケース間の重複関係を抽出する技術としてはトレースに対して文字列比較を行うものが知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１３３８００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
リグレッションテストを効率的に行うためには、テスト範囲を減少させずに、最小限のテストケースを再実行する必要がある。このため、リグレッションテストを効率的に行うためには、テストケース間の重複関係を抽出し、テストケース間の関係を構造化する必要があった。
【０００９】
しかし、トレースに対して文字列比較を行ってテストケース間の重複関係を抽出する技術はテストケースが多数存在する場合、文字列の量が膨大となり、比較作業に時間を要するため現実的でないという問題があった。
【００１０】
本発明の一実施形態は、テストケース間の関係を容易に抽出できるテストケース関係抽出方法、テストケース関係抽出装置及びテストケース関係抽出プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明の一実施形態は、コンピュータが、テストケース別のトレース情報を分割したテスト要素内の関数の実行回数を比較するステップと、前記関数の実行回数を比較した結果、前記関数の実行回数が一致する前記テスト要素間でトレース情報を比較するステップと、前記トレース情報を比較した結果、前記トレース情報が一致するテスト要素に基づいて前記テスト要素を含む前記テストケース間の関係を定義するステップとを実行することを特徴とするテストケース関係抽出方法である。
【００１２】
なお、本発明の一実施形態の構成要素、表現又は構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１３】
本発明の一実施形態によれば、テストケース間の関係を容易に抽出できる。
【図面の簡単な説明】
【００１４】
【図１】テストケース関係抽出装置の一例のハードウェア構成図である。
【図２】本実施例のテストケース関係抽出装置の一例の機能ブロック図である。
【図３】本実施例のテストケース関係抽出装置の処理手順を表した一例のフローチャートである。
【図４】テスト要素定義部の入出力情報を示した一例の構成図である。
【図５】テスト要素定義部の処理手順を示した一例のフローチャートである。
【図６】関数実行回数計測部の入出力情報を示した一例の構成図である。
【図７】関数実行回数計測部の処理手順を示した一例のフローチャートである。
【図８】関数実行回数比較部の入出力情報を示した一例の構成図である。
【図９】関数実行回数比較部の処理手順を示した一例のフローチャートである。
【図１０】トレース照合部の入出力情報を示した一例の構成図である。
【図１１】トレース照合部の処理手順を示した一例のフローチャートである。
【図１２】テストケース間の構造定義部の入出力情報を示した一例の構成図である。
【図１３】テストケース間の構造定義部の処理手順を示した一例のフローチャートである。
【図１４】トレース情報の一例の構成図である。
【図１５】トレース情報を分割するためのキーワードの一例の構成図である。
【図１６】テスト要素情報保存部に保存されている情報の一例の構成図である。
【図１７】関数実行回数保存部に保存されている情報の一例の構成図である。
【図１８】関数実行回数比較結果保存部に保存されている情報の一例の構成図である。
【図１９】トレース比較結果保存部に保存されている情報の一例の構成図である。
【図２０】テストケース間の関係情報保存部に保存されている情報の一例の構成図である。
【発明を実施するための形態】
【００１５】
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明していく。本実施例のテストケース関係抽出装置はコンピュータシステムの運用におけるソフトウェアのテスト技術に関するものである。
【００１６】
（ハードウェア構成）
本実施例のテストケース関係抽出装置は、例えばサーバコンピュータやクライアントコンピュータなどのコンピュータにより実現される。図１はテストケース関係抽出装置の一例のハードウェア構成図である。なお、テストケース関係抽出プログラムがインストールされているコンピュータ１０はテストケース関係抽出装置の一例である。
【００１７】
ここでは、テストケース関係抽出プログラムがインストールされているコンピュータ１０のハードウェア構成を説明する。コンピュータ１０はテストケース関係抽出装置と同様の機能を有するテストケース関係抽出プログラムを実行する。
【００１８】
図１のコンピュータ１０は、入力装置２１、表示装置２２、コンピュータ本体２３を有している。コンピュータ本体２３はバス３７で相互に接続された主記憶装置３１、演算処理装置３２、インターフェース装置３３、記録媒体読取装置３４及び補助記憶装置３５を有する。また、バス３７には入力装置２１及び表示装置２２が接続されている。
【００１９】
バス３７で相互に接続されている入力装置２１、表示装置２２、主記憶装置３１、演算処理装置３２、インターフェース装置３３、記録媒体読取装置３４及び補助記憶装置３５は、演算処理装置３２による管理下で相互にデータの送受を行うことができる。演算処理装置３２は、コンピュータ１０全体の動作制御を司る中央処理装置である。
【００２０】
インターフェース装置３３はネットワーク等からのデータを受信し、データの内容を演算処理装置３２に渡す。インターフェース装置３３は演算処理装置３２からの指示に応じてネットワーク等にデータを送信する。
【００２１】
補助記憶装置３５には、テストケース関係抽出装置と同様の機能をコンピュータ１０に発揮させるプログラムの一部として、少なくともテストケース関係抽出装置における処理をコンピュータ１０に実行させるテストケース関係抽出プログラムが記憶されている。
【００２２】
そして、演算処理装置３２がテストケース関係抽出プログラムを補助記憶装置３５から読み出して実行することで、コンピュータ１０はテストケース関係抽出装置として機能するようになる。テストケース関係抽出プログラムは演算処理装置３２とアクセス可能な主記憶装置３１に格納されていても良い。
【００２３】
入力装置２１は演算処理装置３２の管理下でデータの入力を受付ける。テストケース関係抽出プログラムはコンピュータ１０が読み取り可能な記録媒体３６に記録しておくことができる。
【００２４】
記録媒体３６には、磁気記録媒体、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録媒体には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープ（ＭＴ）などがある。光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  −  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。また、光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ  −  Ｏｐｔｉｃａｌ  ｄｉｓｋ）などがある。
【００２５】
テストケース関係抽出プログラムを流通させる場合には、例えば、テストケース関係抽出プログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型の記録媒体３６を販売することが考えられる。
【００２６】
テストケース関係抽出プログラムを実行するコンピュータ１０は、例えば記録媒体読取装置３４がテストケース関係抽出プログラムを記録した記録媒体３６から、テストケース関係抽出プログラムを読み出す。演算処理装置３２は、読み出されたテストケース関係抽出プログラムを主記憶装置３１若しくは補助記憶装置３５に格納する。そして、コンピュータ１０は自己の記憶装置である主記憶装置３１若しくは補助記憶装置３５からテストケース関係抽出プログラムを読み取り、テストケース関係抽出プログラムに従った処理を実行する。
【００２７】
（ブロック構成）
図２は本実施例のテストケース関係抽出装置の一例の機能ブロック図である。図２のテストケース関係抽出装置５０は、テスト要素定義部５１、関数実行回数計測部５２、関数実行回数比較部５３、トレース照合部５４、テストケース間の構造定義部５５、アプリケーションのテストケース別のトレース資産保存部６１、テスト要素情報保存部６２、テスト要素設定情報保存部６３、関数実行回数保存部６４、関数実行回数比較結果保存部６５、トレース比較結果保存部６６、テストケース間の関係情報保存部６７を有する。
【００２８】
テスト要素定義部５１はテストケース別のトレース情報及びテスト要素設定情報（例えば関数名、メソッド名）を入力としてトレース情報を分割し、テスト要素を出力する。関数実行回数計測部５２は複数のトレース情報のテスト要素を入力として、各テスト要素内の関数（又はメソッド）の実行（呼出）回数を計測する。
【００２９】
関数実行回数比較部５３は計測した各テスト要素内の関数の実行回数を比較したことによるテスト要素間の比較結果情報（一致／不一致）を出力する。トレース照合部５４は複数のトレース情報のテスト要素を入力として、トレース情報を比較したことによるテスト要素間の比較結果情報（一致／不一致）を出力する。具体的に、トレース照合部５４は関数実行回数比較部５３により一致すると判断されたテスト要素に対し、トレース情報を比較したことによるテスト要素間の比較結果情報を出力する。テストケース間の構造定義部５５は、テスト要素、テスト要素を含むテストケース、テスト要素間の比較結果情報を入力として、テストケース間の関係情報を出力する。
【００３０】
アプリケーションのテストケース別のトレース資産保存部６１は、テストケース別にトレース情報を保存している。テスト要素情報保存部６２はトレース情報を分割したテスト要素を保存している。また、テスト要素情報保存部６２はテスト要素及びテストケースの関係情報を保存している。テスト要素設定情報保存部６３はトレース情報をテスト要素に分割するためのテスト要素設定情報（キーワード）を保存している。関数実行回数保存部６４は各テスト要素内の関数（又はメソッド）別の実行（呼出）回数を保存している。
【００３１】
関数実行回数比較結果保存部６５は各関数別の実行回数を比較した結果によるテスト要素間の一致又は不一致を示す比較結果情報を保存する。トレース比較結果保存部６６は関数実行回数比較部５３により一致すると判断されたテスト要素に対し、トレース情報を比較したことによるテスト要素間の一致又は不一致を示す比較結果情報を保存する。テストケース間の関係情報保存部６７はテストケース間の関係情報を保存する。
【００３２】
図３は本実施例のテストケース関係抽出装置の処理手順を表した一例のフローチャートである。ステップＳ１、Ｓ２に進み、テスト要素定義部５１はアプリケーションのテストケース別のトレース資産保存部６１から取得したテストケース別のトレース情報を分割してテスト要素を定義する。テスト要素定義部５１は、全てのテスト要素を定義するまでステップＳ１、Ｓ２の処理を繰り返す。
【００３３】
ステップＳ３、Ｓ４に進み、関数実行回数計測部５２は、テスト要素内の関数（又はメソッド）の実行回数を計測する。以下ではテスト要素内の関数別の実行回数を計測する例を説明する。関数実行回数計測部５２は全てのテスト要素内の関数別の実行回数を計測するまでステップＳ３、Ｓ４の処理を繰り返す。
【００３４】
ステップＳ５、Ｓ６に進み、関数実行回数比較部５３は計測した各テスト要素内の関数の実行回数をテスト要素間で比較する。関数の実行回数が一致した場合、トレース照合部５４はステップＳ７に進み、関数の実行回数が一致したテスト要素のトレース情報を比較する。関数の実行回数が一致したテスト要素のトレース情報が一致した場合、トレース照合部５４はステップＳ１０に進み、同一のテスト要素として分類する。
【００３５】
なお、ステップＳ６において関数の実行回数が一致しなかった場合、及び、ステップＳ８においてトレース情報が一致しなかった場合、ステップＳ９に進み、トレース照合部５４は異なるテスト要素として分類する。テストケース間の構造定義部５５は、ステップＳ９又はＳ１０に続いてステップＳ１１に進み、テストケース間の関係（構造）情報を定義する。
【００３６】
以下では、本実施例のテストケース関係抽出装置５０の詳細について説明する。統合テストはプログラムテストを包含する可能性がある。したがって、テストケース関係抽出装置５０はテストケース別のトレース情報をテスト要素という単位に分割する。テスト要素への分割は、指定した関数名やメソッド名などのテスト要素設定情報を利用してトレース情報を分割することにより行う。テストケース間の関係（包含関係）の調査は、テスト要素内の関数別の実行回数、トレース情報を、テスト要素間で比較することで実現する。
【００３７】
図４はテスト要素定義部の入出力情報を示した一例の構成図である。テスト要素定義部５１は、アプリケーションのテストケース別のトレース資産保存部６１に保存されているテストケース別のトレース情報及びテスト要素設定情報保存部６３に保存されているテスト要素設定情報（例えば関数名）を入力される。テスト要素定義部５１は入力情報として得たテスト要素設定情報をキーワードとしてトレース情報を分割し、テスト要素としてテスト要素情報保存部に出力する。
【００３８】
本実施例のテストケース関係抽出装置５０では、プログラムを実行したときのトレース情報を利用するため、あらかじめトレース情報を出力しておく必要がある。トレース情報はプログラムを実行した文の記録が含まれるものとし、その中で、特に、実行した関数名の文を含む必要がある。トレース情報はアプリケーションのテストケース別のトレース資産保存部６１にファイルの形式で保存される。
【００３９】
図５は、テスト要素定義部の処理手順を示した一例のフローチャートである。テスト要素定義部５１では、テスト要素設定情報保存部６３にテスト要素設定情報として保存されているキーワードの一例である関数名を元に、アプリケーションのテストケース別のトレース資産保存部６１にファイルの形式で保存されているトレース情報（トレースファイル）を複数のファイルに分割する。
【００４０】
ステップＳ２１に進み、テスト要素定義部５１はテスト要素としてトレース情報を分割するためのキーワードの一例として、関数名をテスト要素設定情報保存部６３から取得する。ステップＳ２２に進み、テスト要素定義部５１はアプリケーションのテストケース別のトレース資産保存部６１に保存されているトレースファイルを順に一行ずつ読み込む。
【００４１】
ステップＳ２３に進み、テスト要素定義部５１は読み込んだ行に関数の呼び出しが含まれていれば、読み込んだ行に記述されている関数名を取得する。テスト要素定義部５１はステップＳ２４に進み、読み込んだ行に記述されている関数名と、テスト要素設定情報保存部６３から取得した関数名との比較を行う。
【００４２】
テスト要素定義部５１は読み込んだ行に記述されている関数名が、テスト要素設定情報保存部６３から取得した関数名と一致すれば、ステップＳ２５に進み、テスト要素の切れ目としてトレースファイルを分割し、ステップＳ２６に進む。テスト要素定義部５１は分割した時点までのトレース情報をテスト要素として定義する。
【００４３】
なお、ステップＳ２４において、読み込んだ行が関数の呼び出し終了文、条件文、代入文などの関数の呼び出しを行っている文以外の文であると判定した場合、テスト要素定義部５１は、ステップＳ２６に進む。このように、テスト要素定義部５１は関数呼び出しを行っていない行をそのままテスト要素に出力する。
【００４４】
そして、ステップＳ２６に進み、テスト要素定義部５１はアプリケーションのテストケース別のトレース資産保存部６１に保存されているトレースファイルの全ての行を読み込んだか否かを判定する。アプリケーションのテストケース別のトレース資産保存部６１に保存されているトレースファイルの全ての行を読み込み終えていなければ、テスト要素定義部５１はステップＳ２２に戻る。アプリケーションのテストケース別のトレース資産保存部６１に保存されているトレースファイルの全ての行を読み込み終えていれば、テスト要素定義部５１は図５に示したフローチャートの処理を終了する。
【００４５】
図６は関数実行回数計測部の入出力情報を示した一例の構成図である。関数実行回数計測部５２は、テスト要素情報保存部６２に保存されている、トレース情報を分割して作成したテスト要素を入力される。関数実行回数計測部５２は、各テスト要素内の関数別の実行回数を計測し、各テスト要素内の関数別の実行回数を、関数実行回数保存部６４に出力する。
【００４６】
図７は関数実行回数計測部の処理手順を示した一例のフローチャートである。ステップＳ３１に進み、関数実行回数計測部５２はテスト要素の内部で実行している関数名を取得する。ステップＳ３２に進み、関数実行回数計測部５２はテスト要素の内部で実行している関数の実行回数を関数別に計測し、各テスト要素内の関数別の実行回数を関数実行回数保存部６４に保存する。ステップＳ３３に進み、関数実行回数計測部５２はテスト要素情報保存部６２に保存されている全てのテスト要素の関数の実行回数を関数別に計測し終えたか否かを判定する。
【００４７】
テスト要素情報保存部６２に保存されている全てのテスト要素の関数の実行回数を関数別に計測し終えていなければ、関数実行回数計測部５２はステップＳ３１に戻る。テスト要素情報保存部６２に保存されている全てのテスト要素の関数の実行回数を関数別に計測し終えていれば、関数実行回数計測部５２は、図７に示したフローチャートの処理を終了する。
【００４８】
図８は関数実行回数比較部の入出力情報を示した一例の構成図である。関数実行回数比較部５３は、関数実行回数保存部６４に保存されている各テスト要素内の関数別の実行回数を入力される。関数実行回数比較部５３は各テスト要素内の関数別の実行回数を比較したことによるテスト要素間の一致又は不一致を示す比較結果情報を関数実行回数比較結果保存部６５に出力する。関数実行回数比較部５３は各テスト要素内の関数別の実行回数を比較したことにより、テスト要素間の関係を構築するものである。
【００４９】
図９は関数実行回数比較部の処理手順を示した一例のフローチャートである。ステップＳ４１に進み、関数実行回数比較部５３は取得したテスト要素内の全ての関数の実行回数をテスト要素毎に加算する。ステップＳ４２に進み、関数実行回数比較部５３はテスト要素を２つ取得する。ステップＳ４３に進み、関数実行回数比較部５３は取得した２つのテスト要素について、ステップＳ４１で加算したテスト要素毎の関数の実行回数が一致するか否かを判定する。
【００５０】
ステップＳ４１で加算したテスト要素毎の関数の実行回数が一致すれば、関数実行回数比較部５３はステップＳ４４に進み、テスト要素内の関数別の実行回数を取得する。関数実行回数比較部５３はステップＳ４５に進み、同じ関数名に対応する実行回数をテスト要素間で比較する。ステップＳ４６に進み、関数実行回数比較部５３は取得した２つのテスト要素について、関数別で全ての実行回数が一致するか否かを判定する。
【００５１】
取得した２つのテスト要素について、関数別で全ての実行回数が一致すれば、関数実行回数比較部５３はステップＳ４７に進み、取得した２つのテスト要素が同じとして対応付けを行い、同一のテスト要素として分類する。関数実行回数比較部５３はテスト要素間の一致を示す比較結果情報を関数実行回数比較結果保存部６５に出力する。
【００５２】
また、取得した２つのテスト要素について、一方のテスト要素にのみ存在する関数が存在する、一つでも関数の実行回数が一致しないなど、関数名と、その関数名に対応する実行回数とが一致しないものがあった場合、ステップＳ４８に進み、関数実行回数比較部５３は取得した２つのテスト要素が異なるとして対応付けを行わず、異なるテスト要素として分類する。関数実行回数比較部５３はテスト要素間の不一致を示す比較結果情報を関数実行回数比較結果保存部６５に出力する。
【００５３】
ステップＳ４７、Ｓ４８に続いてステップＳ４９に進み、関数実行回数比較部５３はステップＳ４２で全てのテスト要素に対する全ての組み合わせを取得し終えたか否かを判定する。全てのテスト要素に対する全ての組み合わせを取得し終えていなければ、関数実行回数比較部５３はステップＳ４２に戻る。
【００５４】
なお、ステップＳ４３において、ステップＳ４１で加算したテスト要素毎の関数の実行回数が一致しなければ、関数実行回数比較部５３は２つのテスト要素が異なるとして対応付けを行わず、異なるテスト要素として分類し、ステップＳ４２に戻る。なお、ステップＳ４９において、全てのテスト要素に対する全ての組み合わせを取得し終えていないと判定すれば、関数実行回数比較部５３は図９に示したフローチャートの処理を終了する。
【００５５】
図１０はトレース照合部の入出力情報を示した一例の構成図である。トレース照合部５４は、テスト要素情報保存部６２に保存されているテスト要素及び関数実行回数比較結果保存部６５に保存されている関数別の実行回数を比較した結果によるテスト要素間の一致又は不一致の比較結果情報を入力される。トレース照合部５４は関数別の実行回数が一致したテスト要素のトレース情報を比較し、トレース情報を比較したことによるテスト要素間の一致又は不一致の比較結果情報をトレース比較結果保存部６６に出力する。
【００５６】
図１１はトレース照合部の処理手順を示した一例のフローチャートである。トレース照合部５４は関数実行回数比較結果保存部６５に保存されている比較結果情報により一致すると判断されたテスト要素に対して、関数の実行回数以外の観点で一致しているかどうかを確認する。
【００５７】
ステップＳ５１に進み、トレース照合部５４は関数別の実行回数の比較結果から一致すると判断したテスト要素をテスト要素情報保存部６２から取得する。ステップＳ５２に進み、トレース照合部５４はステップＳ５１で取得したテスト要素から２つのテスト要素を取得する。ステップＳ５３に進み、トレース照合部５４は取得した２つのテスト要素について、そのテスト要素の内容の記述を関数名以外の実行文のトレース情報を含めて文字列として比較して、関数の実行以外の実行文の順序、引数の値などを含めて一致するか否かを判定する。
【００５８】
取得した２つのテスト要素について、関数の実行以外の実行文の順序、引数の値などを含めて一致すれば、トレース照合部５４はステップＳ５４に進み、取得した２つのテスト要素が完全に同じ処理を行っているとして判断する。トレース照合部５４は取得した２つのテスト要素が完全に同じ処理を行っているとして判断すると、同一のテスト要素として分類する。トレース照合部５４はテスト要素間の一致の比較結果情報をトレース比較結果保存部６６に出力する。
【００５９】
取得した２つのテスト要素について、関数の実行以外の実行文の順序、引数の値などを含めて一致しなければ、トレース照合部５４はステップＳ５５に進み、例え関数別の実行回数が同じであったとしても、取得した２つのテスト要素が別の処理を行っていると判断する。トレース照合部５４は取得した２つのテスト要素が別の処理を行っていると判断すると、異なるテスト要素として分類する。トレース照合部５４はテスト要素間の一致の比較結果情報を不一致に修正してトレース比較結果保存部６６に出力する。
【００６０】
また、ステップＳ５４、Ｓ５５に続いてステップＳ５６に進み、トレース照合部５４はステップＳ５２で全てのテスト要素に対する全ての組み合わせを取得し終えたか否かを判定する。全てのテスト要素に対する全ての組み合わせを取得し終えていなければ、関数実行回数比較部５３はステップＳ５２に戻る。全てのテスト要素に対する全ての組み合わせを取得し終えていれば、関数実行回数比較部５３は図１１に示したフローチャートの処理を終了する。
【００６１】
図１２はテストケース間の構造定義部の入出力情報を示した一例の構成図である。テストケース間の構造定義部５５は、テスト要素情報保存部６２に保存されているテスト要素と、テスト要素及びテストケースの関係情報とを入力される。また、テストケース間の構造定義部５５はトレース比較結果保存部６６に保存されているトレース情報を比較したことによるテスト要素間の一致又は不一致の比較結果情報を入力される。
【００６２】
テストケース間の構造定義部５５はテスト要素、テスト要素及びテストケースの関係情報、テスト要素間の一致又は不一致の比較結果情報からテストケース間の関係情報をテストケース間の関係情報保存部６７に出力する。
【００６３】
図１３は、テストケース間の構造定義部の処理手順を示した一例のフローチャートである。ステップＳ６１に進み、テストケース間の構造定義部５５はテスト要素間の比較結果情報に従い、一致と判断されたテスト要素を取得する。
【００６４】
ステップＳ６２に進み、テストケース間の構造定義部５５はステップＳ６１で取得したテスト要素及びテストケースの関係情報から、ステップＳ６１で取得したテスト要素が所属するテストケース名を取得する。ステップＳ６３に進み、テストケース間の構造定義部５５はステップＳ６２で取得したテストケース名のうち選択していないテストケース名の中で、最も少ないテスト要素を保持するテストケースを基準として取得する。
【００６５】
ステップＳ６４に進み、テストケース間の構造定義部５５は対象のテストケースが基準のテストケースのテスト要素を全て含むか否かを判定する。対象のテストケースが基準のテストケースのテスト要素を全て含んでいると判定すると、テストケース間の構造定義部５５はステップＳ６５に進み、基準のテストケースが、対象のテストケースに含まれると判断して、テストケースの関係（包含関係）情報を定義する。
【００６６】
対象のテストケースが基準のテストケースのテスト要素を全て含んでいる訳ではないと判定すると、テストケース間の構造定義部５５はステップＳ６６に進み、基準のテストケースが、対象のテストケースに含まれないと判断して、テストケースの関係（関係無し）情報を定義する。
【００６７】
ステップＳ６７に進み、テストケース間の構造定義部５５はステップＳ６２で取得したテストケース名を全て選択したか否かを判定する。テストケース間の構造定義部５５はステップＳ６２で取得したテストケース名を全て選択し終えていなければ、ステップＳ６２に戻る。
【００６８】
テストケース間の構造定義部５５はステップＳ６２で取得したテストケース名を全て選択し終えていれば、ステップＳ６８に進み、テストケース間の関係情報を定義し、テストケース間の関係情報保存部６７に出力する。
【００６９】
なお、テストケース関係抽出装置５０は、テスト要素定義部５１、関数実行回数計測部５２、関数実行回数比較部５３の部分で、関数の実行回数の比較によるテストケース間の関係情報を構築するものであってもよい。
【実施例１】
【００７０】
以下では、プログラムのトレース情報から実際にテストケース間の関係情報を抽出する実施例を説明する。本実施例では、プログラムを実行したときのトレース情報を対象にテストケース間の関係情報を構築する。
【００７１】
図１４は、トレース情報の一例の構成図である。トレース情報はテストケースで実行した文の情報が時系列で取得でき、そのときの変数の値が記録できるものとする。関数の呼び出し情報を取得するので、トレース情報は、関数の呼び出し情報を抽出できるものを対象とする。
【００７２】
次にテスト要素定義部５１はテスト要素を定義する。テスト要素定義部５１はテスト要素設定情報保存部６３から、トレース情報を分割するためのキーワードの一例としての関数名を取得する。図１５はトレース情報を分割するためのキーワードの一例の構成図である。図１５に示すように、ここでは「Method1」、「Method2」、「doGet」、「doFilter」の四種類のキーワードを取得する。
【００７３】
次に、テスト要素定義部５１はテストケース別のトレース情報をアプリケーションのテストケース別のトレース資産保存部６１から読み込む。テスト要素定義部５１はテストケース名「test1」のトレース情報の一行目で「Method1」という関数を実行する（関数の呼び出し）文を取得する。関数を実行する文である場合、テスト要素定義部５１は関数名を取得し、その関数名がトレース情報を分割するためのキーワードと一致するかを確認する。
【００７４】
このとき「Method1」は、テスト要素設定情報保存部６３に保存しているトレース情報を分割するためのキーワードの一つと一致する。したがって、テスト要素定義部５１は本来ならトレース情報の分割を行うが、この場合に限って最初の関数を実行する文（関数の実行文）なので、このまま対象のトレース情報を一つ目のテスト要素として定義する。
【００７５】
テスト要素定義部５１は、トレース情報の次の行を読み込むと、「a=1」という代入文であるため、関数の実行文ではないと判定する。したがって、テスト要素定義部５１は何も処理を行わず、次の行に進む。
【００７６】
テスト要素定義部５１は、トレース情報の次の行を読み込むと、「print a」という出力文であるため、同様に関数の実行文ではないと判定する。したがって、テスト要素定義部５１はトレース情報の分割を行わず、次の行を読み込む。
【００７７】
テスト要素定義部５１は、トレース情報の次の行を読み込むと、「if(a==1)」という条件文であるため、同様に関数の実行文ではないと判定する。したがって、テスト要素定義部５１はトレース情報の分割を行わず、次の行へ進む。
【００７８】
テスト要素定義部５１は、トレース情報の次の行を読み込むと、「print a」という出力文であるため、関数の実行文ではないので、トレース情報の分割は行わない。テスト要素定義部５１は、トレース情報の次の行を読み込むと、「Method1」という関数の終了を示す実行文である。テスト要素定義部５１は関数の実行文（実行開始文）に対してトレース情報の分割を行うので、関数の終了を示す実行文（関数の終了文）に対しては、トレース情報の分割を行わない。
【００７９】
テスト要素定義部５１は、トレース情報の次の行を読み込むと、「Method4」という関数の実行文である。関数の開始を示す実行文であるため、テスト要素定義部５１は関数名を取得し、その関数名がトレース情報を分割するためのキーワードのいずれでもないのでトレース情報の分割は行わない。
【００８０】
テスト要素定義部５１はトレース情報の次の行を読み込むと、「Method4」という関数の終了文であるため、トレース情報の分割を行わない。テスト要素定義部５１はトレース情報の次の行を読み込むと、「Method2」という関数の実行文である。関数の開始を示す実行文であるため、テスト要素定義部５１は関数名を取得し、その関数名がトレース情報を分割するためのキーワードと一致するかを確認する。「Method2」は、トレース情報を分割するためのキーワードと一致する。したがって、テスト要素定義部５１はトレース情報の分割を行う。
【００８１】
テスト要素定義部５１は、これまでに取得してきた文のファイルを一つのテスト要素としてまとめる。テスト要素定義部５１は「Method2」という関数の実行文の行から別のテスト要素として新たにファイルを定義し、トレース情報を取得する。
【００８２】
テスト要素定義部５１は、トレース情報の次の行を読み込むと、「Method3」という関数の実行文である。関数の開始を示す実行文であるため、テスト要素定義部５１は関数名を取得し、その関数名がトレース情報を分割するためのキーワードのいずれでもないのでトレース情報の分割は行わない。テスト要素定義部５１はトレース情報の次の行を読み込むと、「Method3」という関数の終了文であるため、トレース情報の分割を行わない。
【００８３】
テスト要素定義部５１は、トレース情報の次の行を読み込むと、「Method3」という関数の実行文である。関数の開始を示す実行文であるため、テスト要素定義部５１は関数名を取得し、その関数名がトレース情報を分割するためのキーワードのいずれでもないのでトレース情報の分割は行わない。テスト要素定義部５１はトレース情報の次の行を読み込むと、「Method3」という関数の終了文であるため、トレース情報の分割を行わない。
【００８４】
テスト要素定義部５１は、トレース情報の最後の行を読み込むと、「Method2」という関数の終了を示す実行文である。テスト要素定義部５１は関数の実行文に対してトレース情報の分割を行うので、関数の終了文に対しては、トレース情報の分割を行わない。
【００８５】
以上で、テスト要素定義部５１は、対象の一つのテストケースに対して、二つのテスト要素を定義した処理を終了する。テスト要素定義部５１は上記の処理を各テストケースに対して実施し、全てのテストケースに対してテスト要素を作成する。また、テスト要素定義部５１は、どのテストケースから作成したテスト要素か、ということを取得できるようにテスト要素及びテストケースの関係情報を作成する。
【００８６】
図１６はテスト要素情報保存部に保存されている情報の一例の構成図である。図１４に示したテストケース別のトレース情報を図１５に示したテスト要素設定情報を元に分割すると、図１６（Ａ）に示すようなテスト要素となる。また、テスト要素及びテストケースの関係情報は図１６（Ｂ）に示すようになる。
【００８７】
図１６は「test1」というテストケースから「test1-1」「test1-2」という二つのテスト要素を作成したことを表している。同様に、図１６はテストケース「test2」「test3」に対してもテスト要素を定義している。
【００８８】
テストケース「test2」では1行目で関数の実行文「Method2」を読み込む。関数の実行文「Method2」はトレース情報を分割するためのキーワードの一つと一致するので本来ならトレース情報の分割を行うが、この場合に限って最初の関数の実行文なので、このまま対象のトレース情報を一つ目のテスト要素として定義する。次に「Method3」という関数の呼び出しが二回あるが、いずれもトレース情報を分割するためのキーワードと一致しないため、トレース情報の分割は行わない。次に「Method1」という関数の呼び出しがあり、トレース情報を分割するためのキーワードの一つと一致するので、トレース情報の分割を行い、テスト要素として定義する。その後、「Method4」という関数の呼び出しがあるが、トレース情報を分割するためのキーワードと一致しないため、トレース情報の分割は行わない。
【００８９】
以上のように、図１６はテストケース「test2」から「test2-1」「test2-2」という二つのテスト要素を作成したことを表している。また、テストケース「test3」に対しても同様にテスト要素を作成すると、関数の実行文「Method1」のみが、トレース情報を分割するためのキーワードの一つと一致するため、「test3」という一つのテスト要素が作成される。
【００９０】
図１７は関数実行回数保存部に保存されている情報の一例の構成図である。関数実行回数計測部５２は図１６（Ａ）に示したテスト要素別のトレース情報を読み込む。関数実行回数計測部５２はテスト要素「test1-1」の一行目から「Method1」という関数の実行文を取得する。関数実行回数計測部５２は、関数の実行文から関数名「Method1」を取得し、テスト要素「test1-1」の「Method1」という関数の実行回数を一回加算するように関数実行回数保存部６４に保存する。
【００９１】
次の行は「a=1」という代入文であるため、関数の実行文ではない。したがって、関数実行回数計測部５２は何も処理を行わず、次の行に進む。次の行は「print a」という出力文であるため、同様に関数の実行文ではない。したがって、関数実行回数計測部５２は関数の実行回数を数えず、次の行を読み込む。次の行は「if(a==1)」という条件文であるため、関数の実行文ではない。したがって、関数実行回数計測部５２は関数の実行回数を数えず、次の行へ進む。次の行も「print a」という出力文であるため、関数の実行文ではない。したがって、関数実行回数計測部５２は関数の実行回数を数えず、次の行を読み込む。
【００９２】
次の行は「Method1」という関数の終了文である。関数の実行文に対して関数の実行回数を記録するため、関数の終了文に対しては、関数の実行回数の加算を行わない。次の行は「Method4」という関数の実行文である。したがって、関数実行回数計測部５２はテスト要素「test1-1」の「Method4」という関数の実行回数を一回加算するように関数実行回数保存部６４に保存する。
【００９３】
以上のように、図１７では関数実行回数計測部５２がテスト要素「test1-1」内の関数別の実行回数として、関数「Method1」の実行回数が一回、関数「Method4」の実行回数が一回という情報を関数実行回数保存部６４に保存する。関数実行回数計測部５２は上記の処理を全てのテスト要素に対して実施し、各テスト要素内の関数別の実行回数を取得する。
【００９４】
テスト要素「test1-2」では関数「Method2」の実行回数が一回、関数「Method3」の実行回数が二回という情報を取得する。テスト要素「test2-1」では関数「Method2」の実行回数が一回、関数「Method3」の実行回数が二回という情報を取得する。テスト要素「test2-2」では関数「Method1」の実行回数が一回、関数「Method4」の実行回数が一回という情報を取得する。テスト要素「test3」では関数「Method1」の実行回数が一回、関数「Method4」の実行回数が一回という情報を取得する。
【００９５】
図１８は関数実行回数比較結果保存部に保存されている情報の一例の構成図である。関数実行回数比較部５３は各テスト要素内の関数別の実行回数を関数実行回数保存部６４から取得して、テスト要素間で比較する。関数実行回数比較部５３は、最初に全ての関数の実行回数をテスト要素毎に加算する。
【００９６】
例えばテスト要素「test1-1」では関数「Method1」が一回、関数「Method4」が一回なので、関数の実行回数の加算結果として二回が取得される。テスト要素「test1-1」では関数「Method2」が一回、関数「Method3」が二回なので、関数の実行回数の加算結果として三回が取得される。テスト要素「test2-1」では関数「Method2」が一回、関数「Method3」が二回なので、関数の実行回数の加算結果として三回が取得される。
【００９７】
また、テスト要素「test2-2」では関数「Method1」が一回、関数「Method4」が一回なので、関数の実行回数の加算結果として二回が取得される。テスト要素「test3」では関数「Method1」が一回、関数「Method4」が一回なので、関数の実行回数の加算結果として二回が取得される。
【００９８】
関数実行回数比較部５３はテスト要素「test1-1」の関数の実行回数を基準に、他のテスト要素を比較対象として関数の実行回数と比較する。テスト要素「test1-2」を比較対象とすると、関数実行回数比較部５３はテスト要素「test1-1」の関数の実行回数の加算結果が二回であり、テスト要素「test1-2」の関数の実行回数の加算結果である三回と一致しないため、異なるテスト要素として分類する。
【００９９】
次にテスト要素「test2-1」を比較対象とすると、関数実行回数比較部５３はテスト要素「test1-1」の関数の実行回数の加算結果が二回であり、テスト要素「test2-1」の関数の実行回数の加算結果である三回と一致しないため、異なるテスト要素として分類する。
【０１００】
次にテスト要素「test2-2」を比較対象とすると、関数実行回数比較部５３はテスト要素「test1-1」の関数の実行回数の加算結果が二回であり、テスト要素「test2-2」の関数の実行回数の加算結果である二回と一致するため、同一のテスト要素として分類する。
【０１０１】
次にテスト要素「test3」を比較対象とすると、関数実行回数比較部５３はテスト要素「test1-1」の関数の実行回数の加算結果が二回であり、テスト要素「test3」の関数の実行回数の加算結果である二回と一致するため、同一のテスト要素として分類する。
【０１０２】
次に、関数実行回数比較部５３は関数の実行回数の加算結果が一致したテスト要素について、個々の関数の実行回数を比較する。テスト要素「test1-1」は関数「Method1」が一回である。テスト要素「test2-2」も同様に関数「Method1」が一回である。また、テスト要素「test1-1」は関数「Method4」が一回である。テスト要素「test2-2」も同様に関数「Method4」が一回である。
【０１０３】
したがって、テスト要素「test1-1」とテスト要素「test2-2」とは、関数の実行回数の加算結果だけでなく、個々の関数の実行回数も一致するため、同一のテスト要素として関連付けされる。
【０１０４】
同様に、テスト要素「test1-1」とテスト要素「test3」とは、関数の実行回数の加算結果だけでなく、個々の関数の実行回数も一致するため、同一のテスト要素として関連付けされる。結果として、テスト要素「test1-1」、「test2-2」、「test3」の三つは全て同一のテスト要素として関連付けされる。
【０１０５】
関数実行回数比較部５３はテスト要素「test1-1」に対して、関数の実行回数の加算結果が一致した他のテスト要素との個々の関数の実行回数の比較を全て終了したら、次にテスト要素「test1-2」を基準に、関数の実行回数の加算結果が一致した他のテスト要素を対象として個々の関数の実行回数の比較を実施する。
【０１０６】
テスト要素「test1-2」は関数「Method2」が一回である。テスト要素「test2-1」も同様に関数「Method2」が一回である。また、テスト要素「test1-2」は関数「Method3」が二回である。テスト要素「test2-1」も同様に関数「Method3」が二回である。
【０１０７】
したがって、テスト要素「test1-2」とテスト要素「test2-1」とは、関数の実行回数の加算結果だけでなく、個々の関数の実行回数も一致するため、同一のテスト要素として関連付けされる。
【０１０８】
図１９はトレース比較結果保存部に保存されている情報の一例の構成図である。関数実行回数比較部５３で同一のテスト要素として関連付けされたテスト要素に対し、トレース照合部５４は詳細なトレース情報を比較することで、実際に同じ処理を行っているかどうかを確認する。
【０１０９】
トレース照合部５４は、テスト要素情報保存部６２に保存されているトレース情報を取得し、関数実行回数比較部５３で同一のテスト要素として関連付けされたテスト要素についてトレース情報の中身を比較する。
【０１１０】
まず、トレース照合部５４はテスト要素「test1-1」、「test2-2」、「test3」の三つが同一のテスト要素として関連付けされているため、トレース情報の比較を行う。トレース照合部５４はテスト要素「test1-1」を基準に比較を行う。まず、トレース照合部５４はテスト要素「test1-1」とテスト要素「test2-2」とを比較する。テスト要素「test1-1」には関数の実行文以外に、代入文（a=1）、条件文（if(a==1)）、出力文（print a）が存在している。テスト要素「test2-2」には関数の実行文のみが存在している。したがって、テスト要素「test1-1」、「test2-2」は、関数別の実行回数が同じではあるがトレース情報が異なる。同一のテスト要素として関連付けされていたテスト要素「test1-1」、「test2-2」は関連が無いもの（異なるテスト要素）として修正される。同様に、トレース照合部５４はテスト要素「test1-1」、「test3」も関数別の実行回数が同じではあるがトレース情報が異なるので、関連が無いものとして修正する。
【０１１１】
一方、同一のテスト要素として関連付けされていたテスト要素「test2-2」、「test3」はトレース情報が一致するので、同一のテスト要素として関連付けを有効とする。同一のテスト要素として関連付けされているテスト要素「test1-2」、「test2-1」に対しても同様にトレース照合部５４はトレース情報の比較を行う。テスト要素「test1-2」、「test2-1」とはトレース情報が一致するので、同一のテスト要素として関連付けを有効とする。
【０１１２】
また、図２０はテストケース間の関係情報保存部に保存されている情報の一例の構成図である。テストケース間の構造定義部５５は同一のテスト要素として関連付けを有効とされたテスト要素間の関係情報（テスト要素間の比較結果情報）から、テストケース間の関係情報を構築する。
【０１１３】
テストケース間の構造定義部５５は、最もテスト要素数が少ないテストケースを基準に調査を行う。例えば図１６に示したテストケースの例では、最もテスト要素数が少ないテストケース「test3」を基準に調査を行う。
【０１１４】
テストケース「test3」はテスト要素「test3」を含む。したがって、テストケース間の構造定義部５５はテスト要素「test3」と同じテスト要素を含む他のテストケースが存在した場合、テストケース「test3」が他のテストケースに含まれると判断できる。図１６に示したテストケースの例ではテスト要素「test3」がテスト要素「test2-2」と一致するため、テストケース「test3」がテスト要素「test2-1」を含むテストケース「test2」に含まれるとしてテストケース間の関係（包含関係）情報を定義できる。
【０１１５】
次に、テストケース間の構造定義部５５は、二つのテスト要素を含むテストケースであるテストケース「test1」、「test2」を基準に順番に調査を行う。テストケース「test1」はテスト要素「test1-1」、「test1-2」の両方を含む。したがって、テストケース間の構造定義部５５はテスト要素「test1-1」、「test1-2」の両方を含む他のテストケースが存在した場合、テストケース「test1」が他のテストケースに含まれると判断できる。図１６に示したテストケースの例ではテスト要素「test1-1」と一致するテスト要素がなく、テスト要素「test1-1」を含む他のテストケースがない。テストケース間の構造定義部５５はテストケース「test1」を含む他のテストケースが存在しないため、新たなテストケース間の関係（包含関係）情報を定義できない。
【０１１６】
また、テストケース「test2」はテスト要素「test2-1」、「test2-2」の両方を含む。したがって、テストケース間の構造定義部５５はテスト要素「test2-1」、「test2-2」の両方を含む他のテストケースが存在した場合、テストケース「test2」が他のテストケースに含まれると判断できる。
【０１１７】
例えば図１６に示したテストケースの例では、テスト要素「test2-1」と一致するテスト要素「test1-2」がテストケース「test1」に含まれるが、テスト要素「test2-2」と一致するテスト要素「test3」がテストケース「test1」ではなくテストケース「tset3」に含まれているため、テスト要素「test2-1」、「test2-2」の両方を含む他のテストケースが存在しない。したがって、テストケース間の構造定義部５５はテストケース「test2」を含む他のテストケースが存在しないため、新たなテストケース間の関係（包含関係）情報を定義できない。
【０１１８】
テストケース間の構造定義部５５はテストケース「test3」がテストケース「test2」に含まれるというテストケース間の関係情報を最終的な出力とする。図２０は最終的な出力形式の例として、テストケース「test2」とテストケース「test3」との間の関係情報を矢印で示している。図２０ではテストケース「test2」がテストケース「test3」を包含することを表している。
【０１１９】
以上、本実施例のテストケース関係抽出装置５０は、保守工程など、コンピュータシステムが一度構築されていて、開発時のテストケースが多く存在していて、整理が出来ていないときに有効である。テストケース間の関係情報を構築することで、本実施例では必要最低限のテストケースのみを実行することで全てのテストケースを実行することと同じ効果が得られる。
【０１２０】
従来、同じソース箇所に対して、複数回実行される繰り返しを区別して行われていたテストケースの違いを取得するためには、全てのテストケースに対して、トレース情報を比較する必要があった。
【０１２１】
一方、本実施例では一つのテストケースをテスト要素に分割し、その中で、ソースの実行の有無を示すカバレッジ情報ではわからない、関数（メソッド）の実行回数を記録することで、テスト要素の区別が効率化でき、テストケースの構造化ができる。同時に関数の実行回数だけの比較では、処理の実行順序が異なる場合等に見落としが発生する。本実施例ではトレース情報の比較作業も合わせて実施するが、比較する対象を関数の実行回数が一致したテスト要素に限定することで、作業工数を大幅に削減できる。
【０１２２】
本発明は、以下に記載する付記のような構成が考えられる。
（付記１）
コンピュータが、
テストケース別のトレース情報を分割したテスト要素内の関数の実行回数を比較するステップと、
前記関数の実行回数を比較した結果、前記関数の実行回数が一致する前記テスト要素間でトレース情報を比較するステップと、
前記トレース情報を比較した結果、前記トレース情報が一致するテスト要素に基づいて前記テスト要素を含む前記テストケース間の関係を定義するステップと
を実行すること
を特徴とするテストケース関係抽出方法。
（付記２）
前記テストケース別のトレース情報を、テスト要素設定情報を利用して分割して前記テスト要素を定義するステップを更に実行すること
を特徴とする付記１記載のテストケース関係抽出方法。
（付記３）
前記テスト要素内の関数の実行回数を、前記関数別に計測するステップを更に実行することを特徴とし、
前記テストケース別のトレース情報を分割したテスト要素内の関数の実行回数を比較するステップは、前記テスト要素内の関数の実行回数を加算した加算結果が一致した前記テスト要素について、更に、前記テスト要素内の関数別の実行回数を比較すること
を特徴とする付記２記載のテストケース関係抽出方法。
（付記４）
前記テスト要素設定情報は、前記トレース情報を分割するためのキーワードであることを特徴とする付記２又は３記載のテストケース関係抽出方法。
（付記５）
テストケース別のトレース情報を分割したテスト要素内の関数の実行回数を比較する実行回数比較手段と、
前記関数の実行回数を比較した結果、前記関数の実行回数が一致する前記テスト要素間でトレース情報を比較するトレース比較手段と、
前記トレース情報を比較した結果、前記トレース情報が一致するテスト要素に基づいて前記テスト要素を含む前記テストケース間の関係を定義する定義手段と
を有すること
を特徴とするテストケース関係抽出装置。
（付記６）
コンピュータに、
テストケース別のトレース情報を分割したテスト要素内の関数の実行回数を比較するステップと、
前記関数の実行回数を比較した結果、前記関数の実行回数が一致する前記テスト要素間でトレース情報を比較するステップと、
前記トレース情報を比較した結果、前記トレース情報が一致するテスト要素に基づいて前記テスト要素を含む前記テストケース間の関係を定義するステップと
を実行させることを特徴とするテストケース関係抽出プログラム。
【０１２３】
なお、本実施例におけるテストケース関係抽出プログラムは、パッケージソフトの他、ＷＥＢサービス等によっても提供可能である。なお、特許請求の範囲に記載した実行回数比較手段は関数実行回数比較部５３に相当し、トレース比較手段はトレース照合部５４に相当し、定義手段はテストケース間の構造定義部５５に相当する。
【符号の説明】
【０１２４】
１０    コンピュータ
２１    入力装置
２２    表示装置
２３    コンピュータ本体
３１    主記憶装置
３２    演算処理装置
３３    インターフェース装置
３４    記録媒体読取装置
３５    補助記憶装置
３６    記録媒体
３７    バス
５０    テストケース関係抽出装置
５１    テスト要素定義部
５２    関数実行回数計測部
５３    関数実行回数比較部
５４    トレース照合部
５５    テストケース間の構造定義部
６１    アプリケーションのテストケース別のトレース資産保存部
６２    テスト要素情報保存部
６３    テスト要素設定情報保存部
６４    関数実行回数保存部
６５    関数実行回数比較結果保存部
６６    トレース比較結果保存部
６７    テストケース間の関係情報保存部
【図１】
0005516277.tif 000002
【図２】
0005516277.tif 000003
【図３】
0005516277.tif 000004
【図４】
0005516277.tif 000005
【図５】
0005516277.tif 000006
【図６】
0005516277.tif 000007
【図７】
0005516277.tif 000008
【図８】
0005516277.tif 000009
【図９】
0005516277.tif 000010
【図１０】
0005516277.tif 000011
【図１１】
0005516277.tif 000012
【図１２】
0005516277.tif 000013
【図１３】
0005516277.tif 000014
【図１４】
0005516277.tif 000015
【図１５】
0005516277.tif 000016
【図１６】
0005516277.tif 000017
【図１７】
0005516277.tif 000018
【図１８】
0005516277.tif 000019
【図１９】
0005516277.tif 000020
【図２０】
0005516277.tif 000021