JP2018092374A - テストケース生成装置、及びテストケース生成方法 - Google Patents

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

Info

Publication number
JP2018092374A
JP2018092374A JP2016235350A JP2016235350A JP2018092374A JP 2018092374 A JP2018092374 A JP 2018092374A JP 2016235350 A JP2016235350 A JP 2016235350A JP 2016235350 A JP2016235350 A JP 2016235350A JP 2018092374 A JP2018092374 A JP 2018092374A
Authority
JP
Japan
Prior art keywords
test case
case generation
condition
rule
logical expression
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.)
Granted
Application number
JP2016235350A
Other languages
English (en)
Other versions
JP2018092374A5 (ja
JP6692281B2 (ja
Inventor
伊藤 信治
Shinji Ito
信治 伊藤
佐藤 直人
Naoto Sato
直人 佐藤
秀人 小川
Hideto Ogawa
秀人 小川
智之 明神
Tomoyuki Myojin
智之 明神
努 松尾
Tsutomu Matsuo
努 松尾
久也 平田
Hisaya Hirata
久也 平田
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 Ltd
Original Assignee
Hitachi 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 Ltd filed Critical Hitachi Ltd
Priority to JP2016235350A priority Critical patent/JP6692281B2/ja
Publication of JP2018092374A publication Critical patent/JP2018092374A/ja
Publication of JP2018092374A5 publication Critical patent/JP2018092374A5/ja
Application granted granted Critical
Publication of JP6692281B2 publication Critical patent/JP6692281B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】業務ソフトウェアのテストを効率よく行う。【解決手段】テストケース生成装置は、ルール仕様と、テストケースを生成する範囲に関する情報である範囲条件、及びテストケースの生成の方式を指定する情報である生成方式を含む、一つ以上のテストケース生成条件と、を記憶する情報記憶部と、ルール仕様を表す論理式であるルール仕様論理式を生成するルール仕様論理式生成部と、テストケース生成条件ごとに、テストケースを生成する範囲を表す論理式である範囲条件論理式を生成する範囲条件論理式生成部と、ルール仕様論理式と範囲条件論理式とを論理積によって結合した論理式であるテストケース生成用論理式を生成するテストケース生成用論理式生成部と、テストケース生成用論理式に基づきテストケースを生成するテストケース生成部とを備える。【選択図】図2

Description

本発明は、テストケース生成装置、及びテストケース生成方法に関する。
特許文献1には、「ルール群ネットワークがルートノード、1つ又は複数の中間ノード、及び1つ又は複数の端末ノードを含み、各ノードについて局所的な制限が個別に設定される。生成装置は、ルール群ネットワークを走査して、祖先ノードの局所的な制限と自分の局所的な制限とを組み合わせることで各ノードの大域的な制限を算出する走査部と、端末ノードの大域的な制限に基づいて、テストケースを生成するための事実情報を取得する事実情報取得部と、テストケースに含まれる必要がある事実群と各事実属性の値範囲とを含む事実情報に基づいてテストケースを生成するテストケース生成部とを含む。これにより、ビジネスルール管理システム(BRMS)においてテストケースを自動的に生成できる。」と記載されている。
特開2015−204116号公報
業務(金融、保険、製造、流通、通信、教育、医療等)を支援するソフトウェア(以下、業務ソフトウェアと称する。)は、業務ルール(業務に係る商品やサービス等に関する法的な規制、業務上の規則、基準等。ビジネスルール、システムルール、チェックルール等とも称される。)に従ってその仕様が決定され設計がなされる。上記仕様はIF−THEN形式で記述される情報(以下、ルールと称する。)の集まりであるルール仕様によって整理される。業務ソフトウェアの開発や保守に際しては、上記ルール仕様を基にプログラムが作成され、またルール仕様を基に作成したテストケースをプログラムに与えることによりプログラムがルール仕様通りに作成されていることのテスト(検証)が行われる。
特許文献1では、ルール仕様に基づき一律にテストケースを生成している。しかし業務ソフトウェアの開発や保守の現場では、テストケースの生成に関し、例えば、ルール仕様の変更前と変更後の差分や過去に不具合が発生しているパターン等、プログラムの特定の記述部分や論理についてテストケースの数を増やして重点的にテストを行いたい、プログラムのルール仕様を変更していない記述部分や論理についてはテストケースの数を減らしたい、といった多様なニーズが存在し、こうした要求に効率よく対応する必要がある。
本発明はこうした背景に鑑みてなされたもので、テストケースの生成に関する多様なニーズに柔軟に対応することが可能な、テストケース生成装置、及びテストケース生成方法を提供することを目的とする。
本発明の一つは、業務ルールの仕様を記述したルール仕様に基づき生成されるプログラムのテストに用いるテストケースを生成するテストケース生成装置であって、前記ルール仕様と、テストケースを生成する範囲に関する情報である範囲条件、及びテストケースの生成の方式を指定する情報である生成方式を含む、一つ以上のテストケース生成条件と、を記憶する情報記憶部と、前記ルール仕様を表す論理式であるルール仕様論理式を生成するルール仕様論理式生成部と、前記テストケース生成条件ごとに、テストケースを生成す
る範囲を表す論理式である範囲条件論理式を生成する、範囲条件論理式生成部と、前記ルール仕様論理式と前記範囲条件論理式とを論理積によって結合した論理式であるテストケース生成用論理式を生成するテストケース生成用論理式生成部と、前記テストケース生成用論理式に基づきテストケースを生成するテストケース生成部と、を備える
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。
本発明の実施形態によれば、テストケースの生成に関する多様なニーズに柔軟に対応することができる。
テストケース生成装置のハードウェア構成例を示す図である。 テストケース生成装置が備える機能及びテストケース生成装置が記憶するデータを示す図である。 ルール仕様の一例を示す図である。 ルール仕様が変更される場合の一例を示す図である。 テストケース生成条件情報の一例を示す図である。 テストケースの一例を示す図である。 メイン処理を説明するフローチャートである。 生成方式として「条件網羅」が設定されているテストケース生成条件に基づくテストケース生成処理を説明するフローチャートである。 生成方式として「パス網羅」が設定されているテストケース生成条件に基づくテストケース生成処理を説明するフローチャートである。
以下、図面を参照しつつ実施形態について説明する。尚、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではない。また実施形態において説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1に、一実施形態として示すテストケース生成装置10のハードウェア構成を、図2に、テストケース生成装置10が備える機能及びテストケース生成装置10が記憶するデータを、夫々示している。
テストケース生成装置10は、業務(金融、保険、製造、流通、通信、教育、医療等)を支援するソフトウェア(以下、業務ソフトウェアと称する。)の開発や保守等に利用される情報処理装置(コンピュータ)である。テストケース生成装置10は、クラウドシステムにより提供されるクラウドサーバ等のように仮想的に実現されるものであってもよい。
業務ソフトウェアは、業務ルール(業務に係る商品やサービス等に関する法的な規制、業務上の規則、基準等。ビジネスルール、システムルール、チェックルール等とも称される。)に従ってその仕様が決定され設計がなされる。上記仕様は、いわゆるIF−THEN形式で記述される情報(以下、ルールと称する。)の集まりであるルール仕様によって整理される。上記のルールは、例えば、「もし〜ならば〜である」といった自然文による記述、「IF A=1 AND B=2 THEN R=1」というようにコンピュータにより解釈可能な所定の規則に従った記述、条件と結果の対応関係を表形式で定義した決定表による記述等、様々な形態で表現され得る。
業務ソフトウェアの開発や保守に際しては、上記ルール仕様を基に情報処理装置に実行させるプログラムが作成される。そしてルール仕様を基に作成したテストケースをプログラムに与えることにより、プログラムがルール仕様通りに作成されていることのテスト(検証)が行われる。
テストケース生成装置10は、ルール仕様に基づき生成されるプログラムをテスト(検査)するためのテストケースを生成する。テストケースは、入力条件と、当該入力条件に対して業務ソフトウェアを実行した際に期待される結果(以下、期待結果と称する。)と、を含む。
テストケース生成装置10は、テストケースを生成する範囲に関する条件である範囲条件と当該範囲条件の下で適用するテストケースの生成の方式とを含む情報であるテストケース生成条件をユーザ等から受け付け、ルール仕様と上記テストケース生成条件とに基づき、テストケース生成条件ごとに、テストケースを生成する範囲を表す論理式である範囲条件論理式を生成する。
テストケース生成条件は、当該テストケース生成条件の範囲条件論理式と他のテストケース生成条件の範囲条件論理式との間に重複が有る場合に何れのテストケース生成条件を優先させるかを示す情報(後述する優先度)を含む。テストケース生成装置10は、複数のテストケース生成条件の間の範囲条件論理式の重複の有無を調べ、重複が有る場合は重複が無くなるように範囲条件論理式を修正する。
テストケースの生成に際し、テストケース生成装置10は、ルール仕様を表す論理式であるルール仕様論理式を生成し、生成したルール仕様論理式と範囲条件論理式とを論理積で結合したテストケース生成用論理式を生成する。そしてテストケース生成装置10は、生成したテストケース生成用論理式の充足可能性を判定し、テストケース生成用論理式が充足可能と判定される場合、充足可能となるルール仕様の入力項目の値の組み合せと出力項目の値とを含むデータをテストケースとして生成する。尚、充足可能性の詳細については後述する。
図1に示すように、テストケース生成装置10は、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、及び通信装置16を備える。これらは図示しないバス等の通信手段を介して互いに通信可能に接続されている。
プロセッサ11は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)を用いて構成されている。プロセッサ11が、主記憶装置12に格納されているプログラムを読み出して実行することにより、テストケース生成装置10の様々な機能が実現される。主記憶装置12は、プログラムやデータを記憶する装置であり、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、不揮発性半導体メモリ(NVRAM(Non Volatile RAM))等である。
補助記憶装置13は、例えば、ハードディスクドライブ、SSD(Solid State Drive
)、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等)、ストレージシステム、ICカード、SDメモリカードや光学式記録媒体等の記録媒体の読取/書込装置、クラウドサーバの記憶領域等である。補助記憶装置13に格納されているプログラムやデータは主記憶装置12に随時ロードされる。
入力装置14は、例えば、キーボード、マウス、タッチパネル、カードリーダ、音声入力装置等である。出力装置15は、ユーザに処理経過や処理結果等の各種情報を提供するユーザインタフェースであり、例えば、画面表示装置(液晶モニタ、LCD(Liquid Cry
stal Display)、グラフィックカード等)、音声出力装置(スピーカ等)、印字装置等である。尚、例えば、テストケース生成装置10が通信装置16を介して他の装置との間で情報の入力や出力を行う構成としてもよい。
通信装置16は、LANやインターネット等の通信手段を介した他の装置との間の通信を実現する有線方式又は無線方式の通信インタフェースであり、例示すれば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、シリアル通信モジュール等である。
図2に示すように、テストケース生成装置10は、テストケース設定編集部110、ルール仕様論理式生成部111、範囲条件論理式生成部112、テストケース生成用論理式生成部113、テストケース生成部114、及び情報記憶部150の各機能(処理部、機能部)を備える。これらの機能は、例えば、プロセッサ11が、主記憶装置12や補助記憶装置13に格納されているプログラムを読み出して実行することにより実現される。またこれらの機能は、例えば、テストケース生成装置10が備えるハードウェア(ASIC(Application Specific Integrated Circuit)等)によって実現される。
情報記憶部150は、ルール仕様151、テストケース生成条件情報152、及びテストケース153を、補助記憶装置13に記憶する。これらの情報の詳細については後述する。情報記憶部150は、これらの情報以外にも、テストケース設定編集部110やテストケース生成部114が適宜参照もしくは生成する情報等を記憶する。情報記憶部150は、補助記憶装置13に記憶する情報を、例えば、ファイルシステムやDBMS(DataBase Management System)によって管理する。
テストケース設定編集部110は、ユーザが入力装置14及び出力装置15を介してテストケース生成条件情報152等の各種設定(登録、変更、削除)を行う際のユーザインタフェースを提供する。
ルール仕様論理式生成部111は、ルール仕様151を表す論理式であるルール仕様論理式を生成する。
範囲条件論理式生成部112は、テストケース生成条件ごとに、テストケースを生成する範囲を表す論理式である範囲条件論理式を生成する。
テストケース生成用論理式生成部113は、ルール仕様論理式と範囲条件論理式とを論理積によって結合した論理式であるテストケース生成用論理式を生成する。
テストケース生成部114は、テストケース生成用論理式に基づきテストケースを生成する。尚、テストケース生成部114が生成したテストケースは情報記憶部150がテストケース153として補助記憶装置13に記憶する。
図3に情報記憶部150が記憶するルール仕様151の一例を示している。同図に示すように、例示するルール仕様151は、識別子(以下、IDと表記することがある。)として、「RS1」が付与されたルール群(名称:ランク判定)と、識別子として「RS2」が付与されたルール群(名称:割引率判定)とを含む。以下、上記ルール群のことをルールセットと称する。また各ルールセットは、ルールセットRS1、ルールセットRS2等と表記して区別する。同図に示すように、ルールセットRS1は、夫々R1〜R3の識別子が付された3つのルールを含む。ルールセットRS2は、夫々R1〜R5の識別子が付された5つのルール(以下、各ルールをルールR1、ルールR2、・・・と表記する。)を含む。
各ルールは、IF−THEN形式における記述のIF節に相当する条件部と、IF−THEN形式の記述におけるTHEN節に相当する結果部とを含む。例えば、ルールセットRS1のルールR1は「IF Amount<20000 THEN Rank=Regular」との内容であり、条件部は「Amount<20000」、結果部は「Rank=Regular」である。
以下の説明において、ルールの条件部に記述されている変数のことを入力項目と称し、結果部に記述されている変数のことを出力項目と称する。また入力項目に設定される具体的な値のことを入力値と称し、出力項目に設定される具体的な値のことを出力値と称する。図3の例の場合、ルールセットRS1のルールR1には入力項目として「Amount」が、出力項目として「Rank」が記述されている。またルールセットRS1のルールR1の場合、入力項目「Amount」に設定される値が入力値であり、出力項目「Rank」に設定される値である「Regular」が出力値である。入力値や出力値は必ずしも数値であるとは限らず、文字や文字列等の数値以外で表されるものであってもよい。
図3の例では、ルールセットRS1の出力項目である「Rank」は、ルールセットRS2の入力項目の一つとして用いられている。またルールセットRS2の入力項目のように、ルールセット及びルールの入力項目は一つとは限らない。入力項目が複数である場合、個々の入力項目の条件式は、論理演算子(AND、OR等)で結合される。例えば、図3のルールセットRS2では論理演算子「AND」で条件式が結合されている。
複数種の出力項目に共通する(共用できる)ルールがある場合、一つのルールセットに複数種の出力項目をもたせることも可能である。しかしルールセットに複数種の出力項目をもたせると、例えば、業務規則等が変更された際のルールの変更が煩雑になる。そこでルールセットの意味の分かり易さやルールの変更の容易さ等の観点から、本実施形態では同じルールセットに含まれる各ルールの出力項目を同一としている。例えば、ルールセットRS1の各ルールの出力項目は同じ「Rank」としている。
同じルールセットに含まれるルールの入力項目に設定される入力値は、いずれか一つのルールの条件部を真とする(成立させる)。例えば、ルールセットRS1の入力項目「Amount」に設定される入力値は、ルールR1〜R3のいずれか一つの条件部を真とする。
ルール仕様151は、業務ソフトウェアの開発や保守に際し適宜変更され得る。テストケース生成装置10は、ルール仕様151をバージョン別に管理している。テストケース生成装置10が記憶する各ルール仕様151には夫々のバージョンを示す情報(以下、バージョン情報と称する。)が付帯する。
図4に、バージョン情報が「V1」のルール仕様151(以下、ルール仕様V1とも称する。)、及びルール仕様V1を更新したバージョン情報が「V2」のルール仕様151(以下、ルール仕様V2とも称する。)の組を例示している。同図においてルール仕様V2に下線を付して示した部分がルール仕様V1とルール仕様V2の差分である。
本例では、ルール仕様V2に下線で示しているように、ルールセットRS1のルールR3の入力項目「Amount」に上限が追加され、ルールセットRS1の出力値に「Platinum」を出力する内容のルールR4が追加されている。またルールセットRS2のルールR1の条件部が変更され、ルールR4がルールセットRS2の入力項目として「Platinum」を用いる内容に変更され、「Rank」に「Platinum」を設定するルールR6が追加されている。
図5は、情報記憶部150が記憶するテストケース生成条件情報152の一例である。同図に示すように、テストケース生成条件情報152は、テスト対象1521、テスト種別1522、条件ID1523、範囲条件1524(範囲種別15241、テスト範囲15242を含む。)、生成方式1525、境界値ケース要否1526、及び優先度1527の各項目を有する。
テスト対象1521には、テスト対象となるルールセットの識別子が設定される。例えば、ルール仕様151が図3に示す内容である場合、テスト対象1521には「RS1」や「RS2」が設定される。図5の例ではテスト対象1521に「RS2」が設定されており、従って当該テストケース生成条件情報152は識別子が「RS2」のルールセットに関するものということになる。
テスト種別1522には「単体」又は「結合」のいずれかが設定される。テスト種別1522に「単体」が設定されている場合、テストケース生成装置10は、当該テストケース生成条件情報152に基づき、ルールセットごとに独立したテストケースを生成する。例えば、図3の例では、ルールセットRS2の入力項目の1つにルールセットRS1の出力項目「Rank」が含まれているが、テストケース生成装置10は、テストケースの生成に際しルールセットRS1を考慮せず、従ってこの場合、入力条件に含まれる入力項目は「Age」と「Rank」となる。
一方、テスト種別1522に「結合」が設定されている場合、テストケース生成装置10は、同じルール仕様151に属する複数のルールセットの関連を考慮したテストケースを生成する。例えば、図3の例では、ルールセットRS2の入力項目「Rank」の値は、ルールセットRS1の入力項目である「Amount」によって一意に定まる。そのため、テストケースの生成に際し、テストケース生成装置10は、入力条件から「Rank」を除外し、入力条件を「Amount」及び「Age」とする。
図5に戻り、条件ID1523、範囲条件1524(範囲種別15241、テスト範囲15242を含む。)、生成方式1525、境界値ケース要否1526、及び優先度1527の項目からなる各行は、夫々、前述したテストケース生成条件に相当する。
上記項目のうち条件ID1523には各テストケース生成条件の識別子が設定される。
範囲条件1524には、前述した範囲条件を指定する情報が設定される。範囲条件1524の範囲種別15241には、テストケース生成条件の種別を指定する情報が設定される。本例では、「仕様差分」、「入力条件」、「出力条件」、及び「Default」のいずれかが設定される。範囲条件1524のテスト範囲15242には、範囲条件に関するより具体的な内容が設定される。このテスト範囲15242に設定可能な内容は、範囲種別15241の設定内容によって異なる。以下具体例を示す。
例えば、範囲種別15241に「仕様差分」が設定されている場合、テスト範囲15242には「変更有」、「変更無」のいずれかを設定することができる。ここで「仕様差分」とは、ルール仕様151の変更前と変更後の差分を意味する。テスト範囲15242に「変更有」が設定されている場合、テストケース生成装置10は、例えば、ルール仕様151の変更によってルール仕様151に対する入力と出力の関係が変化した範囲に関する入力項目の値の組み合わせをテストケースとして生成する。またテスト範囲15242に「変更無」が設定されている場合、テストケース生成装置10は、例えば、入力と出力の関係が変化していない範囲に関する入力項目の値の組み合わせをテストケースとして生成する。尚、本例では、変更前のルール仕様151をルール仕様V2の1つ前のバージョン
のルール仕様V1としているが、変更後のルール仕様と比較する変更前のルール仕様のバージョンをユーザ等が任意に指定できるようにしてもよい。
範囲種別15241に「入力条件」が設定されている場合、テスト範囲15242には入力項目の値に関する条件を示す論理式を設定することができる。この場合、テストケース生成装置10は、入力項目の値がテスト範囲15242に設定されている論理式を満たすようなテストケースを生成する。
範囲種別15241に「出力条件」が設定されている場合、テスト範囲15242には出力項目の値に関する条件を示す論理式を設定することができる。この場合、テストケース生成装置10は、出力項目の値がテスト範囲15242に設定された論理式を満たすようなテストケースを生成する。
範囲種別15241に「Default」が設定されている場合、テスト範囲15242には「−」が設定される。この場合、テストケース生成装置10は、当該テストケース生成条件情報152における他のテストケース生成条件のいずれの条件も満たさない入力項目の値の組み合わせをテストケースとして生成する。
その他、範囲種別15241及びテスト範囲15242として、例えば、ソースコードの差分、入力項目と出力項目の両方を使った条件等を設定可能としてもよい。その場合、ソースコードの差分は、例えば、記号実行を使うことにより特定することができる。
生成方式1525には、テストケースの生成方式を指定する情報(以下、生成方式とも称する。)が設定される。本実施形態では、「条件網羅」、「パス網羅」、「ルール網羅」、「AllPairs/2因子」、「AllPairs/3因子」のいずれかが設定されるものとする。
生成方式1525に「条件網羅」が設定されている場合、テストケース生成装置10は、ルールの条件部の最小構成要素である条件項(例えば図3における「Amount<20000」、「Age<=35」等)のTrue(真)/False(偽)の組み合わせを網羅するようにテストケースを生成する。
「パス網羅」は、テスト種別1522に「結合」が設定されているときにのみ生成方式1525に設定することができる。生成方式1525に「パス網羅」が設定されている場合、テストケース生成装置10は、ルール仕様151の各ルールセット間のルールの組み合わせを網羅するようにテストケースを生成する。例えば、図3の例では、テストケース生成装置10は、ルールセットRS1のルールR1とルールセットRS2のルールR1(以下、{RS1.R1、RS2.R1}のように表記する。)、{RS1.R1、RS2.R2}、{RS1.R1、RS2.R3}等の組み合わせを網羅するようにテストケースを生成する。
尚、例えば、図4のルール仕様V2の例では、ルールセットRS1に含まれるルールの数が4つ、ルールセットRS2に含まれるルールの数が6つであり、この場合、テストケース生成装置10は、最大で4×6=24個のテストケースを生成する。但し実際には実行不能なパスが存在するので、組み合わせの数は上記のような単純計算によって求められる値よりも少なくなる。
生成方式1525に「ルール網羅」が設定されている場合、テストケース生成装置10は、テスト対象のルールセットに含まれているルールが少なくとも1回以上実行されるようにテストケースを生成する。
生成方式1525に「AllPairs/2因子」が設定されている場合、テストケース生成装置10は、AllPairs法を用いて2因子網羅となるようにテストケースを生成する。
生成方式1525に「AllPairs/3因子」が設定されている場合、テストケース生成装置10は、AllPairs法を用いて3因子網羅となるようにテストケースを生成する。
境界値ケース要否1526には、テストケース生成装置10がテストケースを生成する際に境界値に関するテストケースを生成するか否かを表すフラグ(「要」、「不要」、「−」)が設定される。本例では、生成方式1525に、「条件網羅」、「AllPairs/2因子」、「AllPairs/3因子」が設定されている場合にのみ、境界値ケース要否1526に「要」又は「不要」を設定可能であり、それ以外の場合は「−」が設定される。境界値に関するテストケースの具体例については後述する。
優先度1527には、複数のテストケース生成条件の夫々に基づく範囲条件論理式の間に重複が有る場合、即ち、あるテストケース生成条件の範囲種別15241とテスト範囲15242とによって定まる入力値の範囲(以下、入力空間とも称する。)が他のテストケース生成条件の入力空間と重複する場合、いずれのテストケース生成条件を優先するかを決定するための値(以下、優先度と称する。)が設定される。尚、本例では、優先度が大きいテストケース生成条件の生成方式1525が優先されるものとする。また複数のテストケース生成条件の優先度1527に同じ優先度が設定されている場合、例えば、重複する部分について、双方のテストケース生成条件の生成方式1525に設定されている生成方式によってテストケースを生成する。
図6に、テストケース生成装置10が図4に示すルール仕様151、及び図5に示すテストケース生成条件情報152に基づき生成したテストケースの例を示す。同図における各行は、夫々、テストケース生成装置10が生成する一つのテストケースに相当する。同図に示すように、テストケース153は、テストケースID1531、条件ID1532、入力条件1533、及び期待結果1534の各項目を有する。テストケースID1531には、テストケース153の識別子が設定される。
条件ID1532には、当該テストケース153が、テストケース生成条件情報152のいずれのテストケース生成条件に基づき生成したテストケースであるかを識別する識別子が設定される。本例では、テストケース生成条件情報152の条件ID1523に設定される識別子が設定されている。
入力条件1533には、ルール仕様151の入力項目の入力値が設定される。図5のテストケース生成条件情報152では、テスト対象1521に「RS2」が設定されており、テスト種別1522に「結合」が設定されているので、テストケース生成装置10は、入力項目「Age」及び「Amount」の夫々の入力値を生成して入力条件1533に設定する。
期待結果1534には、ルール仕様151が入力条件を満たす場合のルールセットの出力項目の出力値が設定される。本例では、出力項目は「Discount」であり、テストケース生成装置10は、入力条件1533の「Age」、「Amount」の夫々に設定した入力値に基づき「Discount」の出力値を求めて期待結果1534に設定する。
図7は、テストケースの生成に際してテストケース生成装置10が行う処理(以下、メイン処理S700と称する。)を説明するフローチャートである。以下、同図とともにメイン処理S700について説明する。尚、テストケース生成部114は、例えば、ユーザからの指示を契機としてメイン処理S700を開始する。またテストケース生成部114は、例えば、バッチ処理等により自動的に処理を実行する。
同図に示すように、まずテストケース生成装置10は、情報記憶部150が記憶しているテストケース生成条件情報152を読み込む(S711)。またテストケース生成装置10は、テストケース生成に必要なルール仕様151を読み込む(S712)。例えば、テストケース生成条件情報152が図5の内容である場合、テスト対象1521がルールセットRS2であり、テスト種別1522に「結合」が設定されているので、テストケース生成装置10は、図4の最新バージョンのルール仕様151であるルール仕様V2の内容(ルールセットRS1及びルールセットRS2)を読み込む。また図5のテストケース生成条件情報152では、範囲種別15241に「仕様差分」が設定されているので、テストケース生成装置10は、変更前のバージョンのルール仕様151であるルール仕様V2の内容(ルールセットRS1及びルールセットRS2)も読み込む。
続いて、テストケース生成装置10は、S711で読み込んだテストケース生成条件情報152、及びS712で読み込んだルール仕様151に基づき、テストケース生成条件情報152の各テストケース生成条件について前述した範囲条件論理式を生成する(S713)。
例えば、図5のテストケース生成条件情報152における条件ID1523が「C1」のテストケース生成条件の場合、範囲種別15241に「仕様差分」が設定され、テスト範囲15242に「変更有」が設定されているので、テストケース生成装置10は「DiscountV1≠DiscountV2」という範囲条件論理式を生成する。ここで「DiscountV1」は、ルール仕様V1のルールセットRS2の出力項目、「DiscountV2」は、ルール仕様V2のルールセットRS2の出力項目である。上記の範囲条件論理式「DiscountV1≠DiscountV2」は、ルール仕様151のルール仕様151の変更前と変更後とで出力値が異なることを表す。尚、同じテストケース生成条件でテスト範囲15242に「変更無」が設定されている場合、範囲条件論理式は「DiscountV1=DiscountV2」となる。
また例えば、図5のテストケース生成条件情報152における条件ID1523が「C2」のテストケース生成条件の場合、範囲種別15241に「入力条件」が設定され、テスト範囲15242に「Age>60」が設定されているので、テストケース生成装置10は、「Age>60」という範囲条件論理式を生成する。
また例えば、図5のテストケース生成条件情報152における条件ID1523が「C3」のテストケース生成条件の場合、範囲種別15241に「Default」が設定されているので、テストケース生成装置10は、条件ID1523が「C1」のテストケース生成条件の範囲条件論理式と、条件ID1523が「C2」のテストケース生成条件の範囲条件論理式とを除いた範囲に相当する範囲条件論理式「¬(範囲条件論理式C1∨範囲条件論理式C2)」を生成する。尚、「∨」は論理和を表し、「¬」は論理否定を表す。
図7に戻り、続いてテストケース生成装置10は、S713で生成した複数の範囲条件論理式の間に重複が有るか否か(重複する入力空間が存在するか否か)を判定する(S714)。ここでテストケース生成装置10は、複数の範囲条件論理式の間に重複が有るか否かを、例えば、テストケース生成条件のうち範囲種別が「Default」であるテス
トケース生成条件を除く任意の2つのテストケース生成条件について生成した範囲条件論理式の論理積の充足可能性を判定することにより行う。具体的には、テストケース生成装置10は、上記判定により充足可能と判定した場合は重複が有ると判定し、上記判定により充足不能と判定した場合は重複が無いと判定する。例えば、図5のテストケース生成条件情報152の場合、テストケース生成装置10は、条件ID1523が「C1」のテストケース生成条件の範囲条件論理式と、条件ID1523が「C2」のテストケース生成条件の範囲条件論理式の論理積の充足可能性を判定する。
ここで充足可能性とは、与えられた論理式をTRUE(真)にする変数の値の組み合わせが存在するか否かを表す性質をいう。充足可能性は、単純には、全ての変数の値の組み合わせをチェックすることにより判定することができる。またDPLL(Davis-Putnam-Logemann-Loveland)アルゴリズム等、変数の値の組み合わせではなく論理式の構造に着目して効率よく充足可能性を判定するツールを用いて充足可能性を判定することもできる。例えば、SMT(Satisfiability Modulo Theories)ソルバを用いて充足可能性を判定することができる。
S714において範囲条件論理式に重複が有ると判定した場合(S714:YES)、テストケース生成装置10は、テストケース生成条件の夫々の優先度1527に基づき、重複が無くなるように少なくともいずれかの範囲条件論理式を修正する(S715)。例えば、図5のテストケース生成条件情報152の場合、条件ID1523が「C1」のテストケース生成条件の範囲条件論理式と、条件ID1523が「C2」のテストケース生成条件の範囲条件論理式との間に重複が有り、条件ID1523が「C1」のテストケース生成条件の優先度が条件ID1523が「C2」のテストケース生成条件の優先度よりも高い。この場合、テストケース生成装置10は、条件ID1523が「C1」のテストケース生成条件の範囲条件論理式はそのままとし、条件ID1523が「C2」のテストケース生成条件の範囲条件論理式を「範囲条件論理式C2∧¬範囲条件論理式C1」と修正する。このように「¬範囲条件論理式C1」を論理積で結合することで、範囲条件論理式間で重複が無いようにすることができる。また優先度によっていずれのテストケース生成条件を優先するかを選択可能にしたことで、優先すべきテストケース生成条件に対応するテストケースの生成を優先させることができる。
S714においてテストケース生成装置10が範囲条件論理式に重複が無いと判定した場合(S714:NO)、処理はS716に進む。
図7に戻り、S716では、テストケース生成装置10は、S712で読み込んだルール仕様151を表す論理式(以下、ルール仕様論理式と称する。)を生成する。具体的には、テストケース生成装置10は、テスト対象のルールセットと、テスト対象のルールセットの入力になっている全てのルールセットの各論理式を論理積(「∧」)で結合することにより、ルール仕様論理式を生成する。
例えば、図4の場合、テストケース生成装置10は、最新バージョンのルール仕様151であるルール仕様V2の内容(ルールセットRS1及びルールセットRS2)に基づきルール仕様論理式を生成する。また範囲種別15241に「仕様差分」が設定されているテストケース生成条件がテストケース生成条件情報152に存在する場合、テストケース生成装置10は、他のバージョンのルール仕様151に基づくルール仕様論理式も生成する。図5の場合、範囲種別15241に「仕様差分」が設定されているテストケース生成条件がテストケース生成条件情報152に存在するので、テストケース生成装置10は、図4のルール仕様V1の内容(ルールセットRS1及びルールセットRS2)に基づくルール仕様論理式も生成する。
例えば、ルール仕様V1のルールセットRS1を表す論理式をRS1V2と表し、ルール仕様V2のルールセットRS1を表す論理式をRS1V2と表した場合、テストケース生成装置10は「RS1V2∧RS2V2」というルール仕様論理式を生成する。例えば、図4の場合、RS1V1は「(Amount<20000∧RankV1=Regular)∨(20000<=Amount<50000∧RankV1=Silver)∨(Amount>=50000∧RankV1=Gold)」となる。尚、上記の論理式における「RankV1」のように、出力項目にはバージョンを識別する文字列(本例では「V1」)を付与している。範囲種別15241に「仕様差分」が設定されているテストケース生成条件をテストケース生成条件情報152が含む場合、テストケース生成装置10は、変更前のルール仕様151のルール仕様論理式も生成する。図4の場合、テストケース生成装置10は「RS1V1∧RS2V1」というルール仕様論理式を生成する。
図7に戻り、以上の処理の後、テストケース生成装置10は、テストケース生成条件情報152からテストケース生成条件を一つ選択し(S717)、テストケース生成条件情報152の各テストケース生成条件についてテストケースを生成する(S718)。この処理(以下、テストケース生成処理S718と称する。)の具体的な内容については後述する。テストケース生成条件情報152の全てのテストケース生成条件についてテストケースを生成すると(S719:NO)、メイン処理S700は終了する。
尚、テストケース生成条件の内容によっては入力値の組み合わせが存在しない場合もあるが、入力値の組み合わせが存在するか否かは、例えば、S715等に後続して範囲条件論理式の充足可能性を判定することにより確認することができる。即ち、範囲条件論理式が充足可能な場合はテストケース生成条件を満たす入力値の組み合わせが存在し、範囲条件論理式が充足不能な場合は入力値の組み合わせが存在しないと判定することができる。そのような判定を行うことで、ユーザは無駄なテストケース生成条件が含まれていないかを容易に知ることができる。
図8は、図7のテストケース生成処理S718を説明するフローチャートであり、生成方式1525に「条件網羅」が設定されているテストケース生成条件に基づくテストケース生成処理S718を説明するフローチャートである。以下、同図とともに説明する。
同図に示すように、まずテストケース生成装置10は、変更後のルール仕様151から条件項を抽出する(S811)。尚、テストケース生成装置10は、図7のS712で読み込んだルール仕様151のルールセットに含まれている条件項のうち、他のルールセットの出力項目になっていない入力項目を含む条件項のみを抽出する。またテストケース生成装置10は、同一の条件項が重複しないように条件項を抽出する。図4の例の場合、テストケース生成装置10は、例えば、「Amount<20000」、「20000<=Amount」、「Amount<50000」、「50000<=Amount」、「Amount<100000」、「Amount>=100000」、「Age<=35」、「35<Age」、「Age<60」、「Age>=60」を条件項として抽出する。尚、「Rank=Regular」、「Rank=Silver」など「Rank」に関する条件項は、ルールセットRS1の出力項目に関する条件項であるため、テストケース生成装置10はこれらについては抽出しない。
続いて、テストケース生成装置10は、境界値ケース要否1526が「要」のテストケース生成条件について、ルール仕様151から境界値条件を抽出する(S812)。テストケース生成装置10は、例えば、S811で抽出した条件項について不等号演算子を等号演算子(=)に置き換えることにより境界値条件を抽出する。図4の例の場合、テストケース生成装置10は、例えば、条件項「Amount<20000」から「Amount=20000」を、条件項「Amount<50000」から「Amount=500
00」を、条件項「Amount<100000」から「Amount=100000」を、条件項「Age<=35」から「Age=35」を、条件項「Age<60」から「Age=60」を、夫々境界値条件として抽出する。
続いて、テストケース生成装置10は、テストケースを生成するための論理式であるテストケース生成用論理式を生成する(S813)。具体的には、テストケース生成装置10は、ルール仕様論理式と範囲条件論理式とを論理積で結合した論理式をテストケース生成用論理式として生成する。例えば、図4のルール仕様151に対して図5の条件ID1523が「C1」のテストケース生成条件に基づくテストケース生成用論理式は「(RS1V1∧RS2V1)∧(RS1V2∧RS2V2)∧(DiscountV1≠DiscountV2)」となる。
続いて、テストケース生成装置10は、生成したテストケース生成用論理式の充足可能性を判定する(S814)。テストケース生成装置10が充足可能と判定した場合(S814:YES)、処理はS815に進む。テストケース生成装置10が充足不能と判定した場合(S814:NO)、テストケース生成処理S718は終了し、その後、処理は図7のS718に進む。
続いて、テストケース生成装置10はモデルを取得する(S815)。ここでモデルとは、与えられた論理式をTRUE(真)(充足可能)にする入力値と出力値の組み合わせのサンプルである。テストケース生成装置10は、例えば、SMTソルバ(SMT solver)の機能を利用してモデルを取得する。
続いて、テストケース生成装置10は、S815で取得したモデルに基づき、各入力項目と出力項目の値を特定することによりテストケースを生成する(S816)。
続いて、テストケース生成装置10は、同一のテストケースが生成されないような論理式である条件網羅制約式を生成し、生成した条件網羅制約式とテストケース生成用論理式とを論理積で結合した論理式を、新たなテストケース生成用論理式として生成する(S817)。
具体的には、テストケース生成装置10は、取得したモデルから条件項及び境界値条件の真偽値を特定し、特定した真偽値の組み合わせが成立しないような条件網羅制約式を生成する。例えば、真(True)となった条件項または境界値条件をTermT_i、偽(False)となった条件項または境界値条件をTermF_jと表すと、テストケース生成装置10は「¬TermT_1∨¬TermT_2∨・・・∨TermF_1∨TermF_2∨・・・」という条件網羅制約式を生成する。
例えば、図6のテストケースID1531が「T101」の例では、「Age=60」、「Amount=100000」であることから、「20000<=Amount」、「50000<=Amount」、「Amount>=100000」、「Amount=100000」、「35<Age」、「Age>=60」、「Age=60」が真(True)となり、「Amount<20000」、「Amount<50000」、「Amount<100000」、「Amount=20000」、「Amount=50000」、「Age<=35」、「Age<60」、「Age=35」が偽(False)となる。この場合、テストケース生成装置10は、「¬(20000<=Amount)∨¬(50000<=Amount)∨¬(Amount>=100000)∨¬(Amount=100000)∨¬(35<Age)∨¬(Age>=60)∨¬(Age=60)∨Amount<20000∨Amount<50000∨Amount<100000∨Amount=20000∨Amount=50000∨Age<=35∨Ag
e<60∨Age=35」という条件網羅制約式を生成する。
S817の処理の後、処理はS814に戻り、テストケース生成装置10は、条件網羅制約式を用いて新たに生成したテストケース生成用論理式の充足可能性を判定する。そしてテストケース生成装置10は、S814で充足可能と判定される間、S814〜S817の処理を繰り返し実行する。S814でテストケース生成装置10が充足不能と判定すると、処理は図7のS718に進む。
このように条件網羅制約式を用いることで、重複したテストケースの生成を効率よく排除することができ、テストケースを効率よく生成することができる。
図9は、図7のテストケース生成処理S718を説明するフローチャートであり、生成方式1525に「パス網羅」が設定されているテストケース生成条件に基づくテストケース生成処理S718を説明するフローチャートである。以下、同図とともに説明する。
まずテストケース生成装置10は、図8のS813と同様の方法でテストケース生成用論理式を生成する(S911)。
続いて、テストケース生成装置10は、生成したテストケース生成用論理式の充足可能性を判定する(S912)。テストケース生成装置10がテストケース生成用論理式を充足可能と判定した場合(S912:YES)、処理はS913に進む。テストケース生成装置10がテストケース生成用論理式を充足不能と判定した場合(S912:NO)、テストケース生成処理S718は終了する。その後、処理は図7のS718に進む。
続いて、テストケース生成装置10は、図8のS815と同様の方法でモデルを取得し(S913)、取得したモデルに基づき、各入力項目と出力項目の値を特定することによりテストケースを生成する(S914)。
続いて、テストケース生成装置10は、同一のテストケースが生成されないような論理式であるパス網羅制約式を生成し、当該パス網羅制約式とテストケース生成用論理式とを論理積で結合した論理式を、新たなテストケース生成用論理式として生成する(S915)。ここでテストケース生成装置10は、モデルから各ルールの条件部の真偽値を特定し、真となるルールの条件部の組み合わせが同時に真とならないようなパス網羅制約式を生成する。具体的には、テストケース生成装置10は、ルールセット毎に真となる条件部を特定し、これらの条件部を論理積で結合した論理式の否定をパス網羅制約式とする。尚、同一のルールセット内で複数の条件部が真となる場合は同一のルールセット内の真となった条件部を論理和で結合する。
例えば、図6のテストケースID1531が「T201」の例では、RS1R3C、RS2R4C、及びRS2R5Cが真となる。尚、RS1R3Cは、ルールセットRS1のIDがR3の条件部を意味する。RS2R4CとRS2R5Cも同様の意味である。本例ではルールセットRS2の2つの条件部が真となるため、パス網羅制約式は「¬(RS1R3C∧(RS2R4∨RS2R5))」となる。
S915の処理の後、処理はS912に戻り、テストケース生成装置10は、新たなテストケース生成用論理式について充足可能性を判定する。そしてテストケース生成装置10は、S912で充足可能と判定される間、S912〜S915の処理を繰り返し実行する。S912でテストケース生成装置10が充足不能と判定すると、処理は図7のS718に進む。
このようにパス網羅制約式を用いた場合は重複したテストケースの生成を効率よく排除することができ、生成方式1525に「パス網羅」が指定されている場合のテストケースを効率よく生成することができる。
尚、生成方式1525に「ルール網羅」が指定されている場合のテストケースについても「パス網羅」と同様な手法によりテストケースを効率よく生成することができる。尚、この場合の制約式(以下、ルール網羅制約式と称する。)は、モデルから各ルールの条件部の真偽値を特定し、真となるルールの条件部が偽となるように、当該真となるルールの条件部の否定を論理積で結合することにより生成することができる。
また生成方式1525に「AllPairs/2因子」や「AllPairs/3因子」が指定されている場合には、PICT(Pairwise Independent Combinatorial Testing
tool)などオープンソースソフトウェアを利用することで容易にテストケースを生成す
ることができる。
以上に説明したように、テストケース生成装置10は、ルール仕様論理式と、範囲条件及び生成方式を含むテストケース生成条件に基づく範囲条件論理式とを論理積によって結合した論理式であるテストケース生成用論理式を生成し、テストケース生成用論理式に基づきテストケースを生成するので、テストケースの生成に関する多様なニーズに柔軟に対応することができる。
またテストケース生成装置10は、テストケース生成条件の範囲種別15241に「仕様差分」が設定されている場合、ルール仕様の変更前と変更後の差分に基づき範囲条件論理式を生成するので、ルール仕様の変更前と変更後の差分をテストするためのテストケースを効率よく生成することができる。
またテストケース生成装置10は、テストケース生成条件の範囲種別15241に「入力条件」が設定されている場合、テスト範囲15242に設定されている条件に基づく範囲条件論理式を生成するので、ニーズに対応したテストケースを効率よく生成することができる。
またテストケース生成装置10は、範囲条件論理式の間に重複が有る場合は重複が無くなるように範囲条件論理式を修正するので、重複したテストケースの生成を防いで効率よくテストケースを生成することができる。
以上、本発明について実施の形態に基づき具体的に説明したが、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、上記実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、また
はICカード、SDカード、DVD等の記録媒体に置くことができる。
また上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており
、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
また以上に説明したテストケース生成装置10の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、テストケース生成装置10が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。
また前述した各種データベースの構成(スキーマ(Schema)等)は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。
10 テストケース生成装置、110 テストケース設定編集部、111 ルール仕様論理式生成部、112 範囲条件論理式生成部、113 テストケース生成用論理式生成部、114 テストケース生成部、150 情報記憶部、151 ルール仕様、152 テストケース生成情報、1521 テスト対象、1522 テスト種別、1524 範囲条件、15241 範囲種別、15242 テスト範囲、1525 生成方式、1526 境界値ケース要否、1527 優先度、153 テストケース、RS1,RS2 ルールセット、S700 メイン処理、S718 テストケース生成処理

