JP7283569B2 - 操作パターン生成装置、操作パターン生成方法及びプログラム - Google Patents

操作パターン生成装置、操作パターン生成方法及びプログラム Download PDF

Info

Publication number
JP7283569B2
JP7283569B2 JP2021554490A JP2021554490A JP7283569B2 JP 7283569 B2 JP7283569 B2 JP 7283569B2 JP 2021554490 A JP2021554490 A JP 2021554490A JP 2021554490 A JP2021554490 A JP 2021554490A JP 7283569 B2 JP7283569 B2 JP 7283569B2
Authority
JP
Japan
Prior art keywords
screen
input
test
operation pattern
data
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
Application number
JP2021554490A
Other languages
English (en)
Other versions
JPWO2021090427A1 (ja
Inventor
優 吉村
悠 安達
治門 丹野
弘之 切貫
利行 倉林
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2021090427A1 publication Critical patent/JPWO2021090427A1/ja
Application granted granted Critical
Publication of JP7283569B2 publication Critical patent/JP7283569B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、操作パターン生成装置、操作パターン生成方法及びプログラムに関する。
近年のソフトウェア開発の現場では、多様化する消費者ニーズに対応するため、短期間に複数の新バージョンをリリースするような開発スタイルが増加している。ソフトウェアは、大きく「設計」、「実装」、「試験(テスト)」の工程を経てリリースされる。開発したソフトウェアの正常性を確認するテスト工程は、ソフトウェアの不具合をリリース前に検出し、修正する作業である。テスト工程では、様々な観点でソフトウェアの正常性を確認するため、重要、かつ、多くの時間を要する作業となっている。
テスト工程では、テスト観点のうちの一つとして、テスト対象のWebアプリケーションが、設計者の意図した通りの動作を行うかどうかを確認する機能テストが行われる。機能テストにはさらにいくつかの確認観点が存在するが、画面遷移に関するテスト(以下「画面遷移テスト」という。)に膨大な時間を要することが問題となっている。
画面遷移テストは、任意の画面で任意の操作をした際に、次に表示される画面が設計者の意図した通りであるかどうかを確認するテストである。画面遷移テストが時間を要する理由としては、アプリケーションの全ての画面遷移に関する操作を網羅的に実施する必要があるため、リンクやボタンのクリック操作や入力フォーム等へのデータ投入などの人の手を介する操作が多く求められるからである。
従来、画面遷移テストに要する時間を削減する方法として、テストスクリプトを利用する方法がある。この方法は、テスト手順を特定のフォーマットのテストスクリプトとして記述し、そのテストスクリプトをツールに読み込ませることで、テストスクリプトに記載された手順に従ってブラウザ操作を自動で行い、テストを実施するものである。この方法によれば、画面遷移テストを実施する際の人手による操作を大幅に削減することが可能となる。
しかし、ブラウザ操作を自動実施するためのテストスクリプトを作成するためには、対象のWebアプリケーションの仕様の把握とスクリプトの記法の習熟が必要となる。また、スクリプトを作成する作業自体にも大きな時間を要する。更に、Webアプリケーションの既存機能に変更が加わることで、既存のテストスクリプトが使用できなくなるため、アプリケーションに仕様変更が施されるたびにテストスクリプトを修正する必要がある。一般的に、テストスクリプトを使用した自動テストを3回以上繰り返し実施しないと、テストスクリプトの作成に要した時間以上のテスト工程の作業削減効果は得られないと言われている。
このような課題を解決するために、テスト対象のWebアプリケーションを自動で操作することで仕様情報を復元し、復元された仕様情報からテストスクリプトを自動生成するリバースベースのテストスクリプト自動生成技術(以下「リバースベーステスト技術」という。)が存在する(特許文献1、非特許文献1)。リバースベーステスト技術によれば、人手によるテストスクリプト作成作業を必要とせずに画面遷移テストの自動化を実現することができる。
リバースベーステスト技術では、仕様復元の際に以下のステップで処理が行われる。
(1)操作対象画面の画面構造(HTMLのDOM構造)を取得する。
(2)取得したDOM構造からボタン、リンクなどの操作できる対象(以下「操作要素」という。)と入力フォーム、チェックボックス、ラジオボタンなどのデータを投入する対象(以下、入力要素)の情報を取得する。
(3)入力要素に投入するデータについてユーザによる指定(以下「画面入力値補助」という。)が行われている場合は、ユーザによって指定されたデータを画面自動操作時にフォームに入力するデータの候補(以下「入力データ候補」という。)とする。画面入力値補助が行われない場合は、既定のルール(チェックボックスやラジオボタン等であれば個々の選択肢全てなど)に従って入力データ候補を作成する。
(4)生成した入力データ候補と操作要素の組み合わせにより、操作パターンを作成する。
(5)決定した操作パターンを消化するまで、同一画面の自動操作を続け、仕様を復元する。
以下に、図1を操作対象の画面とした場合の操作パターン例を示す。
上記の手順(1)-(3)にて、3種類(リンク1、リンク2、送信ボタン)の操作要素が取得され、4種類の入力フォーム(画面入力値補助で4つの値が指定されているとする)、3種類のプルダウン、及び2種類のチェックボックスについて入力データ候補が選定される(図2参照)。
手順(4)にて、操作要素と入力データ候補の組み合わせを行い、操作パターンを決定する(図3参照)。
手順(5)5で、作成した操作パターンを既定の回数に到達するまで順番に消化していく。
特開2018-116497号公報
倉林 利行, 伊山 宗吉,切貫 弘之, 丹野 治門: "画面操作を伴うテストにおけるテストスクリプトの自動生成手法", ソフトウェアエンジニアリングシンポジウム2017論文集 pp. 260-264, 2017年9月
リバースベーステスト技術は、上記したアルゴリズムにより、対象のWebアプリケーションの画面を自動で操作しながら、次々と画面を辿ることで、画面遷移に関する仕様情報を復元することを可能としている。しかし、操作パターンの算出を操作要素と入力データ候補の組み合わせで行っているため、操作パターン数が膨大となり、仕様復元のための画面の自動操作に多くの時間を要するという課題がある。
これらの操作パターンには画面遷移の仕様復元に寄与しない操作も多く含まれていると考えられる。仮に、図1の画面が以下の図4の仕様を持っている場合、最少で4回の操作で画面遷移の仕様を復元できるところ、これまでのリバースベーステスト技術では数十通りの操作パターンを実施する場合がある。
この課題への対応策として、上限値を設定することが考えられる。例えば、画面入力値補助で指定された値が複数存在する場合に上限値に従っていくつかをサンプリングすることや、導出した操作パターンからいくつかを選定してアプリの解析に用いることなどは容易に実現することが可能である。このような方法により、仕様復元に要する解析時間そのものを短縮することは可能である。
しかし、単純な上限数で操作パターン数を削減すると、画面遷移の仕様復元のために本来必要である操作パターンの欠落や操作の偏りが生じる可能性がある。したがって、仕様復元に紐付かない可能性の高い操作を判断し、その操作パターンだけを画面の自動操作から除外する必要がある。
本発明は、上記の点に鑑みてなされたものであって、Webアプリケーションの画面遷移の仕様復元に要する時間を短縮することを目的とする。
そこで上記課題を解決するため、操作パターン生成装置は、Webアプリケーションの画面において遷移を発生させる操作要素と、前記画面においてデータが入力される入力要素に対する入力データの候補との組み合わせに係る操作パターンを、前記Webアプリケーションに対するテストスクリプトに関して生成する生成部を有し、前記生成部は、前記操作要素のうちクエリストリングが設定されていないリンクについては、いずれの前記候補とも組み合わせない

Webアプリケーションの画面遷移の仕様復元に要する時間を短縮することができる。
操作パターン例を説明するための操作対象の画面例を示す図である。 手順(1)-(3)によって得られる情報の一例を示す図である。 手順(4)によって得られる情報の一例を示す図である。 操作対象の画面の仕様の一例を示す図である。 本発明の実施の形態におけるシステム構成例を示す図である。 本発明の実施の形態におけるクライアント装置10のハードウェア構成例を示す図である。 本発明の実施の形態におけるクライアント装置10の機能構成例を示す図である。 クライアント装置10が実行する処理手順の一例を説明するためのフローチャートである。 テストシナリオの生成処理の処理手順の一例を説明するためのフローチャートである。 リンクに対するテストシナリオの生成処理の処理手順の一例を説明するためのフローチャートである。 ボタンの押下によって送信されるデータを説明するための図である。 ボタンに対するテストシナリオの生成処理の処理手順の一例を説明するためのフローチャートである。 入力要素に対する入力データ候補の生成処理の処理手順の一例を説明するためのフローチャートである。
以下、図面に基づいて本発明の実施の形態を説明する。図5は、本発明の実施の形態におけるシステム構成例を示す図である。図5において、サーバ装置20及びクライアント装置10は、例えば、LAN(Local Area Network)又はインターネット等のネットワークを介して接続される。
サーバ装置20は、Webアプリケーションを含むテスト対象のシステムを含む1以上のコンピュータである。
クライアント装置10は、サーバ装置20が有するWebアプリケーションについてのテスト(検証)を支援する装置である。
図6は、本発明の実施の形態におけるクライアント装置10のハードウェア構成例を示す図である。図6のクライアント装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。
クライアント装置10での処理を実現するプログラムは、CD-ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってクライアント装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
図7は、本発明の実施の形態におけるクライアント装置10の機能構成例を示す図である。図7において、クライアント装置10は、テストシナリオ生成部11、画面自動操作部12、画面評価部13及びテスト資材生成部14等を有する。これら各部は、クライアント装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
テストシナリオ生成部11は、テストにおいて表示された各画面に対するテストシナリオとテスト入力値とを生成する。
画面自動操作部12は、生成されたテストシナリオとテスト入力値とをテストケースとして、画面操作を自動的に実行することで、動的解析を実現する。
画面評価部13は、画面操作の実行により遷移した画面が既に遷移したことのある画面か否かをURLやHTML等の情報を用いて判定する。画面評価部13は、画面操作の実行により遷移した画面のHTMLデータと、既に遷移したことのある画面のHTMLデータとについて、それぞれを抽象化するための編集処理を行って、編集後のHTMLデータを比較する。
図7において、画面評価部13は、ノード削除部131、ノード集約部132及び比較部133を含む。ノード削除部131は、上記の編集処理の一部として、上記の原因1に関わるノードの削除を実行する。ノード集約部132は、上記の編集処理の一部として、上記の原因2に関わるノードの集約を実行する。比較部133は、ノードの削除やノードの集約等の編集処理によって抽象化された2つのHTMLを比較して、当該2つのHTMLに係る画面の同一性を判定する。
テスト資材生成部14は、静的解析及び動的解析により得られた情報に基づいて、画面遷移図を生成する。テスト資材生成部14は、また、テストシナリオ生成部11によって生成されたテストシナリオとテスト入力値をテストスクリプトの形式で出力する。
なお、図7における各部の機能及び各部が実行する処理手順は、特許文献2において開示された通りである。但し、本実施の形態では、テストシナリオ生成部11の機能が拡張される。
以下、クライアント装置10が実行する処理手順について説明する。図8は、クライアント装置10が実行する処理手順の一例を説明するためのフローチャートである。図8に示した処理手順は、特許文献2の図6に示された処理手順と基本的に同じである。
ステップS101において、画面自動操作部12は、初期URLにアクセスして、初期URLに対応するHTMLデータ等を取得する。その結果、当該HTMLデータ等に基づく画面が表示装置106に表示される。初期URLは、例えば、ユーザによって入力されてもよいし、補助記憶装置102に予め記憶されていてもよい。
続くステップS102~S107では、初期URLに対応するHTMLデータ、及び当該HTMLデータに係る画面を起点として遷移可能な全てのHTMLデータに関して、動的解析等が実行される。具体的には、動的解析として、初期URLに対応する画面を起点として実際にテスト対象の画面操作が自動的に実施される。動的解析では、各画面上の全てのリンクに対してクリックを実施し、入力フォームとそれに対応するサブミットボタンが有る場合には、サブミットボタンを押したときのリクエストに対してテスト入力値が生成され、画面操作が繰り返される。遷移先の画面について、既に遷移した画面との比較を行い、新規に遷移した画面かどうかの判断を行って、到達画面数をカウントする。以上の動的解析によって遷移先画面の情報(HTML、URL等)と画面間の繋がり、画面に到達するための手段が取得される。また、コントローラを通らない画面遷移が動的解析で発見された場合、その画面遷移の情報も追加される。コントローラを通らない画面遷移とは、例えば、aタグでのリンクがクリックされた場合に発生する画面遷移である。コントローラとは、Webアプリケーションにおいて一般的に用いられているデザインパターンであるMVC(Model View Controller)の構成において、クライアントサイドからのリクエストに対して実行する処理を決定する部分をいう。例えば、サーブレットがコントローラの一例である。
以下、ステップS102~S107の間で処理対象とされているHTMLデータを、「対象HTML」という。
ステップS103において、テストシナリオ生成部11は、対象HTMLに係る画面(以下、「対象画面」という。)に対するテストシナリオを生成する。すなわち、対象画面において画面の遷移を発生させる画面要素(操作要素又は入力要素等)ごとに、操作及びロケータの組からなるテストシナリオが生成される。操作は、クリック等の操作である。ロケータは、操作の対象とされる画面要素の識別情報である。
続くステップS104~S106は、ステップS103において生成されたテストシナリオごとに実行される。S104~S106において処理対象とされているテストシナリオを、以下「対象テストシナリオ」という。
ステップS105において、テストシナリオ生成部11が、対象テストシナリオに基づいてテストケースを生成し、画面自動操作部12が、当該テストケースを対象画面に対して実行する。その結果、画面遷移が発生する。なお、対象テストシナリオが、入力値を必要とする場合、ステップS105において、テスト入力値の生成が行われる。
遷移先の全ての画面(HTML)に対してステップS102~S107が実行されると、テスト資材生成部14は、画面遷移図を生成する(S108)。具体的には、テスト資材生成部14は、ステップS102~S107において実際に発生した画面遷移を示す画面遷移図を生成する(特許文献2の図7参照)。
続いて、テスト資材生成部14は、各画面遷移が発生したときのテストシナリオとテスト入力値とをテストスクリプトの形式で出力する(S109)。
図8に示した処理手順において、本実施の形態では、Webアプリケーションのリバースベーステスト技術による網羅的な画面操作による仕様復元に要する時間を削減するために、ステップS102の処理内容が拡張される。一つの画面(Webページ)を操作するパターン数を単純に削減すると、仕様復元ができなくなる可能性があるため、仕様復元に寄与しない操作を判別する仕組みが必要となる。リバースベーステスト技術は、操作要素と入力要素に投入する入力データ候補(入力値)の組み合わせから操作パターンを作成していることから、本実施の形態では、操作要素及び入力要素の特徴を活用し、画面遷移に寄与しない操作を判定し、操作パターンから除外することで解析時間を短縮するアプローチをとる。
Webアプリケーションの画面(Webページ)に関して、本実施の形態で着目する操作要素(リンク及びボタン)と入力要素について以下に記述する。
[操作要素]
<リンク>
・説明:リンクが押下すると、Webブラウザは指定されたリソース(URL)にアクセス(リクエスト(HTTPリクエスト)の送信)をする。当該アクセスでは、次の画面を呼び出す処理が行われるのみであり、データの送信はあまり行われない。データ送信を行いたい場合は、URLの末尾にパラメータとして特定の情報が付加される(クエリストリング)。
・HTML記述例:<a href=“hoge/hoge?param=ZZZ”>リンク</a>
<ボタン>
・説明:ボタンが押下されると、Webブラウザは関連する入力要素に投入されているデータを指定されたリソース(URL)へリクエスト(HTTPリクエスト)を送信する。
・HTML記述例:<input type="submit" value="送信">
[入力要素]
<テキストボックス、ラジオボタン、プルダウンなど>
・説明:入力要素には、自由記述、リストからの選択などの操作によりデータが入力される。各入力要素にはデフォルト値を設定することができる(チェックボックスが選択された状態やテキストボックスに文字が入力されている状態で画面が表示される)。
・HTML記述例(テキストボックス):<input type="text" value="デフォルト値" >
本実施の形態では、上記の特徴を用いることで、リバースベーステストにおける仕様復元の精度を落とさずに操作パターン数の削減が行われる。以下に具体的な削減方法を示すため、ステップS103の詳細について説明する。
図9は、テストシナリオの生成処理の処理手順の一例を説明するためのフローチャートである。
ステップS201において、テストシナリオ生成部11は、対象画面に含まれる全ての操作要素及び全ての入力要素を対象HTMLに基づいて抽出する。
続くステップS202~S206では、抽出された操作要素ごとにステップS203~S205が実行される。ステップS203~S205において処理対象とされている操作要素を「対象操作要素」という。
ステップS203において、テストシナリオ生成部11は、対象HTMLに基づいて、対象操作要素がリンクであるか否かを判定する。対象操作要素がリンクである場合(S203でYes)、テストシナリオ生成部11は、リンクに対するテストシナリオの生成処理を実行する(S204)。一方、対象操作要素がリンクでない場合(S203でNo)、テストシナリオ生成部11は、ボタンに対するテストシナリオの生成処理を実行する(S205)。
続いて、ステップS204の詳細について説明する。リンクは特定のリソースにアクセスする機能を持っており、画面上の入力要素に設定されているデータが利用されるケースは少ない。データ送信を行う場合はクエリストリングが用いられる。
クエリストリングとは、遷移先URLの末尾に「?」+「key=value」の形でパラメータを付加する方法であるが、どの入力要素に設定されたデータを送信するかを決定する実装方法は様々であり、また、key名も実装者が自由に決められることから、機械的に特定することは難しい。
そこで、本実施の形態において、テストシナリオ生成部11は、リンクにクエリストリングが設定されている場合は、従来のリバースベーステストの解析と同様に網羅的な操作パターンを生成し、解析に利用する。一方で、クエリストリングが付加されていない場合は、データ送信が行われないため、入力要素へのデータ投入は仕様復元に寄与しないと考えられる。そこで、クエリストリングが設定されていない場合は入力要素へのデータ投入を実施しない(いずれの入力データ候補とも組み合わせない)ことで操作パターンを削減する。具体的には、テストシナリオ生成部11は、ステップS204において、図10に示される処理手順を実行する。
図10は、リンクに対するテストシナリオの生成処理の処理手順の一例を説明するためのフローチャートである。以下において、ステップS204において処理対象とされているリンクを「対象リンク」という。
ステップS301において、テストシナリオ生成部11は、対象画面(対象HTML)のDOM構造から対象リンクに関する情報(<a>タグ、<area>タグ等)を取得する。続いて、テストシナリオ生成部11は、ステップS301において取得されたaタグに設定されている遷移先URLの値(href属性の値等)を取得する(S302)。
続いて、テストシナリオ生成部11は、遷移先URLの文字列にクエリストリングが設定されている(含まれている)か否かを判定する(S303)。遷移先URLにクエリストリングが設定されているか否かは、例えば、遷移先URLの文字列(href属性の値等)が「?xxx=xxx」の形式であるか否かに基づいて判定することができる。例えば、対象リンクに関する<a>タグが、<a href=“hoge/hoge?param=ZZZ”>リンク</a>であれば、移先URLの文字列にクエリストリングが設定されている(含まれている)と判定される。
クエリストリングが設定されていない場合(S303でNo)、テストシナリオ生成部11は、対象リンクに対していずれの入力要素を関連付けずに(いずれの入力要素に対する入力データの候補とも組み合わせずに)操作パターンを作成する(入力要素へのデータ投入はせずに対象リンクの押下だけの操作パターンを生成する)(S304)。
一方、クエリストリングが設定されている場合(S303でYes)、テストシナリオ生成部11は、対象画面の各入力要素への入力データの生成処理を実行する(S305)。ステップS305の詳細については後述される。続いて、テストシナリオ生成部11は、対象リンクとステップS305において生成された入力データ候補との組み合わせに基づいて操作パターンを生成する(S306)。
ステップS304又はS306に続いて、テストシナリオ生成部11は、生成した操作パターンに基づいてテストシナリオを生成する(S307)。
続いて、図9のステップS205の詳細について説明する。ボタンが押下された際は、当該ボタンと同一画面上の複数の入力要素のデータが合わせてサーバへ送信される。しかし、必ずしも同一画面上の全ての入力要素のデータが送信されるのではなく、押下されたボタンに関連している入力要素のみがデータ送信の対象となる。
図11は、ボタンの押下によって送信されるデータを説明するための図である。図11の場合、「送信ボタンA」の押下時には、入力フォームとプルダウンの二つの入力要素に設定された値が送信され、「送信ボタンB」押下時には、チェックボックスに設定された値が送信される。いずれの入力要素のデータが送信の対象となるのかはformタグが基準となる。DOMツリーの構造において、ボタンのタグの上位に存在するformタグの開始タグ(<form>)から終了タグ(</form>)の間に含まれる入力要素(すなわち、当該ボタンが属するフォームに内の入力要素)の値(入力データ)が送信される対象となる。つまり、formタグの外にある入力要素は送信の対象とならないため、このような入力要素へのデータ投入は仕様復元に寄与しないと考えられる。
そこで、本実施の形態において、テストシナリオ生成部11は、操作対象がボタン押下される際に入力データが送信対象となる入力要素を特定し、当該入力要素のみをデータ投入の対象とすることで、操作パターン数を削減する。具体的には、テストシナリオ生成部11は、ステップS205において、図12に示される処理手順を実行する。
図12は、ボタンに対するテストシナリオの生成処理の処理手順の一例を説明するためのフローチャートである。以下において、ステップS204において処理対象とされているボタンを「対象ボタン」という。
ステップS401において、テストシナリオ生成部11は、対象画面(対象HTML)のDOM構造から対象ボタンに関する情報(<button>タグ、<input type=”button”>タグ等)を取得する。続いて、テストシナリオ生成部11は、対象HTMLにおいて、対象ボタンの上位に位置するformタグの情報(form要素の情報)を取得する(S402)。
続いて、テストシナリオ生成部11は、当該formタグ(当該form要素)の開始タグ(<form>)から終了タグ(</form>)までの間に存在する入力要素を特定する(S403)。続いて、テストシナリオ生成部11は、特定した入力要素のみについて、入力データ候補の生成処理を実行する(S404)。ステップS404の詳細については後述される。
続いて、テストシナリオ生成部11は、対象ボタンとステップS404において生成された入力データ候補との組み合わせに基づいて操作パターンを生成する(S405)。続いて、テストシナリオ生成部11は、生成した操作パターンに基づいてテストシナリオを生成する(S406)。
続いて、図10のステップS305及び図12のステップS404の詳細について説明する。
従来のリバースベーステスト技術では、入力要素に投入するデータについてユーザによる補助(画面入力値補助)で指定された値があれば、その値が入力データ候補とされ、指定されていない場合は、既定のルールに従って入力データ候補が生成される。既定のルールとしては、例えば、チェックボックスでは、”個々の要素をそれぞれ一つずつチェックする”、”先頭の一つだけチェックする”や、テキストボックスであれば、”複数個のランダムな文字列を生成する”などが可能である。しかし、どの場合でも、操作パターン数の増大や、画面遷移に必要な操作パターンの欠落が発生する可能性がある。
一方で、ユーザによるデータ入力作業を減らすために、入力要素にはデフォルト値が設定されていることが多い。例えば、電子商取引サイト等における会員情報変更画面を開くと、現在登録されている氏名や住所などの会員情報が既に入力要素に入力された状態となっており、変更したい情報のみをユーザが書き換えるという仕様になっている場合が多い。このように、入力されるデータが既知の場合や入力される可能性の高い値が特定できている場合は、その値が初期状態でのデフォルト値とされる。つまり、入力要素にデフォルト値が設定されている場合は、そのデフォルト値が次の画面へ遷移するために必要なデータである可能性が高いと言える。
そこで、本実施の形態において、テストシナリオ生成部11は、入力要素にデフォルト値が設定されている場合は、既定のルールに沿った新たな入力データ候補の生成はせずに、デフォルト値のみを入力データ候補とすることで、操作パターン数を削減する。具体的には、テストシナリオ生成部11は、図10のステップS305及び図12のステップS404において、図13に示される処理手順を実行する。
図13は、入力要素に対する入力データ候補の生成処理の処理手順の一例を説明するためのフローチャートである。
ステップS501~S508では、ステップS305又はS404において入力要素とされた入力要素ごとにステップS502~S507が実行される。以下、処理対象とされている入力要素を「対象入力要素」という。また、ステップS305又はS404の時点における対象リンク又は対象ボタンを「対象操作要素」という。
ステップS502において、テストシナリオ生成部11は、対象入力要素に関連する情報を対象HTMLから取得する。続いて、テストシナリオ生成部11は、当該情報に基づいて、対象入力要素に対して画面入力値補助による入力データの指定がされているか否かを判定する(S503)。当該指定がされている場合(S503でYes)、テストシナリオ生成部11は、当該入力データを対象入力要素に対する入力データ候補とする(S504)。
一方、画面入力値補助が指定されていない場合(S503でNo)、テストシナリオ生成部11は、ステップS502において取得された情報に基づいて、対象入力要素にデフォルト値が指定されているか否かを判定する(S505)。デフォルト値が設定されているか否かの判定は、以下のように行うことができる。
対象入力要素がテキストボックス等のように文字列の入力が可能な入力要素である場合には、対象入力要素に関してvalue属性、placeholder属性等が有れば、デフォルト値が設定されており、そうでなければデフォルト値は設定されていないと判定することができる。また、対象入力要素がチェックボックス等のうに、複数の選択肢の中からいずれかの選択肢を選択される入力要素である場合には、対象入力要素に関してchecked属性等が有ればデフォルト値が設定されており、そうでなければデフォルト値が設定されていないと判定することができる。
対象入力要素に対してデフォルト値が設定されている場合(S505でYes)、テストシナリオ生成部11は、当該デフォルト値のみを対象入力要素に対する入力データ候補とする(S506)。一方、対象入力要素に対してデフォルト値が設定されていない場合(S505でNo)、テストシナリオ生成部11は、既定のルール(所定のルール)に従って、対象入力要素に対する入力データ候補を生成する(S507)。
なお、画面入力値補助について以下に補足する。
「倉林 利行 , 切貫 弘之 , 丹野 治門: "テストスクリプトの自動生成におけるテスト入力値作成支援技術の提案",情報処理学会
研究報告ソフトウェア工学
, vol. 2018-SE-199, no. 13, pp.1-7, 2018年7月」では、「事前にテスト対象をクロールすることで入力フォームの情報を収集し、各フォームに対して入力値を指定するためのフォーマットを自動生成する」手法が提案されている。
具体的には、まず、テスト対象のアプリケーションをクロールする際に、各画面の入力要素に設定されているid属性、XPath(HTML上で要素の位置を一意に特定する記法)などの情報を取得し、クローラ(マシン)が読み取れる形式で記述されたフォーマットを出力する。その後、ユーザは、出力されたフォーマットに対して、各入力要素に投入したい具体的な値を手動で追記していく。ユーザによって具体的な値が追記されたファイルをクローラに設定し、再度アプリケーションを解析することで、ファイルに記述されたid属性(XPath)と合致する入力要素を発見した場合、クローラはユーザによって指定された具体的な値を入力フォームに投入して解析を行う。
本実施の形態では、上記のようなユーザが各入力要素に投入したい具体的な値を指定する仕組みを画面入力値補助という。
上述したように、本実施の形態によれば、入力要素や操作要素の特徴を用いることで、仕様復元に必要な画面遷移の発見に寄与する可能性が相対的に低い操作を抽出し、当該操作が画面の自動操作から除外される。これにより、仕様復元の精度を下げることなく、テストスクリプトに含まれる操作のパターンを削減することができ、Webアプリケーションの画面遷移の仕様復元に要する時間を短縮することが可能となる。
なお、本実施の形態において、クライアント装置10は、操作パターン生成装置の一例である。テストシナリオ生成部11は、生成部の一例である。
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 クライアント装置
11 テストシナリオ生成部
12 画面自動操作部
13 画面評価部
14 テスト資材生成部
20 サーバ装置
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
131 ノード削除部
132 ノード集約部
133 比較部
B バス

Claims (7)

  1. Webアプリケーションの画面において遷移を発生させる操作要素と、前記画面においてデータが入力される入力要素に対する入力データの候補との組み合わせに係る操作パターンを、前記Webアプリケーションに対するテストスクリプトに関して生成する生成部を有し、
    前記生成部は、前記操作要素のうちクエリストリングが設定されていないリンクについては、いずれの前記候補とも組み合わせない、
    ことを特徴とする操作パターン生成装置。
  2. Webアプリケーションの画面において遷移を発生させる操作要素と、前記画面においてデータが入力される入力要素に対する入力データの候補との組み合わせに係る操作パターンを、前記Webアプリケーションに対するテストスクリプトに関して生成する生成部を有し、
    前記生成部は、前記操作要素のうちボタンについては、当該ボタンが属するフォームの内の入力要素を入力データの組み合わせ対象の候補とする、
    ことを特徴とする操作パターン生成装置。
  3. 前記生成部は、予め入力データのデフォルト値が設定されている前記入力要素については、当該デフォルト値のみを前記操作要素と組み合わせる、
    ことを特徴とする請求項1又は2記載の操作パターン生成装置。
  4. Webアプリケーションの画面において遷移を発生させる操作要素と、前記画面においてデータが入力される入力要素に対する入力データの候補との組み合わせに係る操作パターンを、前記Webアプリケーションに対するテストスクリプトに関して生成する生成手順をコンピュータが実行し、
    前記生成手順は、前記操作要素のうちクエリストリングが設定されていないリンクについては、いずれの前記候補とも組み合わせない、
    ことを特徴とする操作パターン生成方法。
  5. Webアプリケーションの画面において遷移を発生させる操作要素と、前記画面においてデータが入力される入力要素に対する入力データの候補との組み合わせに係る操作パターンを、前記Webアプリケーションに対するテストスクリプトに関して生成する生成手順をコンピュータが実行し、
    前記生成手順は、前記操作要素のうちボタンについては、当該ボタンが属するフォームの内の入力要素を入力データの組み合わせ対象の候補とする、
    ことを特徴とする請求項4記載の操作パターン生成方法。
  6. 前記生成手順は、予め入力データのデフォルト値が設定されている前記入力要素については、当該デフォルト値のみを前記操作要素と組み合わせる、
    ことを特徴とする請求項4又は5記載の操作パターン生成方法。
  7. 請求項1乃至3いずれか一項記載の操作パターン生成装置としてコンピュータを機能させることを特徴とするプログラム。
JP2021554490A 2019-11-07 2019-11-07 操作パターン生成装置、操作パターン生成方法及びプログラム Active JP7283569B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/043607 WO2021090427A1 (ja) 2019-11-07 2019-11-07 操作パターン生成装置、操作パターン生成方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2021090427A1 JPWO2021090427A1 (ja) 2021-05-14
JP7283569B2 true JP7283569B2 (ja) 2023-05-30

Family

ID=75848831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021554490A Active JP7283569B2 (ja) 2019-11-07 2019-11-07 操作パターン生成装置、操作パターン生成方法及びプログラム

Country Status (3)

Country Link
US (1) US20220405196A1 (ja)
JP (1) JP7283569B2 (ja)
WO (1) WO2021090427A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099349A (ja) 2004-09-29 2006-04-13 Mitsubishi Electric Information Systems Corp Jsp試験システムおよびjsp試験プログラム
JP2018116497A (ja) 2017-01-18 2018-07-26 日本電信電話株式会社 画面判定装置及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2245551B1 (en) * 2008-02-29 2018-05-30 Entit Software LLC Identification of elements of currently-executing component script
JP6723976B2 (ja) * 2017-12-06 2020-07-15 日本電信電話株式会社 テスト実行装置及びプログラム
US10642721B2 (en) * 2018-01-10 2020-05-05 Accenture Global Solutions Limited Generation of automated testing scripts by converting manual test cases
US11409640B2 (en) * 2019-05-09 2022-08-09 Sap Se Machine learning based test case prediction and automation leveraging the HTML document object model

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099349A (ja) 2004-09-29 2006-04-13 Mitsubishi Electric Information Systems Corp Jsp試験システムおよびjsp試験プログラム
JP2018116497A (ja) 2017-01-18 2018-07-26 日本電信電話株式会社 画面判定装置及びプログラム

Also Published As

Publication number Publication date
WO2021090427A1 (ja) 2021-05-14
JPWO2021090427A1 (ja) 2021-05-14
US20220405196A1 (en) 2022-12-22

Similar Documents

Publication Publication Date Title
TWI670672B (zh) 雲製造服務的自動建置方法、電腦程式產品、雲製造系統
US8839107B2 (en) Context based script generation
JP4395761B2 (ja) プログラムテスト支援装置およびその方法
WO2012014284A1 (ja) テストシナリオ生成方法、テストシナリオ生成システム、及び、テストシナリオ生成プログラム
JP2012104108A (ja) 対話的クライアント‐サーバー・アプリケーションのステートレスな分散式並列クロール技法
JP2016177553A (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
CN112363953A (zh) 基于爬虫技术和规则引擎的接口测试用例生成方法及系统
JP7259949B2 (ja) テストスクリプト生成装置、テストスクリプト生成方法及びプログラム
JP6535038B2 (ja) 画面判定装置、画面判定方法及びプログラム
JP5968451B2 (ja) 計算機システム、及びプログラム
JP6723976B2 (ja) テスト実行装置及びプログラム
JP7211228B2 (ja) 解析装置、解析方法、及びプログラム
JP7283569B2 (ja) 操作パターン生成装置、操作パターン生成方法及びプログラム
JP2009237749A (ja) 障害情報収集方式
JP6436705B2 (ja) テスト実行装置、テスト実行方法およびコンピュータプログラム
JP2011034274A (ja) テスト自動実行システム
JP7318704B2 (ja) テスト装置、テスト方法及びプログラム
JP7268759B2 (ja) テストデータ生成装置、テストデータ生成方法、及びプログラム
JP7380851B2 (ja) テストスクリプト生成装置、テストスクリプト生成方法及びプログラム
JP6436704B2 (ja) テスト実行装置、テスト実行方法およびコンピュータプログラム
JP7327471B2 (ja) テスト装置、テスト方法及びプログラム
JP6353759B2 (ja) テスト実行装置、テスト実行方法およびコンピュータプログラム
JP6261244B2 (ja) Webアプリケーションテスト装置およびそのプログラム
JP2019197258A (ja) 情報処理装置、その制御方法及びプログラム
JP2019192134A (ja) 情報処理装置、その処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230404

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: 20230418

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230501

R150 Certificate of patent or registration of utility model

Ref document number: 7283569

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150