(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025024859
(43)【公開日】2025-02-21
(54)【発明の名称】テストケース生成支援装置、及びテストケース生成支援方法
(51)【国際特許分類】
G06F 11/36 20060101AFI20250214BHJP
【FI】
G06F11/36 184
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023129200
(22)【出願日】2023-08-08
(71)【出願人】
【識別番号】000233295
【氏名又は名称】株式会社日立情報通信エンジニアリング
(74)【代理人】
【識別番号】110000176
【氏名又は名称】弁理士法人一色国際特許事務所
(72)【発明者】
【氏名】明神 智之
(72)【発明者】
【氏名】左近 健太
(72)【発明者】
【氏名】佐藤 直人
(72)【発明者】
【氏名】野口 秀人
(72)【発明者】
【氏名】吉田 達哉
(72)【発明者】
【氏名】佐藤 茂実
(72)【発明者】
【氏名】上田 智則
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042HH17
(57)【要約】
【課題】プログラムのテストを効率的に行うことを支援する。
【解決手段】所定のプログラムの実行テストに用いられる、因子及び水準の組み合わせを含むデータであるテストケースの生成を支援する装置であって、複数の、テストケースにおける因子及び水準の組み合わせを規定するデータであるテストポリシを記憶し、テストポリシに基づき生成されるテストケース群を、複数のテストポリシから選択された各テストポリシについて特定し、特定したテストケース群のうち、少なくとも2以上のテストポリシ間で内容が重複しているテストケースである重複テストケースを特定する重複判定処理と、特定した重複テストケースの情報を出力する重複結果出力処理とを実行するテストケース生成支援装置10。
【選択図】
図2
【特許請求の範囲】
【請求項1】
所定のプログラムの実行テストに用いられる、因子及び水準の組み合わせを含むデータであるテストケースの生成を支援する装置であって、
複数の、テストケースにおける因子及び水準の組み合わせを規定するデータであるテストポリシを記憶する記憶装置、及び、
テストポリシに基づき生成されるテストケース群を、前記複数のテストポリシから選択された各テストポリシについて特定し、特定したテストケース群のうち、少なくとも2以上のテストポリシ間で内容が重複しているテストケースである重複テストケースを特定する重複判定処理と、
前記特定した重複テストケースの情報を出力する重複結果出力処理とを実行する制御装置
を備える、テストケース生成支援装置。
【請求項2】
前記制御装置は、前記複数のテストポリシの情報に基づき、少なくとも2以上のテストポリシ間で内容が重複しているテストケースの数が、前記重複テストケースの数よりも少なくなるような、テストポリシの他の組み合わせを特定し、特定したテストポリシの他の組み合わせの情報を出力するテストポリシ探索処理を実行する、
請求項1に記載のテストケース生成支援装置。
【請求項3】
前記記憶装置は、テストケースの数の最大値を記憶し、
前記制御装置は、前記テストポリシ探索処理において、前記特定したテストポリシの他の組み合わせに基づき生成されるテストケースのうち、前記テストポリシの組み合わせにおける各テストポリシ間で互いにその内容が異なるテストケースの数を特定し、特定したテストケースの数が前記最大値を超えない場合に、前記特定したテストポリシの他の組み合わせの情報を出力する、
請求項2に記載のテストケース生成支援装置。
【請求項4】
前記制御装置は、各前記テストポリシの間の、生成されるテストケースに関する包含関係を特定し、特定した包含関係の情報を出力するルール判定処理を実行する、
請求項1に記載のテストケース生成支援装置。
【請求項5】
前記制御装置は、各前記テストポリシについて、テストポリシから生成されるテストケースにおける因子の組み合わせを特定し、因子の組み合わせが同一であるテストポリシの組み合わせの情報を出力するルール判定処理を実行する、
請求項1に記載のテストケース生成支援装置。
【請求項6】
所定のプログラムの実行テストに用いられる、因子及び水準の組み合わせを含むデータであるテストケースの生成を支援する、制御装置及び記憶装置を備える情報処理装置による方法であって、
前記記憶装置は、複数の、テストケースにおける因子及び水準の組み合わせを規定するデータであるテストポリシを記憶し、
前記制御装置は、
テストポリシに基づき生成されるテストケース群を、前記複数のテストポリシから選択された各テストポリシについて特定し、特定したテストケース群のうち、少なくとも2以上のテストポリシ間で内容が重複しているテストケースである重複テストケースを特定する重複判定処理と、
前記特定した重複テストケースの情報を出力する重複結果出力処理とを実行する
テストケース生成支援方法。
【請求項7】
前記制御装置は、前記複数のテストポリシの情報に基づき、少なくとも2以上のテストポリシ間で内容が重複しているテストケースの数が、前記重複テストケースの数よりも少なくなるような、テストポリシの他の組み合わせを特定し、特定したテストポリシの他の組み合わせの情報を出力するテストポリシ探索処理を実行する、
請求項6に記載のテストケース生成支援方法。
【請求項8】
前記記憶装置は、テストケースの数の最大値を記憶し、
前記制御装置は前記テストポリシ探索処理において、前記特定したテストポリシの他の組み合わせに基づき生成されるテストケースのうち、前記テストポリシの組み合わせにおける各テストポリシ間で互いにその内容が異なるテストケースの数を特定し、特定したテストケースの数が前記最大値を超えない場合に、前記特定したテストポリシの他の組み合わせの情報を出力する、
請求項7に記載のテストケース生成支援方法。
【請求項9】
前記制御装置は、各前記テストポリシの間の、生成されるテストケースに関する包含関係を特定し、特定した包含関係の情報を出力するルール判定処理を実行する、
請求項6に記載のテストケース生成支援方法。
【請求項10】
前記制御装置は、各前記テストポリシについて、テストポリシから生成されるテストケースにおける因子の組み合わせを特定し、因子の組み合わせが同一であるテストポリシの組み合わせの情報を出力するルール判定処理を実行する、
請求項6に記載のテストケース生成支援方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、テストケース生成支援装置、及びテストケース生成支援方法に関する。
【背景技術】
【0002】
ソフトウェアの開発工程が複雑化している近年では、開発されたソフトウェアが正しく動作をするかどうかをテストするためのテスト工程の重要性が増している。テスト工程では、様々な実行条件を想定した網羅的なテストが行われることが好ましい。一方で、ソフトウェアの規模が大きければ作業項目もそれに従って増大する。プログラムには重点的にチェックすべき箇所とそうでない箇所が混在しているため、単に網羅性を考慮するだけでは開発効率を損ねるおそれもある。
【0003】
ソフトウェアのテストを行うための技術としては、例えば特許文献1には、組み合わせを行う第1のテストケースと、第2のテストケースとを受け付け、第1および第2のテストケースに共通する共通変数を抽出し、第1のテストケースにおいて、抽出された共通変数を含む条件節の出現パターンを抽出し、抽出された出現パターンごとに、少なくとも1つの代表テストケースを抽出し、第1のテストケースにおいて出現パターンごとに抽出された代表テストケースと、第2のテストケースとを組み合わせて新たなテストケースを生成する処理をコンピュータが実行するテストケース生成方法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1では、ソフトウェアが規模が大きくなると多数のテストケースが生成されることとなる。すると、プログラムのテストには必ずしも必要が高くないテストケースが含まれることがある。これにより、テストケースの管理が煩雑になり、逆に必要なテストケースが行われなくなるおそれもある。プログラムのテストは、なるべく必要なもののみが行われることが好ましい。
【0006】
本発明は、このような背景に鑑みてなされたものであり、その目的は、プログラムのテストを効率的に行うことを支援することが可能なテストケース生成支援装置、及びテストケース生成支援方法を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するための本発明の一つは、所定のプログラムの実行テストに用いられる、因子及び水準の組み合わせを含むデータであるテストケースの生成を支援する装置であって、複数の、テストケースにおける因子及び水準の組み合わせを規定するデータであるテストポリシを記憶する記憶装置、及び、テストポリシに基づき生成されるテストケース群を、前記複数のテストポリシから選択された各テストポリシについて特定し、特定したテストケース群のうち、少なくとも2以上のテストポリシ間で内容が重複しているテストケースである重複テストケースを特定する重複判定処理と、前記特定した重複テストケースの情報を出力する重複結果出力処理とを実行する制御装置を備える、テストケース生成支援装置である。
【発明の効果】
【0008】
本発明によれば、プログラムのテストを効率的に行うことを支援することができる。
上記した以外の構成及び効果等は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0009】
【
図1】本実施形態に係るテストケース生成支援システムの構成の一例を示す図である。
【
図2】テストケース生成支援装置が備える機能の一例を説明する図である。
【
図4】テストポリシルールテーブルの一例を示す図である。
【
図5】テストケース生成支援装置が有するハードウェアの一例を示す図である。
【
図6】テストケース生成支援処理の一例を説明するフロー図である。
【
図9】テストケース記録部が記憶する情報の一例を示す図である。
【
図10】重複テストケース表示画面の一例を示す図である。
【
図11】重複テストケース表示画面の他の一例を示す図である。
【
図12】テストポリシ候補記録部が記憶するテストポリシ組み合わせ候補の情報の一例を示す図である。
【
図13】テストポリシ候補表示画面の一例を示す図である。
【
図14】テストポリシ候補表示画面のテストケース表示欄の他の一例を示す図である。
【
図15】テストポリシ候補表示画面の他の一例を示す図である。
【
図16】テストポリシチェック処理の一例を説明するフロー図である。
【
図17】第1テストポリシ情報と第1テストポリシルールとに基づく処理の一例を説明する図である。
【
図18】第1テストポリシ情報と第1テストポリシルールとに基づく処理の結果、ユーザ端末の画面に表示される画面の一例を示す図である。
【
図19】第2テストポリシ情報と第2テストポリシルールとに基づく処理の一例を説明する図である。
【
図20】第2テストポリシ情報と第2テストポリシルールとに基づく処理の結果、ユーザ端末の画面に表示される画面の一例を示す図である。
【発明を実施するための形態】
【0010】
本発明の実施の形態について、図面を参照しつつ説明する。
本実施形態のテストケース生成支援システムは、例えば開発中のプログラム(以下、対象プログラムという)に対して行う実行テストの内容を規定する、因子(変数)及び水準(値)の組み合わせを含むデータであるテストケースを生成する。この際、テストケース生成支援システムは、テストケースの生成基準を規定したデータである複数のテストポリシを用いてテストケース群(テストケースは各テストポリシに対して複数生成される場合がある)をそれぞれ生成する。
【0011】
さらに、本実施形態のテストケース生成支援システムは、各テストポリシにより生成されるテストケース群の間で重複するテストケースがないかを探索し、重複するテストケースに関する情報を表示すると共に、なるべく重複が少なくなるような、他のテストポリシの組み合わせ(テストポリシ組み合わせ候補)の情報を表示する。
【0012】
また、テストケース生成支援システムは、テストポリシの間で、生成されるテストケース群に関して対象プログラムの実行テストの効率化を妨げるような重複以外の不具合要素がないか(例えば、不要なテストポリシが含まれていないか)をチェックする。
【0013】
これらの機能により、テストポリシの削減による保守性の向上、テストケースの生成時間の短縮、及び、テストケースの増加による不具合の見逃しの防止等が図られる。
【0014】
なお、対象プログラムの言語の種類は特に限定されない。また、対象プログラムの内容は、変数を用いた処理を行うものであれば特に限定されない。
【0015】
ここで、
図1は、本実施形態に係るテストケース生成支援システム1の構成の一例を示す図である。テストケース生成支援システム1は、ユーザ端末20及びテストケース生成支援装置10を含んで構成される。ユーザ端末20及びテストケース生成支援装置10の間は、例えば、インターネット、LAN(Local Area Network)、WAN、又は又は専用線等の有線又は無線の通信ネットワーク5により通信可能に接続される。
【0016】
ユーザ端末20は、テストケースを生成して対象プログラムの実行テストを行うユーザが使用する情報処理装置である。テストケース生成支援装置10は、ユーザ端末20からの指示に基づいて、テストケースを生成し、不要な(矛盾又は重複等する)テストケースに関する情報をユーザ端末20に表示させる情報処理装置である。
【0017】
図2は、テストケース生成支援装置10が備える機能の一例を説明する図である。テストケース生成支援装置10は、組み合わせ生成プログラム110、テストポリシ候補探索プログラム120、及びテストポリシルールチェックプログラム130を記憶している。
【0018】
このうち組み合わせ生成プログラム110は、テストポリシ入力部111、テストポリシ記録部112、テストケース生成部113、因子水準記憶部114、及びテストケース記録部115を有する。
【0019】
テストポリシ入力部111は、複数のテストポリシ及び、テストポリシにより生成するテストケースの最大数(テストケース最大数)を設定する。テストポリシ記録部112は、これらのテストポリシを後述するテストポリシ情報700に記憶する。
【0020】
本実施形態では、テストポリシには、全網羅、流し網羅、N因子網羅、及び単純網羅があるものとする。
【0021】
全網羅は、全ての因子と全ての水準の組み合わせをそれぞれテストケースとして生成するポリシである。
【0022】
流し網羅は、複数の因子のうち所定の因子(以下、軸という)については水準を固定し、その他の因子(以下、相手という)については、当該因子と全ての水準の組み合わせを設定したテストケースをそれぞれ生成するポリシである。
【0023】
N因子網羅(N=1,2,・・・)は、複数の因子のうちN種類の因子について、当該因子及び全ての水準の組み合わせをそれぞれテストケースとして生成するポリシである。
【0024】
単純網羅は、複数の因子のうち所定の因子(例えば、他の因子と独立した関係にある因子)については、所定の水準のみをテストケースに設定するポリシである。
【0025】
次に、因子水準記憶部114は、対象プログラムの変数(因子)及びその変数の値(水準)の取り得る組み合わせを記憶した因子水準情報を記憶する。因子水準情報の詳細は後述する。
【0026】
テストケース生成部113は、テストポリシ入力部111で設定した複数のテストポリシから選択された各テストポリシについて、因子水準情報に基づき、各テストポリシから生成される複数のテストケース(テストケース群)を特定する。テストケース記録部115は、生成されるテストケース群の情報を記憶する。
【0027】
次に、テストポリシ候補探索プログラム120は、重複判定部121、重複結果記録部122、重複結果表示部123、テストポリシ探索部124、テストポリシ候補記録部125、及びテストポリシ候補表示部126を備える。
【0028】
重複判定部121は、テストケース生成部113で特定したテストケース群のうち、少なくとも2以上のテストポリシ間で内容が重複しているテストケースである重複テストケースを特定する。重複結果記録部122は、特定されたテストケースの情報を記憶する(テストポリシ情報700)。
【0029】
テストポリシ探索部124は、テストポリシ記録部112が記憶しているテストポリシ情報に基づき、少なくとも2以上のテストポリシ間で内容が重複しているテストケースの数が、重複判定部121で特定した重複テストケースの数よりも少なくなるような、テストポリシの他の組み合わせ(テストポリシ組み合わせ候補)を特定し、特定したテストポリシの他の組み合わせの情報を出力する。テストポリシ候補記録部125は、特定されたテストポリシの組み合わせの情報を記憶する。
【0030】
また、テストポリシ探索部124は、上記特定した他のテストポリシの組み合わせ(テストポリシ組み合わせ候補)に基づき生成されるテストケースのうち、互いにその内容が異なるテストケースの数(ユニークなテストケースの数)を特定し、特定したテストケースの数が、上記のテストケース最大値を超えない場合に、上記特定した他のテストポリシの組み合わせの情報を出力する。テストポリシ候補表示部126は、特定したテストポリシの組み合わせ(テストポリシ組み合わせ候補)の情報を表示する。
【0031】
次に、テストポリシルールチェックプログラム130は、テストポリシルール入力部131、テストポリシルール記録部132、ルール判定部133、ルール判定結果記録部134、及びルール判定結果表示部135を有する。
【0032】
テストポリシルール入力部131は、複数のテストポリシ間の制約(以下、テストポリシルールという)を設定する。テストポリシルール記録部132は、設定したテストポリシルールを、後述するテストポリシルールテーブルに400記憶する。
【0033】
ルール判定部133は、テストポリシルールテーブル400に基づき、各テストポリシの間の、生成されるテストケースに関する包含関係を特定する。すなわち、ルール判定部133は、一方のテストポリシが他方のテストポリシを実質的に包含している結果、他方のテストポリシが不要でないかを判定する。
【0034】
また、ルール判定部133は、テストポリシから生成されるテストケースにおける因子の組み合わせを、流し網羅に係る各テストポリシについて特定する。
【0035】
ルール判定結果記録部134は、ルール判定部133の処理結果を記憶する。
【0036】
ルール判定結果表示部135は、ルール判定部133で特定した包含関係の情報を表示する。
【0037】
また、ルール判定結果表示部135は、ルール判定部133で特定した、因子の組み合わせが同一であるテストポリシの情報を出力する。すなわち、ルール判定結果表示部135は、軸と相手を入れ替えた関係にある、流し網羅に係るテストポリシの組み合わせの情報を出力する。
【0038】
(因子水準情報)
ここで、
図3は、因子水準情報300の一例を示す図である。因子水準情報300は、テストケースに設定可能な因子301(対象プログラムに存在する変数)、及び、テストケースに設定可能な因子の水準(対象プログラムの変数に対して設定可能な値)が設定される各水準302の情報を含む。
【0039】
(テストポリシルールテーブル)
図4は、テストポリシルールテーブル400の一例を示す図である。テストポリシルールテーブル400は、各テストポリシルールの番号が設定されるルール番号401、及び、各テストポリシルールの内容が設定されるルール402、及び、各テストポリシルールの説明文章が設定される説明403の各データ項目を有する。
【0040】
同図の例では、テストポリシルールは、一方のテストから生成されるテストケースが、他方のテストポリシから生成されるテストケースを完全に包含してはならないという第1テストポリシルール404、及び、一方の流し網羅に係るテストポリシにおける軸及び相手が、他方の流し網羅に係るテストポリシにおける軸及び相手を入れ替えただけのものではってはならないという第2テストポリシルール405を含む。
【0041】
図5は、テストケース生成支援装置10が有するハードウェアの一例を示す図である。テストケース生成支援装置10は、CPU(Central Processing Unit)等のプロセッサ11(制御装置)と、RAM(Random Access Memory)、又はROM(Read Only Memory)等のメモリ12と、HDD(Hard Disk Drive)、又はSSD(Solid State Drive)等の記憶装置13と、キーボード、マウス、タッチパネル等の入力装置14と、ディスプレイ等の出力装置15と、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、又はシリアル通信モジュール等で構成される通信装置16とを備える。なお、ユーザ端末20も同様のハードウェア構成を備える。
【0042】
以上に説明した、テストケース生成支援システム1における各情報処理装置の機能部の機能は、プロセッサが、メモリ又は記憶装置からプログラムを読み出すことにより実現される。また各プログラムは、例えば、可搬性の又は固定された記録媒体に記録して配布することができる。なお、これらのプログラムは、その全部または一部が、例えば、クラウドシステムによって提供される仮想サーバのように、仮想化技術やプロセス空間分離技術等を用いて提供される仮想的な情報処理資源を用いて実現されるものであってもよい。また、これらのプログラムの全部または一部は、例えば、クラウドシステムがAPI (Application Programming Interface)等を介して提供するサービスによって実現してもよい。
次に、テストケース生成支援システム1で行われる処理について説明する。
【0043】
図6は、テストポリシに基づき生成されるテストケースにおける重複テストケースに関する情報を出力するテストケース生成支援処理の一例を説明するフロー図である。テストケース生成支援処理は、例えば、ユーザ端末20から所定の指示入力が行われたことを契機に開始される。
【0044】
まず、テストケース生成支援装置10のテストポリシ入力部111は、テストポリシを設定する(s11:No)。例えば、テストポリシ入力部111は、ユーザからテストポリシの入力を受け付け、又は、他の情報処理装置からテストポリシの情報を受信する。テストポリシ記録部112は、設定されたテストポリシをテストポリシ情報700に記憶する。
【0045】
図7、8は、テストポリシ情報700の例を示す図である。テストポリシ情報700は、1又は複数のテストポリシの情報を有している。1のテストポリシからは、1又は複数のテストケース(因子及び水準の組み合わせ)が生成可能である。テストポリシ情報700は、テストポリシごとに割り当てられたテストポリシ番号701と、そのテストポリシ(テストケースの生成方法)の内容702とを含む。
【0046】
(第1ポリシ情報)
図7に示すテストポリシ情報(以下、第1テストポリシ情報700Aという)は、因子X,Y,Zの間の2因子網羅によりテストケースを生成する第1テストポリシ711、因子Xの水準は固定し因子Y,Zはそれぞれ取りうる水準の全ての組み合わせを生成することでテストケースを生成する第2テストポリシ712、及び、因子Yの水準は固定し因子X,Zはそれぞれ取りうる水準の全ての組み合わせを生成することでテストケースを生成する第3テストポリシ713の各テストポリシを有する。
【0047】
(第2ポリシ情報)
図8に示すテストポリシ情報700(以下、第2テストポリシ情報700Bという)は、因子Xの水準は固定し因子Y,Zはそれぞれ取りうる水準の全ての組み合わせを生成することでテストケースを生成する第4テストポリシ714、因子Yの水準は固定し因子X,Zはそれぞれ取りうる水準の全ての組み合わせを生成することでテストケースを生成する第5テストポリシ715、因子Y,Zの水準はそれぞれ固定し因子Xは取りうる全ての水準を組み合わせたテストケースを生成する第6テストポリシ716、因子X,Y,Zの間の全因子網羅によりテストケースを生成する第7テストポリシ717の各テストポリシを有する。
【0048】
次に、
図6に示すように、テストポリシ情報700が設定されると(s11:Yes)、テストケース生成部113は、テストケースの生成を開始する(s12:No)。例えば、テストケース生成部113は、ユーザからテストケースの生成指示の入力を受け付ける。
【0049】
テストケースの生成が開始されると(s12:Yes)、テストケース生成部113は、s11で設定した各テストポリシに対応するテストケースをそれぞれ生成する(s13)。
【0050】
具体的には、テストケース生成部113は、テストポリシ情報700から、対象とするテストポリシを、所定の選択基準に基づき又はユーザからの指定により選択する。テストケース生成部113は、テストポリシ情報700から、選択された各テストポリシの内容702を取得し、取得したテストポリシを満たす因子及び水準の組み合わせ(すなわちテストケース)を、因子水準情報300の各因子301及び水準302の内容を抽出しつつ、生成する。
【0051】
テストケース生成部113は、s13で生成した各テストケースを記憶する(s14)。そして、テストケース生成部113は、少なくとも2以上のテストポリシ間で同じである、因子及び水準の組み合わせすなわちテストケース(以下、重複テストケースという)及び、それ以外のテストケース(以下、ユニークテストケースという)を検索する(s15)。
【0052】
重複テストケースを検索できた場合は(s16:Yes)、重複判定部121は、s17の処理を実行する。重複テストケースを検索できなかった場合は(s16:No)、テストケース生成支援処理は終了する。
【0053】
s17においてテストケース記録部115は、s15で特定した重複テストケースの情報を記憶する。また、重複判定部121は、重複テストケースに関する情報をユーザ端末20の画面に表示させる。
【0054】
図9は、s17の処理によりテストケース記録部115が記憶する情報の一例を示す図である。この情報は、各テストポリシの番号901と、各テストポリシの内容902と、各テストポリシにより生成されるテストケースの数903と、生成されるテストケースのうち他のテストポリシにより生成されるテストケースと重複しているテストケース(重複テストケース)の数904と、生成される全テストケースのうち、重複テストケースにあたらないテストケース(ユニークテストケース)の数905とを含む。
【0055】
図10は、重複テストケースの情報を表示した重複テストケース表示画面の一例を示す図である。
【0056】
同図に示すように、この重複テストケース表示画面1000には、3つのテストポリシA、B、Cのそれぞれに対する、6種類の因子及び水準の組み合わせ(テストケース)の情報が表示される。
【0057】
具体的には、重複テストケース表示画面1000には、各テストポリシについて、そのテストポリシから生成されるテストケースの一覧1003が表示される。因子及び水準が同一のテストケース同士は、同じ高さ(行)で整列して表示される。そして、因子及び水準が同一のテストケース同士を囲う枠1004が表示される。一方、因子又は水準が異なるテストケース同士は、異なる高さ(行)で表示される。
【0058】
また、重複テストケース表示画面1000には、各テストポリシについて、そのテストポリシから生成されるテストポリシの総数1001と、重複テストケースの数1002とが表示される。
【0059】
また、重複テストケース表示画面1000には、全テストポリシにおけるユニークテストケースの数1005及び重複テストケースの数1006が表示される。
【0060】
また、
図11は、重複テストケース表示画面の他の一例を示す図である。この重複テストケース表示画面1100には、各因子1101に対する各水準の組み合わせが各高さ(行)で表示されると共に、その因子1101及び水準の組み合わせによるテストケースを生成するテストポリシの番号の一覧1104が、対応する各高さ(行)で表示される。すなわち、テストポリシの番号の一覧1104に2以上のテストポリシの番号が表示されている場合には、そのテストポリシに対応するテストケースが重複テストケースである。重複テストケース表示画面1100には、このような重複テストケースに係る行を囲う枠11105が表示される。
【0061】
また、重複テストケース表示画面1000には、全テストポリシにおけるユニークテストケースの数1106及び重複テストケースの数1107が表示される。
【0062】
次に、
図6に示すようにテストポリシ探索部124は、s15で特定した重複テストケースの数(重複数)よりも重複数が少なくなるようなテストポリシの組み合わせ(以下、テストポリシ組み合わせ候補という)を探索する(s18)。
【0063】
具体的には、テストポリシ探索部124は、テストポリシ情報700の全テストポリシの内容702を取得し、取得した各テストポリシの内容702と、因子水準情報300とに基づき、全てのテストポリシについて全てのテストケースを生成する。テストポリシ探索部124は、全てテストポリシからある組み合わせのテストポリシを選択し、選択した各テストポリシに係る各テストケース間の異同を特定することで、少なくとも2以上のテストポリシで共通しているテストケース(因子及び水準が同じテストケース)がいくつあるか(重複数)を計数する。
【0064】
テストポリシ探索部124は、テストポリシの全ての組み合わせについて、この計数処理を行う。テストポリシ探索部124は、重複数を計数した各テストポリシの組み合わせのうち、s15で特定した重複テストケースの数よりも少ない重複数のテストポリシの組み合わせ(テストポリシ組み合わせ候補)を検索する。
【0065】
なお、ここで説明したテストポリシ組み合わせ候補の特定方法は一例であり、特に限定されない。
【0066】
テストポリシ探索部124は、s18でテストポリシ組み合わせ候補が検索できたか否かを判定する(s19)。テストポリシ組み合わせ候補が検索できた場合には(s19:Yes)、テストポリシ探索部124はs20の処理を実行し、テストポリシ組み合わせ候補が検索できなかった場合には(s19:No)、テストケース生成支援処理は終了する。
【0067】
s20においてテストポリシ探索部124は、s18で特定したテストポリシ組み合わせ候補のうち、テストケース最大数を超えないユニークテストケースを有するテストポリシ組み合わせ候補を特定する。
【0068】
そして、テストポリシ候補記録部125は、s20で特定したテストポリシ組み合わせ候補の情報を記憶する。また、テストポリシ探索部124は、テストポリシ組み合わせ候補の情報を、ユーザ端末20の画面に表示させる(s21)。
【0069】
図12は、テストポリシ候補記録部125が記憶するテストポリシ組み合わせ候補の情報の一例を示す図である。この情報は、テストポリシ組み合わせ候補の番号1201と、そのテストポリシ組み合わせ候補を構成する各テストポリシの情報1202とを含む。
【0070】
(テストポリシ候補表示画面)
図13は、テストポリシ組み合わせ候補を表示したテストポリシ候補表示画面の一例を示す図である。このテストポリシ候補表示画面1300は、テストポリシ組み合わせ候補を表示したテストポリシ候補表示欄1310と、各テストポリシ組み合わせ候補により生成される各テストケースの一覧を表示した、1又は複数のテストケース表示欄1320とを有する。
【0071】
テストポリシ候補表示欄1310には、検索した各テストポリシ組み合わせ候補1311について、そのテストポリシ組み合わせ候補を構成するテストポリシの内容1312が表示される
【0072】
テストケース表示欄1320には、検索した各テストポリシ組み合わせ候補1311について、そのテストポリシ組み合わせ候補1311における各テストポリシに基づき生成されるテストケースの合計数1322と、それらテストケースのうち他のテストポリシにより生成されるテストケースと重複している(因子及び水準が同一である)テストケースの合計数1323とが表示される。
【0073】
そして、テストケース表示欄1320には、テストポリシ組み合わせ候補における各テストポリシから生成されるテストケースの一覧1324が整列して表示される。このテストケースの一覧1324においては、同一の因子及び水準を有するテストケース同士(重複テストケース同士)は、同一の高さで表示される。そして、同一の因子及び水準を有するテストケース同士を囲う枠1325が表示される。
【0074】
また、テストケース表示欄1320には、テストポリシ組み合わせ候補における各テストポリシにより生成されるユニークテストケースの合計数1326及び重複テストケースの合計数1327が表示される。この重複テストケースの合計数1327は、s15で特定した重複テストケースの合計数よりも少なくなっている。
【0075】
図14は、テストポリシ候補表示画面のテストケース表示欄の他の一例を示す図である。このテストケース表示欄1330には、各因子1331に対する各水準の組み合わせが各高さ(行)で表示されると共に、その因子1331及び水準の組み合わせによるテストケースを生成するテストポリシのIDの一覧1332が、対応する各高さ(行)で表示される。すなわち、テストポリシのIDの一覧1332に2以上のテストポリシが表示されている場合には、そのテストポリシに対応するテストケースが重複テストケースである。テストケース表示欄1330には、このような重複テストケースに係る行を囲う枠1333が表示される。
【0076】
(テストポリシ候補表示画面)
図15は、テストポリシ候補表示画面の他の一例を示す図である。このテストポリシ候補表示画面1500におけるテストポリシ候補表示欄1510には、ユニークテストケースの合計数が11であり重複テストケースの合計数が7である第1のテストポリシ組み合わせ候補1511と、ユニークテストケースの合計数が12であり重複テストケースの合計数が0である第2のテストポリシ組み合わせ候補1512とが表示される。
【0077】
ここで、テストケース最大数が11である場合、テストケース表示欄1520には、ユニークテストケースの合計数がテストケース最大数を超えない第1のテストポリシ組み合わせ候補1511により生成されるテストケースの一覧1521のみが表示される。
【0078】
<テストポリシチェック処理>
次に、
図16は、テストケース生成支援処理で設定したテストポリシをチェックするテストポリシチェック処理の一例を説明するフロー図である。テストポリシチェック処理は、例えば、ユーザ端末20から所定の指示入力が行われたことを契機に開始される。
【0079】
まず、テストポリシルール入力部131は、テストポリシをチェックするためのテストポリシルールを設定する(s21:No)。例えば、テストポリシルール入力部131は、ユーザからテストポリシの入力を受け付け、又は、他の情報処理装置からテストポリシの情報を受信する。そして、テストポリシルール記録部132は、設定されたテストポリシをテストポリシルールテーブル400に記憶する。
【0080】
テストポリシルールが設定されると(s21:Yes)、ルール判定部133は、s21で設定したテストポリシルールテーブル400と、テストケース生成支援処理のs11で設定したテストポリシ情報700とに基づき、テストポリシルールに違反するテストポリシの組み合わせを検索する(s22)。
【0081】
ルール判定結果記録部134は、s22で検索した、テストポリシルールに違反するテストポリシの組み合わせに関する情報を記憶する。また、ルール判定部133は、テストポリシルールに違反するテストポリシの組み合わせに関する情報をユーザ端末20の画面に表示させる。
【0082】
図17は、第1テストポリシ情報700Aと第1テストポリシルール404とに基づく処理s22の一例を説明する図である。同図に示すように、第1テストポリシ711により生成されるテストケース群1701と、第2テストポリシ712により生成されるテストケース群1702との間には包含関係はないので、ルール判定部133は、第1テストポリシ711と第2テストポリシ712の組み合わせは第1テストポリシルールに違反しないと判定する。
【0083】
また、第3テストポリシ713により生成されるテストケース群1703は、第1テストポリシ711により生成されるテストケース群1704を完全に包含するので、ルール判定部133は、第3テストポリシ713と第1テストポリシ711の組み合わせは第1テストポリシルール404に違反すると判定する。
【0084】
また、第3テストポリシ713により生成されるテストケース群1705は、第2テストポリシ712により生成されるテストケース群1706を完全に包含するので、ルール判定部133は、第2テストポリシ712と第3テストポリシ713の組み合わせは第1テストポリシルール404に違反すると判定する。
【0085】
図18は、第1テストポリシ情報700Aと第1テストポリシルール404とに基づく処理s22の結果、ユーザ端末20の画面に表示される画面の一例を示す図である。同図に示すように、ユーザ端末20の画面には、第1テストポリシルール404に違反するテストポリシの組み合わせとして、第3テストポリシ713と第1テストポリシ711の組み合わせ、及び、第2テストポリシ712と第3テストポリシ713の組み合わせがある旨が表示される。
【0086】
図19は、第2テストポリシ情報700Bと第2テストポリシルール405とに基づく処理s22の一例を説明する図である。同図に示すように、第4テストポリシ714により生成されるテストケース1901における軸及び相手の因子と、第5テストポリシ7125より生成されるテストケース1902における軸及び相手の因子とは、互いに軸及び相手を入れ替えた関係にない。したがって、ルール判定部133は、第4テストポリシ714と第5テストポリシ715の組み合わせは第2テストポリシルール405に違反しないと判定する。
【0087】
また、第5テストポリシ715により生成されるテストケース1903における軸及び相手の因子と、第6テストポリシ716により生成されるテストケース1904における軸及び相手の因子とは、互いに軸及び相手を入れ替えた関係にない。したがって、ルール判定部133は、第5テストポリシ715と第6テストポリシ716の組み合わせは第2テストポリシルール405に違反しないと判定する。
【0088】
また、第4テストポリシ714により生成されるテストケース1905における軸及び相手の因子と、第6テストポリシ716により生成されるテストケース1906における軸及び相手の因子とは、互いに軸及び相手を入れ替えた関係にある。したがって、ルール判定部133は、第4テストポリシ714と第6テストポリシ716の組み合わせは第2テストポリシルール405に違反すると判定する。
【0089】
図20は、第2テストポリシ情報700Bと第2テストポリシルール405とに基づく処理s22の結果、ユーザ端末20の画面に表示される画面の一例を示す図である。同図に示すように、ユーザ端末20の画面には、第2テストポリシルール405に違反するテストポリシの組み合わせとして、第4テストポリシ714と第6テストポリシ716の組み合わせがある旨が表示される。
【0090】
以上に説明したように、本実施形態のテストケース生成支援装置10は、テストケースにおける因子及び水準の組み合わせを規定するデータであるテストポリシに基づき生成されるテストケース群を各テストポリシについて特定し、特定したテストケース群のうち、少なくとも2以上のテストポリシ間で内容が重複している重複テストケースを特定し、特定した重複テストケースの情報を出力する。
【0091】
このように、本実施形態のテストケース生成支援装置10は、テストケースを複数のテストポリシに基づいてそれぞれ生成した場合に重複して生成されるテストケースの情報を出力する。これにより、ユーザは、テスト工程を冗長にするような不要なテストケース又はテストポリシがあることを発見することができる。これにより、プログラムの効率的な実行テストを行うことができる。
【0092】
以上のように、本実施形態のテストケース生成支援装置10によれば、プログラムのテストを効率的に行うことを支援することができる。
【0093】
また、本実施形態のテストケース生成支援装置10は、テストポリシ情報700に基づき、少なくとも2以上のテストポリシ間で内容が重複しているテストケースの数が、上記重複テストケースの数よりも少なくなるような、テストポリシの他の組み合わせ(テストケース組み合わせ候補)を特定し、特定したテストケース組み合わせ候補の情報を出力する。
【0094】
このように、テストケースの重複がより少なくなるような、テストポリシの他の組み合わせを特定することで、プログラムのより効率的な実行テストを行うことができる。
【0095】
また、本実施形態のテストケース生成支援装置10は、上記特定した他のテストポリシの組み合わせ(テストケース組み合わせ候補)に基づき生成される、そのテストケース組み合わせ候補における各テストポリシ間で互いにその内容が異なるテストケース(ユニークテストケース)の数を特定し、特定したユニークテストケースの数が、テストケースの数の最大値を超えない場合に、そのテストケース組み合わせ候補の情報を出力する。
【0096】
このように、生成されるユニークテストケースが一定数に達しないテストケース組み合わせ候補のみの情報を出力することで、テスト工程が過大となりテストにおける不具合を見逃してしまうことを防止することができる。
【0097】
また、本実施形態のテストケース生成支援装置10は、各テストポリシの間の、生成されるテストケースに関する包含関係を特定し、特定した包含関係の情報を出力する。
【0098】
これにより、一方のテストポリシが他方のテストポリシを包含しており、他方のテストポリシが不要となってテスト工程の冗長につながるようなケースを発見することができる。
【0099】
また、本実施形態のテストケース生成支援装置10は、各テストポリシについて、テストポリシから生成されるテストケースにおける因子の組み合わせを特定し、因子の組み合わせが同一であるテストポリシの組み合わせの情報を出力する。
【0100】
これにより、複数の流し網羅間などでの、軸と相手を入れ替えた関係にあるケースを特定し、テスト工程の冗長につながるようなケースを発見することができる。
【0101】
本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で、任意の構成要素を用いて実施可能である。以上説明した実施形態や変形例はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されるものではない。また、上記では種々の実施形態や変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【0102】
例えば、本実施形態の各装置が備えるハードウェアの一部は、他の装置に設けてもよい。
【0103】
また、各装置の各プログラムは他の装置に設けてもよいし、あるプログラムを複数のプログラムからなるものとしてもよいし、複数のプログラムを一つのプログラムに統合してもよい。
【0104】
また、本実施形態で説明したテストポリシ及びポリシルールは一例であり、その他の種類のテストポリシ及びポリシルールについても、本発明は適用可能である。
【0105】
また、本実施形態では、重複テストケース等の不要なテストケースの情報を画面に表示するものとしたが、これらの不要なテストケース以外のテストケースを実際に生成して記憶し、対象プログラムのテストに使用できるようにしてもよい。
【符号の説明】
【0106】
1 テストケース生成支援システム、10 テストケース生成支援装置、113 テストケース生成部、121 重複判定部、124 テストポリシ探索部、133 ルール判定部