Claims (15)

  1. 業務ルールの仕様を記述したルール仕様に基づき生成されるプログラムのテストに用いるテストケースを生成するテストケース生成装置であって、
    前記ルール仕様と、テストケースを生成する範囲に関する情報である範囲条件、及びテストケースの生成の方式を指定する情報である生成方式を含む、一つ以上のテストケース生成条件と、を記憶する情報記憶部と、
    前記ルール仕様を表す論理式であるルール仕様論理式を生成するルール仕様論理式生成部と、
    前記テストケース生成条件ごとに、テストケースを生成する範囲を表す論理式である範囲条件論理式を生成する、範囲条件論理式生成部と、
    前記ルール仕様論理式と前記範囲条件論理式とを論理積によって結合した論理式であるテストケース生成用論理式を生成するテストケース生成用論理式生成部と、
    前記テストケース生成用論理式に基づきテストケースを生成するテストケース生成部と、
    を備える、テストケース生成装置。
  2. 請求項1に記載のテストケース生成装置であって、
    前記情報記憶部は、前記範囲条件として、前記ルール仕様の変更前と変更後の差分を示す情報が設定された前記テストケース生成条件を記憶し、
    前記範囲条件論理式生成部は、前記ルール仕様の変更前と変更後の差分に基づき前記範囲条件論理式を生成する、
    テストケース生成装置。
  3. 請求項1に記載のテストケース生成装置であって、
    前記ルール仕様は、前記業務ルールを条件と結果を示す記述形式で記述した情報である複数のルールを含み、
    前記情報記憶部は、前記範囲条件として、前記ルール仕様における前記ルールの入力項目の値に関する条件を示す情報が設定された前記テストケース生成条件を記憶し、
    前記範囲条件論理式生成部は、前記ルールの入力項目の値に関する条件を示す情報に基づき前記範囲条件論理式を生成する、
    テストケース生成装置。
  4. 請求項1乃至3のいずれか一項に記載のテストケース生成装置であって、
    前記ルール仕様は、前記業務ルールを条件と結果を示す記述形式で記述した情報である複数のルールを含み、
    前記生成方式は、
    前記ルールの前記条件の組み合わせを網羅するように前記テストケースを生成する方式である条件網羅、
    前記ルールセットの間の前記ルールの組み合わせを網羅するように前記テストケースを生成する方式であるパス網羅、
    前記ルールセットに含まれている前記ルールが少なくとも一回以上実行されるように前記テストケースを生成する方式であるルール網羅、
    AllPairs法を用いて2因子網羅となるように前記テストケースを生成する方式であるAllPairs/2因子、及び、
    AllPairs法を用いて3因子網羅となるように前記テストケースを生成する方式であるAllPairs/3因子、
    のうちの少なくともいずれかである、
    テストケース生成装置。
  5. 請求項1乃至3のいずれか一項に記載のテストケース生成装置であって、
    前記情報記憶部は、前記テストケース生成条件の夫々について設定された優先度を示す情報を記憶し、
    前記テストケース生成部は、複数の前記テストケース生成条件の夫々の前記範囲条件論理式の間に重複が有るか否かを判定し、重複が有る場合、重複が無くなるように少なくともいずれかの前記範囲条件論理式を修正する、
    テストケース生成装置。
  6. 請求項5に記載のテストケース生成装置であって、
    前記テストケース生成部は、前記判定に際し、前記判定の対象となる複数の前記範囲条件論理式の論理積の充足可能性を調べ、充足可能な場合は前記複数の範囲条件論理式の間に重複が有ると判定し、充足不能な場合は前記複数の範囲条件論理式の間に重複が無いと判定する、
    テストケース生成装置。
  7. 請求項1乃至3のいずれか一項に記載のテストケース生成装置であって、
    前記テストケース生成部は、前記テストケース生成用論理式の充足可能性を判定し、充足可能な場合、充足可能となるような前記ルール仕様における入力項目の入力値の組合せを含むデータをテストケースとして生成する、
    テストケース生成装置。
  8. 請求項7に記載のテストケース生成装置であって、
    前記テストケース生成部は、前記テストケース生成用論理式の充足可能性を判定し、充足可能な場合、充足可能となるルール仕様における入力項目の入力値の組合せと前記組み合わせに対して期待される出力項目の出力値とを含むデータをテストケースとして生成する、
    テストケース生成装置。
  9. 情報処理装置が、
    業務ルールの仕様を記述したルール仕様に基づき生成されるプログラムのテストに用いるテストケースを生成する範囲に関する情報である範囲条件、及びテストケースの生成の方式を指定する情報である生成方式を含む、一つ以上のテストケース生成条件と、を記憶するステップ、
    前記ルール仕様を表す論理式であるルール仕様論理式を生成するステップ、
    前記テストケース生成条件ごとに、テストケースを生成する範囲を表す論理式である範囲条件論理式を生成するステップ、
    前記ルール仕様論理式と前記範囲条件論理式とを論理積によって結合した論理式であるテストケース生成用論理式を生成するステップ、
    前記テストケース生成用論理式に基づきテストケースを生成するステップ、
    を実行する、テストケース生成方法。
  10. 請求項9に記載のテストケース生成方法であって、
    前記情報処理装置が、
    前記範囲条件として前記ルール仕様の変更前と変更後の差分を示す情報が設定された前記テストケース生成条件を記憶するステップ、
    前記ルール仕様の変更前と変更後の差分に基づき前記範囲条件論理式を生成するステップ、
    をさらに実行する、テストケース生成方法。
  11. 請求項9に記載のテストケース生成方法であって、
    前記ルール仕様は、前記業務ルールを条件と結果を示す記述形式で記述した情報である複数のルールを含み、
    前記情報処理装置が、
    前記範囲条件として前記ルール仕様における前記ルールの入力項目の値に関する条件を示す情報が設定された前記テストケース生成条件を記憶するステップ、
    前記ルールの入力項目の値に関する条件を示す情報に基づき前記範囲条件論理式を生成するステップ、
    をさらに実行する、テストケース生成方法。
  12. 請求項9乃至11のいずれか一項に記載のテストケース生成方法であって、
    前記ルール仕様は、前記業務ルールを条件と結果を示す記述形式で記述した情報である複数のルールを含み、
    前記生成方式は、
    前記ルールの前記条件の組み合わせを網羅するように前記テストケースを生成する方式である条件網羅、
    前記ルールセットの間の前記ルールの組み合わせを網羅するように前記テストケースを生成する方式であるパス網羅、
    前記ルールセットに含まれている前記ルールが少なくとも一回以上実行されるように前記テストケースを生成する方式であるルール網羅、
    AllPairs法を用いて2因子網羅となるように前記テストケースを生成する方式であるAllPairs/2因子、及び、
    AllPairs法を用いて3因子網羅となるように前記テストケースを生成する方式であるAllPairs/3因子、
    のうちの少なくともいずれかである、
    テストケース生成方法。
  13. 請求項9乃至11のいずれか一項に記載のテストケース生成方法であって、
    前記情報処理装置が、
    前記テストケース生成条件の夫々について設定された優先度を示す情報を記憶するステップ、
    複数の前記テストケース生成条件の夫々の前記範囲条件論理式の間に重複が有るか否かを判定し、重複が有る場合、重複が無くなるように少なくともいずれかの前記範囲条件論理式を修正するステップ、
    をさらに実行する、テストケース生成方法。
  14. 請求項13に記載のテストケース生成方法であって、
    前記情報処理装置が、
    前記判定に際し、前記判定の対象となる複数の前記範囲条件論理式の論理積の充足可能性を調べ、充足可能な場合は前記複数の範囲条件論理式の間に重複が有ると判定し、充足不能な場合は前記複数の範囲条件論理式の間に重複が無いと判定するステップ、
    をさらに実行する、テストケース生成方法。
  15. 請求項9乃至11のいずれか一項に記載のテストケース生成方法であって、
    前記情報処理装置が、
    前記テストケース生成用論理式の充足可能性を判定し、充足可能な場合、充足可能となるような前記ルール仕様における入力項目の入力値の組合せを含むデータをテストケースとして生成するステップ、
    をさらに実行する、テストケース生成方法。
