特許第6902814号(P6902814)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アミフィアブル株式会社の特許一覧

特許6902814テスト支援システム、テスト支援方法及びプログラム
<>
  • 特許6902814-テスト支援システム、テスト支援方法及びプログラム 図000002
  • 特許6902814-テスト支援システム、テスト支援方法及びプログラム 図000003
  • 特許6902814-テスト支援システム、テスト支援方法及びプログラム 図000004
  • 特許6902814-テスト支援システム、テスト支援方法及びプログラム 図000005
  • 特許6902814-テスト支援システム、テスト支援方法及びプログラム 図000006
  • 特許6902814-テスト支援システム、テスト支援方法及びプログラム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6902814
(24)【登録日】2021年6月24日
(45)【発行日】2021年7月14日
(54)【発明の名称】テスト支援システム、テスト支援方法及びプログラム
(51)【国際特許分類】
   G06F 11/36 20060101AFI20210701BHJP
   G06N 20/00 20190101ALI20210701BHJP
【FI】
   G06F11/36 184
   G06N20/00 130
【請求項の数】5
【全頁数】10
(21)【出願番号】特願2021-28213(P2021-28213)
(22)【出願日】2021年2月25日
【審査請求日】2021年4月16日
【早期審査対象出願】
(73)【特許権者】
【識別番号】518149497
【氏名又は名称】アミフィアブル株式会社
(74)【代理人】
【識別番号】110002790
【氏名又は名称】One ip特許業務法人
(72)【発明者】
【氏名】河村 隆一
【審査官】 稲葉 崇
(56)【参考文献】
【文献】 米国特許出願公開第2016/0179659(US,A1)
【文献】 米国特許出願公開第2019/0384699(US,A1)
【文献】 米国特許出願公開第2019/0213115(US,A1)
【文献】 米国特許出願公開第2020/0356466(US,A1)
【文献】 国際公開第2020/059506(WO,A1)
【文献】 特開2017−117309(JP,A)
【文献】 特開平03−290740(JP,A)
【文献】 特開2019−082882(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F11/07,11/28−11/36
G06F8/00−8/38
G06F8/60−8/77
G06F9/44−9/445,9/451
G06N3/00−3/12
G06N7/08−99/00
(57)【特許請求の範囲】
【請求項1】
システムの画面定義情報を入力データとし、テストケース、テストプログラム及びテストデータ教師データとして学習させた学習モデルを記憶するモデル記憶部であって、前記画面定義情報には、画面に含まれる要素を特定する要素特定情報並びに前記要素に対する操作及び前記操作後の結果が含まれる、前記モデル記憶部と、
テスト対象のシステムの前記画面定義情報の入力を受け付ける画面定義入力部と、
前記画面定義情報を前記学習モデルに与えて前記テストケース、前記テストプログラム及び前記テストデータ生成する生成部と、
生成した前記テストケース、前記テストプログラム及び前記テストデータ出力する出力部と、
を備えることを特徴とするテスト支援システム。
【請求項2】
請求項1に記載のテスト支援システムであって、
前記生成部は、前記テストケース、前記テストプログラム及び前記テストデータを全て生成し、
前記テストケースに従って、前記テストプログラムを実行し、前記テスト対象のシステムが表示する画面に対して前記テストデータを与えてテストを実施し、前記テストの実施結果を検証するテスト実行部をさらに備えること、
を特徴とするテスト支援システム。
【請求項3】
請求項1に記載のテスト支援システムであって、
前記画面定義情報と、前記テストケース、前記テストプログラム及び前記テストデータ入力を受け付けて前記学習モデルを更新する学習部をさらに備えること、
を特徴とするテスト支援システム。
【請求項4】
システムの画面定義情報を入力データとし、テストケース、テストプログラム及びテストデータ教師データとして学習させた学習モデルを記憶するステップであって、前記画面定義情報には、画面に含まれる要素を特定する要素特定情報並びに前記要素に対する操作及び前記操作後の結果が含まれる、前記ステップと、
テスト対象のシステムの前記画面定義情報の入力を受け付けるステップと、
前記画面定義情報を前記学習モデルに与えて前記テストケース、前記テストプログラム及び前記テストデータ生成するステップと、
生成した前記テストケース、前記テストプログラム及び前記テストデータ出力するステップと、
をコンピュータが実行するテスト支援方法。
【請求項5】
システムの画面定義情報を入力データとし、テストケース、テストプログラム及びテストデータ教師データとして学習させた学習モデルを記憶するステップであって、前記画面定義情報には、画面に含まれる要素を特定する要素特定情報並びに前記要素に対する操作及び前記操作後の結果が含まれる、前記ステップと、
テスト対象のシステムの前記画面定義情報の入力を受け付けるステップと、
前記画面定義情報を前記学習モデルに与えて前記テストケース、前記テストプログラム及び前記テストデータ生成するステップと、
生成した前記テストケース、前記テストプログラム及び前記テストデータ出力するステップと、
をコンピュータに実行させるためのプログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、テスト支援システム、テスト支援方法及びプログラムに関する。
【背景技術】
【0002】
仕様書からテストケースを生成することが行われている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2011−204069号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の装置では、テスト対象のプログラムの設計書からテスト仕様書とテストデータが生成されるため、複数のプログラムを含む大規模なシステムに適用するのは困難であった。
【0005】
本発明はこのような背景を鑑みてなされたものであり、ソフトウェアテストを容易に行うようにすることのできる技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するための本発明の主たる発明は、テスト支援システムであって、システムの画面定義情報を入力データとし、テストケース、テストプログラム及びテストデータの少なくともいずれかを教師データとして学習させた学習モデルを記憶するモデル記憶部と、テスト対象のシステムの前記画面定義情報の入力を受け付ける画面定義入力部と、前記画面定義情報を前記学習モデルに与えて前記テストケース、前記テストプログラム及び前記テストデータの少なくともいずれかを生成する生成部と、生成した前記テストケース、前記テストプログラム及び前記テストデータの少なくともいずれかを出力する出力部と、を備えることを特徴とする。
【0007】
その他本願が開示する課題やその解決方法については、発明の実施形態の欄及び図面により明らかにされる。
【発明の効果】
【0008】
本発明によれば、ソフトウェアテストを容易に行うようにすることができる。
【図面の簡単な説明】
【0009】
図1】本発明の一実施形態に係るテスト支援システムの全体構成例を示す図である。
図2】サーバ装置20のハードウェア構成例を示す図である。
図3】サーバ装置20のソフトウェア構成例を示す図である。
図4】画面定義情報の構成例を示す図である。
図5】本実施形態のテスト支援システムによる学習処理の流れを示す図である。
図6】本実施形態のテスト支援システムによるテストの実行処理の流れを示す図である。
【発明を実施するための形態】
【0010】
<発明の概要>
本発明の実施形態の内容を列記して説明する。本発明は、たとえば、以下のような構成を備える。
[項目1]
システムの画面定義情報を入力データとし、テストケース、テストプログラム及びテストデータの少なくともいずれかを教師データとして学習させた学習モデルを記憶するモデル記憶部と、
テスト対象のシステムの前記画面定義情報の入力を受け付ける画面定義入力部と、
前記画面定義情報を前記学習モデルに与えて前記テストケース、前記テストプログラム及び前記テストデータの少なくともいずれかを生成する生成部と、
生成した前記テストケース、前記テストプログラム及び前記テストデータの少なくともいずれかを出力する出力部と、
を備えることを特徴とするテスト支援システム。
[項目2]
項目1に記載のテスト支援システムであって、
前記生成部は、前記テストケース、前記テストプログラム及び前記テストデータを全て生成し、
前記テストケースに従って、前記テストプログラムを実行し、前記テスト対象のシステムが表示する画面に対して前記テストデータを与えてテストを実施し、前記テストの実施結果を検証するテスト実行部をさらに備えること、
を特徴とするテスト支援システム。
[項目3]
項目1に記載のテスト支援システムであって、
前記画面定義情報と、前記テストケース、前記テストプログラム及び前記テストデータの少なくともいずれかの入力を受け付けて前記学習モデルを更新する学習部をさらに備えること、
を特徴とするテスト支援システム。
[項目4]
システムの画面定義情報を入力データとし、テストケース、テストプログラム及びテストデータの少なくともいずれかを教師データとして学習させた学習モデルを記憶するステップと、
テスト対象のシステムの前記画面定義情報の入力を受け付けるステップと、
前記画面定義情報を前記学習モデルに与えて前記テストケース、前記テストプログラム及び前記テストデータの少なくともいずれかを生成するステップと、
生成した前記テストケース、前記テストプログラム及び前記テストデータの少なくともいずれかを出力するステップと、
をコンピュータが実行するテスト支援方法。
[項目5]
システムの画面定義情報を入力データとし、テストケース、テストプログラム及びテストデータの少なくともいずれかを教師データとして学習させた学習モデルを記憶するステップと、
テスト対象のシステムの前記画面定義情報の入力を受け付けるステップと、
前記画面定義情報を前記学習モデルに与えて前記テストケース、前記テストプログラム及び前記テストデータの少なくともいずれかを生成するステップと、
生成した前記テストケース、前記テストプログラム及び前記テストデータの少なくともいずれかを出力するステップと、
をコンピュータに実行させるためのプログラム。
【0011】
<システムの概要>
図1は、本発明の一実施形態に係るテスト支援システムの全体構成例を示す図である。本実施形態のテスト支援システムは、サーバ装置20を含んで構成される。サーバ装置20は、ユーザ端末10と通信ネットワーク30を介して通信可能に接続される。通信ネットワーク30は、たとえばインターネットであり、公衆電話回線網や携帯電話回線網、無線通信路、イーサネット(登録商標)などにより構築される。
【0012】
本実施形態のテスト支援システムは、システム開発に係るテスト(単体テスト、結合テスト、リグレッションテスト、総合テスト等各種のテストを含む。)の工程を支援しようとするものである。システム開発の33%はテスト行程に係る工数が占めるといわれている。本実施形態のテスト支援システムは、このようなテスト工程を自動化しようとするものであり、システムの画面定義からテストケース、テストプログラム及びテストデータの少なくともいずれかを自動生成する。本実施形態では、事前に画面定義、テストケース、テストプログラム及びテストデータを学習しておき、学習モデルを用いて画面定義からテストケース、テストプログラム及びテストデータを自動生成を行うようにしている。
【0013】
テストケースは、システムのテスト(ソフトウェアテスト)を実行するための手順である。テストケースには、例えば、テストを行う条件、テストの方法、テストに得られるべき結果などが含まれる。テストプログラムは、テストを実行するためのプログラムであり、例えば、システムにアクセスするためのブラウザオートメーション機能や、データを入力する機能、画面に対する操作(例えばボタンの押下など)を実行するためのポインティングデバイスのエミュレーション機能などを実現するプログラムであり、例えば、スクリプトプログラム(スクリプトコード)とすることができる。テストケース21に従って、テストプログラムを実行することにより、テストを自動実行することができる。テストデータは、テストプログラムがシステムに入力するデータである。テストプログラムは、自動的にシステムにアクセスし、画面にテストデータを入力して、画面に表示される内容が正しいかどうかをテストケースに設定されている結果と照合することにより、システムの動作の正しさを検証することができる。
【0014】
ユーザ端末10は、システム開発に関わるユーザが利用する、例えばパーソナルコンピュータやタブレットコンピュータ、スマートフォンなどのコンピュータである。ユーザ端末10から画面定義を入力することを想定する。
【0015】
<サーバ装置20>
サーバ装置20は、例えばワークステーションやパーソナルコンピュータのような汎用コンピュータとしてもよいし、あるいはクラウド・コンピューティングによって論理的に実現されてもよい。
【0016】
図2は、サーバ装置20のハードウェア構成例を示す図である。なお、図示された構成は一例であり、これ以外の構成を有していてもよい。サーバ装置20は、CPU201、メモリ202、記憶装置203、通信インタフェース204、入力装置205、出力装置206を備える。記憶装置203は、各種のデータやプログラムを記憶する、例えばハードディスクドライブやソリッドステートドライブ、フラッシュメモリなどである。通信インタフェース204は、通信ネットワーク30に接続するためのインタフェースであり、例えばイーサネット(登録商標)に接続するためのアダプタ、公衆電話回線網に接続するためのモデム、無線通信を行うための無線通信機、シリアル通信のためのUSB(Universal Serial Bus)コネクタやRS232Cコネクタなどである。入力装置205は、データを入力する、例えばキーボードやマウス、タッチパネル、ボタン、マイクロフォンなどである。出力装置206は、データを出力する、例えばディスプレイやプリンタ、スピーカなどである。なお、後述するサーバ装置20が備える機能部は、CPU201が記憶装置203に記憶されているプログラムをメモリ202に読み出して実行することにより実現され、サーバ装置20が備える記憶部は、メモリ202及び記憶部203が提供する記憶領域の一部として実現される。
【0017】
図3は、サーバ装置20のソフトウェア構成例を示す図である。サーバ装置20は、画面定義入力部211、学習部212、生成部213、出力部214、テスト実行部215の機能部と、モデル記憶部231の記憶部とを備える。
【0018】
画面定義入力部211は、テスト対象となるシステムの画面定義情報の入力を受け付ける。図4は、画面定義情報の構成例を示す図である。画面定義情報には、要素特定情報と、内容情報とが含まれる。要素特定情報は、画面に含まれる要素(コンポーネント)を特定する情報である。要素特定情報は、例えば、画面がHTML(HyperText Markup Language)により記載されている場合には、HTMLのタグを特定するCSS(Cascading Style Sheets)セレクタやXPathなどにより表現することができる。内容情報は、当該コンポーネントがテストにどのように用いることが可能であるかを指定する情報である。内容情報には、例えば、リンクタグを選択することにより、他の画面に遷移することや、ボタンタグを押下することによりフォームの内容が処理されること、当該タグの内容が処理結果を示すことなどが指定される。
【0019】
学習部212は、機械学習を実行して学習モデルを作成する。学習部212は、テストケース21、テストプログラム31、テストデータ41、の入力を受け付けることができる。学習部212に与えるテストケース21、テストプログラム31及びテストデータ41は、例えば、エンジニアにより手動で作成されたものであってよい。学習部212は、画面定義情報の入力も受け付ける。学習用の画面定義情報についても画面定義入力部211が受け付けて学習部212に渡すことができる。学習部212は、画面定義情報を入力データとし、テストケース21、テストプログラム31、テストデータ41のそれぞれを教師データとした機械学習を行うことにより、3つの学習モデル(テストケースモデル、スクリプトモデル、データモデル)を作成することができる。テストケースモデルは、テストケース21を教師データとした機械学習の結果であり、スクリプトモデルは、テストプログラム31を教師データとした機械学習の結果であり、データモデルは、テストデータ41を教師データとした機械学習の結果である。なお、学習部212は、画面定義情報を入力データとし、テストケース21、テストプログラム31及びテストデータ41の少なくとも2つの組み合わせを教師データとした機械学習により、学習モデルを作成するようにしてもよい。例えば、画面定義情報に基づいてテストケース、テストプログラム及びテストデータを一度に作成する学習モデルを作成することもできる。
【0020】
モデル記憶部231は、機械学習により作成された学習モデルを記憶する。図3の例では、上述したテストケースモデル、スクリプトモデル及びデータモデルが記憶されている。
【0021】
生成部213は、画面定義情報を学習モデルに与えてテストケース22、テストプログラム32及びテストデータ42の少なくともいずれかを生成する。生成部213は、テストケースモデルに画面定義情報を与えることによりテストケース22を生成することができ、スクリプトモデルに画面定義情報を与えることによりテストプログラム32を生成することができ、データモデルに画面定義情報を与えることによりテストでーった32を生成することができる。
【0022】
出力部214は、生成されたテストケース22、テストプログラム32及びテストデータ42の少なくともいずれかを出力する。出力部214は、テストケース22、テストプログラム32及びテストデータ42を、ディスプレイ等の出力装置206に出力してもよいし、ユーザ端末10に送信してユーザ端末10から出力されるようにしてもよいし、記憶装置203上のファイルシステムに出力するようにしてもよい。
【0023】
テスト実行部215は、生成されたテストケース22、テストプログラム32及びテストデータ42を用いてソフトウェアテストを実行する。テスト実行部215は、例えば、テストケース22に従って、テストプログラム32を実行することにより実現される機能により、テスト対象のシステムが表示する画面に対してテストデータ42を与えてテストを実施することができる。上述したように、テストプログラム32を実行することにより、例えば、ブラウザオートメーションにより自動的にWebアプリケーションにアクセスし、Webアプリケーションが生成する画面に対してテストデータ42を入力し、ボタン押下等の操作を行うことにより画面遷移を行わせ、画面上の結果とテストケース22に設定されている結果とを比較することができる。
【0024】
<動作>
図5は、本実施形態のテスト支援システムによる学習処理の流れを示す図である。
【0025】
画面定義入力部211は、学習用の画面定義書の入力を受け付け(S301)、学習部212は、テストケース21、テストプログラム31及びテストデータ41の入力を受け付ける(S302)。学習部212は、画面定義入力部211が受け付けた画面定義書と、自身が受け付けたテストケース21、テストプログラム31及びテストデータ41とを用いて機械学習を行う(S303)。具体的には、学習部212は、画面定義書を入力データとして、テストケース21、テストプログラム31及びテストデータ41のそれぞれを教師データとした機械学習を行い、その学習結果である3つの学習モデルをモデル記憶部231に登録することができる(S304)。
【0026】
以上のようにして、画面定義書に応じて、テストケース、テストプログラム及びテストデータをそれぞれ出力する学習モデルを作成することができる。なお、画面定義書に応じてテストケース、テストプログラム及びテストデータの組を出力する一つの学習モデルを作成するようにしてもよい。
【0027】
図6は、本実施形態のテスト支援システムによるテストの実行処理の流れを示す図である。
【0028】
画面定義入力部211は、テスト用の画面定義書の入力を受け付け(S321)、生成部213は、画面定義入力部211が受け付けた画面定義書を受け取って、モデル記憶部231に記憶されているテストケースモデル、スクリプトモデル及びデータモデルのにそれぞれ与えて、テストケース22、テストプログラム32及びテストデータ42を生成する(S322)。出力部214は、生成されたテストケース22、テストプログラム32及びテストデータ42を出力する(S323)。出力部214は、例えば、ファイルとしてテストケース22、テストプログラム32及びテストデータ42を記憶装置203に出力するようにしてもよいし、ユーザ端末10にテストケース22、テストプログラム32及びテストデータ42を送信してユーザ端末10から出力されるようにしてもよい。
【0029】
テスト実行部215は、出力部214が出力したテストケース22、テストプログラム32及びテストデータ42を用いてソフトウェアテストを実行する。すなわち、テスト実行部215は、テストケース22に従ってテストプログラム32を実行し、テストプログラム32の実行により、テスト対象のシステムの画面を取得することができる。例えば、HTTPによりテスト対象のシステムにアクセスすることにより、HTMLにより記述された画面を取得することができる。また、テスト実行部215がテストプログラム32を実行することにより、テストデータ42をシステムの画面に入力し、画面に対する操作(例えば、SUBMITボタンの押下など)を実行することができる。(S324)。テスト実行部215は、テストプログラム32の実行により、遷移先の画面に表示されたデータ(表示内容)と、テストケース22に設定されている、期待される出力結果とが一致するか否かにより、システムが正常に動作していることの検証を行う(S325)。
【0030】
テスト実行部215は、テストケース22が手順終了となるまで(S326:NO)、ステップS324からの処理を繰り返す。
【0031】
以上説明したように、本実施形態のテスト支援システムによれば、機械学習を用いて画面定義からテストケース、テストプログラム、テストデータを自動生成することができる。また、本実施形態のテスト支援システムによれば、自動生成したテストケース、テストプログラム、テストデータを用いてソフトウェアテストを自動実行してテスト結果の検証も自動で行うことができる。これによりシステムのテスト(結合テスト、総合テスト等であってよい。)の大部分を自動化できるため、テスト工数を大幅に削減することができる。
【0032】
以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【0033】
なお、本実施形態では、ユーザ端末10とサーバ装置20とは通信ネットワーク30経由で接続され、ユーザ端末10から学習用のテストケース21、テストプログラム31及びテストデータ41が送信されてくるものとしたが、これに限らず、サーバ装置20をユーザが直接操作してテストケース21、テストプログラム31及びテストデータ41を入力するようにすることもできる。
【0034】
また、本実施形態では、テスト実行部215がソフトウェアテストを実行するところまでを説明したが、当然テスト結果を出力するようにすることができる。この場合、例えば、出力部214は、テスト結果をユーザ端末10に送信するようにしてもよいし、テスト結果を記憶装置203等に書き出して保存するようにしてもよいk。
【0035】
また、本実施形態では、学習部212は、テストケース21、テストプログラム31及びテストデータ41のうち1つを教師データとして機械学習を行い、3つの学習モデルを作成するものとしたが、テストケース21、テストプログラム31及びテストデータ41のうち2つ以上の組み合わせを教師データとして、1つ又は複数の学習モデルを作成するようにしてもよい。
【0036】
また、本実施形態では、画面定義は、ユーザが作成する画面定義情報として与えられるものとしたが、画面定義の全部又は一部について、システムの画面を解析して作成する画面定義作成部を備えるようにしてもよい。
【符号の説明】
【0037】
10 ユーザ端末
20 サーバ装置
30 通信ネットワーク
【要約】
【課題】ソフトウェアテストを容易に行うようにすることができるようにする。
【解決手段】テスト支援システムであって、システムの画面定義情報を入力データとし、テストケース、テストプログラム及びテストデータの少なくともいずれかを教師データとして学習させた学習モデルを記憶するモデル記憶部と、テスト対象のシステムの画面定義情報の入力を受け付ける画面定義入力部と、画面定義情報を学習モデルに与えてテストケース、テストプログラム及びテストデータの少なくともいずれかを生成する生成部と、生成したテストケース、テストプログラム及びテストデータの少なくともいずれかを出力する出力部と、を備えることを特徴とする。
【選択図】図1
図1
図2
図3
図4
図5
図6