JP6417791B2 - アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム - Google Patents

アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム Download PDF

Info

Publication number
JP6417791B2
JP6417791B2 JP2014173226A JP2014173226A JP6417791B2 JP 6417791 B2 JP6417791 B2 JP 6417791B2 JP 2014173226 A JP2014173226 A JP 2014173226A JP 2014173226 A JP2014173226 A JP 2014173226A JP 6417791 B2 JP6417791 B2 JP 6417791B2
Authority
JP
Japan
Prior art keywords
test
screen
input
application
scenario
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
JP2014173226A
Other languages
English (en)
Other versions
JP2016048470A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2014173226A priority Critical patent/JP6417791B2/ja
Publication of JP2016048470A publication Critical patent/JP2016048470A/ja
Application granted granted Critical
Publication of JP6417791B2 publication Critical patent/JP6417791B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、アプリケーションテスト支援装置、そのデータ処理方法、およびプログラムに関し、特に、アプリケーションのテストを支援するアプリケーションテスト支援装置、そのデータ処理方法、およびプログラムに関する。
ウェブアプリケーションに関するテストケースおよびテストデータを自動的に生成する技術の一例が特許文献1に記載されている。このテストケース生成装置は、画面遷移定義情報からテストケース生成の対象画面を取得し、画面構成情報からテスト対象カラムを取得し、データ定義情報からテスト対象カラムに対する制約を取得し、テスト対象カラムに対する制約とテストケーステンプレートをマッチングさせ、テストケースとテストデータを生成する。
特開2006−260390号公報
特許文献1に記載の技術では、生成されるテストケースとテストデータは、テストプログラム用のソースコードとして生成されているため、自動で生成されたテストケースが適切な範囲で設定されているか、漏れがないか、等を確認する作業を行おうとした場合に、直感的には分かりにくく、精査に時間がかかるといった問題点があった。確認作業を疎かにしてしまうと、テストの精度が低くなり、アプリケーションの信頼性も落ちてしまい兼ねない。
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、開発アプリケーションの高効率および高精度なテストを支援するアプリケーションテスト支援装置、そのデータ処理方法、およびプログラムを提供することにある。
本発明の各側面では、上述した課題を解決するために、それぞれ以下の構成を採用する。
第一の側面は、アプリケーションテスト支援装置に関する。
第一の側面に係る第1のアプリケーションテスト支援装置は、
アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、前記アプリケーションの画面設計情報を元に取得する属性取得手段と、
取得した前記入力項目に関する属性情報に基づいて、前記アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケースから、その基準テストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストシナリオに基づく派生テストケースを生成するテストケース生成手段と、
前記基準テストケースの各テスト命令の前記入力項目と前記入力操作内容に対応する、複数の前記派生テストケースの前記各テスト命令の前記入力操作内容を対応付けて一覧表示する表示手段と、
を有し、
前記表示手段は、複数の前記派生テストケースにおいて、前記基準テストケースから変化させた前記入力項目の前記入力操作内容を、それぞれ区別可能に表示する。
第一の側面に係る第2のアプリケーションテスト支援装置は、
アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、前記アプリケーションの画面設計情報を元に取得する属性取得手段と、
取得した前記入力項目に関する属性情報に基づいて、前記アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケースから、その基準テストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストシナリオに基づく派生テストケースを生成するテストケース生成手段と、
動作する前記アプリケーションにおける、画面操作および当該画面操作に対応する画面遷移を記録する録画手段と、
前記録画手段により記録された前記画面操作および前記画面遷移に基づいて、前記テストシナリオを生成するテストシナリオ生成手段と、
を有し、
前記録画手段が、
前記動作するアプリケーションの少なくとも1つの画面上で、一連の画面操作を受け付けて、当該一連の画面操作、および当該一連の画面操作に対応する画面遷移を記録し、
前記テストシナリオ生成手段は、
前記録画手段により記録された前記画面操作および前記画面遷移を示すテスト命令にそれぞれ変換し、前記一連の画面操作に対応する、変換された複数のテスト命令を含む一連のテスト命令を、前記テストシナリオに基づく前記基準テストケースとして生成し、
前記テストシナリオ生成手段により生成された前記テストシナリオに基づく前記基準テストケースに含まれる前記一連のテスト命令は、前記入力画面部品に対応する前記入力項目の情報および前記入力画面部品への前記入力操作内容をそれぞれ含む。
第二の側面は、少なくとも1つのコンピュータにより実行されるアプリケーションテスト支援装置のデータ処理方法に関する。
第二の側面に係る第1のアプリケーションテスト支援装置のデータ処理方法は、
アプリケーションテスト支援装置が、
アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、前記アプリケーションの画面設計情報を元に取得し、
取得した前記入力項目に関する属性情報に基づいて、前記アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケースから、その基準テストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストシナリオに基づく派生テストケースを生成し、
前記基準テストケースの各テスト命令の前記入力項目と前記入力操作内容に対応する、複数の前記派生テストケースの前記各テスト命令の前記入力操作内容を対応付けて一覧表示し、
前記一覧表示する際、複数の前記派生テストケースにおいて、前記基準テストケースから変化させた前記入力項目の前記入力操作内容を、それぞれ区別可能に表示する、ことを含む。
第二の側面に係る第2のアプリケーションテスト支援装置のデータ処理方法は、
アプリケーションテスト支援装置が、
アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、前記アプリケーションの画面設計情報を元に取得し、
取得した前記入力項目に関する属性情報に基づいて、前記アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケースから、その基準テストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストシナリオに基づく派生テストケースを生成し、
動作する前記アプリケーションにおける、画面操作および当該画面操作に対応する画面遷移を記録し、
記録された前記画面操作および前記画面遷移に基づいて、前記テストシナリオを生成し、
前記画面操作および前記画面遷移を記録する際、
前記動作するアプリケーションの少なくとも1つの画面上で、一連の画面操作を受け付けて、当該一連の画面操作、および当該一連の画面操作に対応する画面遷移を記録し、
前記テストシナリオを生成する際、
記録された前記画面操作および前記画面遷移を示すテスト命令にそれぞれ変換し、前記一連の画面操作に対応する、変換された複数のテスト命令を含む一連のテスト命令を、前記テストシナリオに基づく前記基準テストケースとして生成する、ことを含み、
生成された前記テストシナリオに基づく前記基準テストケースに含まれる前記一連のテスト命令は、前記入力画面部品に対応する前記入力項目の情報および前記入力画面部品への前記入力操作内容をそれぞれ含む。
なお、本発明の他の側面としては、上記第二の側面の方法を少なくとも1つのコンピュータに実行させるプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
このコンピュータプログラムは、コンピュータにより実行されたとき、コンピュータに、アプリケーションテスト支援装置上で、そのデータ処理方法を実施させるコンピュータプログラムコードを含む。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障のない範囲で変更することができる。
さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
上記各側面によれば、開発アプリケーションの高効率および高精度なテストを支援するアプリケーションテスト支援装置、そのデータ処理方法、およびプログラムを提供することができる。
本発明の実施の形態に係るアプリケーションテスト支援装置の構成を論理的に示す機能ブロック図である。 本実施形態のアプリケーションテスト支援装置のテスト支援対象のアプリケーションの画面の一例を示す図である。 本実施形態のアプリケーションテスト支援装置のテスト支援対象のアプリケーションの画面遷移の一例を示す図である。 本発明の実施の形態に係るアプリケーションテスト支援装置を実現するコンピュータのハードウェア構成を示すブロック図である。 本発明の実施の形態に係るアプリケーションテスト支援装置のデータ処理方法における処理手順を示すフローチャートである。 本発明の実施の形態に係るアプリケーションテスト支援装置におけるテストシナリオおよびテストケースを説明するための図である。 本実施形態のアプリケーションテスト支援装置のテスト支援対象のアプリケーションが利用するデータ情報の一例を示す図である。 本実施形態のアプリケーションテスト支援装置における、派生テストケースの生成例を説明するための図である。 本実施形態のアプリケーションテスト支援装置の構成を論理的に示す機能ブロック図である。 本発明の実施の形態に係るアプリケーションテスト支援装置におけるテストシナリオおよびテストケースを説明するための図である。 本実施形態のアプリケーションテスト支援装置の構成を論理的に示す機能ブロック図である。 本実施形態のアプリケーションテスト支援装置の構成を論理的に示す機能ブロック図である。 本実施形態のアプリケーションテスト支援装置の表示部により表示される変更箇所一覧の一例を示す図である。 本実施形態のアプリケーションテスト支援装置の構成を論理的に示す機能ブロック図である。 本実施形態のアプリケーションテスト支援装置によるアプリケーションの動作テストの概要を説明するための図である。 本実施形態のアプリケーションテスト支援装置において、テストシナリオからテスト仕様書を生成する処理を説明するための図である。 本実施形態のアプリケーションテスト支援装置で、テスト仕様書を生成するツールの画面の一例を示す図である。 本発明の実施の形態に係るアプリケーションテスト支援装置のデータ処理方法における処理手順を示すフローチャートである。 本実施形態のアプリケーションテスト支援装置の構成を論理的に示す機能ブロック図である。 本実施形態のアプリケーションテスト支援装置のテストシナリオ生成部を実現するテストケース生成ツールの一例を示す図である。 本発明の実施の形態に係るアプリケーションテスト支援装置を利用するアプリケーション開発システムの構成の一例を示すブロック図である。 本発明のアプリケーションテスト支援装置を含むアプリケーション開発システムにより開発されるアプリケーションを利用したシステムの構成の一例を示すブロック図である。 本実施形態のアプリケーションテスト支援装置のテスト対象のアプリケーションのデータ情報の一例を示す図である。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
(第1の実施の形態)
本発明の第1の実施の形態に係るアプリケーションテスト支援装置、そのデータ処理方法およびプログラムについて、以下説明する。
図1は、本発明の実施の形態に係るアプリケーションテスト支援装置100の構成を論理的に示す機能ブロック図である。
本発明の実施の形態に係るアプリケーションテスト支援装置100は、アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、アプリケーションの画面設計情報110を元に取得する属性取得部102と、取得した入力項目に関する属性情報に基づいて、アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケース112から、その基準テストケース112に設定される入力画面部品への入力操作内容を変化させた、テストシナリオに基づく派生テストケース114を生成するテストケース生成部104と、を備える。
本発明のアプリケーションテスト支援装置は、アプリケーションの開発時等における、テストを支援する装置である。本実施形態では、アプリケーションテスト支援装置100がテストするアプリケーションとして、ウェブアプリケーションを例に説明する。
図22は、本発明のアプリケーションテスト支援装置を含む開発システムにより開発されるアプリケーションを利用したシステムの構成の一例を示すブロック図である。
図22に示すように、ウェブアプリケーション32は、ウェブサーバ30上で動作し、ネットワーク3を介してブラウザ42経由でユーザ端末40にて利用される。
本発明のテスト対象となるアプリケーションは、ウェブアプリケーションに限定されるものではない。たとえば、サーバ、データベース、および端末の全てがユーザ側に含まれる、企業内のシステム等も開発対象となり得る。
図1に戻り、画面設計情報110とは、アプリケーション設計を行う際に、アプリケーションの画面構成、画面遷移、および各画面の部品(画面構成要素)配置、そのレイアウト、各画面構成要素の属性などを定義した情報を含む。また、各画面構成要素の属性は、画面構成要素に対するチェック機能に関する情報、たとえば、入力必須や英文字のみ入力可、および電話番号形式入力のみ許可等の情報を含む。
たとえば、アプリケーションが、図2に示すような店舗検索画面120を有する場合を例に説明する。
図2は、本実施形態のアプリケーションテスト支援装置100のテスト支援対象のアプリケーションの画面の一例を示す図である。図3は、本実施形態のアプリケーションテスト支援装置100のテスト支援対象のアプリケーションの画面遷移の一例を示す図である。
図2の店舗検索画面120では、店舗を店舗名、所在地、または郵便番号から検索することができる。図2に示すように、店舗検索画面120は、店舗名から店舗の検索を行うために、店舗名の入力を受け付けるテキストボックス122と、テキストボックス122に入力された内容で検索を行う指示を受け付ける検索ボタン124とを含む。さらに、店舗検索画面120は、所在地からの店舗検索または郵便番号からの店舗検索のためのユーザインタフェースを含む。
図2の店舗名からの検索で、テキストボックス122に検索対象の店舗名の少なくとも一部を含む文字列が入力され、検索ボタン124が押下されると、テキストボックス122に入力されたデータで検索が行われる。その結果、該当する店舗が見つかったか否かを条件として、遷移先の画面が分岐する。これが、図3の条件分岐132で定義される。該当店舗が見つからなかった場合には、その旨をユーザに通知するための検索NG画面134に遷移する。一方、該当店舗が見つかった場合には、その結果を提示する検索結果画面136に遷移する。また、図2の所在地検索で、プルダウンメニュー128で都道府県が選択され、検索ボタン130が押下されると、図3に示すように、さらに、市町村を検索する詳細検索画面138に遷移する。
画面および画面遷移に関する情報には、各画面のID、名称、種類(たとえば、ページ、またはポップアップ等)と、画面間の関係に関する情報が含まれる。また、各画面に関する情報には、画面のデザイン(背景の属性情報、レイアウト、テキストコンテンツの内容、文字の属性情報(サイズ、フォント、色等)、画像ファイルの属性情報(ファイルのパス、表示サイズ等)等)、画面構成要素(テキストボックス122、検索ボタン124、プルダウンメニュー128)等の属性情報が含まれる。
また、入力画面部品とは、入力または選択される内容または操作指示を受け付けるためのGUI(Graphical User Interface)コンポーネントや、データを出力するコンポーネントを含む各種の画面構成要素のうち、入力(または選択)に関する部品を指し、たとえば、テキストボックス、コンボボックス、リストボックス、プルダウンメニュー(ドロップダウンメニュー)、コンテキストメニュー、チェックボタン、ラジオボタン等が例示される。入力画面部品にて入力または選択される入力内容は、文字列、数値、および配列データ等を含む。
入力項目とは、入力画面部品に割り当てられているデータ項目を指し、たとえば、テキストボックスに紐付けされているデータフィールドに相当する。入力画面部品に対応する入力項目に関する属性情報は、入力画面部品の種類、名称、データフィールドに関する属性情報(データフィールド名(位置)、データ名、データ形式、データ型、データ長、データ範囲(有効または無効)、データ桁数、データ入力が必須か否か等)等を含む。これらの属性情報に基づいて、テストで入力画面部品への入力のチェックが行われ、属性の範囲内または範囲外等の条件を変えたそれぞれの動作が確認されることになる。
入力操作内容は、少なくとも2つのパラメータを含む。たとえば、パラメータ1は、操作対象を示し、画面のどのテキストボックスかを示す。パラメータ2は入力内容を示し、たとえば、何を入力したかを示す。
ラジオボタンの場合、複数のラジオボタンを1つの入力画面部品とみなす。パラメータ1で、複数のラジオボタンの中から、どれが選択されたかが示される。パラメータ2は使用しなくてよい。
チェックボックスの場合、複数の選択肢に対応する複数のチェックボックスをそれぞれ個別の入力画面部品とする場合と、複数の選択肢に対応する複数のチェックボックスをまとめて1つの入力画面部品とする場合との両方が考えられる。画面上でのチェックボックスの使い方によって、いずれのケースとするかが決まる。たとえば、複数の選択肢のうち、いくつでも選択してよい場合は、前者となり、一方、複数の選択肢のうち、選択数に制限がある場合、後者となる。いずれにしても、チェックボタン毎に、選択されたものがパラメータ1で示される。なお、本明細書で説明したパラメータの定義は一例であり、これらに限定されない。
テストシナリオとは、アプリケーションの動作をテストするために、アプリケーションを利用する際のユーザによる一連の画面操作等をシミュレーションし、その一連の画面操作を定義するものである。テストシナリオとは、具体的なテストデータを伴わない、アプリケーションの動きや画面の遷移の1つの動作パスである。テストシナリオにある1つのテストデータセットに基づいたテストを行うことでテストケースとなる。1つのテストシナリオには、複数のテストケースが存在する。
また、テストケースとは、あるテストシナリオに対し、ある1つのテストデータセットを利用したテストを指す。テストケース毎に具体的な入力テストデータをテストシナリオにインプットすることで得られるべき出力テストデータがそれぞれ存在する。アプリケーションのテストでは、入力テストデータをテストシナリオにインプットして得られた出力がテスト結果を示す。このテスト結果は、テストケースの出力テストデータに基づき、その正否が判定できる。
図2の店舗検索画面120を例にすると、テストシナリオは、テキストボックス122に店舗名が入力され、検索ボタン124が押下されたとき、図3の検索結果画面136に遷移することをテストするための一連の画面操作が定義される。この例では、テストシナリオは、図2の店舗検索画面120において、テキストボックス122に入力された内容を取得し、検索ボタン124の押下を検出し、図3の検索結果画面136に遷移したか否かを、画面キャプチャを取り、画像を保存する一連の画面操作が定義される。この画面キャプチャにより得られた遷移後の検索結果画面136の画像を用いれば、画面内の画像の表示位置のずれやフォーマットの違い等を確認することができる。さらに、他の例では、遷移後の検索結果画面136に表示される表示内容、項目、データ(値や文字等)が正しいか否かの確認も、確認および検証してもよい。
また、テストシナリオは、基準テストケース112として、たとえば、最もポプュラーな一連の画面操作を定義することができる。その一方で、アプリケーションのテストにおいては、ユーザによって様々な操作が行われた場合や、滅多に行われないような操作について、正常な動作または操作の間違いをユーザに報知する動作がなされることが好ましい。そして、これらの様々なケースについて、アプリケーションの動作テストが行われることが好ましい。また、入力された内容によって動作が変わる場合、異なる動作が全てテストできることが好ましい。
たとえば、上記の例では、テキストボックス122に、有効な内容が入力された場合の動作と、無効な内容が入力された場合の動作とが異なるので、両方の動作を確認できる入力を行いテストするのが好ましい。
しかしながら、あらゆるケースに対応する多数のテストケースを作成するとき、必要なテストケースが漏れてしまわないようにするための確認作業にも手間がかかり、コストが高くなってしまうという問題点があった。
そこで、本発明は、基準テストケース112から、必要なテストケースを適切な範囲で網羅できる複数の派生テストケース114を、効率よく、かつ、精度よく自動的に作成することを目的とする。
本実施形態において、テストケース生成部104は、属性情報により示される入力項目の有効入力条件および無効入力条件に基づいて、複数の派生テストケース114に設定すべき複数の入力操作内容を決定する。
入力項目の有効入力条件および無効入力条件は、各入力項目の有効なデータ範囲およびその範囲外、有効なデータ型およびそれ以外、または、有効なデータ形式およびそれ以外等の条件を含む。
属性情報により示される入力項目の有効条件および無効条件に基づく入力操作内容の決定方法は、以下に例示されるが、これらに限定されるものではない。また、以下の各条件は、それぞれ矛盾のない範囲で組み合わせることができる。
(a)入力項目の属性情報に基づいて、入力操作内容が有効または無効となる境界データ(範囲)を決定し、有効または無効となる境界データ(範囲)の中と、有効となる境界データ(範囲)を境として無効な範囲の中、または、無効となる境界データ(範囲)を境として有効な範囲の中でそれぞれ入力データを入力操作内容として決定する。
(b)入力項目の属性情報に基づいて、入力操作内容の有効または無効な範囲を決定し、有効な範囲と無効な範囲の両方の中でそれぞれ複数の入力データを入力操作内容として決定する。入力項目に、複数の入力候補が存在する場合、有効な範囲として複数の入力候補の中から入力操作内容を決定し、無効な範囲として、複数の入力候補以外の入力操作内容を決定する。上記(a)との違いは、入力操作内容に、境界データ(範囲)があるかないかである。
あるアプリケーションでは、入力項目として生年月日を入力させ、中学生であることを判別し、中学生であれば、入会の申込画面へ移行し、中学生でなければ申し込みできない旨を通知する画面に移行するとする。この場合、属性取得部102は、画面設計情報から、入力された生年月日を条件として分岐して異なる画面に移行していることを検出する。そして、属性取得部102は、現在、中学生となる生年月日の範囲(たとえば、2001年4月2日〜2004年4月1日)を有効入力条件(有効範囲)として取得する。
そして、テストケース生成部104が、この中学生となる生年月日の範囲(たとえば、2001年4月2日〜2004年4月1日)を有効となる境界範囲と決定する。さらに、テストケース生成部104は、無効となる範囲を、2001年4月1日以前と、2004年4月2日以降と決定する。テストケース生成部104は、各範囲の中から、複数の生年月日を選択して入力操作内容(たとえば、2000年5月20日、2001年4月1日、2001年4月2日、2003年7月10日、2004年4月1日、2004年4月2日、2005年1月25日等)に決定する。上記例のように、境界値と、境界の直近の前後の値と、境界から一定の範囲離れた値と、を組み合わせて複数決定するのが好ましい。
また、入力項目の属性情報として年齢が成人と定義されている場合、入力操作内容が有効となる範囲は、20才以上と決定され、無効となる範囲は、20才未満と決定される。入力データとして、有効な範囲内で、20才、30才、60才、無効な範囲内で、15才、5才等が決定される。
また、別のアプリケーションの例では、10個のチェックボックスの選択肢から3つまで選択でき、4つ以上選択された場合には警告メッセージを表示するとする。この場合、属性取得部102は、画面設計情報から、チェックボックスが4つ以上選択された場合に、警告メッセージの画面に移行していることを検出する。そして、属性取得部102は、チェックボックスの選択は3つ以下が、有効範囲であると決定する。そして、テストケース生成部104が、境界データとしてチェックボックスの選択数を3に決定し、さらに、有効範囲としてチェックボックスの選択数を3以下、無効範囲として、チェックボックスの選択数を4以上と決定する。そして、テストケース生成部104は、チェックボックスの選択数を、境界値の3と、有効範囲の1、2、無効範囲の4、8、10等に決定する。
(c)上記(a)または(a)の入力データを、境界範囲内および、有効な範囲または無効な範囲内において乱数でそれぞれ決定する。
(d)入力データを入力しない。たとえば、空の文字列(「""」、「’’」等)としたり、NULLとしたり、入力項目が数値型であれば、0や255を入力データとしてもよい。なお、入力項目に入力しないことの表記方法は、プログラム言語等に依存し、様々な定義があるので、ここでは詳細な説明は省略する。本明細書では、入力項目に何も入力されないことを、「入力項目の入力操作内容をNULLとする」とする。特に、入力項目の属性情報で、入力が必須であることが定義されている場合、あえて入力がないことをテストするためのテストケースを生成するのが好ましい。
(e)入力項目の属性情報に基づいて、入力データを、入力項目に対応するフィールドデータのデータ型の指定以外のデータとする。
(f)入力項目の属性情報に基づいて、入力項目の入力桁数を、指定範囲内外(外側は大小両方)の値を複数決定する、
上記(e)と(f)を組み合わせた例では、入力項目の属性情報として半角英数字6桁と定義されている場合、入力操作内容が有効となる境界データとして半角英数字6桁が決定され、境界データの前後の半角英数字1〜5桁と7桁以上、あるいは、全角文字、半角カナ文字の無効な範囲の中からそれぞれ入力データが決定される。たとえば、半角英数字6桁、1桁、10桁、全角文字6桁(さらに、1桁、10桁を含んでもよい)、半角カナ文字6桁(さらに、1桁、10桁を含んでもよい)等が入力データに決定される。
(g)互いに関連する複数の入力項目の境界データ(範囲)、または、有効または無効範囲等を組み合わせた入力有効条件および無効入力条件に基づいて、複数組の入力操作内容を決定する。
例として、入力項目として性別と年齢を入力させ、婚姻年齢に到達しているか否かを判定し、婚姻年齢に到達している場合は、登録画面に移行し、到達していない場合は、登録できない旨を通知する画面に移行するアプリケーションについて説明する。この場合、属性取得部102は、画面設計情報から、入力された性別と年齢の組み合わせを条件として分岐して異なる画面に移行していることを検出する。そして、属性取得部102は、婚姻年齢に到達しているか否かを判別するための有効入力条件として、性別が男性、かつ、年齢が18才以上であることと、性別が女性で、かつ、年齢が16才以上であること、を取得する。
そして、テストケース生成部104が、有効入力条件を有効範囲に決定し、無効範囲を上記以外に決定する。テストケース生成部104は、各範囲内でそれぞれ複数の入力操作内容を決定する。たとえば、テストケース生成部104は、性別が男性または女性の場合についてそれぞれ、年齢が、15才、16才、17才、18才、19才を入力データとして決定する。
(h)複数の入力項目のうち、少なくともいずれか1つNULLとし、NULLとする入力項目を組み合わせた複数組の入力操作内容を決定する。
図4は、本発明の実施の形態に係るアプリケーションテスト支援装置100を実現するコンピュータ60のハードウェア構成を示すブロック図である。
本実施形態において、図1のアプリケーションテスト支援装置100の各構成要素は、図4に示される任意のコンピュータ60のハードウェアとソフトウェアの任意の組合せによって実現される。コンピュータ60は、CPU(Central Processing Unit)62、メモリ64、メモリ64にロードされた本図の構成要素を実現するプログラム80、そのプログラム80を格納するハードディスクなどの記憶ユニット(ストレージ66:補助記憶装置)、I/O(Input/Output)68、ネットワーク接続用インタフェース(通信I/F(InterFace:インタフェース)70)を備える。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下に説明する各機能ブロック図は、ハードウェア単位の構成ではなく、機能単位の論理的なブロックを示している。
また、以下の各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
本実施形態において、アプリケーションテスト支援装置100は、たとえば、サーバコンピュータ、パーソナルコンピュータ、またはそれらに相当するコンピュータにより実現することができる。アプリケーションテスト支援装置100を実現するコンピュータ60は、たとえば、キーボードやマウス等の入力装置72、ディスプレイ等の表示装置74、入力装置72と表示装置74が一体となったタッチパネル(不図示)、マイクやスピーカ等の音声入出力装置(不図示)、または、プリンタ等の出力装置(不図示)と接続される。
コンピュータ60の各要素は、バス69を介して互いに接続され、CPU62により各要素とともにアプリケーションテスト支援装置100全体が制御される。コンピュータ60のCPU62が、ストレージ66に記憶されるプログラム80をメモリ64に読み出して実行することにより、アプリケーションテスト支援装置100の図1の各ユニットの各機能を実現することができる。なお、以下の各実施形態においても同様であり、各実施形態のアプリケーションテスト支援装置の各ユニットの各機能は、コンピュータ60のCPU62が各実施形態に対応するプログラム80を実行することにより実現される。
本実施形態のコンピュータプログラム80は、アプリケーションテスト支援装置100を実現させるためのコンピュータ60に、アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、アプリケーションの画面設計情報110を元に取得する手順、取得した入力項目に関する属性情報に基づいて、アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケース112から、その基準テストケース112に設定される入力画面部品への入力操作内容を変化させた、テストシナリオに基づく派生テストケース114を生成する手順、を実行させるように記述されている。
本実施形態のコンピュータプログラム80は、コンピュータ60で読み取り可能な記録媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラム80は、記録媒体からコンピュータ60のメモリ64にロードされてもよいし、ネットワーク3を通じてコンピュータ60にダウンロードされ、メモリ64にロードされてもよい。または、プログラム80は、記録媒体からコンピュータ60のストレージ66に読み込まれて格納された後、メモリ64にロードされてもよい。
コンピュータプログラム80を記録する記録媒体は、非一時的な有形のコンピュータ60が使用可能な媒体を含み、その媒体に、コンピュータ60が読み取り可能なプログラムコードが埋め込まれる。コンピュータプログラム80が、コンピュータ60上で実行されたとき、コンピュータ60に、アプリケーションテスト支援装置100を実現する以下の制御方法を実行させる。
このように構成された本実施形態のアプリケーションテスト支援装置100のデータ処理方法について、以下説明する。
図5は、本発明の実施の形態に係るアプリケーションテスト支援装置100のデータ処理方法における処理手順を示すフローチャートである。
本発明の実施の形態に係るアプリケーションテスト支援装置100のデータ処理方法は、アプリケーションテスト支援装置100が、アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、アプリケーションの画面設計情報110を元に取得し(ステップS101)、取得した入力項目に関する属性情報に基づいて、アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケース112から、その基準テストケース112に設定される入力画面部品への入力操作内容を変化させた、テストシナリオに基づく派生テストケース114を生成する(ステップS103)。
以下、具体例を用いて説明する。
図6は、本発明の実施の形態に係るアプリケーションテスト支援装置100におけるテストシナリオおよびテストケースを説明するための図である。
図2に示した店舗検索画面120のテストを行うためのテストシナリオとテストケースの例が、図6に示されている。
たとえば、図2の店舗検索画面120において、店舗名をテキストボックス122に入力し、検索ボタン124を押下すると、検索結果画面136に検索結果が表示されることをテストする場合を例に説明する。
属性取得部102が、アプリケーションの店舗検索画面120上で、入力操作対象となる入力画面部品(たとえば、テキストボックス122、プルダウンメニュー128)に対応する入力項目に関する属性情報を、アプリケーションの画面設計情報110を元に取得する(ステップS101)。ここでは、たとえば、店舗検索画面120のテキストボックス122には、検索しようとする店舗名の少なくとも一部が入力される。テキストボックス122に対応する入力項目は、図7に示す店舗情報の店舗名フィールドデータに紐付けられている。店舗名フィールドデータの属性情報として、データ型が文字列型、文字数が全角文字で1〜6文字であることが定義されているとする。また、テキストボックス122の属性情報として、受け付け可能な文字列は全角文字で、その文字数が1〜6文字と定義されていてもよい。
属性取得部102は、この「店舗名」の入力項目の属性情報(データ型が文字列型、文字数が全角文字1〜6文字)を取得する。
そして、テストケース生成部104が、これらの属性情報に基づいて、テキストボックス122への入力操作内容を変換させた派生テストケース114を生成する(ステップS103)。図6に示すように、テストケース生成部104により、入力が「新宿(該当店舗あり)」である派生テストケース114(Test-1-1)と、入力が「東京都新宿3丁目(文字数オーバー)」である派生テストケース114(Test-1-2)と、入力が「NULL」である派生テストケース114(Test-1-3)と、入力された結果が該当店舗なしとなる派生テストケース114(不図示)と、が生成される。
なお、上記「該当店舗あり」と「該当店舗なし」となる入力内容の決定方法は様々考えられるが、たとえば、テストケース生成部104が、検索対象である店舗名フィールドデータを参照して、店舗名に含まれる文字列を任意のレコードから抽出して検索結果が得られる(該当店舗あり)入力内容とし、一方、店舗名が含まれないような、ランダムに文字を並べた文字列を生成して、検索結果が得られない(該当店舗なし)入力内容とすればよい。
そして、テストケース生成部104は、派生テストケース114毎に、各テストを実行するためのプログラムをそれぞれ生成し、出力する。このようにして生成されたプログラムは、たとえば、図21の開発装置20上で動作するウェブサーバ30上で実行され、テスト結果が出力される。なお、図21のアプリケーション開発システム1における、これらのテスト動作については、後述する実施形態で詳細に説明する。
以上説明したように、本実施形態のアプリケーションテスト支援装置100において、属性取得部102が、アプリケーションの店舗検索画面120上で、入力操作対象となる入力画面部品(たとえば、テキストボックス122、プルダウンメニュー128)に対応する入力項目に関する属性情報を、アプリケーションの画面設計情報110を元に取得し、テストケース生成部104が、属性情報に基づいて、テストシナリオに基づく基準テストケース112から、その基準テストケース112に設定される入力画面部品への入力操作内容を変化させた、テストシナリオに基づく派生テストケース114を生成する。
これにより、本実施形態のアプリケーションテスト支援装置100によれば、画面設計情報から取得した入力項目の属性情報に基づいて、基準テストケース112から複数のバリエーションを増やし、複数のテストケースを自動で生成できるので、必要なテストケースを適切な範囲で網羅できる複数の派生テストケース114を、効率よく、かつ、精度よく自動的に作成することができる。これにより、テストの品質が向上し、引いてはアプリケーションの品質および信頼性も向上する。
(第1の実施の形態の変形態様1)
第1の実施の形態の変形態様1のアプリケーションテスト支援装置について以下に説明する。
図8は、本実施形態のアプリケーションテスト支援装置における、派生テストケース114の生成例を説明するための図である。
本実施形態では、図1のアプリケーションテスト支援装置100における基準テストケース112から派生テストケース114を生成する具体的な方法について説明する。本実施形態のアプリケーションテスト支援装置は、図1のアプリケーションテスト支援装置100と同様な構成を有するので、以下、図1および図8を用いて説明する。
本実施形態のアプリケーションテスト支援装置100において、テストシナリオ140は、入力操作を示す入力操作命令を含む。
テストシナリオ140の基準テストケース112は、入力操作命令のパラメータとなる、入力操作の対象となる入力画面部品の識別情報(パラメータ1に相当)およびその入力画面部品への入力内容を含む入力操作内容(パラメータ2に相当)を有する。
属性取得部102は、入力操作命令のパラメータを基準テストケース112から抽出し、抽出されたパラメータにより示される入力画面部品の識別情報および画面設計情報110に基づいて、その入力画面部品に対応する入力項目の属性情報を取得する。
テストケース生成部104は、取得された属性情報に基づいて、抽出されたパラメータにより示される入力画面部品への入力内容を変化させて、複数の派生テストケース114を生成する。
本実施形態において、入力操作を示す複数のコマンドを含むテストシナリオ140と、テストシナリオ140に基づく基準テストケース112は、マイクロソフト社製のエクセル(登録商標)等の表計算ソフトウェアのシート142(図8(a))に記入することができる。
図8(a)の例では、1列目の各行が、上から順に実行される一連のテスト命令を含んでいる。そして、2列目は、各テスト命令の2つのパラメータを上下2つのセルに含んでいて、基準テストケース112に相当する。
そして、属性取得部102は、テストシナリオ140に含まれるテスト命令の中から入力操作命令(type)を検出し、検出された入力操作命令のパラメータ(144)を基準テストケース112から抽出し、抽出されたパラメータ(144)により示される入力画面部品の識別情報(SSS_text_1)および画面設計情報110に基づいて、その入力画面部品に対応する入力項目の属性情報を取得する。ここでは、テキストボックス(SSS_text_1)に対応する入力項目の属性情報として、データ型が文字列型(全角文字)、文字数が全角文字で1〜6文字であることを取得する。
なお、テストシナリオ140に含まれる入力操作命令は、たとえば、「Type」、「click」または「clickAndWait」等がある。
そして、テストケース生成部104は、取得された属性情報に基づいて、抽出されたパラメータにより示される入力画面部品への入力内容を、文字数が2文字(文字制限内)でかつ検索結果で該当店舗が得られる「新宿」と、6文字以上(文字制限超え)の「東京都新宿3丁目」(8文字)と、入力がないケースと、検索結果で該当店舗が得られないケースと、4つに変化させて、少なくとも4つの入力候補を生成する。あるいは、データ型が文字列型(全角文字)以外のたとえば数値型や半角文字等の入力を候補としてさらに生成してもよい。
そして、テストケース生成部104は、図8(a)のシート142の基準テストケース112の列を少なくとも4列分複製して増やした後、生成した入力候補を、Typeコマンドのパラメータ2の各列のセル146にそれぞれ挿入して、4つの派生テストケース114(Test-1-1、Test-1-2、Test-1-3、Test-1-4(不図示))を生成する。図8(b)の例では、1つ目の派生テストケース114(Test-1-1)は、基準テストケース112をそのものである。
この例のように、派生テストケース114に基準テストケース112を含めて最終的なテストケースを複数生成してもよい。あるいは、他の例として、派生テストケース114に基準テストケース112は含まず、最終的な複数のテストケースとして、基準テストケース112と派生テストケース114をそれぞれ用いる構成としてもよい。
このように、本実施形態では、テストケース生成部104は、シート142の基準テストケース112の列を派生テストケース114分、複製して生成し、テスト命令のパラメータをテストケース毎に変更することで、テストケースのバリエーションを簡単に増やすことができる。
このように、本実施形態のアプリケーションテスト支援装置100において、属性取得部102が、入力操作命令のパラメータを基準テストケース112から抽出し、抽出されたパラメータにより示される入力画面部品の識別情報および画面設計情報110に基づいて、その入力画面部品に対応する入力項目の属性情報を取得し、テストケース生成部104が、取得された属性情報に基づいて、抽出されたパラメータにより示される入力画面部品への入力内容を変化させて、複数の派生テストケース114を生成する。
これにより、本実施形態のアプリケーションテスト支援装置100によれば、基準テストケース112から、画面設計情報に基づいて複数の派生テストケース114を適切な範囲で生成することができるので、作業効率が向上するとともに、テスト内容の品質も向上する。また、シート142でテストシナリオ140の一連のテスト命令と各パラメータを参照することができるので、テスト内容の確認作業も容易になり、効率が向上するとともに、テスト品質も向上する。テストシナリオのソースコード自体でテスト内容を確認する場合に比べ、テスト内容が直感的に分かりやすい。
(第1の実施の形態の変形態様2)
第1の実施の形態の変形態様2のアプリケーションテスト支援装置について以下に説明する。
図9は、本実施形態のアプリケーションテスト支援装置150の構成を論理的に示す機能ブロック図である。
本実施形態のアプリケーションテスト支援装置150は、図1のアプリケーションテスト支援装置100とは、複数の派生テストケース114を一覧表示するとともに、変更箇所を区別可能に表示する点で相違する。
図9の本実施形態のアプリケーションテスト支援装置150は、図1のアプリケーションテスト支援装置100と同様な属性取得部102およびテストケース生成部104に加え、さらに、表示部152を備える。
本実施形態のアプリケーションテスト支援装置150において、表示部152は、基準テストケース112の各テスト命令の入力項目と入力操作内容に対応する、複数の派生テストケース114の各テスト命令の入力操作内容を対応付けて一覧表示する。
そして、表示部152は、複数の派生テストケース114において、基準テストケース112から変化させた入力項目の入力操作内容を、それぞれ区別可能に表示する。
表示部152は、たとえば、図4のコンピュータ60に接続される表示装置74に、図10のシート142を表示させることができる。図10に示すように、表示部152は、入力項目の入力操作内容を変更した箇所154をそれぞれ他と区別可能に表示する。この例では、破線で囲んでいるが、他の例では、対応するセルの背景色またはセル内の文字の色を他と変えたり、強調文字(ホールド指定、イタリック指定等)にしたりしてもよい。変更箇所が区別可能であれば、特に限定されない。
このように、本実施形態のアプリケーションテスト支援装置150によれば、表示部152が、派生テストケース114を一覧表示するとともに、テストケース生成部104により自動的に生成された複数の派生テストケース114において、他と変更された箇所を区別可能に表示させるので、派生テストケース114において、基準テストケース112から変化させた箇所とその差異の内容を分かりやすく表示できる。
(第1の実施の形態の変形態様3)
第1の実施の形態の変形態様3のアプリケーションテスト支援装置について以下に説明する。
図11は、本実施形態のアプリケーションテスト支援装置160の構成を論理的に示す機能ブロック図である。
本実施形態のアプリケーションテスト支援装置160は、図1のアプリケーションテスト支援装置100とは、1つのテストシナリオ140から生成された複数の派生テストケース114のそれぞれにナンバリング等の所定の規則に従ってテスト名を付与する。
図11のアプリケーションテスト支援装置160は、図1のアプリケーションテスト支援装置100と同様な構成を有するとともに、さらに、付与部162を有する。図11では、図1のアプリケーションテスト支援装置100の構成との組み合わせを例として示しているが、図9のアプリケーションテスト支援装置150の構成、および他のアプリケーションテスト支援装置の構成と組み合わせることもできる。
本実施形態のアプリケーションテスト支援装置160において、付与部162は、複数の派生テストケース114に、所定の規則に従って、採番、または、テスト名を付与する。
図10の例では、3つの派生テストケース114には、「Test-1」の後に、1、2、3がそれぞれナンバリングされている。
このようにして付与されたテスト名は、テスト用プログラムが生成されたときのプログラムの名称に含めてもよい。
図10のように、シート142の派生テストケース114に対応する各列のタイトル行に、付与部162がテスト名を記入することができる。
なお、このテスト名は、後述するテスト仕様書またはテスト結果報告書などにそのまま利用することもできる。
このように、本実施形態のアプリケーションテスト支援装置160によれば、基準テストケース112から派生した複数のテストケースを一連のテストケースとして、テスト名を付与することができるので、複数のテストを体系的に管理しやすくなる。
(第1の実施の形態の変形態様4)
第1の実施の形態の変形態様4のアプリケーションテスト支援装置について以下に説明する。
図12は、本実施形態のアプリケーションテスト支援装置170の構成を論理的に示す機能ブロック図である。
本実施形態のアプリケーションテスト支援装置170は、上記実施形態とは、派生テストケース114で変更があった箇所154の情報を抽出して提示する機能をさらに有する点で相違する。
本実施形態のアプリケーションテスト支援装置170は、図11のアプリケーションテスト支援装置160と同様な構成を有するとともに、さらに、抽出部172と、表示部174と、を備える。
本実施形態のアプリケーションテスト支援装置170において、表示部174は、図9のアプリケーションテスト支援装置150の表示部152と同様な機能を備えてもよい。
本実施形態のアプリケーションテスト支援装置170において、抽出部172は、テストケース生成部104により、基準テストケース112と各派生テストケース114の間で入力画面部品への入力内容を変化させた変更箇所を抽出する。
表示部174は、各派生テストケース114における変更箇所を表示する。
図13は、本実施形態のアプリケーションテスト支援装置170の表示部174により表示される変更箇所一覧の一例を示す図である。
変更箇所一覧176は、派生テストケース114毎に、付与部162により付与されたテスト名と、入力画面部品に対応する入力項目名(「性別」および「年齢」)と、バリエーションにも付与部162により採番された番号と同じ番号(「バリエーション1」等)と、各入力項目の入力内容(「男・17才」等)と、を対応付けて表記する。図に示すように、複数の入力項目の組み合わせの場合、入力項目を(「性別」および「年齢」)「と」で連結し、さらに、「の」で「バリエーション1」等を追記し、さらに、「:」を付してそれ以降に、複数の入力項目の入力内容を「・」で連結して追記して表記する。
なお、図13の変更箇所一覧176の書式は一例であり、これに限定されるものではない。
この変更箇所一覧176の内容を参照することで、バリエーションの妥当性を確認しやすく、バリエーションの漏れや余分なものを見つけて追加や削除を行ったり、入力操作内容を変更したりすることも可能になる。これらのテストケースの修正操作は、上記実施形態で説明した、図10のシート142上で簡単に行うことができる。
以上説明したように、本実施形態のアプリケーションテスト支援装置170において、抽出部172が、基準テストケース112と各派生テストケース114の間で入力画面部品への入力内容を変化させた変更箇所を抽出し、表示部174が各派生テストケース114における変更箇所を表示する。
本実施形態のアプリケーションテスト支援装置170によれば、複数の派生テストケース114におけるバリエーションを一覧で確認でき、必要に応じてテストケースをより適切なものにするために修正を行うこともできる。
(第2の実施の形態)
次に、本発明の第2の実施の形態に係るアプリケーションテスト支援装置およびそのデータ処理方法について、以下説明する。なお、本実施形態のプログラムは、上記実施形態と同様に、アプリケーションテスト支援装置のデータ処理方法を少なくとも1つのコンピュータに実行させるものであり、本実施形態での詳細な説明は省略する。
図14は、本発明の実施の形態に係るアプリケーションテスト支援装置200の構成を論理的に示す機能ブロック図である。
本実施形態のアプリケーションテスト支援装置200は、上記実施形態のいずれかのアプリケーションテスト支援装置により生成された複数のテストケースに従ってアプリケーションの動作テストを実行する点で相違する。
本実施形態のアプリケーションテスト支援装置200は、図14の構成要素のみを備える構成とすることもできる。あるいは、他の本発明の実施形態のアプリケーションテスト支援装置の少なくともいずれか1つと組み合わせることもできる。
本実施形態のアプリケーションテスト支援装置200は、テストシナリオに基づく複数の派生テストケース114のそれぞれについて、アプリケーションを動作させてテストを実行するテスト実行部202と、テスト実行部202により動作させたアプリケーションの画面操作および画面遷移を、テスト結果として記録するテスト結果記録部204と、生成された複数の派生テストケース114のテストシナリオを元に、画面設計情報110を参照して、アプリケーションのテスト仕様書212を生成する仕様書生成部206と、を備える。
図15は、本実施形態のアプリケーションテスト支援装置200によるアプリケーションの動作テストの概要を説明するための図である。
より詳細には、テスト実行部202は、上記実施形態で説明した、テストケース生成部104により画面設計情報110を元に、テストシナリオ140に基づく基準テストケース112から、複数の派生テストケース114を含むテストシナリオ140を用いて、テストプログラム214を生成する。
本実施形態では、テストシナリオ140は、上記実施形態で説明したエクセル(登録商標)ファイル形式であるとする。テスト実行部202は、エクセルファイル形式のテストシナリオ140に含まれる複数の派生テストケース114を、それぞれテストプログラム214のソースコードに変換する。
さらに、テスト実行部202は、テストプログラム214から、端末40のブラウザ42でウェブアプリケーション32の画面操作を再現させるテストドライバ220を生成する。本実施形態では、テストドライバ220は、オープンソースプログラムのSelenium等の機能を利用して、Java(登録商標)の単体テストを自動的に実行するためのオープンソースプログラムのJunit等のコードとして生成する。
そして、テスト実行部202は、テストドライバ220を起動し、バッチ処理で夜間等に複数のテストケースについて、自動で連続してウェブアプリケーション32の動作テストを実行させる。なお、動作テストの前に、オープンソースプログラムのDBUnit等を利用して、テスト用のデータベースデータ(不図示)を作成しておく。
図14に戻り、テスト結果記録部204は、テスト結果記憶部210にテスト結果222および画面キャプチャ224を記録する。
仕様書生成部206は、テストシナリオ140と画面設計情報110に基づいて、テスト仕様書212を生成する。これにより、テスト仕様書212の作成作業を効率化できるとともに、テストシナリオ140とテスト仕様書212との乖離を防止できる。
さらに、仕様書生成部206は、作成したテスト仕様書212に、テスト結果記録部204に記録されたテスト結果222および画面キャプチャ224を挿入することで、テスト結果報告書226を生成することもできる。
図16は、本実施形態のアプリケーションテスト支援装置200において、テストシナリオ140からテスト仕様書212を生成する処理を説明するための図である。
本実施形態において、仕様書生成部206は、画面設計情報110を参照し、テストシナリオ140の各テスト命令にコメントを挿入する。たとえば、テキストボックス(SSS_text_1)の入力項目「店舗名」を画面設計情報110から取得し、テキストボックスに入力データを入力するテスト命令(Type)の上の行に、「@店舗名」と挿入する。「@」を先頭に付すことで、コメントであることを示している。先頭文字は「@」に限定されず、他の文字または記号でもよい。
また、操作ボタン(SSS_submit_1)の部品名「検索ボタン」を画面設計情報110から取得し、操作ボタンの操作を受け付けるテスト命令(clickAndWait)の上の行に、「@検索ボタン」と挿入する。
このように、仕様書生成部206は、予めテストシナリオ140の必要な箇所にコメントを挿入しておく。そして、仕様書生成部206は、テストシナリオ140からテスト仕様書212を生成する際に、このコメント(@マークで始まる部分)を抽出し、各派生テストケース114に記載されているテスト命令を、コメントの文字列に置換して、テスト仕様書212に記載する。
テストシナリオ140は、プログラム言語で記載されているが、仕様書生成部206により、コメントを文字列(日本語等の言語表記)で挿入することで、テスト仕様書212を生成する際、テストシナリオ140のテスト命令をコメントの文字列で表記できる。なお、このコメントの文字列は、設計者が入力してもよいが、属性取得部102が画面設計情報110から取得して自動的に入力することもできる。
図17は、本実施形態のアプリケーションテスト支援装置200で、テスト仕様書212を生成するツールの画面の一例を示す図である。
テスト仕様書生成ツールの設定画面230は、テスト仕様書212により生成されるドキュメントの種類を選択するドキュメント選択部(ラジオボタン)232と、テスト仕様書212の元になるテストシナリオ140の保存フォルダを指定する第1指定欄234と、テスト実行時に画面キャプチャの画像ファイルが格納されているフォルダを指定する第2指定欄236と、テスト結果が格納されているフォルダを指定する第3指定欄238と、テスト仕様書212を出力する出力先のフォルダを指定する第4指定欄240と、実行ボタン242と、終了ボタン244と、を含む。
ドキュメント選択部232は、生成するドキュメントが、機能テスト仕様書、結合テスト仕様書、ならびに、機能テスト結果報告書、結合テスト結果報告書のいずれかを選択する4つのラジオボタンを含む。
実行ボタン242の押下を受け付けると、仕様書生成部206は、ドキュメント選択部232で選択されたドキュメントの生成を開始する。このとき、各指定欄で指定されたフォルダを参照し、必要な情報を取得し、第4指定欄240で指定されたフォルダに格納する。
本実施形態のアプリケーションテスト支援装置200は、図21に示すような、アプリケーション開発システム1において、開発装置20の一部の機能として組み込むことができる。
図21は、本発明の実施の形態に係るアプリケーションテスト支援装置200を利用するアプリケーション開発システム1の構成の一例を示すブロック図である。
本実施形態の開発装置20は、図4で示したコンピュータ60と同様な構成を有する、サーバコンピュータ、パーソナルコンピュータ、またはそれらに相当するコンピュータにより実現することができる。
本発明の実施の形態に係るアプリケーション開発システム1において、開発装置20は、端末40がブラウザ42を経由してインターネット等のネットワーク3を介して利用する、ウェブサーバ30で動作するウェブアプリケーション32の開発を行う装置である。
ウェブアプリケーション32は、たとえば、端末40のブラウザ42上に画面を表示させ、画面上での入力および操作を受け付け、入力操作に基づく処理を実行し、必要に応じてデータベース(DB:DataBase)24を参照し、結果得られたデータに基づき形成される画面を端末40のブラウザ42上に表示させる。
開発装置20は、設計情報と、プログラムのソースコード等を設計情報リポジトリ22に記憶し、これらの情報を元に、仕様書や設計書を作成し、プログラムを生成し、テストを行い、ウェブアプリケーション32を生成する。
生成されたウェブアプリケーション32は、たとえば、図22に示すように、ウェブサーバ30上で動作し、端末40(図では、複数の端末40a、40bを示す。特に、区別する必要がない場合は、端末40と呼ぶ。)にてブラウザ42経由で利用される。
なお、ブラウザ42の種類は、特に限定されず、端末40毎に異なる種類のブラウザ42を用いてもよい。また、端末40の種類、たとえば、OS等の種類も限定されず、異なる種類のOSで動作する端末40が混在してもよい。
図21および図22のウェブサーバ30および端末40は、図4で示したコンピュータ60と同様な構成を有する、サーバコンピュータ、パーソナルコンピュータ、またはそれらに相当するコンピュータにより実現することができる。
なお、図では、ウェブアプリケーション32は、ウェブサーバ30上にのみ存在するように示されているが、端末40とウェブサーバ30とが協働してウェブアプリケーション32を動作させる。
具体的には、端末40のブラウザ42からインターネット等のネットワーク3を介してウェブサーバ30のウェブページを表示させた時、ウェブアプリケーション32に含まれる一部のプログラムが端末40にダウンロードされる。この一部のプログラムは、ブラウザ42上で動作する、Java(登録商標)言語等のプログラミング言語で記述される。そして、その一部のプログラムが、端末40のブラウザ42上で、ウェブサーバ30上のウェブアプリケーション32と協働して動作する。
端末40からブラウザ42経由で利用されるウェブアプリケーション32のウェブサーバ30上で動作等は公知であり、本発明の本質に関わらないので詳細な説明は省略する。
開発装置20で開発されたウェブアプリケーション32は、テストされた後、実機のウェブサーバ30に配備され、利用することができる。
本発明において、ウェブアプリケーション32は、業務用アプリケーションを含むことができる。業務アプリケーションとは、企業の情報システムにおいて、企業活動の業務内容と直接関連のある販売、在庫管理、受注、流通、経費管理、資金管理、人財管理、書類管理などの情報処理やサービスを扱うシステムを実現するアプリケーションプログラムである。
このように構成された本実施形態のアプリケーションテスト支援装置200のデータ処理方法について、以下説明する。
図18は、本発明の実施の形態に係るアプリケーションテスト支援装置200のデータ処理方法における処理手順を示すフローチャートである。
本発明の実施の形態に係るアプリケーションテスト支援装置200のデータ処理方法は、アプリケーションテスト支援装置200が、テストシナリオに基づく複数の派生テストケース114のそれぞれについて、アプリケーションを動作させてテストを実行し、動作させたアプリケーションの画面操作および画面遷移を、テスト結果として記録し(ステップS207)、生成された複数の派生テストケース114のテストシナリオを元に、画面設計情報110を参照して、アプリケーションのテスト仕様書212を生成する(ステップS212)。
以下、図18および図15を用いて詳細に説明する。
上記実施形態で説明したように、まず、テストケース生成部104により画面設計情報110を元に、テストシナリオ140に基づく基準テストケース112から、複数の派生テストケース114を含むテストシナリオ140が生成されているものとする(図5のステップS103)。ここでは、テストシナリオ140は、上記実施形態で説明したエクセル(登録商標)ファイル形式であるとする。
そして、本実施形態のアプリケーションテスト支援装置200において、テスト実行部202により、このエクセルファイル形式のテストシナリオ140に含まれる複数の派生テストケース114が、それぞれテストプログラム214のソースコードに変換される(ステップS201)。さらに、テスト実行部202により、このテストプログラム214から、テストドライバ220が生成される(ステップS203)。
本実施形態では、テスト実行部202により、テストドライバ220が起動され、テストドライバ220によりバッチ処理で夜間等に複数のテストケースについて、自動で連続してウェブアプリケーション32の動作テストが実行される(ステップS205)。そして、ウェブアプリケーション32のテスト結果222とともに、テストシナリオ140に含まれる画面キャプチャコマンドにより、複数の画面キャプチャ224の画像ファイルが出力され、テスト結果記録部204により、テスト結果222と画面キャプチャ224が、テスト結果記憶部210に記録される(ステップS207)。
一方、アプリケーションテスト支援装置200において、仕様書生成部206により、画面設計情報110およびテストシナリオ140を元にテスト仕様書212が生成される(ステップS209)。さらに、仕様書生成部206により、テスト結果記録部204により記録されたテスト結果222および画面キャプチャ224が、テスト仕様書212に追記され、テスト結果報告書226が生成される(ステップS211)。
図18のフローチャートの各ステップの処理は、必ずしも、続けて行われなくてもよい。また、処理の順序もこれに限定されない。特に、ステップS209のテスト仕様書212の生成処理は、図5のステップS203でテストシナリオ140が生成された後、ステップS205で動作テストを実行する前であってもよい。
以上説明したように、本実施形態のアプリケーションテスト支援装置200において、テスト実行部202が、テストシナリオに基づく複数の派生テストケース114のそれぞれについて、アプリケーションを動作させてテストを実行し、テスト結果記録部204が、動作させたアプリケーションの画面操作および画面遷移を、テスト結果として記録し、仕様書生成部206が、生成された複数の派生テストケース114のテストシナリオを元に、画面設計情報110を参照して、アプリケーションのテスト仕様書212を生成する。
これにより、本実施形態のアプリケーションテスト支援装置200によれば、テストシナリオ140からテスト仕様書212等のドキュメントを自動的に生成できるので、アジャイル開発時にありがちなドキュメントと実際のプログラムとの不整合がなく、ドキュメントの信頼性が向上する。また、アプリケーションテスト支援装置200により画面設計情報110を元に生成されたテストシナリオ140に従って実行されたテスト結果をテスト仕様書212に追記してテスト結果報告書226を自動的に生成できるので、ドキュメント作成作業を効率よくかつ精度よく行うことができる。
(第3の実施の形態)
次に、本発明の第3の実施の形態に係るアプリケーションテスト支援装置について、以下説明する。なお、本実施形態のデータ処理方法は、上記実施形態と同様に、アプリケーションテスト支援装置のデータ処理方法であり、本実施形態での詳細な説明は省略する。また、本実施形態のプログラムは、上記実施形態と同様に、アプリケーションテスト支援装置のデータ処理方法を少なくとも1つのコンピュータに実行させるものであり、本実施形態での詳細な説明は省略する。
図19は、本発明の実施の形態に係るアプリケーションテスト支援装置300の構成を論理的に示す機能ブロック図である。
本実施形態のアプリケーションテスト支援装置300は、上記実施形態の各アプリケーションテスト支援装置とは、テストシナリオ140をSelenium等の機能を利用して生成する点で相違する。
本実施形態のアプリケーションテスト支援装置300は、図19の構成要素のみを備える構成とすることもできる。あるいは、他の本発明の実施形態のアプリケーションテスト支援装置の少なくともいずれか1つと組み合わせることもできる。
本実施形態のアプリケーションテスト支援装置300は、動作するアプリケーションにおける、画面操作および当該画面操作に対応する画面遷移を記録する録画部302と、録画部302により記録された画面操作および画面遷移に基づいて、テストシナリオを生成するテストシナリオ生成部304と、を備える。
録画部302は、動作するアプリケーションの少なくとも1つの画面上で、一連の画面操作を受け付けて、当該一連の画面操作、および当該一連の画面操作に対応する画面遷移を記録する。
テストシナリオ生成部304は、録画部302により記録された画面操作および画面遷移を示すテスト命令にそれぞれ変換し、一連の画面操作に対応する、変換された複数のテスト命令を含む一連のテスト命令を、テストシナリオに基づく基準テストケースとして生成する。
テストシナリオ生成部304により生成されたテストシナリオに基づく基準テストケースに含まれる一連のテスト命令は、入力画面部品に対応する入力項目の情報および入力画面部品への入力操作内容をそれぞれ含む。
本実施形態では、録画部302は、Seleniumの機能を用いて実現することができる。
図21の端末40でブラウザ42を経由してウェブアプリケーション32を動作させ、操作した結果(一連の画面操作および画面遷移)を、録画部302が記録する。たとえば、上記実施形態では、テスト命令に含まれていなかったが、画面を開くコマンド「open」等の画面操作もテストシナリオに含めることができる。
そして、テストシナリオ生成部304が、画面操作および画面遷移を示すテスト命令にそれぞれ変換し、一連の画面操作に対応する、変換された複数のテスト命令を含む一連のテスト命令を、テストシナリオに基づく基準テストケースとして生成する。
上記実施形態で説明したように、このようにして生成されたテストシナリオに基づく基準テストケース112を元に、派生テストケース114を増やし、テストプログラムを生成することができる。このとき、各テストケースの編集もシート142上で簡単に行うこともできる。
図20は、本実施形態のアプリケーションテスト支援装置300のテストシナリオ生成部304を実現するテストケース生成ツールの一例を示す図である。
たとえば、図6や図8で説明したようなエクセル(登録商標)のシート142上にテストケース生成ツール310を含んでもよい。
テストケース生成ツール310は、入力ファイル指定欄312と、出力先フォルダ指定欄314と、読込ボタン316と、作成ボタン318と、保存ボタン320と、を有する。
入力ファイル指定欄312は、シート142に読み込むテストシナリオの元となるSeleniumによって録画されたテストシナリオに基づく基準テストケース112のコードが記載されたファイルの指定を受け付ける。テストシナリオ生成部304は、読込ボタン316の押下を受け付けると、入力ファイル指定欄312で指定されたファイルを読み込み、図8(a)のように、シート142上にテストシナリオ140に基づく基準テストケース112を展開する。
このとき、テストシナリオ生成部304は、録画されたテストシナリオの一連のコマンドをシート142の1列目の各行に順番に取り込み、さらに、コマンドのパラメータをそれぞれ2列目の対応する行の各セルに取り込む。
出力先フォルダ指定欄314は、各テストケースのテストプログラム214を出力するフォルダの指定を受け付ける。
テストシナリオ生成部304は、作成ボタン318の押下を受け付けると、図8(b)のように、シート142に複数の派生テストケース114を生成する。この状態でシート142上、ユーザは、必要に応じてテスト命令を追加したり(後述する)、パラメータを変更して、テストケースを編集することもできる。
保存ボタン320の押下を受け付けると、生成された派生テストケース114からテストプログラムを生成して、出力先フォルダ指定欄314で指定されたフォルダに保存する。
本実施形態のアプリケーションテスト支援装置300において、録画部302が、動作するアプリケーションの少なくとも1つの画面上で、一連の画面操作を受け付けて、当該一連の画面操作、および当該一連の画面操作に対応する画面遷移を記録し、テストシナリオ生成部304が、画面操作および画面遷移を示すテスト命令にそれぞれ変換し、一連の画面操作に対応する、変換された複数のテスト命令を含む一連のテスト命令を、テストシナリオに基づく基準テストケースとして生成する。
これにより、本実施形態のアプリケーションテスト支援装置300によれば、テスト対象となるアプリケーションを動作させてテストシナリオに基づく基準テストケース112を簡単に生成でき、さらに、派生テストケース114を生成することができる。
(第3の実施の形態の変形態様)
第3の実施の形態の変形態様のアプリケーションテスト支援装置について以下に説明する。
本実施形態のアプリケーションテスト支援装置は、上記実施形態により生成されるテストシナリオにさらにテスト命令を追加する機能を有する。
本実施形態のアプリケーションテスト支援装置は、複数種のテスト命令から選択されるテスト命令を、テストシナリオの一連のテスト命令の任意の箇所に挿入する指示を受け付ける追加命令受付部(不図示)をさらに備える。
追加命令受付部が、動作するアプリケーションの画面を記録する指示のテスト命令、および、入力操作内容の正誤を確認する指示のテスト命令の少なくともいずれか1つを受け付ける。
テストシナリオ生成部304が、受け付けたテスト命令をテストシナリオの一連のテスト命令の前記任意の箇所に挿入し、テストシナリオを更新する。
たとえば、Seleniumのコマンドである、入力操作内容を確認する「assert(アサート)」や、「verify(検証)」等や、画面キャプチャを取る「capture」等を任意の箇所に挿入することができる。
この構成によれば、より高機能なテストシナリオを簡単な操作で生成することができる。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
たとえば、上記実施形態のいずれかのアプリケーションテスト支援装置において、テスト対象のアプリケーションの設計書に、予めテストケースとして想定される入力操作内容を、所定の項目として記載し、画面設計情報110とリンクさせておくこともできる。図23に示すように、入力項目の情報410として、名称(入力項目名412)、変数名(Name414)、データ形式(形式416)、入力条件418(必須か否か)、入力許容範囲条件(範囲420)、およびテスト候補データ(テスト候補422)を含むことができる。
この構成によれば、設計時にテスト候補データを指定することができるので、より設計思想に沿った適切なテストケースを自動的に生成することが可能になる。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
なお、本発明において利用者に関する情報を取得、利用する場合は、これを適法に行うものとする。
以下、参考形態の例を付記する。
1. アプリケーションテスト支援装置が、
アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、前記アプリケーションの画面設計情報を元に取得し、
取得した前記入力項目に関する属性情報に基づいて、前記アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケースから、その基準テストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストシナリオに基づく派生テストケースを生成する、
アプリケーションテスト支援装置のデータ処理方法。
2. 1.に記載のアプリケーションテスト支援装置のデータ処理方法において、
前記アプリケーションテスト支援装置が、
前記派生テストケースを生成する際、前記属性情報により示される入力項目の有効入力条件および無効入力条件に基づいて、複数の派生テストケースに設定すべき複数の入力操作内容を決定する、
アプリケーションテスト支援装置のデータ処理方法。
3. 1.または2.に記載のアプリケーションテスト支援装置のデータ処理方法において、
前記テストシナリオは、入力操作を示す入力操作命令を含み、
前記テストシナリオの前記基準テストケースは、前記入力操作命令のパラメータとなる、前記入力操作の対象となる入力画面部品の識別情報およびその入力画面部品への入力内容を含む前記入力操作内容を有し、
前記アプリケーションテスト支援装置が、
入力操作命令のパラメータを前記基準テストケースから抽出し、抽出されたパラメータにより示される入力画面部品の識別情報および前記画面設計情報に基づいて、その入力画面部品に対応する入力項目の属性情報を取得し、
前記取得された属性情報に基づいて、前記抽出されたパラメータにより示される前記入力画面部品への入力内容を変化させて、複数の派生テストケースを生成する、
アプリケーションテスト支援装置のデータ処理方法。
4. 1.乃至3.いずれか一つに記載のアプリケーションテスト装置のデータ処理方法において、
前記アプリケーションテスト支援装置が、
前記基準テストケースの各テスト命令の前記入力項目と前記入力操作内容に対応する、複数の前記派生テストケースの前記各テスト命令の前記入力操作内容を対応付けて一覧表示し、
前記一覧表示する際、複数の前記派生テストケースにおいて、前記基準テストケースから変化させた前記入力項目の前記入力操作内容を、それぞれ区別可能に表示する、
アプリケーションテスト支援装置のデータ処理方法。
5. 1.乃至4いずれか一つに記載のアプリケーションテスト支援装置のデータ処理方法において、
前記アプリケーションテスト支援装置が、
複数の前記派生テストケースに、所定の規則に従って、採番、または、テスト名を付与する、
アプリケーションテスト支援装置のデータ処理方法。
6. 1.乃至5.いずれか一つに記載のアプリケーションテスト支援装置のデータ処理方法において、
前記アプリケーションテスト支援装置が、
前記テストシナリオに基づく複数の前記派生テストケースのそれぞれについて、前記アプリケーションを動作させてテストを実行し、
前記テストを実行して動作させた前記アプリケーションの前記画面操作および画面遷移を、テスト結果として記録し、
生成された複数の前記派生テストケースの前記テストシナリオを元に、前記画面設計情報を参照して、前記アプリケーションのテスト仕様書を生成する、
アプリケーションテスト支援装置のデータ処理方法。
7. 1.乃至6.いずれか一つに記載のアプリケーションテスト支援装置のデータ処理方法において、
前記アプリケーションテスト支援装置が、
動作する前記アプリケーションにおける、画面操作および当該画面操作に対応する画面遷移を記録し、
記録された前記画面操作および前記画面遷移に基づいて、前記テストシナリオを生成し、
前記動作するアプリケーションの少なくとも1つの画面上で、一連の画面操作を受け付けて、当該一連の画面操作、および当該一連の画面操作に対応する画面遷移を記録し、
記録された前記画面操作および前記画面遷移を示すテスト命令にそれぞれ変換し、前記一連の画面操作に対応する、変換された複数のテスト命令を含む一連のテスト命令を、前記テストシナリオに基づく前記基準テストケースとして生成し、
生成された前記テストシナリオに基づく前記基準テストケースに含まれる前記一連のテスト命令は、前記入力画面部品に対応する前記入力項目の情報および前記入力画面部品への前記入力操作内容をそれぞれ含む、
アプリケーションテスト支援装置のデータ処理方法。
8. コンピュータに、
アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、前記アプリケーションの画面設計情報を元に取得する手順、
取得した前記入力項目に関する属性情報に基づいて、前記アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケースから、その基準テストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストシナリオに基づく派生テストケースを生成する手順、
を実行させるためのプログラム。
9. 8.に記載のプログラムにおいて、
前記派生テストケースを生成する手順において、前記属性情報により示される入力項目の有効入力条件および無効入力条件に基づいて、複数の派生テストケースに設定すべき複数の入力操作内容を決定する手順をコンピュータに実行させるためのプログラム。
10. 8.または9.に記載のプログラムにおいて、
前記テストシナリオは、入力操作を示す入力操作命令を含み、
前記テストシナリオの前記基準テストケースは、前記入力操作命令のパラメータとなる、前記入力操作の対象となる入力画面部品の識別情報およびその入力画面部品への入力内容を含む前記入力操作内容を有し、
入力操作命令のパラメータを前記基準テストケースから抽出し、抽出されたパラメータにより示される入力画面部品の識別情報および前記画面設計情報に基づいて、その入力画面部品に対応する入力項目の属性情報を取得する手順、
前記取得された属性情報に基づいて、前記抽出されたパラメータにより示される前記入力画面部品への入力内容を変化させて、複数の派生テストケースを生成する手順、
をコンピュータに実行させるためのプログラム。
11. 8.乃至10.いずれか一つに記載のプログラムにおいて、
前記基準テストケースの各テスト命令の前記入力項目と前記入力操作内容に対応する、複数の前記派生テストケースの前記各テスト命令の前記入力操作内容を対応付けて一覧表示する手順、
前記一覧表示する手順において、複数の前記派生テストケースにおいて、前記基準テストケースから変化させた前記入力項目の前記入力操作内容を、それぞれ区別可能に表示する手順、
をコンピュータに実行させるためのプログラム。
12. 8.乃至11.いずれか一つに記載のプログラムにおいて、
複数の前記派生テストケースに、所定の規則に従って、採番、または、テスト名を付与する手順、
をコンピュータに実行させるためのプログラム。
13. 8.乃至12.いずれか一つに記載のプログラムにおいて、
前記テストシナリオに基づく複数の前記派生テストケースのそれぞれについて、前記アプリケーションを動作させてテストを実行する手順、
前記テストを実行する手順により動作させた前記アプリケーションの前記画面操作および画面遷移を、テスト結果として記録する手順、
生成された複数の前記派生テストケースの前記テストシナリオを元に、前記画面設計情報を参照して、前記アプリケーションのテスト仕様書を生成する手順、
をコンピュータに実行させるためのプログラム。
14. 8.乃至13.いずれか一つに記載のプログラムにおいて、
動作する前記アプリケーションにおける、画面操作および当該画面操作に対応する画面遷移を記録する手順、
前記画面遷移を記録する手順により記録された前記画面操作および前記画面遷移に基づいて、前記テストシナリオを生成する手順、
前記動作するアプリケーションの少なくとも1つの画面上で、一連の画面操作を受け付けて、当該一連の画面操作、および当該一連の画面操作に対応する画面遷移を記録する手順、
前記画面遷移を記録する手順により記録された前記画面操作および前記画面遷移を示すテスト命令にそれぞれ変換し、前記一連の画面操作に対応する、変換された複数のテスト命令を含む一連のテスト命令を、前記テストシナリオに基づく前記基準テストケースとして生成する手順、をコンピュータに実行させ、
前記基準テストケースを生成する手順により生成された前記テストシナリオに基づく前記基準テストケースに含まれる前記一連のテスト命令は、前記入力画面部品に対応する前記入力項目の情報および前記入力画面部品への前記入力操作内容をそれぞれ含む、プログラム。
15. アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、前記アプリケーションの画面設計情報を元に取得する属性取得手段と、
取得した前記入力項目に関する属性情報に基づいて、前記アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケースから、その基準テストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストシナリオに基づく派生テストケースを生成するテストケース生成手段と、
を備えるアプリケーションテスト支援装置。
16. 15.に記載のアプリケーションテスト支援装置において、
前記テストケース生成手段は、前記属性情報により示される入力項目の有効入力条件および無効入力条件に基づいて、複数の派生テストケースに設定すべき複数の入力操作内容を決定する、
アプリケーションテスト支援装置。
17. 15.または16.に記載のアプリケーションテスト支援装置において、
前記テストシナリオは、入力操作を示す入力操作命令を含み、
前記テストシナリオの前記基準テストケースは、前記入力操作命令のパラメータとなる、前記入力操作の対象となる入力画面部品の識別情報およびその入力画面部品への入力内容を含む前記入力操作内容を有し、
前記属性取得手段は、入力操作命令のパラメータを前記基準テストケースから抽出し、抽出されたパラメータにより示される入力画面部品の識別情報および前記画面設計情報に基づいて、その入力画面部品に対応する入力項目の属性情報を取得し、
前記テストケース生成手段は、前記取得された属性情報に基づいて、前記抽出されたパラメータにより示される前記入力画面部品への入力内容を変化させて、複数の派生テストケースを生成する、
アプリケーションテスト支援装置。
18. 15.乃至17のいずれか一つに記載のアプリケーションテスト装置において、
前記基準テストケースの各テスト命令の前記入力項目と前記入力操作内容に対応する、複数の前記派生テストケースの前記各テスト命令の前記入力操作内容を対応付けて一覧表示する表示手段をさらに備え、
前記表示手段は、複数の前記派生テストケースにおいて、前記基準テストケースから変化させた前記入力項目の前記入力操作内容を、それぞれ区別可能に表示する、
アプリケーションテスト支援装置。
19. 15.乃至18.のいずれか一つに記載のアプリケーションテスト支援装置において、
複数の前記派生テストケースに、所定の規則に従って、採番、または、テスト名を付与する付与手段、
をさらに備えるアプリケーションテスト支援装置。
20. 15.乃至19.のいずれか一つに記載のアプリケーションテスト支援装置において、
前記テストシナリオに基づく複数の前記派生テストケースのそれぞれについて、前記アプリケーションを動作させてテストを実行するテスト実行手段と、
前記テスト実行手段により動作させた前記アプリケーションの前記画面操作および画面遷移を、テスト結果として記録するテスト結果記録手段と、
生成された複数の前記派生テストケースの前記テストシナリオを元に、前記画面設計情報を参照して、前記アプリケーションのテスト仕様書を生成するテスト仕様書生成手段と、
を備えるアプリケーションテスト支援装置。
21. 15.乃至20.のいずれか一つに記載のアプリケーションテスト支援装置において、
動作する前記アプリケーションにおける、画面操作および当該画面操作に対応する画面遷移を記録する録画手段と、
前記録画手段により記録された前記画面操作および前記画面遷移に基づいて、前記テストシナリオを生成するテストシナリオ生成手段と、を備え、
前記録画手段が、
前記動作するアプリケーションの少なくとも1つの画面上で、一連の画面操作を受け付けて、当該一連の画面操作、および当該一連の画面操作に対応する画面遷移を記録し、
前記テストシナリオ生成手段は、
前記録画手段により記録された前記画面操作および前記画面遷移を示すテスト命令にそれぞれ変換し、前記一連の画面操作に対応する、変換された複数のテスト命令を含む一連のテスト命令を、前記テストシナリオに基づく前記基準テストケースとして生成し、
前記テストシナリオ生成手段により生成された前記テストシナリオに基づく前記基準テストケースに含まれる前記一連のテスト命令は、前記入力画面部品に対応する前記入力項目の情報および前記入力画面部品への前記入力操作内容をそれぞれ含む、
アプリケーションテスト支援装置。
1 アプリケーション開発システム
3 ネットワーク
20 開発装置
22 設計情報リポジトリ
30 ウェブサーバ
32 ウェブアプリケーション
40 端末
42 ブラウザ
60 コンピュータ
62 CPU
64 メモリ
66 ストレージ
69 バス
72 入力装置
74 表示装置
80 プログラム
100 アプリケーションテスト支援装置
102 属性取得部
104 テストケース生成部
110 画面設計情報
112 基準テストケース
114 派生テストケース
120 店舗検索画面
122 テキストボックス
124 検索ボタン
128 プルダウンメニュー
130 検索ボタン
134 検索NG画面
136 検索結果画面
138 詳細検索画面
140 テストシナリオ
142 シート
146 セル
150 アプリケーションテスト支援装置
152 表示部
160 アプリケーションテスト支援装置
162 付与部
170 アプリケーションテスト支援装置
172 抽出部
174 表示部
176 変更箇所一覧
200 アプリケーションテスト支援装置
202 テスト実行部
204 テスト結果記録部
206 仕様書生成部
210 テスト結果記憶部
212 テスト仕様書
214 テストプログラム
220 テストドライバ
222 テスト結果
224 画面キャプチャ
226 テスト結果報告書
230 設定画面
232 ドキュメント選択部
234 第1指定欄
236 第2指定欄
238 第3指定欄
240 第4指定欄
242 実行ボタン
244 終了ボタン
300 アプリケーションテスト支援装置
302 録画部
304 テストシナリオ生成部
310 テストケース生成ツール
312 入力ファイル指定欄
314 出力先フォルダ指定欄
316 読込ボタン
318 作成ボタン
320 保存ボタン

Claims (10)

  1. アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、前記アプリケーションの画面設計情報を元に取得する属性取得手段と、
    取得した前記入力項目に関する属性情報に基づいて、前記アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケースから、その基準テストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストシナリオに基づく派生テストケースを生成するテストケース生成手段と、
    前記基準テストケースの各テスト命令の前記入力項目と前記入力操作内容に対応する、複数の前記派生テストケースの前記各テスト命令の前記入力操作内容を対応付けて一覧表示する表示手段と、
    を備え、
    前記表示手段は、複数の前記派生テストケースにおいて、前記基準テストケースから変化させた前記入力項目の前記入力操作内容を、それぞれ区別可能に表示する、アプリケーションテスト支援装置。
  2. アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、前記アプリケーションの画面設計情報を元に取得する属性取得手段と、
    取得した前記入力項目に関する属性情報に基づいて、前記アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケースから、その基準テストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストシナリオに基づく派生テストケースを生成するテストケース生成手段と、
    動作する前記アプリケーションにおける、画面操作および当該画面操作に対応する画面遷移を記録する録画手段と、
    前記録画手段により記録された前記画面操作および前記画面遷移に基づいて、前記テストシナリオを生成するテストシナリオ生成手段と、
    を備え、
    前記録画手段が、
    前記動作するアプリケーションの少なくとも1つの画面上で、一連の画面操作を受け付けて、当該一連の画面操作、および当該一連の画面操作に対応する画面遷移を記録し、
    前記テストシナリオ生成手段は、
    前記録画手段により記録された前記画面操作および前記画面遷移を示すテスト命令にそれぞれ変換し、前記一連の画面操作に対応する、変換された複数のテスト命令を含む一連のテスト命令を、前記テストシナリオに基づく前記基準テストケースとして生成し、
    前記テストシナリオ生成手段により生成された前記テストシナリオに基づく前記基準テストケースに含まれる前記一連のテスト命令は、前記入力画面部品に対応する前記入力項目の情報および前記入力画面部品への前記入力操作内容をそれぞれ含む、アプリケーションテスト支援装置。
  3. 請求項1または2に記載のアプリケーションテスト支援装置において、
    前記テストケース生成手段は、前記属性情報により示される入力項目の有効入力条件および無効入力条件に基づいて、複数の派生テストケースに設定すべき複数の入力操作内容を決定する、
    アプリケーションテスト支援装置。
  4. 請求項1乃至3いずれか一項に記載のアプリケーションテスト支援装置において、
    前記テストシナリオは、入力操作を示す入力操作命令を含み、
    前記テストシナリオの前記基準テストケースは、前記入力操作命令のパラメータとなる、前記入力操作の対象となる入力画面部品の識別情報およびその入力画面部品への入力内容を含む前記入力操作内容を有し、
    前記属性取得手段は、入力操作命令のパラメータを前記基準テストケースから抽出し、抽出されたパラメータにより示される入力画面部品の識別情報および前記画面設計情報に基づいて、その入力画面部品に対応する入力項目の属性情報を取得し、
    前記テストケース生成手段は、前記取得された属性情報に基づいて、前記抽出されたパラメータにより示される前記入力画面部品への入力内容を変化させて、複数の派生テストケースを生成する、
    アプリケーションテスト支援装置。
  5. 請求項1乃至4いずれか一項に記載のアプリケーションテスト支援装置において、
    複数の前記派生テストケースに、所定の規則に従って、採番、または、テスト名を付与する付与手段、
    をさらに備えるアプリケーションテスト支援装置。
  6. 請求項1乃至5いずれか一項に記載のアプリケーションテスト支援装置において、
    前記テストシナリオに基づく複数の前記派生テストケースのそれぞれについて、前記アプリケーションを動作させてテストを実行するテスト実行手段と、
    前記テスト実行手段により動作させた前記アプリケーションの前記画面操作および画面遷移を、テスト結果として記録するテスト結果記録手段と、
    生成された複数の前記派生テストケースの前記テストシナリオを元に、前記画面設計情報を参照して、前記アプリケーションのテスト仕様書を生成するテスト仕様書生成手段と、
    を備えるアプリケーションテスト支援装置。
  7. アプリケーションテスト支援装置が、
    アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、前記アプリケーションの画面設計情報を元に取得し、
    取得した前記入力項目に関する属性情報に基づいて、前記アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケースから、その基準テストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストシナリオに基づく派生テストケースを生成し、
    前記基準テストケースの各テスト命令の前記入力項目と前記入力操作内容に対応する、複数の前記派生テストケースの前記各テスト命令の前記入力操作内容を対応付けて一覧表示し、
    前記一覧表示する際、複数の前記派生テストケースにおいて、前記基準テストケースから変化させた前記入力項目の前記入力操作内容を、それぞれ区別可能に表示する、
    アプリケーションテスト支援装置のデータ処理方法。
  8. アプリケーションテスト支援装置が、
    アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、前記アプリケーションの画面設計情報を元に取得し、
    取得した前記入力項目に関する属性情報に基づいて、前記アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケースから、その基準テストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストシナリオに基づく派生テストケースを生成し、
    動作する前記アプリケーションにおける、画面操作および当該画面操作に対応する画面遷移を記録し、
    記録された前記画面操作および前記画面遷移に基づいて、前記テストシナリオを生成し、
    前記画面操作および前記画面遷移を記録する際、
    前記動作するアプリケーションの少なくとも1つの画面上で、一連の画面操作を受け付けて、当該一連の画面操作、および当該一連の画面操作に対応する画面遷移を記録し、
    前記テストシナリオを生成する際、
    記録された前記画面操作および前記画面遷移を示すテスト命令にそれぞれ変換し、前記一連の画面操作に対応する、変換された複数のテスト命令を含む一連のテスト命令を、前記テストシナリオに基づく前記基準テストケースとして生成し、
    生成された前記テストシナリオに基づく前記基準テストケースに含まれる前記一連のテスト命令は、前記入力画面部品に対応する前記入力項目の情報および前記入力画面部品への前記入力操作内容をそれぞれ含む、
    アプリケーションテスト支援装置のデータ処理方法。
  9. コンピュータに、
    アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、前記アプリケーションの画面設計情報を元に取得する手順、
    取得した前記入力項目に関する属性情報に基づいて、前記アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケースから、その基準テストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストシナリオに基づく派生テストケースを生成する手順、
    前記基準テストケースの各テスト命令の前記入力項目と前記入力操作内容に対応する、複数の前記派生テストケースの前記各テスト命令の前記入力操作内容を対応付けて一覧表示する手順、
    を実行させ、
    前記一覧表示する手順において、複数の前記派生テストケースにおいて、前記基準テストケースから変化させた前記入力項目の前記入力操作内容を、それぞれ区別可能に表示する手順、を実行させるためのプログラム。
  10. コンピュータに、
    アプリケーションの画面上で、入力操作対象となる入力画面部品に対応する入力項目に関する属性情報を、前記アプリケーションの画面設計情報を元に取得する手順、
    取得した前記入力項目に関する属性情報に基づいて、前記アプリケーションの画面操作を定義するテストシナリオに基づく基準テストケースから、その基準テストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストシナリオに基づく派生テストケースを生成する手順、
    動作する前記アプリケーションにおける、画面操作および当該画面操作に対応する画面遷移を記録する手順、
    記録された前記画面操作および前記画面遷移に基づいて、前記テストシナリオを生成する手順、
    を実行させ
    前記画面操作および前記画面遷移を記録する手順において、
    前記動作するアプリケーションの少なくとも1つの画面上で、一連の画面操作を受け付けて、当該一連の画面操作、および当該一連の画面操作に対応する画面遷移を記録する手順、
    前記テストシナリオを生成する手順において、
    前記記録する手順により記録された前記画面操作および前記画面遷移を示すテスト命令にそれぞれ変換し、前記一連の画面操作に対応する、変換された複数のテスト命令を含む一連のテスト命令を、前記テストシナリオに基づく前記基準テストケースとして生成する手順、を実行させ、
    前記テストシナリオを生成する手順により生成された前記テストシナリオに基づく前記基準テストケースに含まれる前記一連のテスト命令は、前記入力画面部品に対応する前記入力項目の情報および前記入力画面部品への前記入力操作内容をそれぞれ含む、ためのプログラム。