JP2016235350A 2016-12-02 2016-12-02 テストケース生成装置、及びテストケース生成方法 Active JP6692281B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016235350A JP6692281B2 (ja) 2016-12-02 2016-12-02 テストケース生成装置、及びテストケース生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016235350A JP6692281B2 (ja) 2016-12-02 2016-12-02 テストケース生成装置、及びテストケース生成方法

Publications (3)

Publication Number Publication Date
JP2018092374A true JP2018092374A (ja) 2018-06-14
JP2018092374A5 JP2018092374A5 (ja) 2019-04-18
JP6692281B2 JP6692281B2 (ja) 2020-05-13

Family

ID=62565596

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016235350A Active JP6692281B2 (ja) 2016-12-02 2016-12-02 テストケース生成装置、及びテストケース生成方法

Country Status (1)

Country Link
JP (1) JP6692281B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200071567A (ko) * 2018-12-11 2020-06-19 (주)씽크포비엘 소프트웨어 테스트 케이스 자동 생성 방법 및 장치
CN113485919A (zh) * 2021-06-30 2021-10-08 山东有人物联网股份有限公司 测试方法、测试装置及计算机可读存储介质
WO2021220465A1 (ja) * 2020-04-30 2021-11-04 日本電信電話株式会社 ルール処理装置、方法およびプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013148968A (ja) * 2012-01-17 2013-08-01 Fujitsu Ltd テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法
JP2014186407A (ja) * 2013-03-22 2014-10-02 Hitachi Ltd テストケース生成方法、テストケース生成装置およびプログラム
JP2015204065A (ja) * 2014-04-16 2015-11-16 株式会社日立製作所 テストケース生成装置及びテストケース生成方法
JP2016057969A (ja) * 2014-09-11 2016-04-21 日立オートモティブシステムズ株式会社 プログラム検査装置、ソフトウェア検査装置、sat制約条件データ、記憶媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013148968A (ja) * 2012-01-17 2013-08-01 Fujitsu Ltd テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法
JP2014186407A (ja) * 2013-03-22 2014-10-02 Hitachi Ltd テストケース生成方法、テストケース生成装置およびプログラム
JP2015204065A (ja) * 2014-04-16 2015-11-16 株式会社日立製作所 テストケース生成装置及びテストケース生成方法
JP2016057969A (ja) * 2014-09-11 2016-04-21 日立オートモティブシステムズ株式会社 プログラム検査装置、ソフトウェア検査装置、sat制約条件データ、記憶媒体

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200071567A (ko) * 2018-12-11 2020-06-19 (주)씽크포비엘 소프트웨어 테스트 케이스 자동 생성 방법 및 장치
KR102176133B1 (ko) 2018-12-11 2020-11-09 (주)씽크포비엘 소프트웨어 테스트 케이스 자동 생성 방법 및 장치
WO2021220465A1 (ja) * 2020-04-30 2021-11-04 日本電信電話株式会社 ルール処理装置、方法およびプログラム
JP7444246B2 (ja) 2020-04-30 2024-03-06 日本電信電話株式会社 ルール処理装置、方法およびプログラム
CN113485919A (zh) * 2021-06-30 2021-10-08 山东有人物联网股份有限公司 测试方法、测试装置及计算机可读存储介质
CN113485919B (zh) * 2021-06-30 2024-01-26 山东有人物联网股份有限公司 测试方法、测试装置及计算机可读存储介质

Also Published As

Publication number Publication date
JP6692281B2 (ja) 2020-05-13

Similar Documents

Publication Publication Date Title
US9323650B2 (en) Methods for generating software test input data and devices thereof
US20180300336A1 (en) Knowledge point structure-based search apparatus
US20200349206A1 (en) Systems, apparatuses, and methods of processing and managing web traffic data
JP6692281B2 (ja) テストケース生成装置、及びテストケース生成方法
JPWO2020008991A1 (ja) 検証自動化装置、検証自動化方法、およびプログラム
CN107408105A (zh) 有条件受控加样式
US10241899B2 (en) Test input information search device and method
JP6120607B2 (ja) 要件検出装置及び要件検出プログラム
US20120317526A1 (en) Verification method, computer-readable recording medium, and design verification apparatus
JP2009245177A (ja) フィーチャーモデル作成支援装置及びプログラム
JP2008117066A (ja) ソフトウェア開発支援方法、ソフトウェア開発支援装置、ソフトウェア開発支援プログラム、及び計算機システム
KR101948603B1 (ko) 데이터의 유용성 보존을 위한 익명화 장치 및 그 방법
EP3418913A1 (en) System and method for merging a source data from a source application into a target data of a target application
US20170060647A1 (en) Event-based data management method and device
JP6364332B2 (ja) 仕様生成方法、仕様生成装置、及びプログラム
JP6802109B2 (ja) ソフトウェア仕様分析装置、及びソフトウェア仕様分析方法
CN114556238A (zh) 用于在云计算环境中生成资产信息的数字表示的方法和系统
JP6954806B2 (ja) 不具合検出装置、及び不具合検出方法
JPWO2019082786A1 (ja) 設計情報管理システム、設計情報管理方法およびプログラム
JP7478585B2 (ja) プログラム部品評価システム、及びプログラム部品評価方法
JP2014235568A (ja) 障害解析に使用されるデータ処理装置及びデータ処理装置のプログラム並びに障害解析に使用されるデータ処理方法、障害解析に使用されるデータ処理方法
JP2013161182A (ja) テスト項目生成装置、テスト項目生成方法
JP7426305B2 (ja) 設計書参照作業支援装置、設計書参照作業支援方法および設計書参照作業支援プログラム
JP6985322B2 (ja) 文書作成支援装置、文書作成支援方法及びプログラム
CN114553954B (zh) 信息推送方法、非易失性存储介质及电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190305

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200414

R150 Certificate of patent or registration of utility model

Ref document number: 6692281

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150