(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】テスト支援装置、テスト支援方法及びプログラム
(51)【国際特許分類】
G06F 11/36 20060101AFI20241203BHJP
【FI】
G06F11/36 164
(21)【出願番号】P 2023517014
(86)(22)【出願日】2021-04-30
(86)【国際出願番号】 JP2021017246
(87)【国際公開番号】W WO2022230188
(87)【国際公開日】2022-11-03
【審査請求日】2023-07-24
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】安達 悠
(72)【発明者】
【氏名】丹野 治門
(72)【発明者】
【氏名】切貫 弘之
【審査官】太田 龍一
(56)【参考文献】
【文献】特開2017-058983(JP,A)
【文献】特開2015-179428(JP,A)
【文献】特開2012-133721(JP,A)
【文献】国際公開第2020/209227(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/36
(57)【特許請求の範囲】
【請求項1】
テスト対象のソフトウェアに関する或る画面
に遷移するまでに行われる操作の履歴を記録する記録部と、
前記画面を構成する要素のうち、値が入力される入力要素について、入力値の候補のリストの入力を受け付ける第1の受付部と、
前記リストに含まれる一つの前記候補を前記入力要素に設定する設定部と、
前記画面を構成する要素のうち、処理の実行指示を示す操作を受け付ける操作要素に対する操作が行われた後に、前記履歴に係る操作を再生する再生部と、
を有し、
前記設定部は、更に、
前記履歴の再生の後に、前記入力要素に設定していない前記候補を前記入力要素に設定する、
ことを特徴とするテスト支援装置。
【請求項2】
前記操作要素に対する操作の種別の指定を受け付ける第2の受付部と、
前記指定に係る種別の操作を前記操作要素に対して実行する実行部と、
を有することを特徴とする請求項
1記載のテスト支援装置。
【請求項3】
テスト対象のソフトウェアに関する或る画面
に遷移するまでに行われる操作の履歴を記録する記録手順と、
前記画面を構成する要素のうち、値が入力される入力要素について、入力値の候補のリストの入力を受け付ける第1の受付手順と、
前記リストに含まれる一つの前記候補を前記入力要素に設定する設定手順と、
前記画面を構成する要素のうち、処理の実行指示を示す操作を受け付ける操作要素に対する操作が行われた後に、前記履歴に係る操作を再生する再生手順と、
をコンピュータが実行し、
前記設定手順は、更に、
前記履歴の再生の後に、前記入力要素に設定していない前記候補を前記入力要素に設定する、
ことを特徴とするテスト支援方法。
【請求項4】
前記操作要素に対する操作の種別の指定を受け付ける第2の受付手順と、
前記指定に係る種別の操作を前記操作要素に対して実行する実行手順と、
をコンピュータが実行することを特徴とする請求項
3記載のテスト支援方法。
【請求項5】
請求項
3又は4記載のテスト支援方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、テスト支援装置、テスト支援方法及びプログラムに関する。
【背景技術】
【0002】
従来、ソフトウェアのテスト作業の効率化のため、「Record & Replay」や「プログラミング」といった、自動テストに関する技術が考案されている。
【0003】
「Record & Replay」とは、ユーザの操作をスクリプトとして記録しておき、当該スクリプトを実行することでテストを自動化する技術である(非特許文献1)。「プログラミング」とは、ブラウザを操作するためのライブラリを用いて、テストコードをプログラムとして記述する技術である(非特許文献2)。
【0004】
但し、自動テストだけでテストを完結させることは困難であるため、手動テストである探索的テストが行われる。探索的テストとは、ソフトウェアのテストを実施しながら次に行うテスト内容を考える手法である。探索的テストでは、直前のテスト結果やテストした際のソフトウェアの振る舞いに着目し、臨機応変にテスト内容を決めることで、システムの不具合が潜んでいそうな箇所に対し集中的にテストが行われる。
【先行技術文献】
【非特許文献】
【0005】
【文献】"Katalon Automation Recorder Quickstart"、[online]、インターネット<URL:https://www.katalon.com/resources-center/blog/katalon-automation-recorder/>
【文献】Selenium WebDriver、"コンポーネントを理解する"、[online]、インターネット<URL:https://www.selenium.dev/documentation/ja/webdriver/understanding_the_components/>
【発明の概要】
【発明が解決しようとする課題】
【0006】
探索的テストは、テスタがテスト結果を確認しながらインタラクティブに進める手法であるため、画面上の要素に対する入力や操作は手動で行う必要がある。同じ画面で様々な入力を行いたいケースがあるが、そのためには繰り返し当該画面までの手順を再現する必要がある。探索的テストに対して従来の自動テストを利用する場合、探索的テスト中ではなく、別途テストスクリプトやプログラムを作成しておく必要がある。
【0007】
本発明は、上記の点に鑑みてなされたものであって、ソフトウェアのテスト作業を効率化することを目的とする。
【課題を解決するための手段】
【0008】
そこで上記課題を解決するため、テスト支援装置は、テスト対象のソフトウェアに関する或る画面に遷移するまでに行われる操作の履歴を記録する記録部と、前記画面を構成する要素のうち、値が入力される入力要素について、入力値の候補のリストの入力を受け付ける第1の受付部と、前記リストに含まれる一つの前記候補を前記入力要素に設定する設定部と、前記画面を構成する要素のうち、処理の実行指示を示す操作を受け付ける操作要素に対する操作が行われた後に、前記履歴に係る操作を再生する再生部と、を有し、前記設定部は、更に、前記履歴の再生の後に、前記入力要素に設定していない前記候補を前記入力要素に設定する。
【発明の効果】
【0009】
ソフトウェアのテスト作業を効率化することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施の形態におけるテスト支援装置10のハードウェア構成例を示す図である。
【
図2】本発明の実施の形態におけるテスト支援装置10の機能構成例を示す図である。
【
図3】テスト支援装置10が実行する処理手順の一例を説明するためのフローチャートである。
【
図5】入力値の候補のリストの入力方法を説明するための図である。
【
図6】テストの開始指示を受け付けるためのボタンの表示例を示す図である。
【
図7】対象画面の各入力要素に入力値が自動設定された状態を示す図である。
【
図8】操作の種別の入力の受け付け例を示す図である。
【
図9】次のテストの開始指示を受け付けるためのボタンの表示例を示す図である。
【発明を実施するための形態】
【0011】
以下、図面に基づいて本発明の実施の形態を説明する。
図1は、本発明の実施の形態におけるテスト支援装置10のハードウェア構成例を示す図である。
図1のテスト支援装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。
【0012】
テスト支援装置10での処理を実現するプログラムは、CD-ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0013】
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってテスト支援装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
【0014】
図2は、本発明の実施の形態におけるテスト支援装置10の機能構成例を示す図である。
図2において、テスト支援装置10は、操作ログ記録部11、バリエーションテスト制御部12及び操作ログ再生部13を有する。これら各部は、テスト支援装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
【0015】
以下、テスト支援装置10が実行する処理手順について説明する。
図3は、テスト支援装置10が実行する処理手順の一例を説明するためのフローチャートである。
【0016】
ステップS101において、操作ログ記録部11は、テスト対象の或る画面(例えば、Webページ等)への遷移用の操作ログの記録処理を実行する。
【0017】
ここでは、テスト対象のソフトウェア(以下、「対象ソフト」という。)に関して、テスト対象の画面(以下、「対象画面」という。)に遷移するまでの操作がテスト実施者(テスタ)としてのユーザによって実行される。操作ログ記録部11は、各操作の履歴を示す情報(いずれの画面においていずれの要素がどのように操作されたのかを時系列に示す情報)を含む操作ログを記録する。対象画面に遷移すると、ユーザによる所定の操作に応じ、操作ログ記録部11は操作ログの記録を停止する。したがって、この時点において、表示装置106には対象画面が表示された状態となる。
【0018】
図4は、対象画面の表示例を示す図である。
図4に示されるように、対象画面510は、要素A~要素Dを含む。要素A~要素Cは、値が入力される要素(以下、「入力要素」という。)である。要素Dは、処理の実行指示を示す操作を受け付ける要素(以下、「操作要素」という。)である。
【0019】
続いて、バリエーションテスト制御部12は、対象画面510における入力要素ごとに、当該要素に対する入力値の1以上の候補(入力値の候補のリスト)の入力を受け付ける(S102)。入力値の候補のリストの入力は、例えば、以下のように行われる。
【0020】
図5は、入力値の候補のリストの入力方法を説明するための図である。例えば、ユーザが、所定の操作を行うと、バリエーションテスト制御部12は、入力値の設定用のリストボックスを表示する。所定の操作とは、例えば、入力値の候補のリストの入力対象とする入力要素に対する「shift+右クリック」である。この場合、バリエーションテスト制御部12は、「shift+右クリック」された入力要素に対応させて当該リストボックスが表示する。
図5には、要素Aに対し「shift+右クリック」が行われた例が示されている。したがって、要素Aに対してリストボックスL1が表示されている。ユーザは、リストボックスL1に対して、要素Aに対する入力値について1以上の候補(すなわち、入力値のバリエーション)を入力する。バリエーションテスト制御部12は、リストボックスL1に入力された入力値の候補のリストを、要素Aの識別情報に関連付けて、メモリ装置103又は補助記憶装置102に記憶しておく。要素B及び要素Cに対しても同様の処理が実行される。なお、バリエーションテスト制御部12は、入力バリエーションテストに関する既存技術(例えば、特開2020-067859号公報)を利用して、制約から入力値候補を自動生成して、リストボックスに表示してもよい。
【0021】
続いて、バリエーションテスト制御部12は、変数iに1を代入する(S103)。変数iは、各入力要素の入力値の候補のリストのうち、処理対象とされる候補を識別するための変数である。
【0022】
続いて、バリエーションテスト制御部12は、テストの開始指示の入力を待機する(S104)。例えば、対象画面510のいずれの要素も指定されない状態で所定の操作(「shift+右クリック」等)がユーザによって行われると、バリエーションテスト制御部12は、テストの開始指示を受け付けるためのボタンを対象画面510上に表示する。
【0023】
図6は、テストの開始指示を受け付けるためのボタンの表示例を示す図である。
図6において、ボタンb1がテスト(バリエーションテスト)の開始指示を受け付けるためのボタンである。
【0024】
ユーザがボタンb1を押下すると(S104でYes)、バリエーションテスト制御部12は、ボタンb1を消去して、対象画面の入力要素ごとに、当該入力要素に対して設定された入力値の候補のリストのうち、i番目の候補を当該入力要素に設定する(S105)。なお、i番目の候補が無い入力要素については、例えば、当該入力要素に対する入力値の候補のリストのうちのいずれかの候補が設定されればよい。ステップS105が全ての入力要素に対して実行されることで、
図7に示されるように、対象画面510の各入力要素には入力値が自動的に設定された状態となる。なお、要素B及び要素Cに対する「・・・」は、何らかの値を示す。
【0025】
続いて、バリエーションテスト制御部12は、対象画面510の操作要素に対するユーザによる操作(要素Dの押下)を待機する(S106)。
【0026】
当該操作要素に対する操作(要素Dの押下)が実行されると(S106でYes)、対象ソフトは、各入力要素の入力値に基づいて、要素Dの押下に応じた処理を実行する。その結果、画面遷移等が発生する。ユーザは、処理結果を参照して、バグを発見したり、気がついたことを記録したりする。この際、国際公開第2020/230241号に開示されている技術を用いて、バグや気づき等の記入が行われてもよい。なお、この際、操作ログ記録部11は、要素Dが押下されたことを示すログを補助記憶装置102に記録してもよい。
【0027】
一方、当該操作要素に対する操作ではなく(S106でNo)、当該操作要素に対する操作の種別の入力指示を示す所定の操作がユーザによって行われると(S107でYes)、バリエーションテスト制御部12は、当該操作要素に対する操作の種別の入力をユーザから受け付ける。
【0028】
図8は、操作の種別の入力の受け付け例を示す図である。例えば、要素Dに対する操作の種別の入力指示を示す所定の操作は、要素Dに対する「shift+右クリック」等により行われる。バリエーションテスト制御部12は、当該所定の操作に応じ、要素Dに対する操作の種別を受け付けるためのメニューm1を表示する。メニューm1には、要素Dに対する操作の種別が選択肢として含まれる。斯かる選択肢は、例えば、操作要素の種別ごとに予め定義されていればよい。
図8の例では、「連打」が選択肢である例が示されている。「連打」とは、要素Dを連打することをいう。このようなテストは、要素Dを連打しても同じ処理が重複して行われないことを確認するために有効である。
【0029】
ユーザによっていずれかの選択肢が選択(いずれかの種別が指定)されると、バリエーションテスト制御部12は、選択された選択肢に応じた種別(指定された種別)の操作を当該操作要素に対して実行して(S109)、ステップS110へ進む。
【0030】
この場合、対象ソフトは、各入力要素の入力値に基づいて、要素Dの連打に応じた処理を実行する。その結果、画面遷移等が発生する。ユーザは、処理結果を参照して、バグを発見したり、気がついたことを記録したりする。この際、国際公開第2020/230241号に開示されている技術を用いて、バグや気づき等の記入が行われてもよい。なお、この際、操作ログ記録部11は、要素Dが連打されたことを示すログを補助記憶装置102に記録してもよい。
【0031】
続いて、バリエーションテスト制御部12は、iが上限値未満であるか否かを判定する(S110)。上限値とは、各入力要素に対する入力値のリストのうち、リスト長が最大であるリストの入力値の個数である。なお、本実施の形態では、各入力要素に対する入力値について、上限値までのパターンがテストされる例を示したが、各入力要素に対する入力値の全ての候補の組み合わせがテストされるようにしてもよい。
【0032】
iが上限値以上であれば(S110でYes)、
図3の処理手順は終了する。iが上限値未満であれば(S110でNo)、バリエーションテスト制御部12は、次のテストの開始指示を待機する。次のテストとは、i+1番目の入力値に対応したテストをいう。例えば、操作要素(要素D)の操作に応じて発生した画面遷移の遷移先の画面(以下、「遷移先画面」という。)において、いずれの要素も指定されない状態で所定の操作(「shift+右クリック」等)が行われると、バリエーションテスト制御部12は、次のテストの開始指示を受け付けるためのボタンを遷移先画面上に表示する。
【0033】
図9は、次のテストの開始指示を受け付けるためのボタンの表示例を示す図である。
図9において、遷移先画面530上のボタンb2が、次のテスの開始指示を受け付けるためのボタンである。なお、
図9において、遷移先画面530の要素は、便宜上省略されている。
【0034】
ユーザがボタンb2を選択すると(S111でYes)、バリエーションテスト制御部12は、ボタンb2を消去して、変数iに1を加算する(S112)。
【0035】
続いて、操作ログ再生部13は、ステップS101において記録された操作ログを再生する(S113)。操作ログの再生とは、操作ログに記録されている操作の履歴を自動的に実行することをいう。ここで、操作ログには、対象画面510へ遷移させるための操作の履歴が記録されている。したがって、操作ログが再生されることで、遷移先画面530から対象画面510への遷移が実行され、表示装置106には、
図4の状態の対象画面510が表示される。
【0036】
続いて、ステップS105以降が繰り返され、i番目の入力値に基づくバリエーションテストが実行される。
【0037】
上述したように、本実施の形態によれば、テスト対象の画面の入力要素に対して、入力値の候補のリストを設定しておくことで、各候補が入力された状態でのテストを自動的に順番に実行させることができる。したがって、ソフトウェアのテスト作業を効率化することができる。
【0038】
また、テスト対象の画面へ遷移させるための操作ログが記録され、当該画面のテストが終了するたびに当該操作ログが再生される。その結果、テスト作業において本質ではない事前手順の操作を繰り返し行う稼働を削減することができる。
【0039】
なお、本実施の形態において、バリエーションテスト制御部12は、第1の受付部、設定部、第2の受付部及び実行部の一例である。操作ログ記録部11は、記録部の一例である。操作ログ再生部13は、再生部の一例である。
【0040】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0041】
10 テスト支援装置
11 操作ログ記録部
12 バリエーションテスト制御部
13 操作ログ再生部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
B バス