JP2014173226A 2014-08-27 2014-08-27 アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム Active JP6417791B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014173226A JP6417791B2 (ja) 2014-08-27 2014-08-27 アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014173226A JP6417791B2 (ja) 2014-08-27 2014-08-27 アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018192859A Division JP2019021341A (ja) 2018-10-11 2018-10-11 アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2016048470A JP2016048470A (ja) 2016-04-07
JP6417791B2 true JP6417791B2 (ja) 2018-11-07

Family

ID=55649338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014173226A Active JP6417791B2 (ja) 2014-08-27 2014-08-27 アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP6417791B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326125B (zh) * 2016-08-26 2019-04-05 上海合福信息科技有限公司 一种测试用例生成方法
CN106407105B (zh) * 2016-08-26 2019-02-01 上海合福信息科技有限公司 一种测试设计书生成方法
US10120788B2 (en) * 2017-01-23 2018-11-06 Accenture Global Solutions Limited Cloud connected automated testing in multiple operating environments using multiple parallel test threads
JP6961218B2 (ja) * 2017-09-14 2021-11-05 エム・ティ・ストラテジー株式会社 テストケース自動作成装置、及びプログラム
JP7053017B2 (ja) * 2018-04-19 2022-04-12 Heroz株式会社 ウェブ検査プログラム及びウェブ検査装置
JP7183623B2 (ja) * 2018-08-10 2022-12-06 富士フイルムビジネスイノベーション株式会社 画像処理装置、画像処理方法及び画像処理プログラム
WO2021100156A1 (ja) * 2019-11-20 2021-05-27 日本電信電話株式会社 テストデータ生成装置、テストデータ生成方法、及びプログラム
CN113703417B (zh) * 2021-07-13 2022-12-20 交控科技股份有限公司 列车运行全自动场景的测试用例确定方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001356936A (ja) * 2000-04-11 2001-12-26 Fujitsu Ltd Gui系プログラムのテスト支援装置および支援方法
JP2006113993A (ja) * 2004-10-15 2006-04-27 Odaiba Systems:Kk インターネットシステムのためのテストシステム
JP2006260390A (ja) * 2005-03-18 2006-09-28 Nomura Research Institute Ltd テストケース生成プログラム及び方法
JP2007304778A (ja) * 2006-05-10 2007-11-22 Nec System Technologies Ltd プログラムのテスト方法、プログラム、テスト装置、及びアプリケーション開発システム
JP2009116535A (ja) * 2007-11-05 2009-05-28 Sony Corp 自動テストシステム及び自動テスト方法並びにプログラム
JP2009163609A (ja) * 2008-01-09 2009-07-23 Fujitsu Ltd テストデータ生成用プログラム、および装置
US8429614B2 (en) * 2008-06-23 2013-04-23 International Business Machines Corporation Method and apparatus of effective functional test data generation for web service testing
JP6079265B2 (ja) * 2013-01-25 2017-02-15 富士通株式会社 制御プログラム、制御方法および制御装置

Also Published As

Publication number Publication date
JP2016048470A (ja) 2016-04-07

Similar Documents

Publication Publication Date Title
JP6417791B2 (ja) アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム
JP2019021341A (ja) アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム
JP6354457B2 (ja) アプリケーション開発支援装置、そのデータ処理方法、およびプログラム
CN108762743B (zh) 一种数据表操作代码生成方法及装置
EP3676730A1 (en) Systems and methods for providing automatic document filling functionality
US10409820B2 (en) Semantic mapping of form fields
JP6514084B2 (ja) 操作支援システム、操作支援方法、および、操作支援プログラム
JP6542612B2 (ja) テストシナリオ生成支援装置およびテストシナリオ生成支援方法
JP5723472B1 (ja) データリンク生成装置、データリンク生成方法、データリンク構造および電子ファイル
JP5747698B2 (ja) 要件管理支援装置
JP5460629B2 (ja) 表形式ソフトウェア仕様作成支援方法、及び装置
JP2019101889A (ja) テスト実行装置及びプログラム
US20230306767A1 (en) Information processing apparatus, non-transitory computer readable medium, and method for processing information
US20130174064A1 (en) Computer readable recording medium storing display control program and display control apparatus
JP4977681B2 (ja) データパターン/テストデータ生成・蓄積方法及びシステム
JP6336922B2 (ja) 業務バリエーションに基づく業務影響箇所抽出方法および業務影響箇所抽出装置
JP5504212B2 (ja) テストケース自動生成システム、テストケース自動生成方法、およびテストケース自動生成プログラム
JP2009151676A (ja) データ処理装置、データ処理方法、プログラム
JP6062735B2 (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法、ソフトウェア開発支援プログラム
JP2010134766A (ja) 文書データ処理装置およびそのプログラム
JP2005276159A (ja) 回路図面表示データ生成装置およびそのプログラム並びに回路図面表示データ生成方法
JP2015011685A (ja) ビジネスルール管理システム及びビジネスルール管理方法
JP6475288B2 (ja) プログラム比較方法、プログラム比較装置およびプログラム比較プログラム
JP2012118822A (ja) ドキュメント作成支援方法とドキュメント作成支援装置とドキュメント作成支援プログラム
JP2018063532A (ja) 画面テストデータ作成装置および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180529

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180709

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180924

R150 Certificate of patent or registration of utility model

Ref document number: 6417791

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150