JP2009140155A - アプリケーションプログラムのテストプログラム - Google Patents

アプリケーションプログラムのテストプログラム Download PDF

Info

Publication number
JP2009140155A
JP2009140155A JP2007314730A JP2007314730A JP2009140155A JP 2009140155 A JP2009140155 A JP 2009140155A JP 2007314730 A JP2007314730 A JP 2007314730A JP 2007314730 A JP2007314730 A JP 2007314730A JP 2009140155 A JP2009140155 A JP 2009140155A
Authority
JP
Japan
Prior art keywords
event
screen
application program
recording
command
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.)
Granted
Application number
JP2007314730A
Other languages
English (en)
Other versions
JP4859821B2 (ja
Inventor
Takahide Matsuzuka
貴英 松塚
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007314730A priority Critical patent/JP4859821B2/ja
Publication of JP2009140155A publication Critical patent/JP2009140155A/ja
Application granted granted Critical
Publication of JP4859821B2 publication Critical patent/JP4859821B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】検証対象を手動により指定することなくアプリケーションプログラムの画面を正確にテストできるアプリケーションプログラムのテストプログラムを提供することを目的とする。
【解決手段】コンピュータを、アプリケーションプログラムに対してテストケースを実行したときに発生したユーザイベント及び画面イベントを記録装置に累積記録する記録制御手段と、累積記録されたユーザイベント及び画面イベントをテスト対象のアプリケーションプログラムで順次実行する実行手段と、テスト対象のアプリケーションプログラムで一のユーザイベントを実行してから次のユーザイベントを実行するまでに発生した画面イベントと、記録装置から読み出した画面イベントとを比較し、一致していない画面イベントをエラーとして出力するエラー出力制御手段として機能させるためのアプリケーションプログラムのテストプログラムであることにより上記課題を解決する。
【選択図】図15

Description

本発明は、アプリケーションプログラムのテストプログラムに係り、特にアプリケーションプログラムの画面をテストするアプリケーションプログラムのテストプログラムに関する。
従来、例えば通信を行うアプリケーションプログラム(アプリケーション)の画面をテストする場合はテストツールが用いられていた。テストツールは、例えば最初にテストケースを実行してイベント(ユーザの入力操作、画面変更、データの送受信等)を記録しておき、その後のテストで発生(再生)したイベントと、記録しておいたイベントとが一致するか否かを判断する。
例えばテストツールは、クライアント・サーバ間の通信や画面の特定の値を記録、再生することにより画面のテストを行っていた。また、テストツールはWindows(登録商標)等のオペレーティングシステム(OS)やブラウザ等のイベントや画面を記録、再生することにより画面のテストを行っていた。
図1はアプリケーションの画面をテストする従来の手法を表した模式図である。図1の手法では、記録時、ユーザからのイベントによりブラウザがサーバから受信した通信電文または画面更新の内容のうち、検証対象を手動で指定しておく。そして、再生時はユーザからのイベントによりブラウザがサーバから受信した通信電文または画面更新の内容のうち、予め指定しておいた検証対象を比較することで、アプリケーションの画面をテストしていた。
通信電文または画面更新の内容(テキストフィールドの値など)を検証対象とする図1の手法では、細かいレイアウト等が変わっても問題がない。しかしながら、図1の手法ではユーザからのイベントによりブラウザがサーバから受信した通信電文または画面更新の内容のうち、検証対象を手動で指定しておかなければならなかった。また、図1の手法では色や文字装飾などのスタイルの変化を検証できない場合もあった。
特許文献1及び2には、テスト作業の自動化を目的として、ユーザが検証対象を手動により指定するのではなく、イベントの発生を検知して自動的に記録する技術が記載されている。特許文献1及び2の手法は、画面のビットマップ比較を行うものである。特許文献1及び2の手法は、Windows(登録商標)等のOSやブラウザ等のイベントや画面を記録、再生することにより画面のテストを行う例である。
図2はアプリケーションの画面をビットマップ比較によりテストする従来の手法を表した模式図である。図2の手法は、例えばWindows(登録商標)ネイティブのテストツールを使うことで実現できる。
特開平5−81082号公報 特開2000−235455号公報
しかしながら、アプリケーションの画面をビットマップ比較によりテストする従来の手法は、画面(ウインドウ)の大きさ,画面の表示位置,ブラウザの種類や設定などが異なるだけで検証が失敗してしまうという問題があった。例えば図2では記録時と再生時とで画面の大きさ、ステータスバーやツールバーの表示内容が異なるため、検証が失敗してしまう。
本発明は、上記の点に鑑みなされたもので、検証対象を手動により指定することなくアプリケーションプログラムの画面を正確にテストできるアプリケーションプログラムのテストプログラムを提供することを目的とする。
上記課題を解決する為、本発明は、アプリケーションプログラムが搭載されたコンピュータを、前記アプリケーションプログラムに対してテストケースを実行したときに前記アプリケーションプログラムで発生したユーザイベント及び画面イベントを記録装置に累積記録する記録制御手段と、前記記録装置に累積記録された前記ユーザイベント及び画面イベントを読み出し、テスト対象の前記アプリケーションプログラムで前記ユーザイベントを順次実行する実行手段と、テスト対象の前記アプリケーションプログラムで一のユーザイベントを実行してから次のユーザイベントを実行するまでに発生した画面イベントと、前記記録装置から読み出した前記一のユーザイベントを実行してから次のユーザイベントを実行するまでに発生した画面イベントとを比較し、一致していない前記画面イベントをエラーとして出力するエラー出力制御手段として機能させるためのアプリケーションプログラムのテストプログラムであることを特徴とする。
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
本発明によれば、検証対象を手動により指定することなくアプリケーションプログラムの画面を正確にテストできるアプリケーションプログラムのテストプログラムを提供可能である。
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。まず、本発明の理解を容易とするため、アプリケーションプログラム(アプリケーション)の一例としてのブラウザの画面をテストする従来の手法について説明する。
図3はブラウザの画面をテストする従来の仕組み(記録時)を表した模式図である。図3では、ブラウザプラグイン2に含まれるイベント検知部3が、ブラウザ1で発生したイベント(キー入力,マウス動作など)を検知する。イベント検知部3は検知したイベントのうち画面イベント以外をイベントストア4に記録する。また、イベント検知部3は検知したイベントのうち画面イベントに基づく画面の表示内容を画面ストア5に記録する。例えば画面ストア5には画面の表示内容を表すHTMLファイルが記録される。
図4はブラウザの画面をテストする従来の仕組み(再生時)を表した模式図である。図4では、Java(登録商標)Scriptライブラリ10に、比較部11,イベント実行部12,イベント読取部13が含まれている。イベント読取部13は、イベントストア4からイベントを読み取り、イベント実行部12に送る。イベント実行部12は、ブラウザ1でイベント(キー入力、マウス動作など)を実行する。
画面イベントに基づく画面変更後、比較部11は画面ストア5に記録されている画面の表示内容と、ブラウザ1による画面の表示内容とを比較し、画面ストア5に記録されている画面の表示内容と、ブラウザ1による画面の表示内容とに差異があれば、エラーがあると判定する。エラーがあれば、比較部11はエラー出力部14にエラーを出力させる。
図5はブラウザの画面をテストする本発明の手法を表した模式図である。図5の手法では、記録時、ステップS1〜S2において、ユーザ21からのイベント(キー入力等)をテスト記録機構22が検知し、記録する。ステップS3〜S5では、ユーザ21からのイベントによりブラウザ1がサーバ23から画面更新の内容を受信する。テスト記録機構22はブラウザ1が受信した画面更新の内容を記録する。なお、ステップS1〜S5の処理はユーザ21からのイベントがある度に繰り返し行われる。
そして、再生時は、ステップS11〜S14において、テスト記録機構22からのイベントによりブラウザ1がサーバ23から画面更新の内容を受信する。テスト記録機構22はブラウザ1が受信した画面更新の内容を検知し、記録時に記録しておいた画面更新の内容と比較することで、ブラウザ1の画面をテストする。なお、ステップS11〜S14の処理はテスト記録機構22からのイベントがある度に繰り返し行われる。
図5の手法では、ブラウザ1で発生したユーザの入力操作、画面変更、データの送受信等のイベントを契機として画面変化を検知し、テストの記録時の処理又は再生時の処理を行うことができる。
本発明によるテストの再生は、ユーザの入力操作、画面変更、データの送受信等のイベントを契機にするので、Windows(登録商標)ネイティブのテストツールのようにリアルタイムでタイミングを図る必要がない。そのため、本発明ではブラウザ1の画面の高速なテスト実行が可能である。
また、本発明では画面変更を履歴として累積記録するとき、画面変更の差分で記録するため、テストの記録時及び再生時の画面の違いを検出できる。したがって、本発明はWindows(登録商標)ネイティブのテストツールと異なり、画面の大きさ等が記録時と再生時とで変化しても正確にテストできる。
また、本発明では再生時と記録時とで画面変更が構造的に異なっていても、同じ画面変更が他に存在するかどうかを見つけることにより、正確にテストできる。さらに、本発明では、ブラウザ1で発生したユーザの入力操作、画面変更、データの送受信等のイベントを後述するコマンド単位で抽象化することにより、ブラウザ1の種類の違いを吸収できるため、記録時と再生時とでブラウザ1の種類が異なっても正確にテストできる。
図6はブラウザの画面をテストする本発明の仕組み(記録時)を表した一例の模式図である。図6では、ブラウザプラグイン2に、イベント検知部3,コマンド記録部31が含まれている。
イベント検知部3は、ブラウザ1で発生したイベント(キー入力,マウス動作,通信受信,画面変更など)を検知する。イベント検知部3は検知したイベントをコマンド記録部31に送る。コマンド記録部31は、受け取ったイベントを後述のコマンドに変換することで抽象化する。なお、コマンド記録部31は画面イベントに基づく画面の表示内容もコマンドに変換することで抽象化する。コマンド記録部31は、変換したコマンドをコマンドストア32に記録する。
図7はブラウザの画面をテストする本発明の仕組み(再生時)を表した一例の模式図である。図7では、Java(登録商標)Scriptライブラリ10に、イベント実行部12,イベント解析、画面変更確認部41,コマンド読取部42が含まれている。
コマンド読取部42はコマンドストア32からコマンドを読み取り、イベント解析、画面変更確認部41に送る。イベント解析、画面変更確認部41は受け取ったコマンドをイベント実行部12に送る。イベント実行部12は、受け取ったコマンドを後述のようにイベントに変換する。イベント実行部12は変換したイベントのうち、キー入力、マウス動作等のユーザイベントをブラウザ1で実行する。
イベント解析、画面変更確認部41は、ブラウザ1で発生した画面変更の画面イベントをブラウザ1から受け取る。イベント解析、画面変更確認部41は、ブラウザ1から受け取ったブラウザ1で発生した画面変更の画面イベントに基づき、一のユーザイベントを実行してから次のユーザイベントを実行するまでに必要な画面変更が行われたかを後述のように確認する。
また、イベント解析、画面変更確認部41はブラウザ1で発生した画面更新の内容と記録時にコマンドストア32へ記録した画面更新の内容とが同じかを、エラー一時保管ストア43を利用して後述のように確認する。ブラウザ1で発生した画面更新の内容と記録時にコマンドストア32へ記録した画面更新の内容とに差異がある場合、イベント解析、画面変更確認部41は、その差異が問題であるかを後述のように確認する。
その差異が問題であれば、イベント解析、画面変更確認部41は、エラー出力部14にエラーを出力させる。その差異が問題でなければ、イベント解析、画面変更確認部41はエラー出力部14にエラーを出力させない。
図8は、ブラウザの画面をテストする本発明の他の仕組み(記録時、再生時)を表した一例の模式図である。図8の仕組みは、図3及び図4に表した仕組みと比較部11の処理が異なっている。図8の仕組みは、図3に表した従来の仕組みと同様、記録時に画面全体の表示内容を画面ストア5に記録する。
そして、図8の仕組みは、図4に表した従来の仕組みと同様、再生時に、画面ストア5に記録されている画面全体の表示内容と、ブラウザ1による画面全体の表示内容とを比較することで、図6及び図7に表した本発明の仕組みと同じことが実現できる。図8の仕組みの場合は、比較部11で「場所が異なっても同じ画面変更」がある場合、エラーではないと判定する。
図9はコマンドをイベントに変換可能なイベント実行部の一例の模式図である。コマンドをイベントに変換可能なイベント実行部12は、図7に含まれるイベント実行部12である。
図9のイベント実行部12は、コマンド受取部51,実行ブラウザ判定部52,ブラウザA向けイベント実行部53,ブラウザB向けイベント実行部54が含まれている。図6に示したように、コマンド記録部31は、イベント検知部3から受け取ったイベントを後述のコマンドに変換することで抽象化し、そのコマンドをコマンドストア32に記録している。
イベント実行部12のコマンド受取部51はイベント解析、画面変更確認部41から受け取ったコマンドを実行ブラウザ判定部52に送る。ブラウザ1の種類によってイベントの詳細(プロパティ名など)が異なるため、実行ブラウザ判定部52はイベントを実行するブラウザ1の種類を判定する。図9では実行ブラウザ判定部52が、ブラウザ1の種類としてブラウザA又はブラウザBを判定するものとする。
イベントを実行するブラウザ1の種類がブラウザAだと判定すると、実行ブラウザ判定部52はコマンド受取部51から受け取ったコマンドをブラウザA向けイベント実行部53に送る。ブラウザA向けイベント実行部53は受け取ったコマンドを具体化する為、ブラウザAのイベントに変換し、そのイベントをブラウザ1に送る。
イベントを実行するブラウザ1の種類がブラウザBだと判定すると、実行ブラウザ判定部52はコマンド受取部51から受け取ったコマンドをブラウザB向けイベント実行部54に送る。ブラウザB向けイベント実行部54は受け取ったコマンドを具体化する為、ブラウザBのイベントに変換し、そのイベントをブラウザ1に送る。
図10はアプリケーションの画面をテストする従来の手法の問題点を表したイメージ図である。図10のイメージ図は、ブラウザで発生した画面更新の内容と記録時にイベントストアへ記録した画面更新の内容とが異なる一例を表している。例えば、従来の手法であるWindows(登録商標)ネイティブのテストツールの場合は、位置,値ともに完全に同じでないとエラーになる。
図11はアプリケーションの画面をテストする従来の手法の問題点を表したイメージ図である。図11のイメージ図は、ブラウザで発生した画面更新の内容と記録時にイベントストアへ記録した画面更新の内容とが異なる例を表している。例えば、従来の手法である通信電文または画面更新の内容(テキストフィールドの値など)を検証(検査)対象とする場合は、通信電文または画面更新の内容のうち、検査対象を手動で指定しておかなければならなかった。
また、図12はアプリケーションの画面をテストする本発明の手法を表したイメージ図である。図12のイメージ図は、ブラウザで発生した画面更新の内容と記録時にコマンドストアへ記録した画面更新の内容とが異なる例を表している。本発明の手法は、異なる画面更新(変更)があるときに、同じ変更が画面内の別の部分にあるならば、自動的に問題ないと判定するものである。本発明の手法では、異なる変更があれば一時的にエラーが出るが、全体の整合性が取れた時点で問題ないと判定し、エラーを消す。無論、自動的に成された問題ないとの判定は、ユーザが無効にすることも可能である。
なお、異なる変更があるときに同じ変更が画面内の別の部分にあるか否かの判定は例えば以下のように行う。図13は、異なる変更があるときに同じ変更が画面内の別の部分にあるか否かの判定の手法を表した一例の模式図である。プラットフォームがブラウザの場合は、「変更された箇所(Xpathでの表現)」と、その「DOMの部分木」を蓄積することで最終的に同じ変化かどうかが分かる。その他のプラットフォーム(例えばWindows(登録商標)Form)の場合は、例えば「変更された箇所(x,y座標)」と「変更された内容(プロパティの変更)」などを蓄積すれば同じ効果が得られる。
本発明の手法では、画面内にある異なる変更の検知(エラー検知)と、同じ変更が画面内の別の部分にあるかの比較(エラー比較)とを以下のように行う。図14はエラー検知及びエラー比較の仕組みを表した模式図である。本発明の手法では、記録時、画面イベントである「DOM変更1」及び「DOM変更2」を累積記録しておく。再生時の画面イベントである「DOM変更1」及び「DOM変更2」は記録時の画面イベントである「DOM変更1」及び「DOM変更2」と順番及び位置が異なっている。
再生時のエラーは、画面変更が異なることで検知する。図14の例では再生時の画面イベントである「DOM変更2」及び「DOM変更1」がエラーとして検知されるが、記録時に累積記録された画面イベントである「DOM変更1」及び「DOM変更2」と比較することにより、そのエラーが問題ないと判定される。テキストフィールドの値などの変更値が異なる場合は、そのままエラーを出す。なお、本発明の手法では累積記録されている画面変更の履歴(変更履歴)を合わせることより、記録時の画面を再現し、どの部分が異なるのかを示すことも可能である。
図15は本発明のエラー検知とエラー比較とによるエラー判定を表した一例のイメージ図である。例1では記録時、画面イベントの「DOM変更1」及び「DOM変更2」が累積記録されている。再生時、エラー検知では画面イベントの「DOM変更2」及び「DOM変更1」の順番と位置とが記録時と異なっている為、エラーとして検知する。エラー比較では記録時に累積記録された画面イベントの「DOM変更1」及び「DOM変更2」と累積比較し、位置のみが異なっている為、そのエラーが問題ないと判定する。
また、例2では、記録時、画面イベントの「DOM変更1」,「DOM変更3」及び「DOM変更2」が累積記録されている。再生時、エラー検知では画面イベントの「DOM変更1」の位置,「DOM変更3」の有無,及び「DOM変更2」の順番と位置とが記録時と異なっているため、エラーとして検知する。エラー比較では記録時に累積記録された画面イベントの「DOM変更1」,「DOM変更3」及び「DOM変更2」と累積比較し、位置のみが異なっている「DOM変更1」及び「DOM変更2」のエラーが問題ないと判定する一方、再生時に無い「DOM変更3」をエラーと判定する。
本発明の手法は、図16に示すようなハードウェア構成のコンピュータ装置で本発明による各種プログラムを実行することにより実現される。図16はコンピュータ装置の一例の構成図である。コンピュータ装置は、それぞれバスBで相互に接続されている入力装置61,出力装置62,ドライブ装置63,補助記憶装置64,主記憶装置65,演算処理装置66およびインターフェース装置67で構成される。
入力装置61はキーボードやマウスなどで構成され、各種信号を入力するために用いられる。出力装置62はディスプレイ装置などで構成され、各種ウインドウやデータ等を表示するために用いられる。インターフェース装置67は、モデム,LANカードなどで構成されており、ネットワークに接続する為に用いられる。
本発明によるアプリケーションプログラムのテストプログラムは、コンピュータ装置を制御する各種プログラムの少なくとも一部である。アプリケーションプログラムのテストは記録媒体68の配布やネットワークからのダウンロードなどによって提供される。
記録媒体68はCD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的,電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
また、アプリケーションプログラムのテストプログラムを記録した記録媒体68がドライブ装置63にセットされると、アプリケーションプログラムのテストプログラムは記録媒体68からドライブ装置63を介して補助記憶装置64にインストールされる。ネットワークからダウンロードされたアプリケーションプログラムのテストプログラムは、インターフェース装置67を介して補助記憶装置64にインストールされる。
コンピュータ装置は、インストールされたアプリケーションプログラムのテストプログラムを格納すると共に、必要なファイル,データ等を格納する。主記憶装置65は、起動時に補助記憶装置64からアプリケーションプログラムのテストプログラムを読み出して格納する。そして、演算処理装置66は主記憶装置65に格納されたアプリケーションプログラムのテストプログラムに従って後述するような各種処理を実現している。なお、アプリケーションプログラムのテストプログラムはブラウザプラグイン2及びJava(登録商標)Scriptライブラリ10に相当する。
(記録時の処理を表したフローチャート)
図17は記録時の処理を表した一例のフローチャートである。なお、図17の左側のフローチャートはイベント検知部3の処理を表している。図17の右側のフローチャートはコマンド記録部31の処理を表している。
ステップS51に進み、イベント検知部3はブラウザ1でイベントが発生したことを検知するまでステップS51の処理を繰り返す。イベント検知部3はブラウザ1でイベントが発生したことを検知すると、ステップS52に進み、検知したイベントをコマンド記録部31に送ったあと、ステップS51に戻る。
イベント検知部3からイベントを受け取ると、コマンド記録部31はステップS53に進み、受け取ったイベントの種類が「ユーザイベント」であるかを判定する。なお、イベントの種類は図18に示すイベント種類対応表を利用して判定される。図18はイベント種類対応表の一例の構成図である。
図18のイベント種類対応表は、ブラウザ毎に、イベントと、イベントの種類とが対応付けられている。図18のイベント種類対応表を利用することで、コマンド記録部31はブラウザ及びイベントを特定すれば、イベントの種類を判定できる。受け取ったイベントの種類が「ユーザイベント」であれば、コマンド記録部31はステップS54に進み、受け取ったイベントをコマンドに変換する。
なお、イベントからコマンドへの変換は、図19に示すコマンド変換対応表を利用して行われる。図19はコマンド変換対応表の一例の構成図である。図19のコマンド変換対応表は、ブラウザ毎に、イベントと、コマンド名と、イベント属性と、コマンド属性とが対応付けられている。
受け取ったイベントの種類が「ユーザイベント」でなければ、コマンド記録部31はステップS55に進み、受け取ったイベントの種類が「画面イベント」であるかをイベント種類対応表により判定する。受け取ったイベントの種類が「画面イベント」であれば、コマンド記録部31はステップS56に進み、受け取ったイベントをコマンド変換対応表によりコマンドに変換する。
受け取ったイベントの種類が「画面イベント」でなければ、コマンド記録部31は、ステップS57に進み、受け取ったイベントの種類が「通信イベント」であるかをイベント種類対応表により判定する。コマンド記録部31は受け取ったイベントの種類が「通信イベント」であれば、ステップS58に進み、受け取ったイベントをコマンド変換対応表によりコマンドに変換する。
なお、受け取ったイベントの種類が「画面イベント」でなければ、コマンド記録部31はステップS59に進み、ユーザイベントでも画面イベントでも通信イベントでもない独自イベントをコマンド変換対応表によりコマンドに変換する。そして、コマンド記録部31はステップS54,S56,S58及びS59に続いてステップS60に進み、変換したコマンドを図20のようにコマンドストア32に記録する。
図20はコマンドストアの一例の構成図である。図20のコマンドストア32は、受け取ったイベントの種類と、変換したコマンドと、位置と、型と、属性と、属性値とが対応付けられて記録される。
(再生時の処理を表したフローチャート)
図21は再生時のコマンド読取部の処理を表した一例のフローチャートである。図21のフローチャートでは、ステップS71に進み、コマンド読取部42が、図7において図示を省略しているイベントストアが空か否かを判定する。コマンド読取部42はイベントストアが空であれば、ステップS72に進み、コマンドストア32からコマンドを1つ読み取る。
ステップS73に進み、コマンド読取部42はコマンドストア32にコマンドがないかを判定する。コマンドストア32にコマンドがあれば、コマンド読取部42はステップS74に進み、ステップS72で読み取ったコマンドをイベント解析、画面変更確認部41に送る。なお、ステップS71において、イベントストアが空でなければ、コマンド読取部42はイベントストアが空になるまでステップS71の処理を繰り返す。コマンドストア32にコマンドがなければ、コマンド読取部42はステップS75に進み、エラー一時保管ストア43に残っているエラーを出力した後、図21に示すフローチャートの処理を終了する。
図22は再生時のイベント解析、画面変更確認部及びイベント実行部の処理を表した一例のフローチャートである。コマンド読取部42からコマンドを受け取ると、イベント解析、画面変更確認部41はステップS81に進み、受け取ったコマンドの種類が「画面イベント」であるかを判定する。
受け取ったコマンドの種類が「画面イベント」であれば、イベント解析、画面変更確認部41はステップS82に進み、後述する比較詳細処理を行う。受け取ったコマンドの種類が「画面イベント」でなければ、イベント解析、画面変更確認部41はステップS83に進み、受け取ったコマンドの種類が「ユーザイベント」であるかを判定する。
受け取ったコマンドの種類が「ユーザイベント」であれば、イベント解析、画面変更確認部41はステップS84に進み、イベントストアが空かを判定する。イベントストアが空でなければ、イベント解析、画面変更確認部41はステップS85に進み、イベントストアからイベントを読み取る。ステップS86に進み、イベント解析、画面変更確認部41はステップS85で読み取ったイベントをエラー一時保管ストア43に登録する。
イベントストアが空であれば、イベント解析、画面変更確認部41はステップS72で読み取ったコマンドをイベント実行部12へ送る。イベント実行部12はステップS87へ進み、ステップS72でコマンドストア32から読み取ったコマンドを各ブラウザに固有のイベントへ変換する。コマンドからイベントへの変換は、例えば図19に示したコマンド変換対応表が用いられる。
ステップS86,S87に続いて、又はステップS83において受け取ったコマンドの種類が「ユーザイベント」でなければ、ステップS88に進み、イベント実行部12はイベントをブラウザ1に実行させる。イベント解析、画面変更確認部41は、ステップS82の処理の後、図22に示したフローチャートの処理を終了する。イベント実行部12はステップS88の処理の後、図22に示したフローチャートの処理を終了する。
図23は再生時のイベント解析、画面変更確認部の処理を表した一例のフローチャートである。イベント解析、画面変更確認部41は、ブラウザ1で発生した画面変更の画面イベントをブラウザ1から受け取るまで、ステップS91の処理を繰り返す。
ブラウザ1で発生した画面変更の画面イベントをブラウザ1から受け取ると、イベント解析、画面変更確認部41はステップS92に進み、例えば図19に示したコマンド変換対応表によりイベントをコマンドに変換する。ステップS93に進み、イベント解析、画面変更確認部41は後述する比較詳細処理を行ったあと、ステップS91に戻る。
図24は再生時に使用される各ストアと、その関係を示す模式図である。図24はコマンドストア32と、イベントストアと、エラー一時保管ストア43と、その関係を示したものである。
まず、コマンドストア32とイベントストアとにおける比較対象はイベントの発生順に選択される。図24の例では、イベントストアに記録されている画面イベントがコマンドストア32に記録されている画面イベントと発生順及び位置が異なるため、エラー一時保管ストア43に記録される。
しかし、イベントストアに記録されている画面イベントがコマンドストア32に記録されている画面イベントと発生順及び位置だけが異なっているので、イベント解析、画面変更確認部41は、そのエラーが問題ないと判定し、エラー一時保管ストア43に記録されている図24の画面イベントを取り消す。
図25はステップS82の比較詳細処理を表した一例のフローチャートである。イベント解析、画面変更確認部41はコマンド読取部42から受け取ったコマンドの種類が「画面イベント」であるときに図25に示すフローチャートの処理を開始する。
ステップS101に進み、イベント解析、画面変更確認部41はイベントストアから1件目のイベントを読み取る。ステップS102に進み、イベント解析、画面変更確認部41はコマンド読取部42から受け取ったコマンドと、ステップS101で読み取ったイベントとを比較し、コマンド,型,属性及び属性値が同じであるか判定する。
コマンド読取部42から受け取ったコマンドと、ステップS101で読み取ったイベントとで、コマンド,型,属性及び属性値が同じでなければ、イベント解析、画面変更確認部41はステップS103に進み、エラー一時保管ストア43にステップS101で読み取ったイベントが存在するかを判定する。エラー一時保管ストア43にステップS101で読み取ったイベントが存在しなければ、イベント解析、画面変更確認部41はステップS104に進み、エラー一時保管ストア43にステップS101で読み取ったイベントを保存する。エラー一時保管ストア43にステップS101で読み取ったイベントが存在すれば、イベント解析、画面変更確認部41はステップS104の処理を行わない。
ステップS101〜S104の処理は、次のイベントがイベントストアから無くなるまで繰り返される。次のイベントがイベントストアから無くなると、イベント解析、画面変更確認部41はステップS105に進み、エラー一時保管ストア43へコマンド読取部42から受け取ったコマンドを保存したあと、図25に示したフローチャートの処理を終了する。
コマンド読取部42から受け取ったコマンドと、ステップS101で読み取ったイベントとで、コマンド,型,属性及び属性値が同じであれば、イベント解析、画面変更確認部41は、ステップS106に進み、エラー一時保管ストア43にステップS101で読み取ったイベントが存在するかを判定する。エラー一時保管ストア43にステップS101で読み取ったイベントが存在しなければ、イベント解析、画面変更確認部41は図25に示したフローチャートの処理を終了する。
イベント解析、画面変更確認部41は、エラー一時保管ストア43にステップS101で読み取ったイベントが存在すれば、ステップS107に進み、ステップS101で読み取ったイベントをエラー一時保管ストア43から削除する。また、イベント解析、画面変更確認部41はステップS108に進み、ステップS101で読み取ったイベントをイベントストアから削除したあと、図25に示したフローチャートの処理を終了する。
図26はステップS93の比較詳細処理を表した一例のフローチャートである。イベント解析、画面変更確認部41はブラウザ1で発生した画面変更の画面イベントをブラウザ1から受け取ると、エラー一時保管ストア43から1件目のイベントを読み取る。
ステップS112に進み、イベント解析、画面変更確認部41はコマンド読取部42から受け取ったコマンドと、ステップS111でエラー一時保管ストア43から読み取ったイベントとを比較し、コマンド,型,属性及び属性値が同じであるか判定する。コマンド読取部42から受け取ったコマンドと、ステップS111でエラー一時保管ストア43から読み取ったイベントとで、コマンド,型,属性及び属性値が同じでなければ、イベント解析、画面変更確認部41はステップS111に戻り、エラー一時保管ストア43から次のイベントを読み取って処理を続ける。
なお、エラー一時保管ストア43から次のイベントが無くなると、イベント解析、画面変更確認部41はステップS113に進み、エラー一時保管ストア43へコマンド読取部42から受け取ったコマンドを保存する。ステップS114に進み、イベント解析、画面変更確認部41はイベントストアへコマンド読取部42から受け取ったコマンドを保存したあと、図26に示したフローチャートの処理を終了する。
なお、コマンド読取部42から受け取ったコマンドと、ステップS111でエラー一時保管ストア43から読み取ったイベントとで、コマンド,型,属性及び属性値が同じであれば、イベント解析、画面変更確認部41はステップS115に進み、ステップS111で読み取ったイベントをエラー一時保管ストア43から削除したあと、図26に示したフローチャートの処理を終了する。
なお、エラー出力部14によるエラー一時保管ストア43に残っているエラーの出力は例えば図27に示すようなエラー画面により行われる。図27は、エラー画面の一例のイメージ図である。
本発明は、以下に記載する付記のような構成が考えられる。
(付記1)
アプリケーションプログラムが搭載されたコンピュータを、
前記アプリケーションプログラムに対してテストケースを実行したときに前記アプリケーションプログラムで発生したユーザイベント及び画面イベントを記録装置に累積記録する記録制御手段と、
前記記録装置に累積記録された前記ユーザイベント及び画面イベントを読み出し、テスト対象の前記アプリケーションプログラムで前記ユーザイベントを順次実行する実行手段と、
テスト対象の前記アプリケーションプログラムで一のユーザイベントを実行してから次のユーザイベントを実行するまでに発生した画面イベントと、前記記録装置から読み出した前記一のユーザイベントを実行してから次のユーザイベントを実行するまでに発生した画面イベントとを比較し、一致していない前記画面イベントをエラーとして出力するエラー出力制御手段と
して機能させるためのアプリケーションプログラムのテストプログラム。
(付記2)
前記記録制御手段は、前記アプリケーションプログラムに対してテストケースを実行したときに前記アプリケーションプログラムで発生したユーザイベント及び画面イベントを検知する検知手段と、
前記イベント検知手段が検知した前記ユーザイベント及び画面イベントを抽象化して前記記録装置に累積記録する記録手段とを有し、
前記実行手段は、前記記録装置に累積記録された抽象化された前記ユーザイベント及び画面イベントを読み出す読み出し手段と、
テスト対象の前記アプリケーションプログラムを判定する判定手段と、
前記判定手段により判定した前記アプリケーションプログラムに応じて、抽象化された前記ユーザイベントを具体化し、そのユーザイベントをテスト対象の前記アプリケーションプログラムで実行するイベント実行手段とを有する
ことを特徴とする付記1記載のアプリケーションプログラムのテストプログラム。
(付記3)
前記エラー出力制御手段は、テスト対象の前記アプリケーションプログラムで一のユーザイベントを実行してから次のユーザイベントを実行するまでに発生した画面イベントと、前記記録装置から読み出した前記一のユーザイベントを実行してから次のユーザイベントを実行するまでに発生した画面イベントとを発生の順番を考慮せずに比較し、一致していない前記画面イベントをエラーとして出力することを特徴とする付記1記載のアプリケーションプログラムのテストプログラム。
(付記4)
前記記録制御手段により前記記録装置に累積記録される前記画面イベントは、画面変更の差分であり、DOM(Document Object Model)で取得する情報であることを特徴とする付記1記載のアプリケーションプログラムのテストプログラム。
(付記5)
前記記録制御手段により前記記録装置に累積記録される前記画面イベントは、Xpathで表現される変更された箇所と、DOMの部分木とで表された情報であることを特徴とする付記4記載のアプリケーションプログラムのテストプログラム。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
アプリケーションの画面をテストする従来の手法を表した模式図である。 アプリケーションの画面をビットマップ比較によりテストする従来の手法を表した模式図である。 ブラウザの画面をテストする従来の仕組み(記録時)を表した模式図である。 ブラウザの画面をテストする従来の仕組み(再生時)を表した模式図である。 ブラウザの画面をテストする本発明の手法を表した模式図である。 ブラウザの画面をテストする本発明の仕組み(記録時)を表した一例の模式図である。 ブラウザの画面をテストする本発明の仕組み(再生時)を表した一例の模式図である。 ブラウザの画面をテストする本発明の他の仕組み(記録時、再生時)を表した一例の模式図である。 コマンドをイベントに変換可能なイベント実行部の一例の模式図である。 アプリケーションの画面をテストする従来の手法の問題点を表したイメージ図である。 アプリケーションの画面をテストする従来の手法の問題点を表したイメージ図である。 アプリケーションの画面をテストする本発明の手法を表したイメージ図である。 異なる変更があるときに同じ変更が画面内の別の部分にあるか否かの判定の手法を表した一例の模式図である。 エラー検知及びエラー比較の仕組みを表した模式図である。 本発明のエラー検知とエラー比較とによるエラー判定を表した一例のイメージ図である。 コンピュータ装置の一例の構成図である。 記録時の処理を表した一例のフローチャートである。 イベント種類対応表の一例の構成図である。 コマンド変換対応表の一例の構成図である。 コマンドストアの一例の構成図である。 再生時のコマンド読取部の処理を表した一例のフローチャートである。 再生時のイベント解析、画面変更確認部及びイベント実行部の処理を表した一例のフローチャートである。 再生時のイベント解析、画面変更確認部の処理を表した一例のフローチャートである。 再生時に使用される各ストアと、その関係を示す模式図である。 ステップS82の比較詳細処理を表した一例のフローチャートである。 ステップS93の比較詳細処理を表した一例のフローチャートである。 エラー画面の一例のイメージ図である。
符号の説明
1 ブラウザ
2 ブラウザプラグイン
3 イベント検知部
4 イベントストア
5 画面ストア
10 Java(登録商標)Scriptライブラリ
11 比較部
12 イベント実行部
13 イベント読取部
14 エラー出力部
21 ユーザ
22 テスト記録機構
23 サーバ
31 コマンド記録部
32 コマンドストア
41 イベント解析、画面変更確認部
42 コマンド読取部
43 エラー一時保管ストア
51 コマンド受取部
52 実行ブラウザ判定部
53 ブラウザA向けイベント実行部
54 ブラウザB向けイベント実行部
61 入力装置
62 出力装置
63 ドライブ装置
64 補助記憶装置
65 主記憶装置
66 演算処理装置
67 インターフェース装置
68 記録媒体
B バス

Claims (5)

  1. アプリケーションプログラムが搭載されたコンピュータを、
    前記アプリケーションプログラムに対してテストケースを実行したときに前記アプリケーションプログラムで発生したユーザイベント及び画面イベントを記録装置に累積記録する記録制御手段と、
    前記記録装置に累積記録された前記ユーザイベント及び画面イベントを読み出し、テスト対象の前記アプリケーションプログラムで前記ユーザイベントを順次実行する実行手段と、
    テスト対象の前記アプリケーションプログラムで一のユーザイベントを実行してから次のユーザイベントを実行するまでに発生した画面イベントと、前記記録装置から読み出した前記一のユーザイベントを実行してから次のユーザイベントを実行するまでに発生した画面イベントとを比較し、一致していない前記画面イベントをエラーとして出力するエラー出力制御手段と
    して機能させるためのアプリケーションプログラムのテストプログラム。
  2. 前記記録制御手段は、前記アプリケーションプログラムに対してテストケースを実行したときに前記アプリケーションプログラムで発生したユーザイベント及び画面イベントを検知する検知手段と、
    前記イベント検知手段が検知した前記ユーザイベント及び画面イベントを抽象化して前記記録装置に累積記録する記録手段とを有し、
    前記実行手段は、前記記録装置に累積記録された抽象化された前記ユーザイベント及び画面イベントを読み出す読み出し手段と、
    テスト対象の前記アプリケーションプログラムを判定する判定手段と、
    前記判定手段により判定した前記アプリケーションプログラムに応じて、抽象化された前記ユーザイベントを具体化し、そのユーザイベントをテスト対象の前記アプリケーションプログラムで実行するイベント実行手段とを有する
    ことを特徴とする請求項1記載のアプリケーションプログラムのテストプログラム。
  3. 前記エラー出力制御手段は、テスト対象の前記アプリケーションプログラムで一のユーザイベントを実行してから次のユーザイベントを実行するまでに発生した画面イベントと、前記記録装置から読み出した前記一のユーザイベントを実行してから次のユーザイベントを実行するまでに発生した画面イベントとを発生の順番を考慮せずに比較し、一致していない前記画面イベントをエラーとして出力することを特徴とする請求項1記載のアプリケーションプログラムのテストプログラム。
  4. 前記記録制御手段により前記記録装置に累積記録される前記画面イベントは、画面変更の差分であり、DOM(Document Object Model)で取得する情報であることを特徴とする請求項1記載のアプリケーションプログラムのテストプログラム。
  5. 前記記録制御手段により前記記録装置に累積記録される前記画面イベントは、Xpathで表現される変更された箇所と、DOMの部分木とで表された情報であることを特徴とする請求項4記載のアプリケーションプログラムのテストプログラム。
JP2007314730A 2007-12-05 2007-12-05 アプリケーションプログラムのテストプログラム Expired - Fee Related JP4859821B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007314730A JP4859821B2 (ja) 2007-12-05 2007-12-05 アプリケーションプログラムのテストプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007314730A JP4859821B2 (ja) 2007-12-05 2007-12-05 アプリケーションプログラムのテストプログラム

Publications (2)

Publication Number Publication Date
JP2009140155A true JP2009140155A (ja) 2009-06-25
JP4859821B2 JP4859821B2 (ja) 2012-01-25

Family

ID=40870714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007314730A Expired - Fee Related JP4859821B2 (ja) 2007-12-05 2007-12-05 アプリケーションプログラムのテストプログラム

Country Status (1)

Country Link
JP (1) JP4859821B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012038162A (ja) * 2010-08-09 2012-02-23 Ricoh Co Ltd 自動テストツール・プログラム及び自動テスト方法
JP2012194803A (ja) * 2011-03-16 2012-10-11 Fujitsu Ltd ファイルアップロードの代理方法、代理プログラム及び代理装置
JP2013054693A (ja) * 2011-09-06 2013-03-21 Fujitsu Ltd リグレッションテスト支援プログラム及びリグレッションテスト支援装置
JP2013077159A (ja) * 2011-09-30 2013-04-25 Hitachi Solutions Ltd テスト自動化システム
JP2013084259A (ja) * 2011-09-28 2013-05-09 Fujitsu Ltd ウェブ・ブラウザー画面の段階的な視覚的比較
JP2014038452A (ja) * 2012-08-15 2014-02-27 Nomura Research Institute Ltd 試験装置、試験システムおよびコンピュータプログラム
US9501459B2 (en) 2013-12-06 2016-11-22 International Business Machines Corporation Detecting influence caused by changing the source code of an application from which a document object model tree and cascading style sheet may be extracted
US11226810B1 (en) 2020-12-29 2022-01-18 Coupang Corp. Method for providing information based on expected result value and computing device using the same
US11544840B2 (en) 2019-03-29 2023-01-03 Konica Minolta, Inc. Inspection device, inspection method, and recording medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044318A (ja) * 2001-08-02 2003-02-14 Fujitsu Ltd テスト支援プログラムおよびテスト支援方法
JP2007172377A (ja) * 2005-12-22 2007-07-05 Internatl Business Mach Corp <Ibm> Webページにおける状態遷移解析手法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044318A (ja) * 2001-08-02 2003-02-14 Fujitsu Ltd テスト支援プログラムおよびテスト支援方法
JP2007172377A (ja) * 2005-12-22 2007-07-05 Internatl Business Mach Corp <Ibm> Webページにおける状態遷移解析手法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012038162A (ja) * 2010-08-09 2012-02-23 Ricoh Co Ltd 自動テストツール・プログラム及び自動テスト方法
JP2012194803A (ja) * 2011-03-16 2012-10-11 Fujitsu Ltd ファイルアップロードの代理方法、代理プログラム及び代理装置
JP2013054693A (ja) * 2011-09-06 2013-03-21 Fujitsu Ltd リグレッションテスト支援プログラム及びリグレッションテスト支援装置
JP2013084259A (ja) * 2011-09-28 2013-05-09 Fujitsu Ltd ウェブ・ブラウザー画面の段階的な視覚的比較
JP2013077159A (ja) * 2011-09-30 2013-04-25 Hitachi Solutions Ltd テスト自動化システム
JP2014038452A (ja) * 2012-08-15 2014-02-27 Nomura Research Institute Ltd 試験装置、試験システムおよびコンピュータプログラム
US9501459B2 (en) 2013-12-06 2016-11-22 International Business Machines Corporation Detecting influence caused by changing the source code of an application from which a document object model tree and cascading style sheet may be extracted
US11544840B2 (en) 2019-03-29 2023-01-03 Konica Minolta, Inc. Inspection device, inspection method, and recording medium
US11226810B1 (en) 2020-12-29 2022-01-18 Coupang Corp. Method for providing information based on expected result value and computing device using the same

Also Published As

Publication number Publication date
JP4859821B2 (ja) 2012-01-25

Similar Documents

Publication Publication Date Title
JP4859821B2 (ja) アプリケーションプログラムのテストプログラム
US7529977B2 (en) Automated extensible user interface testing
TWI510915B (zh) Computer automated test system and test methods, recording media and program products
US20100211865A1 (en) Cross-browser page visualization generation
US9612937B2 (en) Determining relevant events in source code analysis
US20080127103A1 (en) Dynamic deneration and implementation of globalization verification testing for user interface controls
JP4023803B2 (ja) ウェブアプリケーション開発支援装置、データ処理方法及びプログラム
JP2006185211A (ja) プログラム解析装置、テスト実行装置、その解析方法及びプログラム
US20070162427A1 (en) Query parameter output page finding method, query parameter output page finding apparatus, and computer product
CN114546881B (zh) 应用软件测试方法、电子设备和计算机可读存储介质
CN115658496A (zh) 可扩展的Web自动化测试方法、系统、设备及存储介质
CN115576600A (zh) 基于代码变更的差异处理方法、装置、终端及存储介质
CN113987393A (zh) 一种网页操作记录器、系统、装置及方法
JPH10275093A (ja) プログラムテスト支援装置
JP4896909B2 (ja) シナリオ生成装置及びプログラム
JP2006309576A (ja) 論理システムの検証装置及び検証方法、記憶媒体及びコンピュータプログラム
JP4215255B2 (ja) デグレード確認検査方法、デグレード確認検査システム、およびそのためのプログラム
JP2009253847A (ja) 情報処理装置およびその制御方法、プログラム、記憶媒体
JP2008293382A (ja) テスト仕様自動生成方式
US20090066984A1 (en) Device setting apparatus, device setting method, information acquiring apparatus, information acquiring method, storage medium, and program
CN106557379B (zh) 一种静默安装包的生成方法和装置
CN112241370B (zh) 一种api接口类的校验方法、系统及装置
JP6739599B1 (ja) 情報処理プログラム、情報処理方法、及び情報処理装置
US20230401074A1 (en) Automated testcase execution
JP4925711B2 (ja) 一括登録情報生成装置及び一括登録情報生成方法及び一括登録情報生成プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110921

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111101

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141111

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees