JP2022186542A - テストケース生成装置、テストケース生成方法 - Google Patents

テストケース生成装置、テストケース生成方法 Download PDF

Info

Publication number
JP2022186542A
JP2022186542A JP2021094820A JP2021094820A JP2022186542A JP 2022186542 A JP2022186542 A JP 2022186542A JP 2021094820 A JP2021094820 A JP 2021094820A JP 2021094820 A JP2021094820 A JP 2021094820A JP 2022186542 A JP2022186542 A JP 2022186542A
Authority
JP
Japan
Prior art keywords
test
importance
parameter value
parameter
input
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
Application number
JP2021094820A
Other languages
English (en)
Inventor
健太 左近
Kenta Sakon
桂 舘下
Katsura Tateshita
智之 明神
Tomoyuki Myojin
啓伸 來間
Hironobu Kuruma
誠 石川
Makoto Ishikawa
秀人 小川
Hideto Ogawa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Information and Telecommunication Engineering Ltd
Original Assignee
Hitachi Information and Telecommunication Engineering Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Information and Telecommunication Engineering Ltd filed Critical Hitachi Information and Telecommunication Engineering Ltd
Priority to JP2021094820A priority Critical patent/JP2022186542A/ja
Publication of JP2022186542A publication Critical patent/JP2022186542A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】バグが発生したパラメータ値に関わるテスト項目を重点的に生成するテストケース生成装置及び方法を提供する。【解決手段】方法は、入力項目であるパラメータ値を1つまたは複数含むテスト項目をテスト対象プログラムに与えて実行した結果の入力を受け付け、実行した結果から得られるバグ発生率に基づいて、パラメータ値ごとにバグ要因の可能性の高さである重要度を算出し、算出された重要度が第1の所定の条件を満たす場合に、重要度に対応するパラメータ値を決定し、テストの重点箇所または/および非重点箇所を示すテスト観点に反映する。反映されたテスト観点に基づいてテスト項目を生成し、生成されたテスト項目の数が閾値を超えていた場合に、第2の所定の条件を満たす重要度に対応するパラメータ値を決定し、決定したパラメータ値をテスト観点の非重点箇所に反映してテスト項目の数を抑制して、抑制された数のテスト項目を出力する。【選択図】図2

Description

本発明は、テストケース生成装置、テストケース生成方法に関する。
本技術分野の先行技術として、特開2013-77124号公報(特許文献1)がある。この公報には、「ソフトウェアテストの因子網羅テストのテストケースを生成し、前記因子網羅テストのリストを生成するソフトウェアテストケース生成装置であって、前記生成されたテストケースを記憶する記憶部と、前記生成されたテストケースに従ったソフトウェアテストの実行履歴を記憶するテスト実行履歴記憶部と、重点的にテストを実行すべき因子及び水準の要注意水準の判定条件を記憶する判断基準記憶部と、前記要注意水準の判定条件に従って、要注意の因子及び水準の組合せを判定する要注意水準組合せ分析部と要注意水準と判定された因子及び水準の組合せである要注意水準組合せを記憶する要注意水準組合せ記憶部と、前記ソフトウェアテストの実行履歴及び前記要注意水準組合せに基づいて、効率的なテストケースを生成する効果的テストケース生成部と、を備える」ことが記載されている(要約参照)。
特開2013-77124号公報
前記特許文献1には、バグ検出効率を高めるテストケース生成方法が記載されている。しかし、特許文献1のテストケース生成方法では、バグが発生したパラメータ値に関わるテスト項目をバグの発生頻度に応じて重点的に生成することができない。
本発明の一側面としては、バグが発生したパラメータ値に関わるテスト項目をバグの発生頻度に応じて重点的に生成することが可能な技術を提供することを目的とする。
本発明の一態様にかかるテストケース生成装置は、コンピュータにより行われる処理のテストケースを生成するテストケース生成装置であって、入力項目であるパラメータ値を1つまたは複数含むテスト項目をテスト対象プログラムに与えて実行した結果の入力を受け付けるテスト結果入力処理と、前記実行した結果から得られるバグ発生率に基づいて、前記パラメータ値ごとにバグ要因の可能性の高さである重要度を算出するパラメータ値重要度解析処理と、算出された前記重要度が第1の所定の条件を満たす場合に、当該重要度に対応するパラメータ値を決定し、テストの重点箇所または/および非重点箇所を示すテスト観点に反映するテスト観点決定処理と、反映された前記テスト観点に基づいてテスト項目を生成するテスト項目生成処理と、生成された前記テスト項目の数が閾値を超えていた場合に、第2の所定の条件を満たす前記重要度に対応する前記パラメータ値を決定し、決定した前記パラメータ値を前記テスト観点の非重点箇所に反映して前記テスト項目の数を抑制するテスト項目抑制処理と、を行う演算装置と、抑制された数の前記テスト項目を出力するテスト項目出力処理、を行う出力装置と、を有することを特徴とするテストケース生成装置として構成される。
本発明の一態様によれば、バグが発生したパラメータ値に関わるテスト項目をバグの発生頻度に応じて重点的に生成することができる。
テストケース生成装置の構成例を示すブロック図である。 テストケース生成装置の処理を説明するフローチャートである。 パラメータ及びパラメータ値の説明例である。 テスト項目及びテスト実行結果の記入例である。 パラメータ値重要度解析処理の説明例である。 パラメータ値重要度解析処理のフローチャートである。 テスト観点決定処理の説明例である。 テスト項目生成処理において生成されたテスト項目の例である。 テスト項目抑制処理のフローチャートである。 テスト項目抑制処理において、テスト項目再生成後に得られたテスト項目の例である。 実施例2における、テストケース生成装置の処理を説明するフローチャートである。 コンピュータの概略の一例を示す図である。
以下、本発明の実施形態であるテストケース生成装置の例について図面を用いて説明する。以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
以下の説明では、「データベース」、「テーブル」、「リスト」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「XXテーブル」、「XXリスト」等を「XX情報」と呼ぶことがある。識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いた場合、これらについてはお互いに置換が可能である。
同一あるいは同様な機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。ただし、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。
また、以下の説明では、プログラムを実行して行う処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)および/またはインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主体がプロセッサとされてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であれば良く、特定の処理を行う専用回路(例えばFPGA(Field-Programmable Gate Array)やASIC(Application Specific Integrated Circuit))を含んでいてもよい。
プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
図1は、本実施形態におけるテストケース生成装置の構成例を示す図である。
テストケース生成装置100は、図1に示すように、テスト結果入力処理101を実行する処理部、ユーザ判断入力処理102を実行する処理部、パラメータ値重要度解析処理103を実行する処理部、テスト観点決定処理104を実行する処理部、テスト項目生成処理105を実行する処理部、テスト項目抑制処理106を実行する処理部、パラメータ値重要度保持部107、ユーザ判断保持部108、テスト観点保持部109、テスト項目出力処理110を実行する処理部を有する。
図1に示したテストケース生成装置100は、例えば、図12(コンピュータ概略図)に示すような、CPU1601と、メモリ1602と、HDD(Hard Disk Drive)等の外部記憶装置1603と、CD(Compact Disk)やUSBメモリ等の可搬性を有する記憶媒体1608に対して情報を読み書きする読書装置1607と、キーボードやマウス等の入力装置1606と、ディスプレイ等の出力装置1605と、通信ネットワークに接続するためのNIC(Network Interface Card)等の通信装置1604と、これらを連結するシステムバス等の内部通信線(システムバスという)1609と、を備えた一般的なコンピュータ1600により実現できる。
テストケース生成装置100に記憶され、あるいは処理に用いられる様々なデータ(例えば、パラメータ値重要度保持部107、ユーザ判断保持部108、テスト観点保持部109に記憶されるデータ)は、CPU1601がメモリ1602または外部記憶装置1603から読み出して利用することにより実現可能である。また、テストケース生成装置100が有する各処理部(例えば、テスト結果入力処理101、ユーザ判断入力処理102、パラメータ値重要度解析処理103、テスト観点決定処理104、テスト項目生成処理105、テスト項目抑制処理106、テスト項目出力処理110を実行する各処理部)は、CPU1601が外部記憶装置1603に記憶されている所定のプログラムをメモリ1602にロードして実行することにより実現可能である。
上述した所定のプログラムは、読書装置1607を介して記憶媒体1608から、あるいは、通信装置1604を介してネットワークから、外部記憶装置1603に記憶(ダウンロード)され、それから、メモリ1602上にロードされて、CPU1601により実行されるようにしてもよい。また、読書装置1607を介して、記憶媒体1608から、あるいは通信装置1604を介してネットワークから、メモリ1602上に直接ロードされ、CPU1601により実行されるようにしてもよい。
以下では、テストケース生成装置100が、ある1つのコンピュータにより構成される場合を例示するが、これらの機能の全部または一部が、クラウドのような1または複数のコンピュータに分散して設けられ、ネットワークを介して互いに通信することにより同様の機能を実現してもよい。
テスト結果入力処理101は、未実行のテスト項目を受け取り、テストを実行した結果を記載する。
ユーザ判断入力処理102は、ユーザが、重要度が高い、または重要度が低いと判断したパラメータないしパラメータ値を受け取る。
パラメータ値重要度解析処理103は、テストの実行結果を基に、バグ要因の可能性を解析し、パラメータ値の重要度を決定する。
テスト観点決定処理104は、テスト結果、及びユーザ判断を基に重要度が高いと判定したパラメータ値を用いてテスト観点を決定する。
テスト項目生成処理105は、テスト観点を基にテスト項目を生成する。
テスト項目抑制処理106は、生成されたテスト項目が閾値を超えていた場合に、テスト結果、及びユーザ判断を基に重要度が低いと判定したパラメータ値をテスト観点に反映し、テスト項目を抑制する。
パラメータ値重要度保持部107は、パラメータ値重要度解析処理103において、決定したパラメータ値の重要度を保持する。
ユーザ判断保持部108は、ユーザ判断入力処理102において、ユーザから入力された重要度が高いパラメータないしパラメータ値、重要度が低いパラメータないしパラメータ値を保持する。
テスト観点保持部109は、テスト観点決定処理104において、決定したテスト観点を保持する。
テスト項目出力処理110は、テスト項目生成処理105、及びテスト項目抑制処理106の結果、決定したテスト項目を出力する。
図2は、テストケース生成装置100の処理を説明するフローチャート150である。
ステップ151は、予め用意した初回テスト項目の入力を受け付ける。
ステップ152は、テスト結果入力処理101を行う。
ステップ153は、終了条件の判断を行う。その際、テスト項目数、バグ件数を判断基準として用いる。テスト項目数に関しては、初回時にはステップ151の入力結果を、2回目以降はステップ159の出力結果を用いる。バグ件数に関しては、ステップ152の結果を用いる。
本実施例では、十分な数のテストを実施し、十分な数のバグを検出したと判断された場合、すなわち、テスト項目数、バグ件数が指定数を上回っている場合に終了条件を満たしたと判断され(ステップ153;Yes)、フローチャート150を終了する。そうでない場合には(ステップ153;No)、ステップ154に処理を進める。
ステップ154は、パラメータ値重要度解析処理103を、ステップ155は、ユーザ判断入力処理102を、ステップ156は、テスト観点決定処理104をそれぞれ行う。また、ステップ157は、テスト項目生成処理105を、ステップ158は、テスト項目抑制処理106を、ステップ159は、テスト項目出力処理110をそれぞれ行う。ステップ159終了後はステップ153に戻り、終了条件を満たすまで繰り返し行う。
図3は、パラメータ及びパラメータ値のテスト対象例200の説明図である。パラメータとは、プログラムに外部から入力されるデータ項目で、プログラムの動作に影響を与える。パラメータ値とは、各パラメータの取りうる値を指す。
パラメータ及びパラメータ値のテスト対象例200は、テスト対象パラメータ201とテスト対象パラメータ値202から構成されている。図3の場合、テスト対象パラメータ201はA,B,Cの3つのパラメータを含む。テスト対象パラメータ値202は、Aに関するパラメータ値a1,a2と、Bに関するパラメータ値b1,b2,b3と、Cに関するパラメータ値c1,c2,c3,c4を含む。
図4は、テスト結果入力処理101の処理における、テスト項目とその実行結果の例300の説明図である。テスト項目とは、プログラムの動作確認のために用意するもので、一般的に実行条件やデータなどを示す。本実施例では、パラメータに対応するパラメータ値1つ、または複数のパラメータ値の組み合わせを指す。
テスト項目とその実行結果の例300は、テスト項目番号301と実行対象のテスト項目302とテスト実行結果303を含む。
例えば、図4の場合、実行対象のテスト項目302は、テスト対象パラメータ201であるA,B,Cのパラメータ値の組み合わせで構成されており、各パラメータA,B,Cに対して、テスト対象パラメータ値202のいずれかの値が代入されている。
テスト実行結果303は、バグ検出の有無を表している。バグを検出した場合に1、バグ未検出の場合に0をテスト実行結果303に記載する。
図5は、パラメータ値重要度解析処理103の処理における、パラメータ値重要度の解析例400の説明図である。
パラメータ値重要度の解析例400は、解析対象パラメータ・パラメータ値401とバグ発生率402とパラメータ値重要度403を含み、図5ではバグ発生率402の高い順に解析対象パラメータ・パラメータ値401を表示している。パラメータ値重要度403は、パラメータ値のバグ発生率に応じて定められる、パラメータ値の重要度を示すものである。
解析対象パラメータ・パラメータ値401は、テスト対象パラメータ201とテスト対象パラメータ値202の組み合わせで構成される。
バグ発生率402は、解析対象パラメータ・パラメータ値401を含むテスト項目(実行対象のテスト項目302)のうち、バグを検出したテスト項目(テスト実行結果303が1となった実行対象のテスト項目302)の割合である。
図6は、パラメータ値重要度解析処理103を説明する、重要度解析処理のフローチャート500である。
ステップ501は、解析対象パラメータ・パラメータ値401を読み込む。
ステップ502は、ステップ501で読み込んだパラメータ値ごとに、図4に含まれる実行対象のテスト項目302に出現する数をカウントする。
ステップ503は、ステップ501で読み込んだパラメータ値ごとに、テスト実行結果303が1、すなわちバグを検出した実行対象のテスト項目302に出現する数をカウントする。
ステップ504は、ステップ501で読み込んだパラメータ値ごとに、バグ発生率402を算出する。
ステップ505は、バグ発生率402に従って、パラメータ値重要度403を算出する。本実施例では、バグ発生率402が高いほど、対応する解析対象パラメータ・パラメータ値401はバグ要因の可能性が高いと判断され、パラメータ値重要度403の値は大きくなる。パラメータ値重要度403の値は、大きいほど重要なパラメータ値であることを意味しており、テスト対象パラメータ値202に含まれるパラメータ値の個数分だけ値が設定される。なお、バグ発生率402が等しい解析対象パラメータ・パラメータ値401のパラメータ値重要度403は等しくなる。
以下では、図4のテスト項目とその実行結果の例300を例として、図5のパラメータ値重要度の解析例400のバグ発生率402、及びパラメータ値重要度403の導出過程を示す。
まず、図5の解析対象パラメータ・パラメータ値401のうちA=a1のバグ発生率402を求める場合を考える。ステップ502において、実行対象のテスト項目302の中にa1を含むテスト項目数は、#1,#2,#5,#9,#10,#12の6件とカウントされる。そのうちステップ503において、テスト実行結果303が1となった実行対象のテスト項目302の数は、#2,#5,#9,#10,#12の5件である。よって、ステップ504において、A=a1のバグ発生率402は5/6*100 = 83% と算出される。同様にして、A=a1以外の解析対象パラメータ・パラメータ値401のバグ発生率402は図5に示す通りである。
次に、図5の各解析対象パラメータ・パラメータ値401に対して、パラメータ値重要度403を求める場合を考える。図5の各解析対象パラメータ・パラメータ値401の数は合計9であるため、最も重要度が高い解析対象パラメータ・パラメータ値401のパラメータ値重要度403の値は9となる。バグ発生率402算出の結果、バグ発生率402が最も高い解析対象パラメータ・パラメータ値401はA=a1で、パラメータ値重要度403の値は、最も重要度が高い9であると判定される。
一方、バグ発生率402が最も低い解析対象パラメータ・パラメータ値401はC=c1で、パラメータ値重要度403の値は、最も重要度が低い1であると判定される。
このように求められた解析対象パラメータ・パラメータ値401と、それに対応するパラメータ値重要度403の組み合わせをパラメータ値重要度保持部107に保持する。
図7は、テスト観点決定処理104の処理における、テスト観点決定例600の説明図である。
テスト観点とは、一般的にテスト対象の機能、性能を確認するために、必要となるテストの視点をまとめたものを指す。特に本実施例では、テスト実施の重点箇所と非重点箇所を示したものを指す。これにより、バグ要因の可能性が高い箇所をターゲットにできる。また、バグ要因の可能性が低い箇所を抑制することもできる。
テスト観点601の記述例は、重点箇所602を示す場合と非重点箇所603を示す場合の2種類ある。重点箇所602の場合、テスト観点601は「...に関して重点的にテストする」と記載され、非重点箇所603の場合、テスト観点601は「...に関するテスト項目を抑制する」と記載される。
「...」には、テスト対象パラメータ値202のいずれかの値が代入される。そのテスト対象パラメータ値202は、パラメータ値重要度解析処理103の結果、パラメータ値重要度403が最も高いと判定された解析対象パラメータ・パラメータ値401となる。
例えば図5の場合、パラメータ値重要度403が最も高い解析対象パラメータ・パラメータ値401はA=a1であると判定されたため、テスト観点601は重点箇所602に基づいて「A=a1に関して重点的にテストする」と記載される。
なお、ユーザ判断入力処理102は、ユーザからの入力である、重点箇所602を示すパラメータないしパラメータ値を受け取る。ただし、その入力は必須ではない。パラメータ値の入力がある場合、パラメータ値重要度解析処理103の結果よりも優先して、入力結果のパラメータないしパラメータ値がテスト観点601に反映される。また、パラメータの入力がある場合、そのパラメータに対応するテスト対象パラメータ値202全てに対して同様の処理(例えば、図2のステップ154以降の処理)を行う。
これにより、バグ発生率402から判断したパラメータ値重要度403以外にもテスト観点601を決定可能なため、テスト観点601の決定方法は柔軟性がある。
図8は、テスト項目生成処理105の処理における、テスト項目生成例700の説明図である。
テスト項目生成例700は、テスト項目生成番号701と生成対象のテスト項目702を含む。テスト項目生成処理105は、テスト観点決定処理104の処理で記載されたテスト観点601を基に、テスト項目生成例700を生成する。
例えば図8の場合、テスト観点決定処理104の結果、重点箇所602に基づいたテスト観点601が「A=a1に関して重点的にテストする」と決定したため、A=a1を組み合わせに含むテスト項目が生成対象となり、テスト項目生成番号701が#13から#18までの6件生成される。
ただし、既に存在しているテスト項目(この場合、図4のテスト項目とその実行結果の例300に含まれるテスト項目)は、生成の対象外となる。
図9は、テスト項目抑制処理106を説明する、抑制処理のフローチャート800である。
ステップ801は、テスト項目生成処理105の処理で生成されたテスト項目生成例700を読み込む。
ステップ802は、ステップ801で読み込んだテスト項目生成数と予め設定した上限値とを比較する。生成数が上限値を上回っていない場合(ステップ802;No)、以下のステップ803、804、805の抑制処理を行わずに、フローチャート800を終了する。そうでない場合には(ステップ802;Yes)、ステップ803へ処理を進める。
ステップ803は、これまで抑制対象として選出していないパラメータ値のうち、最もパラメータ値重要度403が低い解析対象パラメータ・パラメータ値401を、非重点箇所603の抑制対象のパラメータ値として選出する。
なお、ユーザ判断入力処理102は、ユーザからの入力である、非重点箇所603を示すパラメータないしパラメータ値も受け取る。ただし、その入力は必須ではない。入力がある場合、パラメータ値重要度解析処理103の結果よりも優先して、入力結果のパラメータないしパラメータ値が抑制対象として選出される。
ステップ804は、ステップ803で選出された抑制対象のパラメータ値を、テスト観点601に反映して修正する。この際、該当するパラメータ値を「...」に当てはめた上で、非重点箇所603に関する記述「...に関するテスト項目を抑制する」をテスト観点601に記載する。
ステップ805は、ステップ804で修正したテスト観点601を基にテスト項目を抑制し、生成するテスト項目数を調整する。この際、ステップ803で選出した抑制対象のパラメータ値以外の組み合わせは網羅できるように抑制する。
図10は、テスト項目抑制処理106の処理における、テスト項目抑制例900の説明図である。テスト項目抑制例900は、テスト項目抑制処理106の結果、図8のテスト項目生成例700のうち、抑制後のテスト項目を示している。
例えば、図9のステップ802において、テスト項目生成処理105後のテスト項目総数は図4と図8と合わせて18で、仮に予め設定したテスト項目数の上限値が16であった場合、ステップ803に進む。
図4において、パラメータ値重要度解析処理103の処理の結果、パラメータ値重要度403が最も低い解析対象パラメータ・パラメータ値401はC=c1であると判定されたため、ステップ803では重要度の低いパラメータ値としてC=c1が選出される。ユーザ判断入力処理102において抑制対象のパラメータないしパラメータ値が入力されない場合、C=c1が抑制対象のパラメータ値となる。
ステップ804では、ステップ803の結果を基に、非重点箇所603に関する記述「C=c1に関するテスト項目を抑制する」をテスト観点601に記載する。
その後ステップ805では、ステップ804の結果を基に、抑制対象のパラメータ値C=c1に関するテスト項目を抑制する。その結果、図8のテスト項目生成例700のうち、テスト項目生成番号701が#13,#15のテスト項目が削除の対象となる。C=c1以外の組み合わせである(A,B)=(a1,b1),(a1,b2)は#14,#16にも存在するため、この2つのテスト項目#13,#15を削除する。
ステップ802の処理に再び進み、テスト項目総数は図4と図10と合わせて16となるため、抑制処理のフローチャート800を終了する。
このように、本実施例では、コンピュータにより行われる処理のテストケースを生成するテストケース生成装置100において、入力項目であるパラメータ値を1つまたは複数含むテスト項目をテスト対象プログラムに与えて実行した結果の入力を受け付けるテスト結果入力処理101と、実行した結果から得られるバグ発生率(例えば、バグ発生率402)に基づいて、パラメータ値ごとにバグ要因の可能性の高さである重要度を算出するパラメータ値重要度解析処理103と、算出された重要度が第1の所定の条件(例えば、最も高い重要度であること)を満たす場合に、当該重要度に対応するパラメータ値を決定し、テストの重点箇所または/および非重点箇所を示すテスト観点に反映するテスト観点決定処理104と、反映されたテスト観点に基づいてテスト項目を生成するテスト項目生成処理105と、生成されたテスト項目の数が閾値を超えていた場合に、第2の所定の条件(例えば、最も低い重要度であること)を満たす重要度に対応するパラメータ値を決定し、決定したパラメータ値をテスト観点の非重点箇所に反映してテスト項目の数を抑制するテスト項目抑制処理106と、を行う演算装置と、抑制された数のテスト項目を出力するテスト項目出力処理110、を行う出力装置と、を有する。したがって、テストの実行結果を基にパラメータ値ごとにバグ要因の可能性を数値化し、テストの重点箇所/非重点箇所を示すテスト観点に反映することで、バグ要因の可能性が高いパラメータ値に関するテスト項目を重点的に生成することができる。また、テスト観点を用いて特定のパラメータ値に焦点を当てたテスト項目の追加・抑制を行うため、個々のパラメータ値の重要度を考慮したテスト項目の生成が可能となり、バグ検出におけるテスト効率向上が見込まれる。
また、上記演算装置は、ユーザから、上記第1の所定の条件を満たすパラメータないしパラメータ値、上記第2の所定条件を満たすパラメータないしパラメータ値、またはその両方の入力を受け付けるユーザ判断入力処理102、を行い、上記テスト観点決定処理において、上記ユーザ判断入力処理で入力されたパラメータないしパラメータ値を基に更新した上記重要度に基づいて、上記テスト観点に反映する上記パラメータ値を決定する。したがって、ユーザ自身が、重要度が高い、または重要度が低いと判断したパラメータないしパラメータ値を入力して、パラメータないしパラメータ値を調整することができる。
本実施例では、直前のテスト結果以外のデータも入力を受け付けるテストケース生成装置の例を説明する。
そのような場合、テスト結果入力処理101は、直前にテストを実行したテスト項目、及び事前に記憶装置に記憶したそれ以外のテスト項目を受け取り、テストの実行結果を記載する。
図11は、実施例2における、テストケース生成装置100の処理を説明するフローチャート250である。図11では、予め用意した初回テスト項目の入力およびテスト結果入力処理101が、直前にテストを実行したテスト項目について行われるステップ(ステップ151-1および152-1)と、事前に記憶装置に記憶したそれ以外のテスト項目について行われるステップ(ステップ151-2および152-2)とにより行われ、それぞれのステップについての終了条件が、ステップ153において判断される。その他の処理は実施例1と同様である。
このように、本実施例では、上記演算装置は、上記テスト結果入力処理において、直前のテスト結果と、過去のテスト結果との入力を受け付け、上記テスト観点決定処理において、上記直前のテスト結果および上記過去のテスト結果の中から得られるバグ発生率に基づいて、上記重要度を算出する。したがって、現時点で行ったテスト結果に加え、過去のテスト結果を考慮して、重要度を定めることができる。
本実施例では、重要度の高いパラメータないしパラメータ値、低いパラメータないしパラメータ値の数を受け付けるテストケース生成装置の例を説明する。
そのような場合、ユーザ判断入力処理102は、重要度の高いパラメータないしパラメータ値の数(M個)、低いパラメータないしパラメータ値の数(N個)を受け付ける。重要度の高いパラメータないしパラメータ値の数(M個)、低いパラメータないしパラメータ値の数(N個)は、以下のように定めることができる。例えば、最も重要度の高いパラメータないしパラメータ値から順に低くなるパラメータないしパラメータ値の数を上記M個とし、最も重要度の低いパラメータないしパラメータ値から順に高くなるパラメータないしパラメータ値の数を上記N個として定めることができる。
また、テスト観点決定処理104は、パラメータ値重要度解析処理103の結果、パラメータ値重要度403が最も高いと判定されたものから順にM個の解析対象パラメータ・パラメータ値401をテスト観点601に反映する。図7では、テスト観点601が1レコード記述される場合を例示したが、本実施例では、Mレコードのテスト観点601が記述されることとなる。
さらに、テスト項目抑制処理106に関して、ステップ803は、これまで抑制対象として選出していないパラメータ値のうち、最もパラメータ値重要度403が低いものから順にN個の解析対象パラメータ・パラメータ値401を、非重点箇所603の抑制対象のパラメータ値として選出する。その後、ステップ804は、ステップ803で選出したN個の解析対象パラメータ・パラメータ値401をテスト観点601に反映する。図7では、テスト観点601が1レコード記述される場合を例示したが、本実施例では、Nレコードのテスト観点601が記述されることとなる。上記以外の処理に関しては、実施例1と同様である。
このように、本実施例では、上記演算装置は、上記ユーザ判断入力処理において、上記第1の所定の条件として一定の閾値以上、上記重要度が高いパラメータないしパラメータ値の数(例えば、上記M個)の入力を受け付け、上記第2の所定の条件として一定の閾値以上、上記重要度が低いパラメータないしパラメータ値の数(例えば、上記N個)の入力を受け付け、上記テスト観点決定処理において、上記ユーザ判断入力処理で入力された数のパラメータないしパラメータ値を基に更新した上記重要度に基づいて、上記テスト観点に反映する上記パラメータ値を決定する。したがって、最も重要度が高いものあるいは最も重要度が低いものから順に複数のパラメータないしパラメータ値をテスト観点に反映することができる。
本実施例では、パラメータ値重要度の決定方法に関して、パラメータ値の複数の組合せも考慮するテストケース生成装置の例を説明する。
そのような場合、パラメータ値重要度解析処理103に関して、解析対象パラメータ・パラメータ値401は、テスト対象パラメータ201とテスト対象パラメータ値202の組み合わせを複数用いて構成される。バグ発生率402、パラメータ値重要度403は、実施例1と同様の手順で導出される。例えば、解析対象パラメータ・パラメータ値401がA=a1かつB=b1である解析対象パラメータ・パラメータ値の組み合わせについて、バグ発生率402、パラメータ値重要度403を算出してもよい。その他の処理は、実施例1と同様である。
このように、本実施例では、上記演算装置は、上記パラメータ値重要度解析処理において、一のパラメータ値(例えば、図5における「A=a1」)と他の一のパラメータ値(例えば、図5における「B=b1」)との組み合わせ(例えば、上記「A=a1」かつ上記「B=b1」である組み合わせ)において上記重要度を算出する。例えば、上記「A=a1」のバグ発生率「83%」と、上記「B=b1」のバグ発生率「75%」との平均値を用いて、上記重要度を算出する。これにより、バグ発生率を複数のパラメータ値により平準化したうえで重要度を算出することができる。
本実施例では、ユーザからの入力としてパラメータないしパラメータ値の入力ではなく、ソースコードを入力するテストケース生成装置の例を説明する。
そのような場合、ユーザ判断入力処理102は、ユーザからの入力としてソースコードを受け付ける。ソースコードのパス等を解析することで、パラメータないしパラメータ値の重要度を自動的に導出する。その他の処理は実施例1と同様である。
このように、本実施例では、上記演算装置は、上記パラメータ値重要度解析処理において、上記テスト対象プログラムのソースコードを解析し、当該解析結果に基づいて、上記パラメータ値の重要度を判定する。したがって、ユーザがパラメータないしパラメータ値を入力することなく、重要度を判定することができる。また、上記テスト対象プログラムのソースコードが頻繁に修正される場合であっても、当該修正に応じたパラメータないしパラメータ値を入力することなく、ソースコードを読み込んで解析するだけで自動的に上記パラメータ値の重要度を判定することができるようになる。
本実施例では、バグ要因の可能性に加え、さらにテストの網羅率に基づいてパラメータ値の重要度を決定するテストケース生成装置の例を説明する。これは出現頻度の低いパラメータ値に関して、重要度を高くすることでテストケース数を増やすものである。
そのような場合、パラメータ値重要度解析処理103の処理における、パラメータ値重要度の解析例400は、バグ発生率402に加え、さらに網羅率を含めてよい。
網羅率とは、特定のパラメータ値に着目した場合に、考えられる全てのテストケース数のうち、テスト結果入力処理101に入力されたテストケース数の割合である。
例えば、解析対象パラメータ・パラメータ値401のうちA=a1の網羅率を求める場合を考える。テスト対象パラメータB,Cの取りうる値の組合せを考えると、A=a1を含む全てのテストケースは1*3*4=12件である。そのうち、図4においてA=a1を含むテストケースは#1,#2,#5,#9,#10,#12の6件である。よって、A=a1の網羅率は6/12*100=50%となる。同様にして、他の解析対象パラメータ・パラメータ値401の網羅率も算出可能である。また、網羅率が低い解析対象パラメータ・パラメータ値401のパラメータ値重要度403を高くする。例えば、本実施例では、バグ発生率402と上記網羅率とを掛け合わせて得られる値の大きさが大きいほど重要度を高くする一方、当該値の大きさが小さいほど重要度を低くする、というように重要度を決定することができる。その他の処理は実施例1と同様である。
このように、本実施例では、上記演算装置は、上記パラメータ値重要度解析処理において、テストの網羅率が低いパラメータ値の重要度を高くする。したがって、テストの網羅率を考慮してパラメータ値の重要度を定めることができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する事によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD (Solid State Drive) 等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
100 テストケース生成装置
101 テスト結果入力処理
102 ユーザ判断入力処理
103 パラメータ値重要度解析処理
104 テスト観点決定処理
105 テスト項目生成処理
106 テスト項目抑制処理
107 パラメータ値重要度保持部
108 ユーザ判断保持部
109 テスト観点保持部
110 テスト項目出力処理

Claims (8)

  1. コンピュータにより行われる処理のテストケースを生成するテストケース生成装置であって、
    入力項目であるパラメータ値を1つまたは複数含むテスト項目をテスト対象プログラムに与えて実行した結果の入力を受け付けるテスト結果入力処理と、
    前記実行した結果から得られるバグ発生率に基づいて、前記パラメータ値ごとにバグ要因の可能性の高さである重要度を算出するパラメータ値重要度解析処理と、
    算出された前記重要度が第1の所定の条件を満たす場合に、当該重要度に対応するパラメータ値を決定し、テストの重点箇所または/および非重点箇所を示すテスト観点に反映するテスト観点決定処理と、
    反映された前記テスト観点に基づいてテスト項目を生成するテスト項目生成処理と、
    生成された前記テスト項目の数が閾値を超えていた場合に、第2の所定の条件を満たす前記重要度に対応する前記パラメータ値を決定し、決定した前記パラメータ値を前記テスト観点の非重点箇所に反映して前記テスト項目の数を抑制するテスト項目抑制処理と、を行う演算装置と、
    抑制された数の前記テスト項目を出力するテスト項目出力処理、を行う出力装置と、
    を有することを特徴とするテストケース生成装置。
  2. 前記演算装置は、ユーザから、前記第1の所定の条件を満たすパラメータないしパラメータ値、前記第2の所定条件を満たすパラメータないしパラメータ値、またはその両方の入力を受け付けるユーザ判断入力処理、を行い、
    前記テスト観点決定処理において、前記ユーザ判断入力処理で入力されたパラメータないしパラメータ値を基に更新した前記重要度に基づいて、前記テスト観点に反映する前記パラメータ値を決定する、
    ことを特徴とする請求項1に記載のテストケース生成装置。
  3. 前記演算装置は、前記テスト結果入力処理において、直前のテスト結果と、過去のテスト結果との入力を受け付け、
    前記テスト観点決定処理において、前記直前のテスト結果および前記過去のテスト結果の中から得られるバグ発生率に基づいて、前記重要度を算出する、
    ことを特徴とする請求項1に記載のテストケース生成装置。
  4. 前記演算装置は、前記ユーザ判断入力処理において、前記第1の所定の条件として一定の閾値以上、前記重要度が高いパラメータないしパラメータ値の数の入力を受け付け、前記第2の所定の条件として一定の閾値以上、前記重要度が低いパラメータないしパラメータ値の数の入力を受け付け、
    前記テスト観点決定処理において、前記ユーザ判断入力処理で入力された数のパラメータないしパラメータ値を基に更新した前記重要度に基づいて、前記テスト観点に反映する前記パラメータ値を決定する、
    ことを特徴とする請求項2に記載のテストケース生成装置。
  5. 前記演算装置は、前記パラメータ値重要度解析処理において、一のパラメータ値と他の一のパラメータ値との組み合わせにおいて前記重要度を算出する、
    ことを特徴とする請求項1に記載のテストケース生成装置。
  6. 前記演算装置は、前記パラメータ値重要度解析処理において、前記テスト対象プログラムのソースコードを解析し、当該解析結果に基づいて、前記パラメータ値の重要度を判定する、
    ことを特徴とする請求項1に記載のテストケース生成装置。
  7. 前記演算装置は、前記パラメータ値重要度解析処理において、テストの網羅率が低いパラメータ値の重要度を高くする、
    ことを特徴とする請求項1に記載のテストケース生成装置。
  8. コンピュータにより行われる処理のテストケースを生成するテストケース生成方法であって、
    入力項目であるパラメータ値を1つまたは複数含むテスト項目をテスト対象プログラムに与えて実行した結果の入力を受け付け、
    前記実行した結果から得られるバグ発生率に基づいて、前記パラメータ値ごとにバグ要因の可能性の高さである重要度を算出し、
    算出された前記重要度が第1の所定の条件を満たす場合に、当該重要度に対応するパラメータ値を決定し、テストの重点箇所または/および非重点箇所を示すテスト観点に反映し、
    反映された前記テスト観点に基づいてテスト項目を生成し、
    生成された前記テスト項目の数が閾値を超えていた場合に、第2の所定の条件を満たす前記重要度に対応する前記パラメータ値を決定し、決定した前記パラメータ値を前記テスト観点の非重点箇所に反映して前記テスト項目の数を抑制し、
    抑制された数の前記テスト項目を出力する、
    ことを特徴とするテストケース生成方法。
