JP7268759B2 - テストデータ生成装置、テストデータ生成方法、及びプログラム - Google Patents
テストデータ生成装置、テストデータ生成方法、及びプログラム Download PDFInfo
- Publication number
- JP7268759B2 JP7268759B2 JP2021558103A JP2021558103A JP7268759B2 JP 7268759 B2 JP7268759 B2 JP 7268759B2 JP 2021558103 A JP2021558103 A JP 2021558103A JP 2021558103 A JP2021558103 A JP 2021558103A JP 7268759 B2 JP7268759 B2 JP 7268759B2
- Authority
- JP
- Japan
- Prior art keywords
- test data
- test
- tacit knowledge
- input
- generation
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
本発明は、ソフトウェアのテストを行う技術に関連するものである。
近年のソフトウェア開発の現場では、多様化する消費者ニーズに対応するため、短期間に複数の新バージョンのソフトウェアをリリースするような開発スタイルが増加している。ソフトウェア開発は大きく「設計」、「実装」、「試験(テスト)」の工程を経てリリースされる。これらのうち、開発したソフトウェアの正常性を確認するテスト工程は、ソフトウェアの不具合をリリース前に検出し、修正する作業である。
テスト工程では、テスト観点のうちの一つとして、テスト対象(例えばWebアプリケーション)が、設計者の意図した通りの動作を行うかどうかを確認する機能テストが行われる。機能テストには更に幾つかの確認観点が存在し、画面遷移に関するテスト(以下、画面遷移テスト)及び画面上の入力フィールドに対するテスト(以下、入力値バリエーションテスト)がある。一般に、これらのテストには膨大な時間がかかる。
画面遷移テストは、任意の画面で任意の操作をした際に、次に表示される画面が設計者の意図した通りであるかどうかを確認するテストである。画面遷移テストが時間を要する理由としては、アプリケーションの全ての画面遷移に関する操作を網羅的に実施する必要があるため、リンクやボタンのクリック操作や入力フィールドへのデータ投入などの人の手を介する操作が多く求められるからである。
入力値バリエーションテストは、画面上の入力フィールドに対して様々な観点で値を入力した際に、動作や次に表示される画面が設計者の意図した通りであるかどうかを確認するテストである。入力値バリエーションテストが時間を要する理由としては、アプリケーションを構成する全ての画面上の入力フィールドに対して、様々な観点でテストデータを用意し、データ投入する必要があるためである。
入力値バリエーションテストの観点には、仕様ベースとして入力値制約に基づくもの(同値分割、境界値分析等)、経験ベースとして暗黙知に基づくもの(エラー推測)がある。暗黙知に関するテスト技法の例が非特許文献1に開示されている。
経験ベースのテスト技法(https://webrage.jp/techblog/testing_by_experience/)、インターネット、令和1年11月11日検索
暗黙知に基づくテストデータを人手ではなく、コンピュータにより自動的に生成することが考えられる。しかし、従来技術において、暗黙知に基づくテストデータを適切に生成することができないという課題がある。
本発明は上記の点に鑑みてなされたものであり、暗黙知に基づく入力値バリエーションテストで用いるテストデータを適切に生成することを可能とする技術を提供することを目的とする。
開示の技術によれば、暗黙知に基づく入力値バリエーションテストを行う対象であるテスト対象アプリケーションの入力フィールドへ投入するテストデータを生成するためのテストデータ生成装置であって、
暗黙知カテゴリ毎に、生成方法、テストデータ情報、及び生成条件とする入力フィールドの入力値制約を有する暗黙知テストデータ辞書を格納する格納部と、
テストデータ生成対象の入力フィールドである対象入力フィールドに対するある暗黙知カテゴリについて、前記暗黙知テストデータ辞書を参照することにより、前記テスト対象アプリケーションにおける前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致すると判定した場合に、前記対象入力フィールドに対するテストデータを生成し、前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致しないと判定した場合に、前記対象入力フィールドに対するテストデータを生成しない生成部と
を備えるテストデータ生成装置が提供される。
暗黙知カテゴリ毎に、生成方法、テストデータ情報、及び生成条件とする入力フィールドの入力値制約を有する暗黙知テストデータ辞書を格納する格納部と、
テストデータ生成対象の入力フィールドである対象入力フィールドに対するある暗黙知カテゴリについて、前記暗黙知テストデータ辞書を参照することにより、前記テスト対象アプリケーションにおける前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致すると判定した場合に、前記対象入力フィールドに対するテストデータを生成し、前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致しないと判定した場合に、前記対象入力フィールドに対するテストデータを生成しない生成部と
を備えるテストデータ生成装置が提供される。
開示の技術によれば、暗黙知に基づく入力値バリエーションテストで用いるテストデータを適切に生成することを可能とする技術が提供される。
以下、図面を参照して本発明の実施の形態を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。以下、テスト対象としてWebアプリケーションを想定しているが、本発明はテスト対象がWebアプリケーションに限らずに適用可能である。
(テスト実行時のシステム構成例)
図1は、本発明の実施の形態によるテストデータ生成装置100により生成されたテストデータを用いてテストを行う場合のシステム構成例を示す図である。
図1は、本発明の実施の形態によるテストデータ生成装置100により生成されたテストデータを用いてテストを行う場合のシステム構成例を示す図である。
図1に示すように、当該システムには、クライアント装置10と、サーバ装置20とが含まれる。また、クライアント装置10とサーバ装置20とは、例えば、LAN(Local Area Network)やインターネット等のネットワークNを介して通信可能に接続される。
サーバ装置20は、Webアプリケーションを提供するコンピュータ又はコンピュータシステムである。サーバ装置20が提供するWebアプリケーションが、テスト対象となるソフトウェア(アプリケーション)である。
クライアント装置10は、サーバ装置20が提供するWebアプリケーションのテストを行うための装置である。より具体的には、例えば、テスト担当者が、クライアント装置10によりWebアプリケーションにアクセスし、Web画面上の入力フィールドにテストデータ生成装置100により生成されたテストデータを入力することにより、異常動作しないことをチェックする。テストデータの入力は、テストコード(テストスクリプトと呼んでもよい)を、クライアント装置10で実行させることにより自動的に行ってもよい。
なお、クライアント装置10としてはPC(パーソナルコンピュータ)等が用いられるが、これに限られず、例えば、スマートフォンやタブレット端末等が用いられても良い。以下、Webアプリケーションを単に「アプリケーション」と呼ぶ場合がある。
(課題について)
前述したように、入力値バリエーションテストの観点には、仕様ベースとして入力値制約に基づくもの、経験ベースとして暗黙知に基づくもの(エラー推測)がある。本発明の実施の形態は後者を対象としている。
前述したように、入力値バリエーションテストの観点には、仕様ベースとして入力値制約に基づくもの、経験ベースとして暗黙知に基づくもの(エラー推測)がある。本発明の実施の形態は後者を対象としている。
暗黙知に基づく入力値バリエーションテストを行うためのテストデータ生成手法の一例と、その課題を説明する。
図2は、入力値バリエーションテストにおける暗黙知の例を示す。図2に示すとおり、暗黙知カテゴリ毎にチェック観点がある。
入力値バリエーションテストにおける暗黙知に基づくテスト設計において、例えばテスト担当者は、図2に示すような暗黙知カテゴリに基づいて、テスト対象のアプリケーションを構成する画面上の入力フィールドに対するテストデータを作成する。
テストデータの作成の際、入力フィールドに対する入力値制約を踏まえて有効なテスト(テスト項目やテストデータ)を作成する必要がある。そのため、テスト担当者は全ての画面上の入力フィールドに対する入力値制約を把握した上で、入力フィールドに対して必要なテスト項目を精査し、チェック観点を確認するために、テストデータが影響を与える処理部分まで到達するように、また、入力フィールドの入力値制約を満たすようにテストデータを作成する必要がある。しかし、このような人手によるテスト設計は非常に工数がかかる。
人手を介さずにテスト項目を自動で作成することも可能である。例えば、図3に示すように、テスト対象アプリケーションにおける画面上の各入力フィールドと暗黙知に基づくテストデータとを組み合わせることで、テスト項目を作成することができる。しかし、この単純な組み合わせによる方法では、入力フィールドの入力値制約を踏まえていないため、不要なテスト項目の生成や、テスト目的に適したテストデータが作成できない場合がある。
単純な組合せによるテスト項目の作成における問題点を図4を参照して説明する。図4の例では、予め作成しておいた暗黙知に基づくテストデータ30(暗黙知カテゴリ毎の固定値のテストデータ)を、テスト対象アプリケーションの各入力フィールドに組み合わせることで、テスト項目表40を作成する。テスト項目表40には、各入力フィールドの制約が含まれる。例えば、画面AのPasswordの入力フィールドにおける制約は「8文字以上16文字以下」である。
図4に示すように、テスト担当者は、テスト項目表に従って、例えば、画面AのPasswordの入力フィールドに、テストデータ30におけるNo.1~3のテストデータを入力することによりテストを行う。しかし、「A」で示したように、No.2及びNo.3のテストデータは、日付型の入力フィールド(例:生年月日)に対する暗黙知テストのためのテストデータであるため、日付型以外の入力フィールドに対するこれらのデータを用いたテストは不要である。すなわち、画面AのPasswordの入力フィールドに対する、No.2、No.3のテストデータを用いたテストは無駄なテストとなる。
また、サーバ装置20において、DBに対する処理2の動作をチェックする必要がある場合において、処理2に到達するにはテストデータが入力フィールドの制約を満たす必要がある。しかし、図4に示す「B」に示すテストデータ(No.1のテストデータ)では、処理2に到達できない。
すなわち、テスト対象アプリケーションにおける画面上の各入力フィールドと暗黙知に基づくテストデータとを組み合わせる単純な手法では、下記の課題1、2に示すように、暗黙知に基づく入力値バリエーションテストで用いるテストデータを適切に生成することができない。
課題1は、不要なテスト項目(つまり、不要なテストデータ)が生成されてしまうということである。暗黙知の観点として、"存在しない日付"の投入によって異常な動作をしないことを確認する場合、日付型ではない入力フィールドへのテストデータ入力は不要である。しかし、図4に示したように、単純手法では、Passwordの入力フィールドへのテストデータとして、"存在しない日付"の投入によって異常な動作をしないことを確認するためのテストデータが用いられてしまう。すなわち、無駄なテストを行うことになってしまう。
課題2は、意図したテストが行えないテストデータが生成されてしまうということである。例えば、テスト対象となる入力フィールドの入力値制約に文字列長が指定されており、テストデータの影響をチェックしたい処理部分への到達のために上記の制約を満たす必要がある場合、入力フィールドに対する入力値制約を満たすテストデータを事前に用意しておく必要がある。しかし、図4に示したように、単純手法では、このようなテストデータを適切に生成できない。
(本発明の実施の形態の説明)
<概要>
以下、上記の課題を解決する本発明の実施の形態に係る技術について詳細に説明する。以下では、課題1を解決するための処理と課題2を解決するための処理とを説明するが、課題1を解決するための処理と課題2を解決するための処理とを独立に行うこととしてもよい。本実施の形態では、暗黙知のチェック観点として必要なテストの抽出、及び、テスト対象である入力フィールドの入力値制約を満たすテストデータの生成を実現している。なお、本実施の形態において、「テストデータを生成する」とは、正規表現等に基づきテストデータを生成することの他、辞書等に予め用意されている複数のテストデータから、対象の入力フィールドに適したテストデータを取得することも含む。概要は下記のとおりである。
<概要>
以下、上記の課題を解決する本発明の実施の形態に係る技術について詳細に説明する。以下では、課題1を解決するための処理と課題2を解決するための処理とを説明するが、課題1を解決するための処理と課題2を解決するための処理とを独立に行うこととしてもよい。本実施の形態では、暗黙知のチェック観点として必要なテストの抽出、及び、テスト対象である入力フィールドの入力値制約を満たすテストデータの生成を実現している。なお、本実施の形態において、「テストデータを生成する」とは、正規表現等に基づきテストデータを生成することの他、辞書等に予め用意されている複数のテストデータから、対象の入力フィールドに適したテストデータを取得することも含む。概要は下記のとおりである。
本実施の形態では、暗黙知カテゴリに対して生成条件を指定できるようにすることで必要なテストデータだけを生成することで、不要なテストの実施を回避することとしている。また、テスト対象の入力フィールドに対する入力値制約を満たすようにテストデータを生成することで、意図したテストとなるようにしている。なお、テスト対象アプリケーションの各画面上の各入力フィールドに対する入力値制約は、どのような方法で取得してもよい。例えば、人手で取得してもよいし、テスト対象アプリケーションを解析することで取得することとしてもよい。
<装置構成>
図5に、本実施の形態におけるテストデータ生成装置100の構成図を示す。図5に示すように、テストデータ生成装置100は、暗黙知テストデータ辞書DB(データベース)110、入力部120、生成部130、出力部140を有する。各部の動作については後述する動作説明のところで説明する。なお、テストデータ生成装置100は、図1に示したクライアント装置10であってもよいし、クライアント装置10とは別の装置であってもよい。また、暗黙知テストデータ辞書DBを「格納部」と呼んでもよい。
図5に、本実施の形態におけるテストデータ生成装置100の構成図を示す。図5に示すように、テストデータ生成装置100は、暗黙知テストデータ辞書DB(データベース)110、入力部120、生成部130、出力部140を有する。各部の動作については後述する動作説明のところで説明する。なお、テストデータ生成装置100は、図1に示したクライアント装置10であってもよいし、クライアント装置10とは別の装置であってもよい。また、暗黙知テストデータ辞書DBを「格納部」と呼んでもよい。
テストデータ生成装置100は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現することができる。なお、この「コンピュータ」は、仮想マシンであってもよい。仮想マシンを使用する場合、ここで説明する「ハードウェア」は仮想的なハードウェアである。
テストデータ生成装置100は、当該コンピュータに内蔵されるCPUやメモリ等のハードウェア資源を用いて、テストデータ生成装置100で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
図6は、上記コンピュータのハードウェア構成例を示す図である。図6のコンピュータは、それぞれバスBで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インタフェース装置1005、表示装置1006、及び入力装置1007等を有する。
当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、テストデータ生成装置100に係る機能を実現する。インタフェース装置1005は、ネットワークに接続するためのインタフェースとして用いられる。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。
<テストデータ生成装置100の動作概要>
テストデータ生成装置100が実行するテストデータ生成の概要を図7を参照して説明する。まず、テスト担当者は、テストデータ生成用の辞書を用意する。この辞書を暗黙知テストデータ辞書と呼ぶ。暗黙知テストデータ辞書の例は、図7に「50」として示されている。暗黙知テストデータ辞書50は、テストデータ生成装置100の暗黙知テストデータ辞書DB110に格納される。
テストデータ生成装置100が実行するテストデータ生成の概要を図7を参照して説明する。まず、テスト担当者は、テストデータ生成用の辞書を用意する。この辞書を暗黙知テストデータ辞書と呼ぶ。暗黙知テストデータ辞書の例は、図7に「50」として示されている。暗黙知テストデータ辞書50は、テストデータ生成装置100の暗黙知テストデータ辞書DB110に格納される。
図7の暗黙知テストデータ辞書50に示すとおり、暗黙知テストデータ辞書50には、暗黙知カテゴリ、生成方法、テストデータ情報、暗黙知カテゴリに対するテストの生成条件としての入力フィールドの入力値制約が格納される。生成条件としての入力フィールドの入力値制約は、全ての暗黙知カテゴリに設定されるわけではない。暗黙知カテゴリの内容に応じて、生成条件が設定される場合とされない場合がある。なお、「テストデータ情報」とは、例えば文字コード範囲のように生成方法に関する情報や、複数の固定のテストデータ等である。
テストデータ生成装置100の生成部130は、ある入力フィールドに対するある暗黙知カテゴリについてのテストデータを生成する際に、暗黙知テストデータ辞書DB110を参照し、当該暗黙知カテゴリについて、当該入力フィールドの入力値制約が、生成条件の入力値制約と合致する場合にテストデータを生成し、合致しない場合にはテストデータを生成しない。これにより、不要なテストが生成されてしまうという課題1が解決される。
例えば、図7に示す例において、画面AのPasswordの入力フィールドに関してNo.2(日付形式のバリエーション)の暗黙知カテゴリに対し、生成条件は「日付型」(「A」で示される)であるが、入力制約は「8文字以上16文字以下」(「Bで示される」)であるため、一致しないので、当該入力フィールドの当該暗黙知カテゴリに対するテストデータは生成されない。図7の例では、当該入力フィールドの当該暗黙知カテゴリのテストデータはテスト項目表に含まれないので、当該入力フィールドの当該暗黙知カテゴリについてのテストは行われない。つまり、無駄なテストを省略できる。
暗黙知テストデータ辞書50における生成条件と入力フィールドの入力値制約のどちらも有る場合と、どちらもない場合と、いずれかが有る場合がある。図8に、暗黙知テストデータ辞書50における生成条件と入力フィールドの入力値制約の指定有無によるテストの生成する/しないの関係を示す。
図8に示すように、生成条件と入力フィールドの入力値制約のどちらも有る場合には、上述したとおり、制約が合致した場合にのみテストデータを生成する。生成条件が有り、入力フィールドの入力値制約が無い場合、当該暗黙知カテゴリに対してテストデータを生成しない(不一致の場合と同等)。生成条件が無く、入力フィールドの入力値制約が有る場合、当該暗黙知カテゴリに対してテストデータを生成する。生成条件と入力フィールドの入力値制約のどちらも無い場合には、当該暗黙知カテゴリに対してテストデータを生成する。
図7の「C」で示すとおり、暗黙知テストデータ辞書50に生成方法を設け、生成方法として固定値を用いる方法以外に、正規表現に基づく方法を指定可能とし、それに対するテストデータとして生成する文字コード範囲の組を指定可能としている。
テストデータ生成装置100の生成部130は、ある入力フィールドに対し、正規表現が適用される暗黙知カテゴリのテストデータを作成する際に、当該入力フィールドに入力値制約が指定されている場合は、その制約を満たすテストデータ(例:「8文字以上16文字以下」を満たすテストデータ)を正規表現に基づいて、指定された文字コード範囲で自動生成する。
<テストデータ生成装置100の動作詳細>
次に、テストデータ生成装置100の動作詳細を図9、図10に示すフローチャートに基づいて説明する。暗黙知テストデータ辞書DB110には、暗黙知テストデータ辞書が格納されているものとする。
次に、テストデータ生成装置100の動作詳細を図9、図10に示すフローチャートに基づいて説明する。暗黙知テストデータ辞書DB110には、暗黙知テストデータ辞書が格納されているものとする。
入力部120には、テストコードと入力値制約情報が入力される。当該テストコードは、入力値バリエーションテストにおいて、テストデータのバリエーションを生成するためのベース(雛形)となるコード(スクリプトと呼んでもよい)である。
より具体的には、入力されるテストコードは、テスト対象とする画面まで到達するためのコードと、到達した画面の入力フィールド群へのテストデータ投入、及び、次の画面への遷移を伴うボタン等のクリック操作を実施するコードから構成される。
テストコードは人手で作成しても良いし、テスト対象のWebアプリケーションを自動で操作することで仕様情報を復元し、復元された仕様情報からテストスクリプトを自動生成するリバースベースのテストスクリプト自動生成技術を活用しても良い。なお、テストスクリプト自動生成技術を開示した参考文献として、例えば「倉林 利行, 伊山 宗吉,切貫 弘之, 丹野 治門: "画面操作を伴うテストにおけるテストスクリプトの自動生成手法", ソフトウェアエンジニアリングシンポジウム2017論文集 pp. 260-264,2017年9月」がある。
入力値制約情報は、テスト対象アプリケーションの入力フィールド毎の入力値制約である。図7に示す画面Aの生年月日入力フィールドの「日付型」は、入力値制約の例である。入力値制約情報は、人手で取得してもよいし、コンピュータがテスト対象アプリケーションやソースコードを解析して自動的に抽出してもよい。
図9のS101において、生成部130は、入力されたテストコードからテスト対象とする画面上の入力フィールド群を抽出する。S102及びS109に示すように、S103~S108の処理は、抽出した入力フィールド群のそれぞれに対して実行される。
S103において、生成部130は、入力値制約情報から、処理対象の入力フィールドに対する入力値制約を抽出する。
S104及びS108に示すように、S105~S107の処理は、対象の入力フィールドに対し、暗黙知テストデータ辞書における全ての暗黙知カテゴリのそれぞれに対して実行される。
S105において、生成部130は、暗黙知テストデータ辞書DB110を参照することにより、対象の暗黙知カテゴリに対する生成条件があるか否かを判定する。S105の判定がYes(生成条件有り)であればS106に進み、No(生成条件無し)であればS107に進む。
S106において、生成部130は、生成条件の入力値制約が入力フィールドの入力値制約と一致するか否かを判定する。S106の判定結果がNo(一致しない)であればテストデータを生成せずに、次の暗黙知カテゴリに進む。S106の判定結果がYes(一致する)であれば、S107に進み、生成部130は、対象の入力フィードに対する対象の暗黙知カテゴリのテストデータ及びテストコードを生成する。
図10は、S107の処理を示すフローチャートである。S201において、生成部130は、暗黙知テストデータ辞書DB110を参照することにより、該当暗黙知カテゴリについてのテストデータの生成方法が固定値であるか否かを判定する。
S201の判定結果がYes(生成方法が固定値)である場合、S202に進み、No(生成方法が固定値でない)である場合、S206に進む。
S202及びS205に示すとおり、S203~S204は、該当暗黙知カテゴリにおける全ての固定値テストデータのそれぞれに対して実行される。
S203において、生成部130は、テストコードを複製する。ここでのテストコードは、前述したように、テストデータのバリエーションを生成するためのベース(雛形)となるコードである。S206でも同様である。
S204において、生成部130は、S203で複製したテストコードにおける入力フィールドへの投入データを対象のテストデータ(固定値のテストデータ)に変更し、出力部140に渡す。出力部140は、当該テストデータが設定されたテストコードを出力する。
S201の判定結果がNo(生成方法が固定値でない)の場合に進むS206において、生成部130は、テストコードを複製する。
本実施の形態において、生成方法が固定値でない場合、生成方法は正規表現であるとする。S207において、生成部130は、対象の入力フィールドの入力値制約を満たした上で、暗黙知テストデータ辞書で指定された文字コード範囲の文字をランダムに使用して正規表現に基づいたテストデータを生成する。なお、このように正規表現に基づいてデータを生成すること自体は既存技術である。
S208において、生成部130は、複製したテストコードにおける入力フィールドへの投入データを、S207で生成したテストデータに変更し、出力部140に渡す。出力部140は、当該テストデータが設定されたテストコードを出力する。
上記の処理により、入力フィールド毎、テストデータ生成を行う暗黙知カテゴリ毎に、投入データとしてテストデータが設定されたテストコードが出力される。例えば、出力されたテストコードが組み込まれた全体のテストコードがクライアント装置10で実行されることでテストが実施される。
なお、上記の例では、投入データとしてテストデータが設定されたテストコードを出力することとしたが、これは一例である。生成したテストデータをテストコードに設定することに代えて、テストデータのみを出力し、人手でテストデータを該当入力フィールドに入力することでテストを行うこととしてもよい。
また、上記の図7で示す例では、入力フィールドに対する入力値制約を満たすテストデータ生成において、入力フィールドの入力値制約として文字列長を例として挙げたが、数値の範囲指定の入力値制約(例:年齢制限)がある場合、数値範囲の制約を踏まえてテストデータを生成することも可能である。
(実施の形態の効果)
以上、説明したとおり、本実施の形態では、暗黙知テストデータ辞書において、暗黙知カテゴリに対するテストの生成条件として入力値制約を指定し、テストデータ生成時には、生成条件の入力値制約と入力フィールドに対する入力値制約とが合致した場合にテストデータを生成することとした。
以上、説明したとおり、本実施の形態では、暗黙知テストデータ辞書において、暗黙知カテゴリに対するテストの生成条件として入力値制約を指定し、テストデータ生成時には、生成条件の入力値制約と入力フィールドに対する入力値制約とが合致した場合にテストデータを生成することとした。
また、本実施の形態では、暗黙知テストデータ辞書において、暗黙知カテゴリに対するテストデータの生成方法として、正規表現及び生成する文字コード範囲を指定可能とし、テストデータの生成時には、入力フィールドに対して入力値制約が指定されている場合は、入力値制約を満たすようにテストデータを自動生成することとした。
上記の技術により、不要なテストデータを生成することなく、カテゴリのチェック観点に基づいた適切なテストデータだけを生成でき、無駄なテストを省略できる。また、意図したチェックを実行可能なテストデータを生成することが可能となる。
(実施の形態のまとめ)
本明細書には、少なくとも下記の各項に記載したテストデータ生成装置、テストデータ生成方法、プログラムが記載されている。
(第1項)
暗黙知に基づく入力値バリエーションテストを行う対象であるテスト対象アプリケーションの入力フィールドへ投入するテストデータを生成するためのテストデータ生成装置であって、
暗黙知カテゴリ毎に、生成方法、テストデータ情報、及び生成条件とする入力フィールドの入力値制約を有する暗黙知テストデータ辞書を格納する格納部と、
テストデータ生成対象の入力フィールドである対象入力フィールドに対するある暗黙知カテゴリについて、前記暗黙知テストデータ辞書を参照することにより、前記テスト対象アプリケーションにおける前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致すると判定した場合に、前記対象入力フィールドに対するテストデータを生成し、前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致しないと判定した場合に、前記対象入力フィールドに対するテストデータを生成しない生成部と
を備えるテストデータ生成装置。
(第2項)
前記暗黙知テストデータ辞書において、前記暗黙知カテゴリに対する生成条件が存在しない場合、前記生成部は、前記対象入力フィールドに対するテストデータを生成する
第1項に記載のテストデータ生成装置。
(第3項)
暗黙知に基づく入力値バリエーションテストを行う対象であるテスト対象アプリケーションの入力フィールドへ投入するテストデータを生成するためのテストデータ生成装置であって、
暗黙知カテゴリ毎に、生成方法、及びテストデータ情報を有する暗黙知テストデータ辞書を格納する格納部と、
テストデータ生成対象の入力フィールドである対象入力フィールドに対するある暗黙知カテゴリについて、前記暗黙知テストデータ辞書を参照することにより、前記対象入力フィールドに対する入力値制約を満たしたテストデータを正規表現に基づいて生成する生成部と
を備えるテストデータ生成装置。
(第4項)
前記入力値制約は、文字列長、又は、数値範囲である
第3項に記載のテストデータ生成装置。
(第5項)
暗黙知に基づく入力値バリエーションテストを行う対象であるテスト対象アプリケーションの入力フィールドへ投入するテストデータを生成するためのテストデータ生成装置が実行するテストデータ生成方法であって、
前記テストデータ生成装置は、暗黙知カテゴリ毎に、生成方法、テストデータ情報、及び生成条件とする入力フィールドの入力値制約を有する暗黙知テストデータ辞書を格納する格納部を備えており、前記テストデータ生成方法は、
テストデータ生成対象の入力フィールドである対象入力フィールドに対するある暗黙知カテゴリについて、前記暗黙知テストデータ辞書を参照することにより、前記テスト対象アプリケーションにおける前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致すると判定した場合に、前記対象入力フィールドに対するテストデータを生成し、前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致しないと判定した場合に、前記対象入力フィールドに対するテストデータを生成しない生成ステップ
を備えるテストデータ生成方法。
(第6項)
コンピュータを、第1項ないし第4項のうちいずれか1項に記載のテストデータ生成装置の各部として機能させるためのプログラム。
本明細書には、少なくとも下記の各項に記載したテストデータ生成装置、テストデータ生成方法、プログラムが記載されている。
(第1項)
暗黙知に基づく入力値バリエーションテストを行う対象であるテスト対象アプリケーションの入力フィールドへ投入するテストデータを生成するためのテストデータ生成装置であって、
暗黙知カテゴリ毎に、生成方法、テストデータ情報、及び生成条件とする入力フィールドの入力値制約を有する暗黙知テストデータ辞書を格納する格納部と、
テストデータ生成対象の入力フィールドである対象入力フィールドに対するある暗黙知カテゴリについて、前記暗黙知テストデータ辞書を参照することにより、前記テスト対象アプリケーションにおける前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致すると判定した場合に、前記対象入力フィールドに対するテストデータを生成し、前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致しないと判定した場合に、前記対象入力フィールドに対するテストデータを生成しない生成部と
を備えるテストデータ生成装置。
(第2項)
前記暗黙知テストデータ辞書において、前記暗黙知カテゴリに対する生成条件が存在しない場合、前記生成部は、前記対象入力フィールドに対するテストデータを生成する
第1項に記載のテストデータ生成装置。
(第3項)
暗黙知に基づく入力値バリエーションテストを行う対象であるテスト対象アプリケーションの入力フィールドへ投入するテストデータを生成するためのテストデータ生成装置であって、
暗黙知カテゴリ毎に、生成方法、及びテストデータ情報を有する暗黙知テストデータ辞書を格納する格納部と、
テストデータ生成対象の入力フィールドである対象入力フィールドに対するある暗黙知カテゴリについて、前記暗黙知テストデータ辞書を参照することにより、前記対象入力フィールドに対する入力値制約を満たしたテストデータを正規表現に基づいて生成する生成部と
を備えるテストデータ生成装置。
(第4項)
前記入力値制約は、文字列長、又は、数値範囲である
第3項に記載のテストデータ生成装置。
(第5項)
暗黙知に基づく入力値バリエーションテストを行う対象であるテスト対象アプリケーションの入力フィールドへ投入するテストデータを生成するためのテストデータ生成装置が実行するテストデータ生成方法であって、
前記テストデータ生成装置は、暗黙知カテゴリ毎に、生成方法、テストデータ情報、及び生成条件とする入力フィールドの入力値制約を有する暗黙知テストデータ辞書を格納する格納部を備えており、前記テストデータ生成方法は、
テストデータ生成対象の入力フィールドである対象入力フィールドに対するある暗黙知カテゴリについて、前記暗黙知テストデータ辞書を参照することにより、前記テスト対象アプリケーションにおける前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致すると判定した場合に、前記対象入力フィールドに対するテストデータを生成し、前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致しないと判定した場合に、前記対象入力フィールドに対するテストデータを生成しない生成ステップ
を備えるテストデータ生成方法。
(第6項)
コンピュータを、第1項ないし第4項のうちいずれか1項に記載のテストデータ生成装置の各部として機能させるためのプログラム。
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 クライアント装置
20 サーバ装置
100 テストデータ生成装置
110 暗黙知テストデータ辞書DB
120 入力部
130 生成部
140 出力部
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インターフェース装置
1006 表示装置
1007 入力装置
20 サーバ装置
100 テストデータ生成装置
110 暗黙知テストデータ辞書DB
120 入力部
130 生成部
140 出力部
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インターフェース装置
1006 表示装置
1007 入力装置
Claims (6)
- 暗黙知に基づく入力値バリエーションテストを行う対象であるテスト対象アプリケーションの入力フィールドへ投入するテストデータを生成するためのテストデータ生成装置であって、
暗黙知カテゴリ毎に、生成方法、テストデータ情報、及び生成条件とする入力フィールドの入力値制約を有する暗黙知テストデータ辞書を格納する格納部と、
テストデータ生成対象の入力フィールドである対象入力フィールドに対するある暗黙知カテゴリについて、前記暗黙知テストデータ辞書を参照することにより、前記テスト対象アプリケーションにおける前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致すると判定した場合に、前記対象入力フィールドに対するテストデータを生成し、前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致しないと判定した場合に、前記対象入力フィールドに対するテストデータを生成しない生成部と
を備えるテストデータ生成装置。 - 前記暗黙知テストデータ辞書において、前記暗黙知カテゴリに対する生成条件が存在しない場合、前記生成部は、前記対象入力フィールドに対するテストデータを生成する
請求項1に記載のテストデータ生成装置。 - 暗黙知に基づく入力値バリエーションテストを行う対象であるテスト対象アプリケーションの入力フィールドへ投入するテストデータを生成するためのテストデータ生成装置であって、
暗黙知カテゴリ毎に、生成方法、及びテストデータ情報を有する暗黙知テストデータ辞書を格納する格納部と、
テストデータ生成対象の入力フィールドである対象入力フィールドに対するある暗黙知カテゴリについて、前記暗黙知テストデータ辞書を参照することにより、前記対象入力フィールドに対する入力値制約を満たしたテストデータを正規表現に基づいて生成する生成部と
を備えるテストデータ生成装置。 - 前記入力値制約は、文字列長、又は、数値範囲である
請求項3に記載のテストデータ生成装置。 - 暗黙知に基づく入力値バリエーションテストを行う対象であるテスト対象アプリケーションの入力フィールドへ投入するテストデータを生成するためのテストデータ生成装置が実行するテストデータ生成方法であって、
前記テストデータ生成装置は、暗黙知カテゴリ毎に、生成方法、テストデータ情報、及び生成条件とする入力フィールドの入力値制約を有する暗黙知テストデータ辞書を格納する格納部を備えており、前記テストデータ生成方法は、
テストデータ生成対象の入力フィールドである対象入力フィールドに対するある暗黙知カテゴリについて、前記暗黙知テストデータ辞書を参照することにより、前記テスト対象アプリケーションにおける前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致すると判定した場合に、前記対象入力フィールドに対するテストデータを生成し、前記対象入力フィールドの入力値制約と、前記暗黙知カテゴリについての生成条件の入力値制約とが合致しないと判定した場合に、前記対象入力フィールドに対するテストデータを生成しない生成ステップ
を備えるテストデータ生成方法。 - コンピュータを、請求項1ないし4のうちいずれか1項に記載のテストデータ生成装置の各部として機能させるためのプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/045490 WO2021100156A1 (ja) | 2019-11-20 | 2019-11-20 | テストデータ生成装置、テストデータ生成方法、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2021100156A1 JPWO2021100156A1 (ja) | 2021-05-27 |
JP7268759B2 true JP7268759B2 (ja) | 2023-05-08 |
Family
ID=75980448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021558103A Active JP7268759B2 (ja) | 2019-11-20 | 2019-11-20 | テストデータ生成装置、テストデータ生成方法、及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US12001325B2 (ja) |
JP (1) | JP7268759B2 (ja) |
WO (1) | WO2021100156A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416531A (zh) * | 2021-12-23 | 2022-04-29 | 税友信息技术有限公司 | 一种测试数据生成方法、装置、设备及介质 |
US20230259449A1 (en) * | 2022-02-17 | 2023-08-17 | Sap Se | Evaluation and update of test code with respect to production code changes |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000207248A (ja) | 1999-01-14 | 2000-07-28 | Toshiba Corp | 並列プログラムの挙動生成装置及び方法並びに並列プログラムの挙動生成用ソフトウェアを記録した記録媒体 |
US20190179734A1 (en) | 2017-12-07 | 2019-06-13 | Conformiq, Inc. | User assisted automated test case generation |
JP2019191689A (ja) | 2018-04-19 | 2019-10-31 | Heroz株式会社 | ウェブ検査プログラム及びウェブ検査装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7844616B2 (en) * | 2007-01-30 | 2010-11-30 | International Business Machines Corporation | Method, system, and program product for discovering relevant information in a dynamic information system |
JP2012103791A (ja) * | 2010-11-08 | 2012-05-31 | Mitsubishi Electric Corp | プログラム試験装置、プログラム試験方法およびプログラム試験用プログラム |
US9146829B1 (en) * | 2013-01-03 | 2015-09-29 | Amazon Technologies, Inc. | Analysis and verification of distributed applications |
US9465942B1 (en) * | 2013-04-08 | 2016-10-11 | Amazon Technologies, Inc. | Dictionary generation for identifying coded credentials |
JP6417791B2 (ja) * | 2014-08-27 | 2018-11-07 | 日本電気株式会社 | アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム |
-
2019
- 2019-11-20 WO PCT/JP2019/045490 patent/WO2021100156A1/ja active Application Filing
- 2019-11-20 US US17/777,959 patent/US12001325B2/en active Active
- 2019-11-20 JP JP2021558103A patent/JP7268759B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000207248A (ja) | 1999-01-14 | 2000-07-28 | Toshiba Corp | 並列プログラムの挙動生成装置及び方法並びに並列プログラムの挙動生成用ソフトウェアを記録した記録媒体 |
US20190179734A1 (en) | 2017-12-07 | 2019-06-13 | Conformiq, Inc. | User assisted automated test case generation |
JP2019191689A (ja) | 2018-04-19 | 2019-10-31 | Heroz株式会社 | ウェブ検査プログラム及びウェブ検査装置 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2021100156A1 (ja) | 2021-05-27 |
US12001325B2 (en) | 2024-06-04 |
WO2021100156A1 (ja) | 2021-05-27 |
US20220350730A1 (en) | 2022-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10684943B2 (en) | Generating executable test automation code automatically according to a test case | |
JP4395761B2 (ja) | プログラムテスト支援装置およびその方法 | |
US8434058B1 (en) | Integrated system and method for validating the functionality and performance of software applications | |
CN108228861B (zh) | 用于执行机器学习的特征工程的方法及系统 | |
JP6354457B2 (ja) | アプリケーション開発支援装置、そのデータ処理方法、およびプログラム | |
WO2021036697A1 (zh) | 投产方法、装置、设备和存储介质 | |
JP7268759B2 (ja) | テストデータ生成装置、テストデータ生成方法、及びプログラム | |
US9715372B2 (en) | Executable guidance experiences based on implicitly generated guidance models | |
CN106484389B (zh) | 动作流分段管理 | |
JP2000112784A (ja) | プログラムテスト支援装置及びプログラムテスト支援プログラムを記録した記録媒体 | |
US20220214963A1 (en) | Analysis apparatus, analysis method and program | |
JP2023000907A (ja) | ソースコード修正支援装置及びソースコード修正支援方法 | |
WO2020085129A1 (ja) | テストデータ生成装置、テストデータ生成方法及びプログラム | |
CN114764296A (zh) | 机器学习模型训练方法、装置、电子设备及存储介质 | |
JP7283569B2 (ja) | 操作パターン生成装置、操作パターン生成方法及びプログラム | |
JP7212238B2 (ja) | 情報処理装置、その制御方法及びプログラム | |
US8775873B2 (en) | Data processing apparatus that performs test validation and computer-readable storage medium | |
JP2016173756A (ja) | テストケース生成プログラム、テストケース生成方法およびテストケース生成装置 | |
WO2022249420A1 (ja) | テスト生成装置、テスト生成方法、及びプログラム | |
JP6665637B2 (ja) | プログラム作成支援システム | |
Nguyen et al. | Analyzing bug reports by topic mining in software evolution | |
JP7506339B2 (ja) | 情報処理システム、その制御方法及びプログラム | |
JP2009181180A (ja) | プログラム生成ツールの検査プログラムおよびプログラム生成ツールの検査方法ならびにプログラム生成ツールの検査装置 | |
JP5683209B2 (ja) | ドキュメント類自動生成機能付クライアントコンピュータ | |
JP5918102B2 (ja) | 解析システム、解析装置、解析方法及び解析プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220413 |
|
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: 20230322 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230404 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7268759 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |