(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023183817
(43)【公開日】2023-12-28
(54)【発明の名称】テスト準備効率化装置、テスト準備効率化方法およびテスト準備効率化プログラム
(51)【国際特許分類】
G06F 11/36 20060101AFI20231221BHJP
【FI】
G06F11/36 184
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022097562
(22)【出願日】2022-06-16
(71)【出願人】
【識別番号】398040527
【氏名又は名称】株式会社オービック
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】平田 真樹
(72)【発明者】
【氏名】依岡 烈
(72)【発明者】
【氏名】馬場 健人
(72)【発明者】
【氏名】上野 剛光
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042HH11
5B042HH17
5B042HH49
(57)【要約】
【課題】画面上で自動実行される動作についてのテストを行うために必要な情報が表形式のテキストデータとして書き込まれているテストシナリオデータに基づいて、定義管理テーブルおよび画面操作命令テーブルを生成することで、テストの準備を効率化・統一化することができるテスト準備効率化装置、テスト準備効率化方法およびテスト準備効率化プログラムの提供を課題とする。
【解決手段】本実施形態では、(1)画面上で自動実行される動作についてのテストを行うために必要な情報が表形式のテキストデータとして書き込まれているテストシナリオデータに基づいて、前記動作を定義して管理するためのテーブルである定義管理テーブルを生成し、(2)前記テストシナリオデータに基づいて、前記テストの際に実行される画面の自動操作に関する命令を記憶するためのテーブルである画面操作命令テーブルを生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
画面上で自動実行される動作についてのテストを行うために必要となる準備を効率化することができる、制御部を備えるテスト準備効率化装置であって、
前記制御部は、
前記テストを行うために必要な情報が表形式のテキストデータとして書き込まれているテストシナリオデータに基づいて、前記動作を定義して管理するためのテーブルである定義管理テーブルを生成する定義管理生成手段と、
前記テストシナリオデータに基づいて、前記テストの際に実行される画面の自動操作に関する命令を記憶するためのテーブルである画面操作命令テーブルを生成する操作命令生成手段と、
を備えること、
を特徴とするテスト準備効率化装置。
【請求項2】
前記定義管理テーブルが、
画面上の対象の情報であるコントロール情報、画面上で自動実行される各々の前記動作の情報であるアクション情報、一連の前記動作をまとめたフローチャートの情報であるロジックフロー情報、および、前記コントロール情報に前記ロジックフロー情報が紐づけられることで、前記コントロール情報が選択された際に対応する前記ロジックフロー情報で定義される前記フローチャートが流れることが定義された紐づけ情報からなる群から選択される少なくとも一つの情報を含むこと、
を特徴とする請求項1に記載のテスト準備効率化装置。
【請求項3】
前記テストシナリオデータが、エクセル形式のデータであること、
を特徴とする請求項1に記載のテスト準備効率化装置。
【請求項4】
前記制御部は、
前記画面操作命令テーブルに基づいて、画面の操作を実行する画面操作実行手段を更に備え、
当該画面操作実行手段による画面の操作の結果、異常がない場合は前記定義管理テーブルに基づいた前記動作が画面上で自動実行され、これに対して、異常がある場合は前記定義管理テーブルに基づいた前記動作が画面上で自動実行されないこと、
を特徴とする請求項1から3のいずれか一つに記載のテスト準備効率化装置。
【請求項5】
前記画面操作実行手段は、
前記画面操作実行手段による画面の操作の結果を、テストエビデンスとして保存すること、
を特徴とする請求項4に記載のテスト準備効率化装置。
【請求項6】
前記テストエビデンスが、前記画面操作実行手段が操作した画面のスクリーンショットであること、
を特徴とする請求項5に記載のテスト準備効率化装置。
【請求項7】
画面上で自動実行される動作についてのテストを行うために必要となる準備を効率化することができる、制御部を備える情報処理装置で実行されるテスト準備効率化方法であって、
前記制御部で実行される、
前記テストを行うために必要な情報が表形式のテキストデータとして書き込まれているテストシナリオデータに基づいて、前記動作を定義して管理するためのテーブルである定義管理テーブルを生成する定義管理生成ステップと、
前記テストシナリオデータに基づいて、前記テストの際に実行される画面の自動操作に関する命令を記憶するためのテーブルである画面操作命令テーブルを生成する操作命令生成ステップと、
を含むこと、
を特徴とするテスト準備効率化方法。
【請求項8】
画面上で自動実行される動作についてのテストを行うために必要となる準備を効率化することができる、制御部を備える情報処理装置に実行させるためのテスト準備効率化プログラムであって、
前記制御部に実行させるための、
前記テストを行うために必要な情報が表形式のテキストデータとして書き込まれているテストシナリオデータに基づいて、前記動作を定義して管理するためのテーブルである定義管理テーブルを生成する定義管理生成ステップと、
前記テストシナリオデータに基づいて、前記テストの際に実行される画面の自動操作に関する命令を記憶するためのテーブルである画面操作命令テーブルを生成する操作命令生成ステップと、
を含むこと、
を特徴とするテスト準備効率化プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、テスト準備効率化装置、テスト準備効率化方法およびテスト準備効率化プログラムに関する。
【背景技術】
【0002】
特許文献1には、MVCアーキテクチャで開発されたソフトウェアについて、コントローラ層の業務処理メソッドの単体テストを、ビュー層プログラムの実装及び起動をすることなく可能にすることで、テスト実施者のソフトウェア操作及びプログラム実装作業を簡易化し、テスト作業量を軽減することを目的とするソフトウェア業務処理テスト簡易化装置が開示されている(特許文献1の0011段落参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記特許文献1に記載のように、ソフトウェアが開発された場合には、動作検証等のテストを行うが、このテストに必要な作業量を軽減することが近年の課題となっている。
【0005】
ここで、ある操作を行うとある動作が自動実行される画面を開発した場合、当該ある操作を行うと本当に当該ある動作が正常に行われるかどうかを確認するテストを行う必要がある。当該テストとは、例えば、あるボタンを押下するという「操作」を行った場合に、文字列ラベルにある文字列が表示されるという「動作」が正常に行われるかどうかを確認するテスト等である。
【0006】
このようなテストを自動で行うためには、前記動作を定義して管理するためのテーブルである定義管理テーブル、および、前記操作に関する命令を記憶するためのテーブルである画面操作命令テーブルを生成する必要がある。
【0007】
しかしながら、このような定義管理テーブルおよび画面操作命令テーブルの生成(いわば、テストを行うための準備)は、従来においては、担当者が手動で行っていたため効率が悪かった。また、生成するテーブルの内容が担当者間で統一されていなかった。
【0008】
本発明は、上記問題点に鑑みてなされたものであって、画面上で自動実行される動作についてのテストを行うために必要な情報が表形式のテキストデータとして書き込まれているテストシナリオデータに基づいて、定義管理テーブルおよび画面操作命令テーブルを生成することで、テストの準備を効率化・統一化することができるテスト準備効率化装置、テスト準備効率化方法およびテスト準備効率化プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するために、本発明に係るテスト準備効率化装置においては、画面上で自動実行される動作についてのテストを行うために必要となる準備を効率化することができる、制御部を備えるテスト準備効率化装置であって、前記制御部は、前記テストを行うために必要な情報が表形式のテキストデータとして書き込まれているテストシナリオデータに基づいて、前記動作を定義して管理するためのテーブルである定義管理テーブルを生成する定義管理生成手段と、前記テストシナリオデータに基づいて、前記テストの際に実行される画面の自動操作に関する命令を記憶するためのテーブルである画面操作命令テーブルを生成する操作命令生成手段と、を備えること、を特徴とする。
【0010】
また、本発明に係るテスト準備効率化装置においては、前記定義管理テーブルが、画面上の対象の情報であるコントロール情報、画面上で自動実行される各々の前記動作の情報であるアクション情報、一連の前記動作をまとめたフローチャートの情報であるロジックフロー情報、および、前記コントロール情報に前記ロジックフロー情報が紐づけられることで、前記コントロール情報が選択された際に対応する前記ロジックフロー情報で定義される前記フローチャートが流れることが定義された紐づけ情報からなる群から選択される少なくとも一つの情報を含むこと、を特徴とする。
【0011】
また、本発明に係るテスト準備効率化装置においては、前記テストシナリオデータが、エクセル形式のデータであること、を特徴とする。
【0012】
また、本発明に係るテスト準備効率化装置においては、前記制御部は、前記画面操作命令テーブルに基づいて、画面の操作を実行する画面操作実行手段を更に備え、当該画面操作実行手段による画面の操作の結果、異常がない場合は前記定義管理テーブルに基づいた前記動作が画面上で自動実行され、これに対して、異常がある場合は前記定義管理テーブルに基づいた前記動作が画面上で自動実行されないこと、を特徴とする。
【0013】
また、本発明に係るテスト準備効率化装置においては、前記画面操作実行手段は、前記画面操作実行手段による画面の操作の結果を、テストエビデンスとして保存すること、を特徴とする。
【0014】
また、本発明に係るテスト準備効率化装置においては、前記テストエビデンスが、前記画面操作実行手段が操作した画面のスクリーンショットであること、を特徴とする。
【0015】
また、本発明に係るテスト準備効率化方法においては、画面上で自動実行される動作についてのテストを行うために必要となる準備を効率化することができる、制御部を備える情報処理装置で実行されるテスト準備効率化方法であって、前記制御部で実行される、前記テストを行うために必要な情報が表形式のテキストデータとして書き込まれているテストシナリオデータに基づいて、前記動作を定義して管理するためのテーブルである定義管理テーブルを生成する定義管理生成ステップと、前記テストシナリオデータに基づいて、前記テストの際に実行される画面の自動操作に関する命令を記憶するためのテーブルである画面操作命令テーブルを生成する操作命令生成ステップと、を含むこと、を特徴とする。
【0016】
また、本発明に係るテスト準備効率化プログラムにおいては、画面上で自動実行される動作についてのテストを行うために必要となる準備を効率化することができる、制御部を備える情報処理装置に実行させるためのテスト準備効率化プログラムであって、前記制御部に実行させるための、前記テストを行うために必要な情報が表形式のテキストデータとして書き込まれているテストシナリオデータに基づいて、前記動作を定義して管理するためのテーブルである定義管理テーブルを生成する定義管理生成ステップと、前記テストシナリオデータに基づいて、前記テストの際に実行される画面の自動操作に関する命令を記憶するためのテーブルである画面操作命令テーブルを生成する操作命令生成ステップと、を含むこと、を特徴とする。
【発明の効果】
【0017】
本発明によれば、画面上で自動実行される動作についてのテストを行うために必要な情報が表形式のテキストデータとして書き込まれているテストシナリオデータに基づいて、定義管理テーブルおよび画面操作命令テーブルを生成することで、テストの準備を効率化・統一化することができるという効果を奏する。
【図面の簡単な説明】
【0018】
【
図1】
図1は、テスト準備効率化装置の構成の一例を示すブロック図である。
【
図2】
図2は、ローコード開発およびテストについての従来における全体像の一例を示す図である。
【
図3】
図3は、ローコード開発およびテストについての本実施形態における全体像の一例を示す図である。
【
図4】
図4は、テストシナリオデータの一般的構成の一例を示す図である。
【
図5】
図5は、テストシナリオデータの具体例を示す図である。
【
図6】
図6は、シナリオ登録プログラムによる、UI定義および画面操作命令テーブルの生成のイメージの一例を示す図である。
【
図7】
図7は、シナリオ登録プログラムによる、UI定義の生成のイメージの一例を示す図である。
【
図8】
図8は、シナリオ登録プログラムによる、画面操作命令テーブルの生成のイメージの一例を示す図である。
【
図9】
図9は、画面操作プログラムによる、画面操作の実行のイメージの一例を示す図である。
【
図10】
図10は、画面操作プログラムが読み込む対象となる、画面操作命令テーブル中の情報の一例を示す図である。
【
図11】
図11は、画面操作命令テーブル中のSEQ001のシナリオを実行する場合における4つの操作の一例を示す図である。
【
図12】
図12は、4つの操作のうちの1番目の操作の一例を示す図である。
【
図13】
図13は、4つの操作のうちの2番目の操作の一例を示す図である。
【
図14】
図14は、4つの操作のうちの3番目の操作の一例を示す図である。
【
図15】
図15は、4つの操作のうちの4番目の操作の一例を示す図である。
【
図16】
図16は、コントロールの入力テストについてのイメージの一例を示す図である。
【
図17】
図17は、テストシナリオデータおよびユーザーインターフェースの一例を示す図である。
【
図18】
図18は、テストシナリオデータおよび定義管理テーブルの一例を示す図である。
【
図19】
図19は、テストシナリオデータおよび画面操作命令テーブルの一例を示す図である。
【
図20】
図20は、分岐テストについてのイメージの一例を示す図である。
【
図21】
図21は、テストシナリオデータおよびユーザーインターフェースの一例を示す図である。
【
図22】
図22は、テストシナリオデータの一例を示す図である。
【
図23】
図23は、テストシナリオデータおよびフローイメージの一例を示す図である。
【
図24】
図24は、テストシナリオデータの一例を示す図である。
【
図25】
図25は、テストシナリオデータおよび定義管理テーブルの一例を示す図である。
【
図28】
図28は、テストシナリオデータおよび画面操作命令テーブルの一例を示す図である。
【
図29】
図29は、画面操作命令情報のサンプル一覧をまとめた表の一例を示す図である。
【
図30】
図30は、テストシナリオ登録のフローチャートの一例を示す図である。
【
図31】
図31は、定義IDの読み込みについてのイメージの一例を示す図である。
【
図32】
図32は、画面起動についてのイメージの一例を示す図である。
【
図33】
図33は、コントロールの入力テストを行う場合における画面操作命令テーブルおよび実行画面の一例を示す図である。
【
図34】
図34は、コントロールの入力テストを行う場合における画面操作命令テーブルおよび保存ファイルの一例を示す図である。
【
図35】
図35は、コントロールの入力テストを行う場合における画面操作命令テーブルおよび実行画面の一例を示す図である。
【
図36】
図36は、コントロールの入力テストを行う場合における画面操作命令テーブルおよび保存ファイルの一例を示す図である。
【
図37】
図37は、分岐テストを行う場合における画面操作命令テーブルおよび実行画面の一例を示す図である。
【
図38】
図38は、分岐テストを行う場合における画面操作命令テーブルおよび保存ファイルの一例を示す図である。
【
図39】
図39は、分岐テストを行う場合における画面操作命令テーブルおよび実行画面の一例を示す図である。
【
図40】
図40は、分岐テストを行う場合における画面操作命令テーブルおよび実行画面の一例を示す図である。
【
図41】
図41は、分岐テストを行う場合における画面操作命令テーブルおよび保存ファイルの一例を示す図である。
【
図42】
図42は、テストシナリオ実行のフローチャートの一例を示す図である。
【発明を実施するための形態】
【0019】
以下に、本発明に係るテスト準備効率化装置、テスト準備効率化方法およびテスト準備効率化プログラムの実施形態を、図面に基づいて詳細に説明する。なお、本実施形態により本発明が限定されるものではない。
【0020】
[1.概要]
従来、ローコード開発の分野においては、例えば、以下の1~4のような問題があった。
1.生成したUI(ユーザーインターフェイス)定義のみの管理では、最終的にどんな設定で保存されているか分からなかった。
2.回帰テストに使用するUI定義が、前回テスト時と同一の設定かどうか保証できなかった。
3.テスト担当者によって、画面操作方法が異なっていた。
4.テスト担当者によって、テスト画面のスクリーンショットの撮り方が異なっていた。
【0021】
そこで、本実施形態においては、例えば、以下の1~4のことをできるようにした。
1.エクセルに設定したテストシナリオをコンバートすることで、簡易テストを可能とした。これにより、テスト内容の変更や追加シナリオの作業について、テスト担当者は、テストシナリオの管理のみすればよくなった。
2.UI定義の情報や画面操作命令の情報を表形式のテキストをベースに構成されたテストシナリオで管理できるようにした。これにより、情報を一元管理できるようになった。
3.ローコード開発ツールを使用したUI定義の生成および画面操作を自動化した。これにより、テストの効率化が図れた。
4.ローコード開発ツールを使用したUI定義生成、画面操作およびテスト画面のスクリーンショットを自動化した。これにより、簡易テストがいつでも繰り返し可能となった。
【0022】
要するに、本実施形態においては、テストシナリオから、UI定義(定義管理テーブル)および画面操作命令テーブルを自動生成できるようにした。また、本実施形態においては、当該生成した定義管理テーブルおよび画面操作命令テーブルに基づいて、テストの自動実行およびテストエビデンス(例えば、スクリーンショット)の自動生成をできるようにした。以下、具体的な構成および動作について説明する。
【0023】
[2.構成]
本実施形態に係るテスト準備効率化装置100の構成の一例について、
図1を参照して説明する。
図1は、テスト準備効率化装置100の構成の一例を示すブロック図である。
【0024】
テスト準備効率化装置100は、市販のデスクトップ型パーソナルコンピュータである。なお、テスト準備効率化装置100は、デスクトップ型パーソナルコンピュータのような据置型情報処理装置に限らず、市販されているノート型パーソナルコンピュータ、PDA(Personal Digital Assistants)、スマートフォン、タブレット型パーソナルコンピュータなどの携帯型情報処理装置であってもよい。
【0025】
テスト準備効率化装置100は、制御部102と通信インターフェース部104と記憶部106と入出力インターフェース部108と、を備えている。テスト準備効率化装置100が備えている各部は、任意の通信路を介して通信可能に接続されている。
【0026】
通信インターフェース部104は、ルータ等の通信装置および専用線等の有線または無線の通信回線を介して、テスト準備効率化装置100をネットワーク300に通信可能に接続する。通信インターフェース部104は、他の装置と通信回線を介してデータを通信する機能を有する。ここで、ネットワーク300は、テスト準備効率化装置100とサーバ200とを相互に通信可能に接続する機能を有し、例えばインターネットやLAN(Local Area Network)等である。なお、後述する各種マスタ等のデータは、例えばサーバ200に格納されてもよい。
【0027】
入出力インターフェース部108には、入力装置112および出力装置114が接続されている。出力装置114には、モニタ(家庭用テレビを含む)の他、スピーカやプリンタを用いることができる。入力装置112には、キーボード、マウス、及びマイクの他、マウスと協働してポインティングデバイス機能を実現するモニタを用いることができる。なお、以下では、出力装置114をモニタ114とし、入力装置112をキーボード112またはマウス112として記載する場合がある。
【0028】
記憶部106には、各種のデータベース、テーブルおよびファイルなどが格納される。記憶部106には、OS(Operating System)と協働してCPU(Central Processing Unit)に命令を与えて各種処理を行うためのコンピュータプログラムが記録される。記憶部106として、例えば、RAM(Random Access Memory)・ROM(Read Only Memory)等のメモリ装置、ハードディスクのような固定ディスク装置、フレキシブルディスク、および光ディスク等を用いることができる。
【0029】
記憶部106は、例えば、テストシナリオデータ106aと、定義管理テーブル106bと、画面操作命令テーブル106cと、を備えている。
【0030】
本実施形態に係るテスト準備効率化装置100によれば、画面上で自動実行される動作についてのテストを行うために必要となる準備を効率化することができる。
【0031】
テストシナリオデータ106aは、前記テストを行うために必要な情報が表形式のテキストデータとして書き込まれている。テストシナリオデータ106aは、好ましくは、エクセル形式のデータである。
【0032】
テストシナリオデータ106aは、
図4に示すように、要素として、例えば、テストケースの概要と、定義管理テーブル106bの生成の基になる情報(UI定義)と、画面操作命令テーブル106cの生成の基になる情報(画面操作命令)と、テストの確認内容と、等を含む。
【0033】
定義管理テーブル106bは、前記動作を定義して管理するためのテーブルである。定義管理テーブル106bは、
図18および
図25~
図27等に示すように、例えば、画面上の対象の情報であるコントロール情報、画面上で自動実行される各々の前記動作の情報であるアクション情報、一連の前記動作をまとめたフローチャートの情報であるロジックフロー情報、および、前記コントロール情報に前記ロジックフロー情報が紐づけられることで、前記コントロール情報が選択された際に対応する前記ロジックフロー情報で定義される前記フローチャートが流れることが定義された紐づけ情報からなる群から選択される少なくとも一つの情報と、定義ID(ID)と、等を含む。
【0034】
画面操作命令テーブル106cは、前記テストの際に実行される画面の自動操作に関する命令を記憶するためのテーブルである。画面操作命令テーブル106cは、
図19および
図28等に示すように、例えば、画面操作命令情報と、定義ID(ID)と、等を含む。前記画面操作命令情報の一覧は、例えば、
図29の表に示すとおりである。
【0035】
画面操作命令テーブル106cは、前記画面操作命令情報の種類に応じて更なる情報を含む。例えば、前記画面操作命令情報が「SetText」である場合は、どのコントロール(対象)にどのような値をセットするかという情報を更に含み、前記画面操作命令情報が「ClickElement」である場合は、どのコントロール(対象)をクリックするかという情報を更に含み、前記画面操作命令情報が「ScreenShot」である場合は、撮った画像をどのようなファイル名で保存し、確認事項は何かという情報を更に含む。
【0036】
制御部102は、テスト準備効率化装置100を統括的に制御するCPU等である。制御部102は、OS等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。
【0037】
制御部102は、機能概念的に、例えば、(1)前記テストを行うために必要な情報が表形式のテキストデータとして書き込まれているテストシナリオデータに基づいて、前記動作を定義して管理するためのテーブルである定義管理テーブルを生成する定義管理生成手段としての定義管理生成部102aと、(2)前記テストシナリオデータに基づいて、前記テストの際に実行される画面の自動操作に関する命令を記憶するためのテーブルである画面操作命令テーブルを生成する操作命令生成手段としての操作命令生成部102bと、(3)前記画面操作命令テーブルに基づいて、画面の操作を実行する画面操作実行手段としての画面操作実行部102cと、を備えている。
【0038】
定義管理生成部102aは、テストシナリオデータ106aに基づいて、定義管理テーブル106bを生成する。
【0039】
操作命令生成部102bは、テストシナリオデータ106aに基づいて、画面操作命令テーブル106cを生成する。
【0040】
画面操作実行部102cは、画面操作命令テーブル106cに基づいて、画面の操作を実行する。画面操作実行部102cによる画面の操作の結果、異常がない場合は、定義管理テーブル106bに基づいた前記動作が画面上で自動実行される。これに対して、画面操作実行部102cによる画面の操作の結果、異常がある場合は、定義管理テーブル106bに基づいた前記動作が画面上で自動実行されない。
【0041】
画面操作実行部102cは、画面操作実行部102cによる画面の操作の結果を、異常がない場合もある場合も含めて、テストエビデンスとして保存する。当該テストエビデンスの形式は、特に制限されないが、例えば、画面のスクリーンショット、データベースの更新およびCSVによる出力等である。
【0042】
[3.処理の概要等]
本項目では、ローコード開発およびテストについての全体像、本実施形態のポイントおよび本実施形態の処理概要について説明する。
【0043】
[3-1.ローコード開発およびテストについての全体像]
図2には、ローコード開発およびテストについての従来における全体像を示している。従来においては、テスト担当者は、
図2に示すように、テストシナリオ登録、テストシナリオ実行およびテストシナリオ実行結果解析を手動で行っていた。
【0044】
図3には、ローコード開発およびテストについての本実施形態における全体像を示している。本実施形態においては、
図3に示すように、最新テストシナリオ登録をシナリオ登録プログラムにより自動で行うことができ、また、テストシナリオ実行を画面操作プログラムにより自動で行うことができる。このため、テスト担当者は、
図3に示すように、テストシナリオ実行結果解析のみ手動で行えばよい。
【0045】
なお、シナリオ登録プログラムは、定義管理生成部102aおよび操作命令生成部102bが行う処理と同様の処理を制御部102に実行させるためのプログラムである。また、画面操作プログラムは、画面操作実行部102cが行う処理と同様の処理を制御部102に実行させるためのプログラムである。
【0046】
[3-2.本実施形態のポイント]
本項目では、本実施形態のポイントについて説明する。本実施形態は、エクセル等にテストシナリオを設定するだけで、簡易テストをできるようにしたことがポイントである。
【0047】
具体的には、本実施形態においては、テストシナリオデータ106aからUI定義(定義管理テーブル106b)を生成することを可能とした。これにより、例えば、以下の1~3が可能となった。
1.開発者がレイアウト開発画面を操作することなしに、UI定義を生成することが可能となった。
2.再生成しても同一設定のUI定義を生成することが可能となった。
3.テストシナリオを編集することで、開発者がレイアウト開発画面を操作することなしに、UI定義を複製することが可能となった。
【0048】
また、本実施形態においては、テストシナリオデータ106aから画面操作命令テーブル106cを生成すること、および、テストシナリオデータ106aにおいてテスト画面におけるスクリーンショット取得のタイミングを指定することを可能とした。これにより、例えば、以下の1~2が可能となった。
1.画面操作方法およびテスト画面におけるスクリーンショット取得のタイミングをテスト担当者間で揃えることが可能となった。
2.テストを再実行しても、同一の画面操作を行うこと、および、同一のテスト画面スクリーンショットを取得することが可能となった。
【0049】
[3-3.本実施形態の処理概要]
本項目では、本実施形態の処理の概要について説明する。まず、テストシナリオデータ106aの構成について説明し、次に、UI定義(定義管理テーブル106b)および画面操作命令テーブル106cの生成について説明し、最後に、画面操作命令の実行について説明する。
【0050】
(1)テストシナリオデータ106aの構成
テストシナリオデータ106aは、表形式のテキストをベースに構成されており、例えば、
図4に示す一般的構成を有する。具体的には、テストシナリオデータ106aは、
図4に示すように、例えば、テストに関する概要を表す情報(
図4の要素「テストケースの概要」)と、テストを行うアプリケーションの元になる設定情報(
図4の要素「UI定義」)と、アプリケーションを操作するための情報(
図4の要素「画面操作命令」)と、スクリーンショットに対応する確認事項の情報(
図4の要素「テストの確認内容」)と、等を含む。
【0051】
テストシナリオデータ106aの具体例を、
図5に示す。
図5のテストシナリオデータ106aにおいては、文字列ラベルの動作テストを行うためのテストシナリオ(ID=SEQ001)と、数値ラベルの動作テストを行うためのテストシナリオ(ID=SEQ002)と、が設定されている。
【0052】
(2)UI定義(定義管理テーブル106b)および画面操作命令テーブル106cの生成
シナリオ登録プログラムは、
図6に示すように、テストシナリオデータ106aを読み込み、UI定義(定義管理テーブル106b)および画面操作命令テーブル106cを生成する。
【0053】
UI定義(定義管理テーブル106b)は、仮想的に生成されたアプリのUI定義の情報である。画面操作命令テーブル106cは、アプリを自動実行するための画面操作命令の情報である。
【0054】
UI定義(定義管理テーブル106b)の生成について説明する。UI定義(定義管理テーブル106b)の生成は、シナリオ登録プログラムが、テストシナリオデータ106aにおけるUI定義に対応する情報から、仮想的にアプリケーションの定義データを生成し登録する作業である。シナリオ登録プログラムが、表形式のテキストデータであるテストシナリオデータ106aを読み込んで、UI定義(定義管理テーブル106b)を生成する場合のイメージを、
図7に示す。
【0055】
画面操作命令テーブル106cの生成について説明する。画面操作命令テーブル106cの生成は、シナリオ登録プログラムが、テストシナリオデータ106aにおける画面操作命令に対応する情報から、アプリを自動操作するために必要な画面操作定義を生成し登録する作業である。シナリオ登録プログラムが、表形式のテキストデータであるテストシナリオデータ106aを読み込んで、画面操作命令テーブル106cを生成する場合のイメージを、
図8に示す。
【0056】
(3)画面操作命令の実行
画面操作プログラムは、
図9に示すように、画面操作命令テーブル106cを用いて、ローコード実行基盤の自動操作を行う。
【0057】
画面操作命令テーブル106cには、
図10に示すように、操作情報がシナリオ単位で保存されている。画面操作プログラムは、シナリオ単位で操作情報を読み込んで、画面を操作していく。
【0058】
ここで、操作の具体例として、画面操作プログラムが、
図10におけるSEQ001のシナリオを実行する場合の4つの操作について順に説明する。SEQ001のシナリオを実行する場合における操作の全体は、
図11の表に示すとおりである。
【0059】
1番目の操作として、画面操作プログラムは、
図12に示すように、実行命令「画面の起動 SEQ001_画面」に従い、SEQ001_画面をメニューから選択し起動する。
【0060】
2番目の操作として、画面操作プログラムは、
図13に示すように、実行命令「テキストへ値セット 文字列テキストボックス abc」に従い、画面上の文字列テキストボックスに「abc」と入力する。
【0061】
3番目の操作として、画面操作プログラムは、
図14に示すように、実行命令「ボタンクリック ボタン1」に従い、ボタン1をクリックする。
【0062】
4番目の操作として、画面操作プログラムは、
図15に示すように、実行命令「スクリーンショットの撮影 SEQ001画像1」に従い、「SEQ001画像1」という名前のスクリーンショットを撮影する。
【0063】
[4.処理の具体例]
本項目では、本実施形態に係る処理の具体例について説明する。以下の[4-1]においては、シナリオ登録プログラムが制御部102に実行させる処理、すなわち、定義管理生成部102aおよび操作命令生成部102bが行う処理について詳細に説明する。また、以下の[4-2]においては、画面操作プログラムが制御部102に実行させる処理、すなわち、画面操作実行部102cが行う処理について詳細に説明する。
【0064】
[4-1.シナリオ登録プログラムが制御部102に実行させる処理]
本項目では、シナリオ登録プログラムが制御部102に実行させる処理(テストシナリオ登録)の具体例等について説明する。以下の[4-1-1]においては、具体例として、コントロールの入力テストを行うために必要な定義管理テーブル106bおよび画面操作命令テーブル106cの生成について説明する。以下の[4-1-2]においては、具体例として、分岐テストを行うために必要な定義管理テーブル106bおよび画面操作命令テーブル106cの生成について説明する。以下の[4-1-3]においては、画面操作命令情報のサンプルおよびテストシナリオ登録のフローチャートについて説明する。
【0065】
[4-1-1.コントロールの入力テスト]
本項目では、コントロールの入力テストを行うために必要な定義管理テーブル106bおよび画面操作命令テーブル106cの生成について説明する。
【0066】
本項目でいうコントロールの入力テストとは、
図16に示すように、文字列テキストボックスに文字列テキストが入力された場合には、エラーが表示されないことを確認し、これに対して、文字列テキストボックスに文字列テキストが入力されていない場合には、エラーが表示されることを確認するテストである。当該エラーとは、
図16の例では、「項目が未入力です」という内容の吹き出しである。
【0067】
本項目では、このようなテストを行うためのテストシナリオを生成したい場合に、どのような定義管理テーブル106bおよび画面操作命令テーブル106cが生成されるかについて説明する。
【0068】
なお、テストシナリオデータ106aにおける、定義管理テーブル106bの生成の基になる情報は、
図17に示すテストシナリオデータ106aのとおりであるとする。この場合、
図17に示すテストシナリオデータ106aから生成されるユーザーインターフェースは、
図17の画面例に示すとおりとなる。
【0069】
(1)定義管理テーブル106bの生成について
テストシナリオデータ106aにおける、定義管理テーブル106bの生成の基になる情報が、
図18に示すテストシナリオデータ106aのとおりであるとする(
図17に示すテストシナリオデータ106aと同様の内容である)。この場合、定義管理生成部102aは、
図18に示すテストシナリオデータ106aに基づいて、
図18に示す定義管理テーブル106bを生成する。
【0070】
ここで、
図18の定義管理テーブル106bにより定義される内容について説明する。
図18の定義管理テーブル106bにおいては、ハッチングで示すように、コントロールキー3(文字列テキストボックスに対応)に対して、必須「TRUE」が設定されている。これは、
図16の画面例において、文字列テキストボックスに文字列を入力することが必須であることを意味している。このため、
図16の画面例において、文字列テキストボックスに文字列テキストが入力されていない場合には、エラーが表示されることとなる。
【0071】
(2)画面操作命令テーブル106cの生成について
テストシナリオデータ106aにおける、画面操作命令テーブル106cの生成の基になる情報が、
図19に示すテストシナリオデータ106aのとおりであるとする。この場合、操作命令生成部102bは、
図19に示すテストシナリオデータ106aに基づいて、
図19に示す画面操作命令テーブル106cを生成する。
【0072】
ここで、
図19に示す画面操作命令テーブル106cにより定義される内容について説明する。
【0073】
図19に示す画面操作命令テーブル106cの1段目には、タイプ「SetText」、対象「コントロールキー3」および値「"a"」が設定されている。これは、コントロールキー3の文字列テキストボックスに、「a」という文字を自動入力する操作を行うことを意味している。
【0074】
また、
図19に示す画面操作命令テーブル106cの2段目には、タイプ「ScreenShot」、ファイル名「SEQ001画像1」および確認事項「aを入力時、必須チェックがかからないことを確認する」が設定されている。これは、「a」という文字の入力後にスクリーンショットを行って「SEQ001画像1」という名称でデータを保存する操作を行うこと、および、確認事項が「エラーが表示されないこと」であることを意味している。
【0075】
これに対して、
図19に示す画面操作命令テーブル106cの3段目には、タイプ「SetText」、対象「コントロールキー3」および値「""」が設定されている。これは、コントロールキー3の文字列テキストボックスに、文字を自動入力する操作を行わないこと(言い換えると、空文字を自動入力する操作を行うこと)を意味している。
【0076】
また、
図19に示す画面操作命令テーブル106cの4段目には、タイプ「ScreenShot」、ファイル名「SEQ001画像2」および確認事項「未入力時、必須エラーが表示されることを確認する」が設定されている。これは、空文字の入力後にスクリーンショットを行って「SEQ001画像2」という名称でデータを保存する操作を行うこと、および、確認事項が「エラーが表示されること」であることを意味している。
【0077】
[4-1-2.2つ目の具体例(分岐テスト)]
本項目では、分岐テストを行うために必要な定義管理テーブル106bおよび画面操作命令テーブル106cの生成について説明する。
【0078】
本項目でいう分岐テストとは、
図20に示すように、(切替ボタンの押下なしに)確認ボタンが押下された場合には、"Trueに分岐した"と表示されることを確認し、これに対して、切替ボタンの押下後に確認ボタンが押下された場合には、"Falseに分岐した"と表示されることを確認するテストである。
【0079】
本項目では、このようなテストを行うためのテストシナリオを生成したい場合に、どのような定義管理テーブル106bおよび画面操作命令テーブル106cが生成されるかについて説明する。
【0080】
なお、テストシナリオデータ106aにおける、定義管理テーブル106bの生成の基になる情報の一部は、
図21に示すテストシナリオデータ106aのとおりであるとする。この場合、
図21に示すテストシナリオデータ106aから生成されるユーザーインターフェースは、
図21の画面例に示すとおりとなる。
【0081】
また、テストシナリオデータ106aにおける、定義管理テーブル106bの生成の基になる情報は、
図22および
図23に示すテストシナリオデータ106aのとおりであるとする。この場合、
図22および
図23に示すテストシナリオデータ106aから生成されるフローイメージは、
図23のフローチャートに示すとおりとなる。
【0082】
(1)定義管理テーブル106bの生成について
テストシナリオデータ106aにおける、定義管理テーブル106bの生成の基になる情報が、
図24および
図25に示すテストシナリオデータ106aのとおりであるとする(
図22および
図23に示すテストシナリオデータ106aと同様の内容である)。この場合、定義管理生成部102aは、
図24および
図25に示すテストシナリオデータ106aに基づいて、
図25~
図27に示す定義管理テーブル106bを生成する。
【0083】
ここで、
図25~
図27の定義管理テーブル106bにより定義される内容について、
図23のフローチャートと照らし合わせながら説明する。
【0084】
図25の定義管理テーブル106bにおける紐づけ情報中の紐づけ要素1を参照すると、コントロールキー2(「確認ボタン」に対応)に対応するロジックフローは、ロジックフローキー1である。ここで、
図25のロジックフロー情報を参照すると、ロジックフローキー1で定義されるロジックフロー1は、フロー要素1からフロー要素5までの5つの要素からなる。このことは、「確認ボタン」が押下されると、フロー要素1からフロー要素5までのフローが流れることを意味している(ただし、分岐も含むため、すべてのフローが一直線上に流れるわけではない)。
【0085】
以下、ロジックフローキー1が含むフロー要素1からフロー要素5までの各動作について説明する。
【0086】
フロー要素1は、前アクションIDが「開始アクションのID」であり、後アクションIDが「分岐アクションのID」である。ここで、
図25のアクション情報を参照すると、開始アクションについてのタイプは「開始」であり、分岐アクションについてのタイプは「分岐」である。以上より、「確認ボタン」が押下されると、まず、処理が分岐することとなる。フロー要素1で定義される動作は、
図23のフローチャートでいうと、「開始アクション」から「分岐1」に至るまでの動作である。
【0087】
フロー要素2は、前アクションIDが「分岐アクションのID」であり、後アクションIDが「画面更新1アクションのID」であり、コールバックキーは「TRUE」である。この場合、前アクションの実行時に返却される情報が当該コールバックキー「TRUE」である場合に後アクションが実行される。ここで、
図25のアクション情報を参照すると、分岐アクションについてのタイプは「分岐」である。また、
図26のアクション情報を参照すると、画面更新1アクションについて、タイプは「画面更新1」、更新元の値は「"Trueに分岐した"」、更新先のタイプは「コントロール」である。以上より、分岐後に「TRUE」のコールバックキーが返却された場合には、画面更新1("Trueに分岐した"をコントールに表示する画面更新、
図20参照)が実行されることとなる。フロー要素2で定義される動作は、
図23のフローチャートでいうと、「分岐1」から「TRUE」へ進んで「画面更新1」に至るまでの動作である。
【0088】
フロー要素3は、前アクションIDが「分岐アクションのID」であり、後アクションIDが「画面更新2アクションのID」であり、コールバックキーは「FALSE」である。この場合、前アクションの実行時に返却される情報が当該コールバックキー「FALSE」である場合に後アクションが実行される。ここで、
図25のアクション情報を参照すると、分岐アクションについてのタイプは「分岐」である。また、
図26のアクション情報を参照すると、画面更新2アクションについて、タイプは「画面更新2」、更新元の値は「"Falseに分岐した"」、更新先のタイプは「コントロール」である。以上より、分岐後に「FALSE」のコールバックキーが返却された場合には、画面更新2("Falseに分岐した"をコントールに表示する画面更新、
図20参照)が実行されることとなる。フロー要素3で定義される動作は、
図23のフローチャートでいうと、「分岐1」から「FALSE」へ進んで「画面更新2」に至るまでの動作である。
【0089】
ここで、コールバックキーとして、本具体例では、変数1として設定された値が返却される。
図22のテストシナリオデータ106aの「設定3」の列に「変数1」および「TRUE」で示すように、変数1の初期値として「TRUE」が設定されているが、切替ボタンが事前に押下されると、変数1の値は「TRUE」から「FALSE」に更新される(当該「FALSE」への更新については、以下のロジックフローキー2のフロー要素1で説明する)。つまり、切替ボタンの押下なしに確認ボタンが押下されると変数1の初期値である「TRUE」がコールバックキーとして返却されるが(フロー要素2の場合)、これに対して、切替ボタンの押下後に確認ボタンが押下されると変数1の更新後の値である「FALSE」がコールバックキーとして返却される(フロー要素3の場合)。
【0090】
フロー要素4は、前アクションIDが「画面更新1アクションのID」であり、後アクションIDが「終了アクションのID」である。ここで、
図26のアクション情報を参照すると、画面更新アクション1についてのタイプは「画面更新1」であり、終了アクションについてのタイプは「終了」である。以上より、画面更新1("Trueに分岐した"をコントールに表示する画面更新、
図20参照)が実行されると、処理は終了することとなる。フロー要素4で定義される動作は、
図23のフローチャートでいうと、「画面更新1」から「終了アクション」に至るまでの動作である。
【0091】
フロー要素5は、前アクションIDが「画面更新2アクションのID」であり、後アクションIDが「終了アクションのID」である。ここで、
図26のアクション情報を参照すると、画面更新アクション2についてのタイプは「画面更新2」であり、終了アクションについてのタイプは「終了」である。以上より、画面更新2("Falseに分岐した"をコントールに表示する画面更新、
図20参照)が実行されると、処理は終了することとなる。フロー要素5で定義される動作は、
図23のフローチャートでいうと、「画面更新2」から「終了アクション」に至るまでの動作である。
【0092】
以上で、ロジックフローキー1が含むフロー要素1からフロー要素5までの各動作について説明が終了した。
【0093】
続いて、
図25の定義管理テーブル106bにおける紐づけ情報中の紐づけ要素2を参照すると、コントロールキー3(「切替ボタン」に対応)に対応するロジックフローは、ロジックフローキー2である。ここで、
図26のロジックフロー情報を参照すると、ロジックフローキー2で定義されるロジックフロー2は、フロー要素1からフロー要素2までの2つの要素からなる。このことは、「切替ボタン」が押下されると、フロー要素1からフロー要素2までのフローが流れることを意味している。
【0094】
以下、ロジックフローキー2が含むフロー要素1からフロー要素2までの各動作について説明する。
【0095】
フロー要素1は、前アクションIDが「開始アクションのID」であり、後アクションIDが「画面更新3アクションのID」である。ここで、
図25のアクション情報を参照すると、開始アクションについてのタイプは「開始」である。また、
図27のアクション情報を参照すると、画面更新3アクションについて、タイプは「画面更新3」、更新元の値は「FALSE」、更新先のタイプは「変数」である。以上より、「切替ボタン」が押下されると、変数1の初期値「TRUE」が「FALSE」に更新されることとなる。
【0096】
フロー要素2は、前アクションIDが「画面更新3アクションのID」であり、後アクションIDが「終了アクションのID」である。ここで、
図27のアクション情報を参照すると、画面更新アクション3についてのタイプは「画面更新3」である。また、
図26のアクション情報を参照すると、終了アクションについてのタイプは「終了」である。以上より、画面更新3(変数1の「TRUE」から「FALSE」への更新)が実行されると、処理は終了することとなる。
【0097】
以上で、ロジックフローキー2が含むフロー要素1からフロー要素2までの各動作について説明が終了した。
【0098】
(2)画面操作命令テーブル106cの生成について
テストシナリオデータ106aにおける、画面操作命令テーブル106cの生成の基になる情報が、
図28に示すテストシナリオデータ106aのとおりであるとする。この場合、操作命令生成部102bは、
図28に示すテストシナリオデータ106aに基づいて、
図28に示す画面操作命令テーブル106cを生成する。
【0099】
ここで、
図28に示す画面操作命令テーブル106cにより定義される内容について説明する。
【0100】
図28に示す画面操作命令テーブル106cの1段目には、タイプ「ClickElement」および対象「コントロールキー2」が設定されている。これは、コントロールキー2(確認ボタン)を自動押下(自動クリック)する操作を行うことを意味している。
【0101】
また、
図28に示す画面操作命令テーブル106cの2段目には、タイプ「ScreenShot」、ファイル名「SEQ002画像1」および確認事項「確認ボタン押下時、"Trueに分岐した"と表示されることを確認する」が設定されている。これは、確認ボタンの押下後にスクリーンショットを行って「SEQ002画像1」という名称でデータを保存する操作を行うこと、および、確認事項が「"Trueに分岐した"という文字列が表示されること」であることを意味している。
【0102】
これに対して、
図28に示す画面操作命令テーブル106cの3段目には、タイプ「ClickElement」および対象「コントロールキー3」が設定されている。これは、コントロールキー3(切替ボタン)を自動押下(自動クリック)する操作を行うことを意味している。
【0103】
また、
図28に示す画面操作命令テーブル106cの4段目には、タイプ「ClickElement」および対象「コントロールキー2」が設定されている。これは、コントロールキー2(確認ボタン)を自動押下(自動クリック)する操作を行うことを意味している。
【0104】
また、
図28に示す画面操作命令テーブル106cの5段目には、タイプ「ScreenShot」、ファイル名「SEQ002画像2」および確認事項「切替ボタン押下後に確認ボタン押下時、"Falseに分岐した"と表示されることを確認する」が設定されている。これは、切替ボタンの押下後の確認ボタンの押下後にスクリーンショットを行って「SEQ002画像2」という名称でデータを保存する操作を行うこと、および、確認事項が「"Falseに分岐した"という文字列が表示されること」であることを意味している。
【0105】
[4-1-3.画面操作命令情報のサンプルおよびテストシナリオ登録のフローチャート]
本項目では、画面操作命令情報のサンプルおよびテストシナリオ登録のフローチャートについて説明する。
【0106】
画面操作命令情報のサンプルについて説明する。画面操作命令情報の具体例として、上記[4-1-1]および[4-1-2]においては、SetText(指定した値をコントロールにセットする)、ClickElement(ボタンをクリックする)およびScreenShot(スクリーンショットをとる)について説明した。本実施形態においては、これら以外にも様々な画面操作命令情報を設定可能である。画面操作命令情報のサンプル一覧をまとめた表を、
図29に示す。
【0107】
テストシナリオ登録のフローチャートについて、
図30を参照して説明する。まず、処理が開始すると(
図30のスタート)、定義管理テーブル106bおよび画面操作命令テーブル106cの内容がクリアされる(
図30のステップS1)。次に、実行設定ファイルから定義IDが取得される(
図30のステップS2)。次に、テストシナリオデータ106aから、1件、定義IDが読み込まれる(
図30のステップS3)。
【0108】
次に、定義管理生成部102aは、情報を定義管理テーブル106bに登録する(
図30のステップS4)。具体的には、定義管理生成部102aは、テストシナリオデータ106a中の画面変数情報、レイアウト情報、コントール情報、アクション情報、ロジックフロー情報およびイベント設定情報を、例えばこの順序で、定義管理テーブル106bに登録する。なお、当該順序は、一例に過ぎず、特に制限されない。
【0109】
次に、操作命令生成部102bは、情報を画面操作命令テーブル106cに登録する(
図30のステップS5)。
【0110】
次に、定義管理テーブル106bおよび画面操作命令テーブル106cに情報が正常に登録できたか否かが判断される(
図30のステップS6)。正常に登録できた場合(
図30のステップS6:Yes)、ステップS3に戻り、テストシナリオデータ106aから、次の定義IDが読み込まれる。一方で、正常に登録できなかった場合(
図30のステップS6:No)、エラーログが出力された上で(
図30のステップS7)、ステップS3に戻り、テストシナリオデータ106aから、次の定義IDが読み込まれる。
【0111】
以上のステップS3~ステップS7の処理が、テストシナリオデータ106a中の最後の定義IDについてまで繰り替えされ、取得できる定義IDが存在しなくなると、処理は終了する(
図30のエンド)。
【0112】
[4-2.画面操作プログラムが制御部102に実行させる処理]
本項目では、画面操作プログラムが制御部102に実行させる処理(テストシナリオ実行)の具体例等について説明する。以下の[4-2-1]においては、具体例として、コントロールの入力テストを行う場合における画面操作について説明する。以下の[4-2-2]においては、具体例として、分岐テストを行う場合における画面操作について説明する。以下の[4-2-3]においては、テストシナリオ実行のフローチャートについて説明する。
【0113】
ここで、画面操作を行うに先立って、定義IDの読み込みおよび画面起動を行う必要があるため、この2つの処理についてまずは説明する。
【0114】
定義IDの読み込みについて、
図31を参照して説明する。画面操作実行部102cは、
図31に示すように、実行設定ファイルを読み込み、テスト実行対象の定義IDを取得する。次に、画面操作実行部102cは、
図31に示すように、画面操作命令テーブル106cから、当該取得した定義IDと紐付く画面操作命令情報を取得し、当該取得した画面操作命令情報に応じてローコード実行基盤を操作する。画面操作実行部102cは、これら一連の処理を、取得した定義IDの分だけ繰り返す。
【0115】
画面起動について、
図32を参照して説明する。画面操作実行部102cは、前記取得した定義IDと紐付く画面操作命令情報中の画面を起動するように、ローコード実行基盤を操作する。
図32の例では、画面操作実行部102cは、SEQ001の画面を起動している。ローコード実行基盤は、前記取得した定義IDと紐づく、起動したSEQ001の画面に対応する定義管理テーブル106bの情報に基づいて、後述する画面操作命令に従って準備されたテストを実行するためのユーザーインターフェースを動的に生成・表示し、画面操作命令の受付を待機する。
【0116】
[4-2-1.コントロールの入力テストを行う場合における画面操作]
本項目では、コントロールの入力テストを行う場合における画面の自動操作について説明する。なお、本項目では、画面操作実行部102cは、[4-1-1]の(2)で生成した
図19に示す画面操作命令テーブル106c(
図33~
図36に改めて示す)に基づいて画面の操作を実行するものとする。
【0117】
(1)aを入力時、必須チェックがかからないことを確認するための画面操作
まず、aを入力時、必須チェックがかからないことを確認するための画面操作について説明する。
【0118】
図33に示す画面操作命令テーブル106cの1段目には、タイプ「SetText」、対象「コントロールキー3」および値「"a"」が設定されている。このため、画面操作実行部102cは、
図33に示すように、コントロールキー3の文字列テキストボックスに、"a"という文字を入力する。
【0119】
続いて、
図34に示す画面操作命令テーブル106cの2段目には、タイプ「ScreenShot」、ファイル名「SEQ001画像1」および確認事項「aを入力時、必須チェックがかからないことを確認する」が設定されている。このため、画面操作実行部102cは、
図34に示すように、"a"という文字の入力後に、スクリーンショットを行って「SEQ001画像1」という名称でデータを保存する。なお、画面操作実行部102cは、確認事項の確認作業までは行わない。
【0120】
(2)未入力時、必須エラーが表示されることを確認するための画面操作
次に、情報の未入力時に、必須エラーが表示されることを確認するための画面操作について説明する。
【0121】
図35に示す画面操作命令テーブル106cの3段目には、タイプ「SetText」、対象「コントロールキー3」および値「""」が設定されている。このため、画面操作実行部102cは、
図35に示すように、コントロールキー3の文字列テキストボックスに、空文字を入力する(=何も入力しない)。
【0122】
続いて、
図36に示す画面操作命令テーブル106cの4段目には、タイプ「ScreenShot」、ファイル名「SEQ001画像2」および確認事項「未入力時、必須エラーが表示されることを確認する」が設定されている。このため、画面操作実行部102cは、
図36に示すように、空文字の入力後に、スクリーンショットを行って「SEQ001画像2」という名称でデータを保存する。なお、画面操作実行部102cは、確認事項の確認作業までは行わない。
【0123】
[4-2-2.分岐テストを行う場合における画面操作]
本項目では、分岐テストを行う場合における画面の自動操作について説明する。なお、本項目では、画面操作実行部102cは、[4-1-2]の(2)で生成した
図28に示す画面操作命令テーブル106c(
図37~
図41に改めて示す)に基づいて画面の操作を実行するものとする。
【0124】
(1)確認ボタン押下時、"Trueに分岐した"と表示されることを確認するための画面操作
まず、確認ボタン押下時、"Trueに分岐した"と表示されることを確認するための画面操作について説明する。
【0125】
図37に示す画面操作命令テーブル106cの1段目には、タイプ「ClickElement」および対象「コントロールキー2」が設定されている。このため、画面操作実行部102cは、
図37に示すように、コントロールキー2の確認ボタンを押下(クリック)する。
【0126】
続いて、
図38に示す画面操作命令テーブル106cの2段目には、タイプ「ScreenShot」、ファイル名「SEQ002画像1」および確認事項「確認ボタン押下時、"Trueに分岐した"と表示されることを確認する」が設定されている。このため、画面操作実行部102cは、
図38に示すように、確認ボタンの押下(クリック)後に、スクリーンショットを行って「SEQ002画像1」という名称でデータを保存する。なお、画面操作実行部102cは、確認事項の確認作業までは行わない。
【0127】
(2)切替ボタン押下後に確認ボタン押下時、"Falseに分岐した"と表示されることを確認するための画面操作
次に、切替ボタン押下後に確認ボタン押下時、"Falseに分岐した"と表示されることを確認するための画面操作について説明する。
【0128】
図39に示す画面操作命令テーブル106cの3段目には、タイプ「ClickElement」および対象「コントロールキー3」が設定されている。このため、画面操作実行部102cは、
図39に示すように、コントロールキー3の切替ボタンを押下(クリック)する。
【0129】
続いて、
図40に示す画面操作命令テーブル106cの4段目には、タイプ「ClickElement」および対象「コントロールキー2」が設定されている。このため、画面操作実行部102cは、
図40に示すように、コントロールキー2の確認ボタンを押下(クリック)する。
【0130】
続いて、
図41に示す画面操作命令テーブル106cの5段目には、タイプ「ScreenShot」、ファイル名「SEQ002画像2」および確認事項「切替ボタン押下後に確認ボタン押下時、Falseに分岐したと表示されることを確認する」が設定されている。このため、画面操作実行部102cは、
図41に示すように、切替ボタンの押下後の確認ボタンの押下後に、スクリーンショットを行って「SEQ002画像2」という名称でデータを保存する。なお、画面操作実行部102cは、確認事項の確認作業までは行わない。
【0131】
[4-2-3.テストシナリオ実行のフローチャート]
本項目では、テストシナリオ実行のフローチャートについて、
図42を参照して説明する。
【0132】
まず、処理が開始すると(
図42のスタート)、最新のスクリーンショットを撮るために、ローコード実行基盤のテスト対象の入替が行われる。すなわち、ローコード実行基盤の最新版が、管理場所からダウンロードされる(
図42のステップS1)。
【0133】
次に、画面操作実行部102cは、実行設定ファイルから定義IDを取得する(
図42のステップS2)、続けて、画面操作命令テーブル106cから、1件、定義IDを読み込み(
図42のステップS3)、更に続けて、画面操作命令テーブル106cから、当該取得した定義IDと紐付く画面操作命令情報を取得する(
図42のステップS4)。
【0134】
次に、画面操作実行部102cは、画面を起動し(
図42のステップS5)、ステップS4で取得した画面操作命令情報が、ScreenShot命令か否かを判断する(
図42のステップS6)。ScreenShot命令であると判断した場合(
図42のステップS6:Yes)、画面操作実行部102cは、スクリーンショットを出力する(
図42のステップS7)。
【0135】
画面操作実行部102cは、ステップS7においてスクリーンショットを出力した後、または、ステップS6においてScreenShot命令ではないと判断した場合(
図42のステップS6:No)、ステップS4で取得した画面操作命令情報に従い画面操作する(
図42のステップS8)。なお、ステップS8においては、SQLクエリを発行しDB更新またはCSV出力も可能である。画面操作実行部102cは、画面操作を正常にできたか否かを判断する(
図42のステップS9)。正常に画面操作できたと判断した場合(
図42のステップS9:Yes)、画面操作実行部102cは、ステップS4に戻り、画面操作命令テーブル106cから、次の画面操作命令情報を取得する。一方で、正常に画面操作できなかったと判断した場合(
図42のステップS9:No)、画面操作実行部102cは、エラーログを出力した上で(
図42のステップS10)、ステップS4に戻り、画面操作命令テーブル106cから、次の画面操作命令情報を取得する。
【0136】
画面操作実行部102cは、以上のステップS4~ステップS10の処理を、同一定義ID内の最後の画面操作命令情報についてまで繰り返し、取得できる画面操作命令情報が存在しなくなると、ステップS3に戻り、画面操作命令テーブル106cから、次の定義ID(=次のテストシナリオ)を読み込む。
【0137】
以上の処理が、画面操作命令テーブル106c中の最後の定義IDについてまで繰り替えされ、取得できる定義IDが存在しなくなると、画像比較プログラムが差異一覧を出力した上で(
図42のステップS11)、処理は終了する(
図42のエンド)。
【0138】
[5.本実施形態のまとめ]
以上、本実施形態に係るテスト準備効率化装置100によれば、[4-1]で説明したように、テストシナリオデータ106aに基づいて、定義管理テーブル106bおよび画面操作命令テーブル106cを生成することができる。このため、本実施形態に係るテスト準備効率化装置100によれば、テストの準備を効率化・統一化することができる。
【0139】
また、本実施形態に係るテスト準備効率化装置100によれば、[4-2]で説明したように、画面操作命令テーブル106cに基づいて画面の操作を自動実行できる。このため、本実施形態に係るテスト準備効率化装置100によれば、テストの準備のみならず、テストの実行も効率化・統一化することができる。
【0140】
[6.国連が主導する持続可能な開発目標(SDGs)への貢献]
本実施形態により、業務効率化や企業の適切な経営判断を推進することに寄与することができるので、SDGsの目標8及び9に貢献することが可能となる。
【0141】
また、本実施形態により、廃棄ロス削減や、ペーパレス・電子化を推進することに寄与することができるので、SDGsの目標12、13及び15に貢献することが可能となる。
【0142】
また、本実施形態により、統制、ガバナンス強化に寄与することができるので、SDGsの目標16に貢献することが可能となる。
【0143】
[7.他の実施形態]
本発明は、上述した実施形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
【0144】
例えば、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【0145】
また、本明細書中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
【0146】
また、テスト準備効率化装置100に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【0147】
例えば、テスト準備効率化装置100が備える処理機能、特に制御部にて行われる各処理機能については、その全部または任意の一部を、CPUおよび当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、本実施形態で説明した処理を情報処理装置に実行させるためのプログラム化された命令を含む一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じてテスト準備効率化装置100に機械的に読み取られる。すなわち、ROMまたはHDD(Hard Disk Drive)などの記憶部などには、OSと協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部を構成する。
【0148】
また、このコンピュータプログラムは、テスト準備効率化装置100に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【0149】
また、本実施形態で説明した処理を実行するためのプログラムを、一時的でないコンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USB(Universal Serial Bus)メモリ、SD(Secure Digital)カード、フレキシブルディスク、光磁気ディスク、ROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable and Programmable Read Only Memory)、CD-ROM(Compact Disk Read Only Memory)、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、および、Blu-ray(登録商標) Disc等の任意の「可搬用の物理媒体」を含むものとする。
【0150】
また、「プログラム」とは、任意の言語または記述方法にて記述されたデータ処理方法であり、ソースコードまたはバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成および読み取り手順ならびに読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
【0151】
記憶部に格納される各種のデータベース等は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および、ウェブページ用ファイル等を格納する。
【0152】
また、テスト準備効率化装置100は、既知のパーソナルコンピュータまたはワークステーション等の情報処理装置として構成してもよく、また、任意の周辺装置が接続された当該情報処理装置として構成してもよい。また、テスト準備効率化装置100は、当該装置に本実施形態で説明した処理を実現させるソフトウェア(プログラムまたはデータ等を含む)を実装することにより実現してもよい。
【0153】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じてまたは機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。
【産業上の利用可能性】
【0154】
本発明は、例えば、画面の開発を行う分野において有用であり、特に、ローコードによる画面の開発を行う場合においては極めて有用である。
【符号の説明】
【0155】
100 テスト準備効率化装置
102 制御部
102a 定義管理生成部
102b 操作命令生成部
102c 画面操作実行部
104 通信インターフェース部
106 記憶部
106a テストシナリオデータ
106b 定義管理テーブル
106c 画面操作命令テーブル
108 入出力インターフェース部
112 入力装置
114 出力装置
200 サーバ
300 ネットワーク