JP2021094820A 2021-06-04 2021-06-04 テストケース生成装置、テストケース生成方法 Pending JP2022186542A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021094820A JP2022186542A (ja) 2021-06-04 2021-06-04 テストケース生成装置、テストケース生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021094820A JP2022186542A (ja) 2021-06-04 2021-06-04 テストケース生成装置、テストケース生成方法

Publications (1)

Publication Number Publication Date
JP2022186542A true JP2022186542A (ja) 2022-12-15

Family

ID=84442385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021094820A Pending JP2022186542A (ja) 2021-06-04 2021-06-04 テストケース生成装置、テストケース生成方法

Country Status (1)

Country Link
JP (1) JP2022186542A (ja)

Similar Documents

Publication Publication Date Title
US20200233736A1 (en) Enabling symptom verification
US11520649B2 (en) Storage mounting event failure prediction
US9959197B2 (en) Automated bug detection with virtual machine forking
JP5432867B2 (ja) 計算機システムの管理方法、及び管理システム
JP6382284B2 (ja) ベクトル推定に基づくグラフ分割を伴う、コンピューティング装置のデータフロープログラミング
CN109344017A (zh) 一种基于机器学习预测内存故障的方法,设备及可读存储介质
US10210296B2 (en) Adaptive bug-search depth for simple and deep counterexamples
US8677304B2 (en) Task-based multi-process design synthesis
JP7218233B2 (ja) プログラム運用システム、プログラム運用方法
JP5419819B2 (ja) 計算機システムの管理方法、及び管理システム
CN114519006A (zh) 测试方法、装置、设备以及存储介质
US8341565B2 (en) Task-based multi-process design synthesis with reproducible transforms
US10102099B2 (en) Performance information generating method, information processing apparatus and computer-readable storage medium storing performance information generation program
US20080244583A1 (en) Conflicting sub-process identification method, apparatus and computer program
CN114880157B (zh) 一种故障注入方法及装置
JP2022186542A (ja) テストケース生成装置、テストケース生成方法
US8392866B2 (en) Task-based multi-process design synthesis with notification of transform signatures
JP2015185027A (ja) ジョブ判別プログラム、装置、及び方法
US20230035666A1 (en) Anomaly detection in storage systems
US20150067252A1 (en) Communicating outstanding maintenance tasks to improve disk data integrity
JP6912104B2 (ja) 試験装置、試験方法及びコンピュータプログラム
US10943621B1 (en) Systems and methods for generating hard drive vibration thresholds
US20240176615A1 (en) Software microservice generation
US11762754B1 (en) Techniques for data log processing, retention, and storage
US11645184B2 (en) Systems and methods for predicting hard drive performance

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240208