JP5942009B1 - ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム - Google Patents

ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム Download PDF

Info

Publication number
JP5942009B1
JP5942009B1 JP2015073954A JP2015073954A JP5942009B1 JP 5942009 B1 JP5942009 B1 JP 5942009B1 JP 2015073954 A JP2015073954 A JP 2015073954A JP 2015073954 A JP2015073954 A JP 2015073954A JP 5942009 B1 JP5942009 B1 JP 5942009B1
Authority
JP
Japan
Prior art keywords
information
test
screen
software
operation content
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
JP2015073954A
Other languages
English (en)
Other versions
JP2016194777A (ja
Inventor
哲博 佐久間
哲博 佐久間
俊一 浜辺
俊一 浜辺
敦宏 青木
敦宏 青木
昌紀 青木
昌紀 青木
裕 工藤
裕 工藤
英史 米澤
英史 米澤
和幸 門田
和幸 門田
一人 平野
一人 平野
克己 傳寶
克己 傳寶
真史 山腰
真史 山腰
宗吉 伊山
宗吉 伊山
松原 秀木
秀木 松原
繁 氏江
繁 氏江
浩一 下瀬
浩一 下瀬
Original Assignee
エヌ・ティ・ティ・コムウェア株式会社
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 エヌ・ティ・ティ・コムウェア株式会社 filed Critical エヌ・ティ・ティ・コムウェア株式会社
Priority to JP2015073954A priority Critical patent/JP5942009B1/ja
Application granted granted Critical
Publication of JP5942009B1 publication Critical patent/JP5942009B1/ja
Publication of JP2016194777A publication Critical patent/JP2016194777A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】作業者のスキルに依存せず、ソフトウェア試験の試験スクリプトの品質を保つ装置、方法及びプログラムを提供する。【解決手段】ソフトウェア試験装置1の手順書作成部13は、手順定義部132と、リスト記憶部133と、を備える。リスト記憶部は、評価対象となるプログラム部品の種別を示す部品種別情報について、第1言語による第1部品種別情報と、第2言語による第2部品種別情報と、を対応付けて評価対象を記憶し、評価対象に対する操作内容情報について、第1言語による第1操作内容情報と、プログラム言語による第2操作内容情報と、を対応付けて評価内容を記憶し、部品種別情報と、当該部品種別情報が示すプログラム部品に対して可能な操作を示す操作内容情報と、を対応付ける対応情報を記憶する。手順定義部は、第1部品種別情報が選択された場合に、対応情報に基づいて、第1操作内容情報の候補を提示する。【選択図】図1

Description

本発明は、ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラムに関する。
従来、ソフトウェア開発において、ソフトウェア試験の自動化用の試験シナリオ(スクリプト)は、設計工程、製造工程、及び試験工程の各工程のうち、試験工程に入った段階で作成される。試験スクリプトは、プログラミングによって作成されるか、従来の一般的なソフトウェア試験方式であるキャプチャ&リプレイ方式によって作成される。試験スクリプトは、従来、試験工程、すなわち、実際に試験対象のソフトウェアが製造されたタイミングで、製造されたソフトウェアの実行画面を読み取る(キャプチャする)ことによって、作成される。
特許文献1に記載の発明では、ソフトウェア自動試験装置は、自動操作プログラムにより試験対象のアプリケーションプログラムを自動操作しながら、これと並行して該アプリケーションプログラムの操作画面の更新の有無をスクリーンキャプチャプログラムにより監視する。
特開2012−108773号公報
キャプチャ&リプレイ方式によるソフトウェア試験では、製造されたソフトウェアの実行画面を読み取ることによって、ソフトウェアが実装した通りに動作するかについての確認はできるが、その実装が本来、当初より設計していたソフトウェア仕様に即しているかについての確認はできない場合がある。また、プログラミングによって試験スクリプトを作成する方式では、ソフトウェアの自動化試験のテストケースを作成する作業者が、プログラミングスキル、及び自動実行エンジンのコマンドの知識を有していることが求められる。また、従来のソフトウェア試験方式では、試験項目に付随する項目、すなわち、本来設計したソフトウェアとして実現したいことに付随して、コマンドを実行するタイミングの調整や、試験の実施内容の証跡を残すための画面キャプチャ取得、及び応答時間測定等の手順を作成するために、作業者が専門の高度なスキルを有していることが求められる。したがって、作業者が有するスキルレベルによって、作成された試験スクリプトの品質にバラつきが生じ得る。
本発明は上記の点に鑑みてなされたものであり、ソフトウェア試験自動化用の試験シナリオを、ソフトウェアが製造される前の設計段階から、自然言語によって作成できるようにすることができるソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラムを提供する。また、設計書を元に試験シナリオを作成することで、当初より設計した仕様の通りに製造されているかを試験することができ、また、作業者のスキルに依存しない均一な品質で試験スクリプトを作成することができるソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラムを提供する。
(1)本発明は上記の課題を解決するためになされたものであり、本発明の一態様としては、評価対象となるプログラム部品の種別を示す部品種別情報について、第1言語による第1部品種別情報と、第2言語による第2部品種別情報と、を対応付けて記憶する評価対象記憶部と、前記評価対象に対する操作内容情報について、前記第1言語による第1操作内容情報と、プログラム言語による第2操作内容情報と、を対応付けて記憶する評価内容記憶部と、前記部品種別情報と、当該部品種別情報が示すプログラム部品に対して可能な操作を示す前記操作内容情報と、を対応付ける対応情報を記憶する対応情報記憶部と、前記第1部品種別情報が選択された場合に、前記対応情報に基づいて、前記第1操作内容情報の候補を提示する手順定義部と、を備えることを特徴とするソフトウェア試験装置である。
(2)また、本発明の一態様としては、前記手順定義部は、前記第1操作内容情報の候補から前記第1操作内容情報が選択された場合に、選択された前記第1部品種別情報に対応する第2部品種別情報と、選択された前記第1操作内容情報に対応する第2操作内容情報と、を含む試験スクリプトを生成することを特徴とする(1)に記載のソフトウェア試験装置である。
(3)また、本発明の一態様としては、前記手順定義部は、前記試験スクリプトと、選択された前記第1部品種別情報と選択された前記第1操作内容情報とを含む手順書を生成する(2)に記載のソフトウェア試験装置である。
(4)また、本発明の一態様としては、評価対象となるプログラム部品の種別を示す部品種別情報について、第1言語による第1部品種別情報と、第2言語による第2部品種別情報と、を対応付けて記憶する評価対象記憶ステップと、前記評価対象に対する操作内容情報について、前記第1言語による第1操作内容情報と、プログラム言語による第2操作内容情報と、を対応付けて記憶する評価内容記憶ステップと、前記部品種別情報と、当該部品種別情報が示すプログラム部品に対して可能な操作を示す前記操作内容情報と、を対応付ける対応情報を記憶する対応情報記憶ステップと、前記第1部品種別情報が選択された場合に、前記対応情報に基づいて、前記第1操作内容情報の候補を提示する手順定義ステップと、を有することを特徴とするソフトウェア試験方法である。
(5)また、本発明の一態様としては、コンピュータに、評価対象となるプログラム部品の種別を示す部品種別情報について、第1言語による第1部品種別情報と、第2言語による第2部品種別情報と、を対応付けて記憶する評価対象記憶ステップと、前記評価対象に対する操作内容情報について、前記第1言語による第1操作内容情報と、プログラム言語による第2操作内容情報と、を対応付けて記憶する評価内容記憶ステップと、前記部品種別情報と、当該部品種別情報が示すプログラム部品に対して可能な操作を示す前記操作内容情報と、を対応付ける対応情報を記憶する対応情報記憶ステップと、前記第1部品種別情報が選択された場合に、前記対応情報に基づいて、前記第1操作内容情報の候補を提示する手順定義ステップと、を実行させるためのソフトウェア試験用プログラムである。
本発明によれば、ソフトウェア試験自動化用の試験シナリオを、自然言語によって作成することができる。また、代表的な試験実行命令を、プルダウン形式の自然言語で提供することで、シナリオ作成者(作業者)のプログラミングスキルに依存せず、試験スクリプトの品質を保つことができる。
また、試験スクリプトを自動で生成することで、試験スクリプトのプログラミングミスを防止することができる。
本発明の実施形態に係るソフトウェア試験装置1の構成の一例を示すブロック図である。 本発明の実施形態に係るソフトウェア試験装置1のリスト記憶部133が記憶する試験項目リストの一例を示す概略図である。 本発明の実施形態に係るソフトウェア試験装置1の手順定義部132によるソフトウェア試験手順の定義の一例を示す概略図である。 本発明の実施形態に係るソフトウェア試験装置1の手順定義画面の一例を示す概略図である。 本発明の実施形態に係るソフトウェア試験装置1の手順定義画面の一例を示す概略図である。 本発明の実施形態に係るソフトウェア試験装置1のDBアクセス情報設定画面pp01の一例を示す概略図である。 本発明の実施形態に係るソフトウェア試験装置1の比較カラム情報設定画面pp02の一例を示す概略図である。 本発明の実施形態に係るソフトウェア試験装置1の手順定義部132によるソフトウェア試験手順の定義の一例を示す概略図である。 本発明の実施形態に係るソフトウェア試験装置1のテストケース生成部134が生成するテストケースの一例を示す概略図である。 本発明の実施形態に係るソフトウェア試験装置1のスクリプト実行部142が生成する画面項目検証画面の一例を示す概略図である。 本発明の実施形態に係るソフトウェア試験装置1のスクリプト実行部142による試験スクリプト実行の流れの一例を示す概略図である。 本発明の実施形態に係るソフトウェア試験装置1の動作の一例を示すフローチャートである。
以下、本発明の実施形態について、図面を参照しながら説明する。
(実施形態)
まず始めに、本発明の実施形態に係るソフトウェア試験装置1の概要を説明する。
図1は、本発明の実施形態に係るソフトウェア試験装置1の構成の一例を示すブロック図である。
実施形態に係るソフトウェア試験装置1は、ソフトウェア試験を自動化するため、試験シナリオ(試験スクリプト)を作成する装置である。また、ソフトウェア試験装置1は、作成した試験シナリオ(試験スクリプト)に従って、ソフトウェア試験を自動実行し、試験結果を出力する装置である。
なお、ソフトウェア試験とは、ソフトウェアが当初の設計どおりに作られているか否か、及びソフトウェアが正常に動作や表示をするか否か、を確認するための試験である。
実施形態に係るソフトウェア試験装置1は、ソースコード解析部11と、画面仕様書生成部12と、手順書作成部13と、自動実行部14と、バッチファイル15とを含んで構成される。
ソースコード解析部11は、ソフトウェア試験の対象であるソフトウェアによってブラウザに表示される画面のソースコードを読み込む。例えば、ソースコードは、HTML形式で記述される。ソースコード解析部11は、読み込んだソースコードを解析して、画面を構成する画面構成部品を特定し、特定した各画面構成部品についてソフトウェア試験に必要な情報を抽出する。例えば、ソフトウェア試験に必要な情報とは、各画面構成部品の「項目名」、「ID属性」、「部品種別」、及び「画面ID」等である。例えば、ソースコード上に、「ID属性」が存在しない場合は、「XPath」情報を代替情報としてソースコードから抽出する。
ソースコード解析部11は、抽出したソフトウェア試験に必要な情報(例えば、「項目名」、「ID属性」、「部品種別」、及び「画面ID」等)を、画面仕様書生成部12へ出力する。
なお、「項目名」とは、画面構成部品に対し自然言語等によって名付けられた任意の名称である。「ID属性」とは、画面構成部品を一意に特定するための識別子である。例えば、HTML形式で記述されたソースコードにおいては、画面構成部品を示す「input」や「select」等のタグに付与する「id=“ID名”」という記述である。「部品種別」とは、画面構成部品の種類を示す。例えば、「部品種別」は「ボタン」や「テキストボックス」等である。「画面ID」とは、試験対象の画面構成部品が存在する画面を特定するための識別子である。「XPath」は、HTMLソースコード上のタグの場所を相対位置で表した情報である。
画面仕様書生成部12は、画面設計書を読み込む。画面仕様書生成部12は、読み込んだ画面設計書からソフトウェア試験に必要な情報(例えば、各画面構成部品の「項目名」、「ID属性」、「部品種別」、及び「画面ID」等)を抽出する。
また、画面仕様書生成部12は、ソースコード解析部からソフトウェア試験に必要な情報(例えば、「項目名」、「ID属性」、「部品種別」、及び「画面ID」等)の一覧を取得する。
なお、基本的には、画面設計書の中に必要な情報、すなわち、「項目名」、「ID属性」、「部品種別」、及び「画面ID」が含まれている場合は、画面仕様書生成部12は画面設計書を読み込む。また、画面設計書の中に必要な情報が含まれていない、または、画面仕様書が存在しない場合は、画面仕様書生成部12は、ソースコード解析部11から「項目名」、「ID属性」、「部品種別」、及び「画面ID」の一覧を取得する。
画面仕様書生成部12は、様々な様式の設計書、及び様々な画面ソースコード解析結果を、手順書作成部13が読み込むことができる記述形式に変換する。
画面仕様書生成部12は、「項目名」、「ID属性」、「部品種別」、及び「画面ID」の一覧を、手順書作成部13での読み込みが可能な画面仕様書として出力する。
手順書作成部13は、画面仕様書生成部12から、ソフトウェア試験に必要な情報(例えば、「項目名」、「ID属性」、「部品種別」、及び「画面ID」等)の一覧をユーザ任意のタイミングで取得する。
手順書作成部13は、「部品種別」と「実行/検証内容」とが対応付けられたリストである試験項目リストを記憶している。「実行/検証内容」とは、ソフトウェアの動作や表示などを示す項目である。例えば、「実行/検証内容」とは、「クリックする」、または「値を選択する」、または「値を設定する」などである。
手順書作成部13は、取得した「項目名」とともに、取得した「部品種別」に対応付けられた「実行/検証内容」のリストを、ユーザに提示する。手順書作成部13は、「項目名」毎に「実行/検証内容」をユーザに選択させる。また、例えば「値を設定する」というような「実行/検証内容」については、必要に応じて、ユーザに値を設定させる。
以上により、手順書作成部13は、「項目名」毎に「実行/検証内容」が指定されたソフトウェア試験手順書を作成する。
ソフトウェア試験手順書が作成された後、ユーザから手順書作成部13へ、テストケースを出力する指示がなされ得る。テストケースを出力する指示がなされた場合、手順書作成部13は、ソフトウェア試験手順書に、以下のようなコマンドを生成することによってテストケースを生成する。
手順書作成部13は、作成した手順書の中の、選択された「実行/検証内容」と「部品種別」との組み合わせに基づいて、その組み合わせに付随して必要となるコマンドを抽出する。コマンドは、予め手順書作成部13の中に記憶されている。例えば、コマンドは、試験対象のソフトウェアを操作する操作コマンドだけでなく、その操作コマンドに付随して、試験スクリプトを正常に動作させるために必要となるコマンドを実行するためのタイミングを指定すること、または、試験の証跡を残すために必要な画面キャプチャを取ること、等を命令することを示す記述である。手順書作成部13は、抽出したコマンドを、対応する「実行/検証内容」に合わせて、一連の検証内容をテストケースに追記する。
手順書作成部13は、生成したテストケースをバッチファイル15として、出力する。ユーザは、テストケースのバッチファイル15を実行することで、自動実行部14へ入力する。
手順書作成部13からテストケースのバッチファイル15を出力することで、ユーザは、任意のタイミング、任意の回数、テストケースの実行が可能となる。このように、手順書作成部13は、生成したテストケースをバッチファイルとして作成しておくため、同一の試験を再度実施するような場合にも、ユーザは再度ソフトウェア試験手順書を作成する必要がない。したがって、ソフトウェア試験の実施効率が向上する。
自動実行部14は、ユーザによってバッチファイル15が実行されることによって、起動する。または、バッチファイル15がタスクマネージャー等に登録されることによって起動する。自動実行部14は、起動すると、手順書作成部13から出力されたテストケースを取得する。自動実行部14は、取得したテストケースを実行する。テストケースが実行されることによって、ソフトウェア試験がなされる。
ソフトウェア試験が終了すると、自動実行部14は、結果ファイルと画面キャプチャとを出力する。
以上、本発明の実施形態に係るソフトウェア試験装置1の概要を説明した。
以下、ソフトウェア試験装置1の機能構成毎に、詳細に説明する。
(手順書作成部の構成)
以下に、本発明の実施形態に係るソフトウェア試験装置1の手順書作成部13の構成について説明する。
図1に図示するように、ソフトウェア試験装置1の手順書作成部13は、画面仕様書読込部131と、手順定義部132と、リスト記憶部133と、テストケース生成部134と、によって構成される。
画面仕様書読込部131は、画面仕様書生成部12より出力された、画面仕様書を取得する。画面仕様書読込部131は、取得した画面仕様書から画面構成部品毎の「項目名」、「ID属性」、「部品種別」、及び「画面ID」を抽出する。画面仕様書読込部131は、抽出した画面構成部品毎のソフトウェア試験に必要な情報(例えば、「項目名」、「ID属性」、「部品種別」、及び「画面ID」等)を手順定義部132へ出力する。
リスト記憶部133は、「部品種別」と、「実行/検証内容」と、「生成コマンド」とが対応付けられた試験項目リストを予め記憶する。
図2は、本発明の実施形態に係るソフトウェア試験装置1のリスト記憶部133が記憶する試験項目リストの一例を示す概略図である。
図2に示す試験項目リストは、「部品種別」と、「生成コマンド」と、複数の「実行/検証内容」とが対応付けられた2次元の表形式のデータである。なお、図2に示す試験項目リストは、試験項目リストの一部分である。試験項目リストは、図2に図示されている行数及び列数以上の行数及び列数が含まれる。しかしながら、説明を簡易にするため、以下の説明においては、試験項目リストのデータは図2に示すものが全てであるものとする。
図2に示す試験項目リストにおいて、例えば、「部品種別」が「ボタン」である列の値が「○」になっている「実行/検証内容」は、「をクリックする(画面ロード無)」及び「をクリックする(画面ロード有)」の2つである。すなわち、ソフトウェアの画面構成部品である「ボタン」に対するソフトウェア試験手順は、2種類存在することを意味する。例えば、ソフトウェア試験の対象である「部品種別」が「ボタン」である場合において、「実行/検証内容」として「をクリックする(画面ロード無)」が選択された場合には、ボタンをクリックしたときのソフトウェアの動作を確認するためのソフトウェア試験手順が定義されたことを意味する。
なお、「画面ロード無」とは、ボタンがクリックされた時に、ソフトウェアが画面の表示を更新する動作を伴なわないことを意味する。なお、「画面ロード有」は、上記の場合とは逆に、ボタンがクリックされた時に、ソフトウェアが画面の表示を更新する動作を伴なうことを意味する。「画面ロード有」と「画面ロード無」とを区別している理由は、画面の表示の更新を伴なう「画面ロード有」の場合には「画面ロード無」の場合と比べて、ボタンがクリックされてから、クリックされた結果が画面に表示されるまでに、より時間を要するためである。「画面ロード有」が定義された場合には、ボタンがクリックされてから、一定の時間を経過した後に、クリックされた結果の確認がなされることが求められる。
再び図1に戻って、本発明の実施形態に係るソフトウェア試験装置1の手順書作成部13の構成について説明する。
手順定義部132は、画面仕様書読込部131から「項目名」、「ID属性」、「部品種別」、及び「画面ID」の一覧を取得する。手順定義部132は、取得した「部品種別」に対応付けられた「実行/検証内容」及び「生成コマンド」のリストをリスト記憶部133から取得する。
手順定義部132は、ディスプレイ(図示せず)にソフトウェア試験手順を定義するための手順定義画面を表示する。手順定義部132は、手順定義画面において、リスト記憶部133から取得した「実行/検証内容」のリストを表示する。それにより、ユーザは、各ソフトウェア試験手順毎の「実行/検証内容」を選択し得る。
以下に、手順定義部132が行うソフトウェア試験手順の定義について説明する。
図3は、本発明の実施形態に係るソフトウェア試験装置1の手順定義部132によるソフトウェア試験手順の定義の一例を示す概略図である。
図3(A)に示すテーブルの各行は、それぞれ1つのソフトウェア試験手順を示す。
ユーザは、この各行の各項目について、値を選択、または値を入力することによって、各ソフトウェア試験手順を定義する。ユーザが各ソフトウェア試験手順を定義することによって、ソフトウェア試験手順書が作成される。
図3(A)の左列の「画面項目定義orメッセージ」の欄は、手順書作成部13が、画面設計書から抽出した情報、またはソースコード解析部から取得した情報を構成する「項目名」、「ID属性」、「部品種別」、及び「画面ID」に基づいて生成される。
例えば、「●●(ボタン)」は、上記の「項目名」の情報に基づいて生成される。なお、項目名「●●」のソフトウェア画面構成部品の部品種別は「ボタン」である。
図3(A)に図示するように、左列「画面項目定義orメッセージ」の欄の値が「●●(ボタン)」である行の、中列「実行/検証内容」の欄の値は、「をクリックする(画面ロード無)」である。手順定義部132は、「部品種別」が「ボタン」であることに基づいて、リスト記憶部133の試験項目リストから、「ボタン」に対応する「実行/検証内容」を取得する。「ボタン」に対応する「実行/検証内容」は、図2に図示するように、「をクリックする(画面ロード無)」または「をクリックする(画面ロード有)」である。
すなわち、図3(A)の「項目定義orメッセージ」の欄で指定された内容が「●●(ボタン)」であり、その「部品種別」が「ボタン」であることに基づいて、「実行/検証内容」の欄には、「をクリックする(画面ロード無)」と「をクリックする(画面ロード有)」との2種類の選択肢がユーザに提示される。図3(A)は、ユーザが「をクリックする(画面ロード無)」を選択した状態を示す。
また、図3(A)に図示するように、左列「画面項目定義orメッセージ」の欄の値が「ウインドウID」である行の、中列「実行/検証内容」の欄の値は、「が次のwindowID値であること」である。手順定義部132は、「ウインドウID」に対応する「実行/検証内容」を、リスト記憶部133の試験項目リストから取得する。手順定義部132は、取得した「実行/検証内容」のリストを提示する。そして、図3(A)は、ユーザが「が次のwindowID値であること」を選択した状態を示す。また、ユーザは「ウインドウID」に対応する「値」欄に、正しいウインドウ名を入力することができる。すなわち、このソフトウェア試験手順の定義は、ソフトウェア画面構成部品であるウインドウの「ウインドウID」が、ユーザによって定義された正しいウインドウ名になっているかを確認するためのソフトウェア試験手順の定義であることを示す。なお、本発明の実施形態に係るソフトウェア試験装置1においては、この「ウインドウID」の項目は任意の入力項目である。入力されなかった場合の動作は後述する。
図3(A)のように、ユーザにより、自然言語(第1言語)によって、ソフトウェア試験手順の定義がなされると、手順定義部132は、自然言語による定義を、自動実行部14が実行可能な記述形式による定義(試験スクリプト)に変換する。なお、図3(A)の例における自然言語(第1言語)による定義とは、例えば、「●●(ボタン)」及び「をクリックする(画面ロード無)」である。すなわち、図3(A)の例における自然言語(第1言語)とは、日本語である。
図3(B)は、図3(A)に示す自然言語によるソフトウェア試験手順の定義を、試験スクリプトに変換した場合の例を示す図である。
図3(B)に図示する「click,id=xxx」は、図3(A)に図示する「●●(ボタン)」及び「をクリックする(画面ロード無)」を、試験スクリプトに変換したものである。
図3(B)に図示する「click,id=xxx」の中の「click」は、自然言語(第1言語)である「をクリックする(画面ロード無)」がプログラム言語へ変換されたものである。図2の試験項目リストに図示するように、「実行/検証内容」の値が「をクリックする(画面ロード無)」であるときの「生成コマンド」は「click」である。なお、例えば、図3の例において、「をクリックする(画面ロード有)」がユーザによって定義されていたならば、「clickAndWait」に変換される。
図3(B)に図示する「click,id=xxx」の中の「id=xxx」は、「●●(ボタン)」に紐づく「ID属性」である。「ID属性」は、例えばアルファベットによる記述等のコンピュータプログラムが認識可能な記述形式(第2言語)で、ソフトウェアのソースコードの製作者によってソースコード上に定義されたものである。上述したように、手順定義部132は、「ID属性」を、画面仕様書読込部131から、「項目名」、「部品種別」、及び「画面ID」とともに取得する。この「id=xxx」の定義によって、ソフトウェア試験の対象のボタンが、ソフトウェアの画面の中のどのボタンなのかが一意に特定される。
また、図3(B)に図示する「selectWindow,ウインドウ名」は、図3(A)に図示する「ウインドウID」を、自動実行部14が実行可能な記述形式による定義に変換したものである。これは、指定したウインドウ名が付けられたウインドウへ、アクティブウインドウを切り替えることを示す試験スクリプトである。なお、アクティブウインドウとは、例えば、パソコンの操作画面内に同時に複数のウインドウを表示できるようなマルチウインドウの環境において、ユーザによる入力や操作の対象となっているウインドウのことである。
手順定義部132は、テストケースを出力することを示すユーザからの指示を受け付けると、作成したソフトウェア試験手順書(例えば、図3(B)に示す試験スクリプトによって構成されるソフトウェア試験手順書)を、自動実行部14のテストケース生成部134へ出力する。
テストケース生成部134は、手順定義部132から取得したソフトウェア試験手順書に含まれる試験スクリプトに、さらに、次のようなソフトウェア試験手順の定義(コマンド)を付加する。テストケース生成部134は、さらに、定義された「項目名」及びその「部品種別」と、定義された「実行/検証内容」との組み合わせに基づいて、その組み合わせに付随して必要となるコマンドを付加する。例えば、組み合わせに付随して必要となる定義とは、各ソフトウェア試験手順を実行するタイミングを指定するコマンド、及び画面キャプチャを取得することを指示するコマンド、等である。なお、一般的なソフトウェア試験においては、正しくソフトウェア試験が行われたことを示すエビデンス(証跡)を残すために、適切なタイミングで画面キャプチャを取得することが求められる。
図3(C)は、手順定義部132によって変換された図3(B)に示す定義に、テストケース生成部134が、さらに、付随して必要となるコマンドを付加した場合の例を示す図である。
図3(C)に図示するように、テストケース生成部134は、まず、「click,id=xxx」の定義の前に、「selectWindow,@saveHandle!」というコマンドを付加する。このコマンドは、現在開いているウインドウ情報を取得して、保存することを命令するコマンドである。
また、テストケース生成部134は、「selectWindow」の定義に続けて、「@autoSelect!,$childWindowId_001」というコマンドを付加する。このコマンドを付加したことによって、次に示すようなソフトウェア試験手順の定義に変換される。まず、ウインドウ情報を再取得して、再取得したウインドウ情報と、上記の「selectWindow,@saveHandle!」のコマンドによって取得したウインドウ情報と、を比較する。比較することによって、新しいウインドウを特定する。次に、検出したウインドウにフォーカスを切り替える。次に、切り替えたウインドウのウインドウ情報を、指定した変数「$childWindowId_001」に保持する。
図3(B)に図示する定義においては、「selectWindow」のあとに「ウインドウ名」を明示的に指定する必要があった。しかしながら、ウインドウ名が不明な場合には、このソフトウェア試験手順の定義を作成することができない。
図3(C)に図示するように、テストケース生成部134は、「selectWindow」の定義に続けて、「@autoSelect!,$childWindowId_001」というコマンドを付加することによって、切り替えたウインドウの「ウインドウ名」が不明でも、自動的にウインドウ名を取得し、そのウインドウ名を変数に指定する。以上により、本発明の実施形態に係るソフトウェア試験装置1は、切り替えたウインドウの「ウインドウ名」を明示的に指定しなくても、テストケースを実行することができる。
また、テストケース生成部134は、「captureEntirePageScreenshot,xxxxx」というコマンドを付加する。このコマンドは、画面キャプチャを取得することを命令するコマンドである。
以上のように、テストケース生成部134は、付随して必要となるコマンドを自動的に付加する。
テストケース生成部134は、手順定義部132から取得したソフトウェア試験手順書にコマンドを付加することによって生成したテストケースを、自動実行部14のテストケース読込部141へ出力する。
以上、説明したように、本発明の実施形態に係るソフトウェア試験装置1の手順書作成部13は、自然言語(日本語)で定義されたソフトウェア試験手順の定義と、自動実行部14が実行可能な記述形式による定義(試験スクリプト)と、を対応付けるデータベースを備える。それによって、ソフトウェア試験装置1の手順書作成部13は、自然言語(日本語)で定義されたソフトウェア試験手順の定義から、試験スクリプトを生成することができる。
(手順定義画面におけるソフトウェア試験手順の定義)
次に、ユーザがソフトウェア試験手順を定義する際の、手順定義画面について説明する。
図4は、本発明の実施形態に係るソフトウェア試験装置1の手順定義画面の一例を示す概略図である。
図4に示す手順定義画面には、プルダウンメニューp01と、プルダウンメニューp02と、が表示されている。プルダウンメニューとは、ソフトウェアの操作画面において、メニューから項目を選択する方式の一つである。例えば、メニューのタイトル部分にマウスカーソルをあわせてマウスのボタンをクリックすると、そこから選択項目の一覧が引き出されたように垂れ下がってくる表示方法のことである。
図4において、プルダウンメニューp01には、手順定義部132が画面仕様書読込部131から取得した「項目名」が表示される。ユーザが、プルダウンメニューp01にマウスカーソルを合わせて、マウスのボタンをクリックすると、「項目名」の一覧が引き出されたように垂れ下がって表示される。図4に示すプルダウンメニューp01は、表示された「項目名」一覧の中から、ユーザが「●●(ボタン)」を選択した状態であることを示す。
ユーザが、上記のように「項目名」を選択した後、プルダウンメニューp02にマウスカーソルを合わせて、マウスのボタンをクリックすると、プルダウンメニューp01で選択された「項目名」に対応する「部品種別」に対応付けられた「実行/検証内容」の一覧が引き出されたように垂れ下がって表示される。なお、図4は、この時点における手順定義画面の状態を示したものである。
プルダウンメニューp02に表示される「実行/検証内容」の一覧は、手順定義部132が、リスト記憶部133から取得するデータに基づいて生成される。
例えば、図4に示すように、プルダウンメニューp01において「●●(ボタン)」がユーザによって選択される。手順定義部132は、画面仕様書読込部131から取得したソフトウェア試験に必要な情報(例えば、「項目名」、「ID属性」、「部品種別」、及び「画面ID」等)が紐付られた情報に基づいて、「●●(ボタン)」の「部品種別」が「ボタン」であることを認知する。手順定義部132は、「部品種別」が「ボタン」であることに基づいて、「ボタン」に対応する「実行/検証内容」の一覧を、リスト記憶部133に記憶された試験項目リストから取得する。
図2に示す試験項目リストにおいて、「部品種別」が「ボタン」である列の値が「○」になっている「実行/検証内容」は、「をクリックする(画面ロード無)」及び「をクリックする(画面ロード有)」の2つである。したがって、手順定義部132はこの2つの「実行/検証内容」の情報からなる一覧を取得して、取得した一覧を図4に示すプルダウンメニューp02において表示させる。
以上、説明したように、本発明の実施形態に係るソフトウェア試験装置1の手順定義部132は、プルダウンメニューにより選択されたソフトウェア試験の試験項目(「項目名」)に応じて、試験項目に予め対応付けられた命令(「実行/検証内容」)の候補をプルダウンメニューでユーザに選択させる。そして、手順定義部132は、選択された命令(「実行/検証内容」)に基づいて、試験スクリプトを生成する。
プルダウンメニューによる選択に基づいて試験スクリプトを生成するため、ソフトウェア試験装置1の手順定義部132は、均一的な記述レベルによって品質が確保されたソフトウェア試験手順書、及び試験スクリプトを生成することができる。
(自動実行部の構成)
次に、本発明の実施形態に係るソフトウェア試験装置1の自動実行部14の構成について説明する。
図1に図示するように、ソフトウェア試験装置1の自動実行部14は、テストケース読込部141と、スクリプト実行部142と、コマンド記憶部143と、結果出力部144と、結果格納部145と、によって構成される。
テストケース読込部141は、手順書作成部13のテストケース生成部134から、テストケースを取得する。ここで、ユーザによってバッチファイル15が実行されることにより、テストケースを実行する命令がなされ得る。または、タスクマネージャー等に登録されることによって自動的に実行ファイルが起動することにより、任意のタイミング、任意の回数テストケースを実行する命令がなされ得る。
テストケースを実行する命令がなされた場合、テストケース読込部141は、取得したテストケースをスクリプト実行部142へ出力する。その場合、テストケース読込部141は、テストケースを、所望のブラウザの形式(例えば、Internet Explorer(登録商標)、FireFox(登録商標)、またはGoogleChrome(登録商標)、等)に合わせた記述へ変換した後、スクリプト実行部142へ出力する。
スクリプト実行部142は、取得したテストケースに記述された試験スクリプトを順に実行する。
なお、実行する試験スクリプトには、外部サーバへアクセスすることを要する試験スクリプトが含まれる場合がある。例えば、ソフトウェアが、外部サーバが有するデータベースから取得した情報を、自らのソフトウェアの画面に表示させるような処理を含むとき、その取得した情報が正しく表示されるかをチェックするような場合である。このような、外部サーバのデータベースへのアクセスを伴なうテストケースについての説明は、後述する。
なお、スクリプト実行部142は、取得したテストケースに記述されていないコマンドを、コマンド記憶部143から取得して、テストケースにそのコマンドを追加することもできる。
スクリプト実行部142は、テストケースに記述された試験スクリプトの実行が終了すると、すなわち、ソフトウェア試験が終了すると、実行結果を示す結果ファイル、及び画面キャプチャを結果格納部145へ出力する。
結果ファイルには、ソフトウェア試験手順毎に、「試験番号」と、「手順実行結果」と、「処理時間」と、「画面キャプチャファイル名」と、「トータルの実行結果」(例えば、時間、手順件数、結果が正常であった件数、及び結果が異常であった件数、等)と、が含まれる。
なお、結果が異常であったソフトウェア試験項目が存在する場合には、結果出力部144は、出力する結果ファイルのファイル名に「NG」等の文言を付与するようにしてもよい。その場合、ユーザは、結果ファイルを開かなくても、結果が異常であったソフトウェア試験項目が存在することを知ることができる。
また、結果ファイル内においても、結果が異常であったソフトウェア試験項目、及びその実行結果を示す文字を、色を変えて(例えば、赤字で)表示するようにしてもよい。その場合、ユーザは、結果ファイルの中で、結果が異常であったソフトウェア試験項目を容易に識別することができる。
(外部サーバのデータベースへのアクセスを伴なうテストケースの実行について)
以下に、外部サーバのデータベースへのアクセスを伴なうテストケースの実行について説明する。
図5は、本発明の実施形態に係るソフトウェア試験装置1の手順定義画面の一例を示す概略図である。
外部サーバのデータベースへアクセスし、その結果を確認するソフトウェア試験を行う場合、ユーザは、例えば図5に図示するような手順定義画面のプルダウンメニューp03によって、「DBアクセス」を選択する。「DBアクセス」が選択されると、図6に示すようなDBアクセス情報設定画面pp01がポップアップ表示される。なお、DBは、databese(データベース)の略である。
図6は、本発明の実施形態に係るソフトウェア試験装置1のDBアクセス情報設定画面pp01の一例を示す概略図である。
DBアクセス情報設定画面pp01において、ユーザは、アクセスする外部サーバ及びデータベースの情報を入力し、アクセス設定をする。設定する項目は、例えば図6に図示するような、「サーバ名」、「ポート番号」、「DB名」、「DB接続用ID」、「(DB接続用)パスワード」、「SQL文」、及び「SQL実行に伴う処理内容」等である。例えば、図6においては、それぞれ「192.111.222.333」、「9999」、「test」、「dbuser」、「user2015」、「select item1 from where itemid=’012345’」、及び「結果を変数に格納して比較処理を行う。比較する数:1、画面ID=1K100」と設定されている。
上記の設定の入力がなされ、DBアクセス情報設定画面pp01の右下のほうに配置された「OK」ボタンがクリックされると、図7に示すような比較カラム情報設定画面pp02がポップアップ表示される。
図7は、本発明の実施形態に係るソフトウェア試験装置1の比較カラム情報設定画面pp02の一例を示す概略図である。
比較カラム情報設定画面pp02において、ユーザは、ソフトウェア試験対象の画面を実行することによって画面に表示される結果と、データベースへアクセスすることによって取得する結果とを比較するための設定をする。例えば、図7に図示するように、比較カラム情報設定画面pp02において、ユーザは、「カラム名」、「レコード番号」、「比較対象の画面項目定義」、及び「画面項目の比較位置」を設定する。例えば、図7においては、それぞれ「item1」、「1」、「18_18(テキストボックス)」、及び「${COMP_DATA}」と設定されている。
上記の設定の入力がなされ、比較カラム情報設定画面pp02の右下のほうに配置された「OK」ボタンがクリックされると、DBアクセス情報設定画面pp01及び比較カラム情報設定画面pp02において入力された設定情報に基づいて、図8に示すようなソフトウェア試験手順の定義(試験スクリプト)が生成される。
図8は、本発明の実施形態に係るソフトウェア試験装置1の手順定義部132によるソフトウェア試験手順の定義の一例を示す概略図である。
手順定義部132は、テストケースを出力することを示すユーザからの指示を受け付けると、作成したソフトウェア試験手順書(例えば、図8に示すソフトウェア試験手順の定義によって構成されるソフトウェア試験手順書)を、自動実行部14のテストケース生成部134へ出力する。
テストケース生成部134は、手順定義部132から取得したソフトウェア試験手順の定義に、さらに、コマンドを付加する。それにより、図9に図示するようなテストケースが生成される。
図9は、本発明の実施形態に係るソフトウェア試験装置1のテストケース生成部134が生成するテストケースの一例を示す概略図である。
なお、説明を容易にするため、図9に示すテストケースの中の各試験スクリプト(コマンド)の左側に番号を付している。例えば、「1」番の番号が付与された1番目の試験スクリプト(コマンド)は、「echo,□JDBC設定(PostgreSQL),,,」である。
図9に示す、1、6、8、10、12、14、及び16番目の試験スクリプト(コマンド)は、操作をログに出力しソフトウェア試験の実行記録を残すための、テストケース生成部134によって付加されたコマンドである。
2、3、4、5、及び7番目の試験スクリプトは、外部サーバのデータベースへ接続するための試験スクリプトである。
2番目の試験スクリプトは、外部サーバのデータベースへの接続に使用するライブラリを指定することを示す。各種のライブラリは、自動実行部14のコマンド記憶部143に予め記憶されている。3番目の試験スクリプトは、外部サーバのデータベースの接続パラメータ(URL)を指定することを示す。4番目の試験スクリプトは、外部サーバのデータベースの接続パラメータ(接続ユーザ名)を指定することを示す。5番目の試験スクリプトは、外部サーバのデータベースの接続パラメータ(パスワード)を指定することを示す。7番目の試験スクリプトは、外部サーバのデータベースへ接続することを示す。
9番目の試験スクリプトは、図6に示すDBアクセス情報設定画面pp01において指定されたSQL文に従って、外部サーバのデータベースを検索することを示す。また、9番目の試験スクリプトは、検索結果を取得し、指定された保存名称で保存することを示す。
11番目の試験スクリプトは、外部サーバのデータベースへ接続を切断することを示す。
13番目の試験スクリプトは、データベースの検索結果の保存先から、列及び行で指定した特定の位置データを取り出し、変数($COMP_DATA)に格納することを示す。
15番目の試験スクリプトは、変数($COMP_DATA)に格納したデータベース情報を表示することを示す。
17番目の試験スクリプトは、画面項目の内容と、13番目の試験スクリプトにおいて格納されたデータベース情報とを比較する。例えば、画面項目の内容とは、図10に図示するような内容である。
図10は、本発明の実施形態に係るソフトウェア試験装置1のスクリプト実行部142が生成する画面項目検証画面の一例を示す概略図である。
以上において説明した試験スクリプトの実行の流れを図11に示す。
図11は、本発明の実施形態に係るソフトウェア試験装置1のスクリプト実行部142による試験スクリプト実行の流れの一例を示す概略図である。
まず、スクリプト実行部142は、外部サーバのデータベースに接続する(ステップst01)。次に、スクリプト実行部142は、接続した外部サーバのデータベースに対し、検索実行させる命令(例えば、SQL文)を送信する(ステップst02)。外部サーバのデータベースは、受信した命令に基づいて検索実行をする。外部サーバのデータベースは、検索結果をスクリプト実行部142へ送信する(ステップst03)。
スクリプト実行部142は、受信した検索結果を、例えばRAM(Random Access read/write Memory;読み書き可能なメモリ)等の一時記憶領域(図示せず)に保存する(ステップst04)。なお、受信した検索結果のデータ量が多い場合等においては、スクリプト実行部142は、検索結果のデータを、一時記憶領域にではなく自動実行部14の外部の記憶装置に保存するようにしてもよい(ステップst05)。なお、スクリプト実行部142は、検索結果のデータを外部の記憶装置に保存する場合、検索結果のデータをCSV(Comma−Separated Values;カンマ区切り)形式のデータに変換してから保存するようにしてもよい。
スクリプト実行部142は、保存した検索結果のデータから、指定された特定の位置のデータを取り出し、変数($COMP_DATA)へ格納する(ステップst07)。図11に図示するように、例えば、スクリプト実行部142は、保存した検索結果のデータから、2行目かつ2列目に位置するデータである「山田」を変数($COMP_DATA)へ格納する。
スクリプト実行部142は、変数($COMP_DATA)に格納したデータである「山田」と、表示された画面項目の内容である「山田」とを比較して、双方のデータが一致していることを確認する。以上により、スクリプト実行部142は、ソフトウェア試験対象であるソフトウェアの画面に表示される画面項目の内容が正しいことを検証することができる。
なお、図8及び図9には図示していないが、図5のプルダウンメニューp03において「DBアクセス」選択された場合、試験対象のソフトウェアの画面に上記の画面項目の内容(例えば、「山田」)を表示させるための試験スクリプトも生成される。
以上、説明したように、本発明の実施形態に係るソフトウェア試験装置1の自動実行部14は、外部サーバが有するデータベースからデータを取得することを伴なう試験項目の試験を実施する場合において、試験対象のソフトウェアが外部サーバから取得して画面に表示したデータと、自動実行部14が外部サーバから取得したデータと、を比較する。それにより、外部サーバへの2種類のアクセス手段に基づいて、それぞれのデータ取得結果を比較できるため、ソフトウェア試験装置1はより信頼性の高いソフトウェア試験の試験結果を得ることができる。
(ソースコード解析部11の説明)
次に、ソースコード解析部11が行うソースコード解析について説明する。
上述したように、試験対象であるソフトウェアの画面設計書の中に、ソフトウェア試験に必要な情報(例えば、「項目名」、「ID属性」、「部品種別」、及び「画面ID」)が含まれていない、または、画面仕様書が存在しない場合には、画面仕様書生成部12は、ソースコード解析部11からソフトウェア試験に必要な情報を取得する。
以下に、ソースコード解析部11が、画面のソースコードを解析し、ソフトウェア試験に必要な情報を取得する場合について説明する。
まず、ソースコード解析部11は、画面のソースコードを解析することを示すユーザからの命令等に基づいて、画面のソースコードの解析を実行開始する。
ソースコード解析部11は、例えば、画面のソースコードの解析を、プログラミング言語が有する関数を用いて行う。例えば、プログラミング言語が有する関数とは、Javascriptの「getElementsByTagName()」という関数である。
関数「getElementsByTagName()」は、HTML形式で記述されたソースコードから、タグ名に関する「Elementオブジェクト」を取得する関数である。
「Elementオブジェクト」とは、HTML形式で記述されたソースコードの中にあるform要素内で配置されるエレメント(要素)を集めたオブジェクトである。このElementオブジェクトは、「Button」、「Checkbox」、「FileUpload」、「Hidden」、「Password」、「Radio、Reset」、「Text」、「Textarea」、「Submit」、「Select」、及び「Option」等の各種のオブジェクトを含む。
ソースコード解析部11は、関数「getElementsByTagName()」によって取得した「Elementオブジェクト」の各エレメント(要素)に対し、各エレメントの属性情報(例えば、attributeプロパティ等)から、各画面構成部品の「位置情報(例えば、ID属性、XPath)」、「部品種別」、及び「表示状態」等の情報を取得する。ソースコード解析部11は、取得した情報を、例えばCSV形式による記述形式にしてポップアップ画面やクリップボードインターフェースへ出力する。
ソースコード解析部11が出力する書式は、例えば、「名称(項目名)、位置情報(ID属性、XPath等)、部品種別、表示状態」のような書式である。例えば、ソースコード解析部11は、「ワード検索、inputword、テキストボックス、〇」という情報を出力する。
なお、ソースコード解析部11は、「位置情報(ID属性、XPath等)」を、例えば、以下の情報から取得する。ID属性の場合、ソースコード解析部11は、各エレメントにおけるid属性の値を、「位置情報」とする。各エレメントにおけるid属性の値がない場合には、各エレメントの「nodeType」、または「parentNode」等を利用した「sibling情報」からDOM(Document Object Model)における位置(XPath)を計算し、「位置情報」とする。
なお、ソースコード解析部11は、例えば、以下の条件に基づいて「表示状態」の値を決定する。
ソースコード解析部11は、取得した各エレメントの親のタグのstyle属性に「DISPLAY:NONE」という記述がある場合、及び取得した各エレメントの親のタグのtype属性に「hidden」という記述がある場合には、「表示状態」の値を「×」とする。「×」は「非表示」を意味する。
ソースコード解析部11は、取得した各エレメントのinputタグ、またはselectタグ等にdisable属性がある場合には、「表示状態」の値を「□」とする。「□」は「表示・非活性」を意味する。
ソースコード解析部11は、上記の「非表示」及び「表示・非活性」以外の場合には、「表示状態」の値を「〇」とする。「〇」は「表示・活性」を意味する。
ソースコード解析部11は、試験対象のソフトウェアが表示する画面のソースコードに含まれる画面構成部品を全て解析した後、解析した結果を、CSV形式で記述されたテキストファイル、またはクリップボードインターフェースへ出力する。
また、ソースコード解析部11は、画面のソースコードに含まれる画面構成部品を全て解析するだけでなく、指定された画面構成部品のみを解析(以下、部分解析という)することもできる。
部分解析を行う場合、例えば、ソースコード解析部11は、Javascriptの「elementsFromPoint」という関数を用いる。「elementsFromPoint」は、マウスカーソルの位置に対するエレメントのElementオブジェクトを取得する関数である。
ソースコード解析部11は、関数「elementsFromPoint」によって取得したElementオブジェクトの各エレメント(要素)に対し、各エレメントの属性情報(例えば、attributeプロパティ等)から、ソフトウェア試験に必要な情報(例えば、各画面構成部品の「位置情報(例えば、ID属性、XPath)」、「部品種別」、及び「表示状態」等)を取得する。ソースコード解析部11は、取得した情報を、例えばCSV形式による記述形式にしてポップアップ画面やクリップボードインターフェースへ出力する。
なお、「位置情報(ID属性、XPath等)」の取得方法、及び「表示状態」の値を決定する条件については、上述した画面のソースコードに含まれる画面構成部品を全て解析する場合と同様である。
画面仕様書生成部12は、ソースコード解析部11が、CSV形式によるテキストデータ、またはクリップボードインターフェースに出力したデータ等を取得する。画面仕様書生成部12が取得するデータには、ソフトウェア試験に必要な情報(例えば、「項目名」、「ID属性(または、XPath)」、「部品種別」、「画面ID」、及び「表示状態」等)が含まれる。
なお、画面仕様書生成部12は、生成する画面仕様書上において、「表示状態」の値が「×」である画面構成部品の部分に網掛けを施すように記載するようにしてもよい。それにより、ユーザはその画面構成部品が非表示の状態であることを容易に認知することができる。
なお、画面仕様書生成部12は、「位置情報(例えば、ID属性、XPath)」に基づいてHTML画面上でその画面構成部品の位置を明確に表示することができる他のツール(または、機能)等連携するようにしてもよい。それにより、ユーザは、ユーザは試験対象である画面構成部品の位置を容易に特定することができる。
以上、説明したように、本発明の実施形態に係るソフトウェア試験装置1のソースコード解析部11は、画面(例えば、ブラウザ内)に表示される試験対象のソフトウェアのソースコード(例えば、HTML形式のソースコード)を読み取り、各画面構成部品、及び各画面構成部品に対応するID属性情報(または、XPath情報)等を自動的に抽出し、抽出した情報を記憶することができる。
また、ソースコード解析部11は、試験対象のソフトウェアの表示画面において、特定の画面構成部品が指定された場合、その画面構成部品のID属性情報(または、XPath情報)等を抽出し、抽出した情報を記憶することができる。
それにより、試験対象のソフトウェアの画面設計書からソフトウェア試験に必要な情報を得ることができない場合であっても、ソフトウェア試験装置1は、試験対象のソフトウェアの表示画面からソースコードを読み取って、ソフトウェア試験に必要な情報を得ることができる。
ソフトウェア試験に必要な情報を得ることができない場合とは、例えば、試験対象のソフトウェアの画面設計書の中にソフトウェア試験に必要な情報が記載されていなかったり、試験対象のソフトウェアの画面設計書そのものが無くなっていたりする場合である。また、ソフトウェア試験に必要な情報とは、例えば、「項目名」、「ID属性」、「部品種別」、及び「画面ID」である。
(ソフトウェア試験装置1の動作)
次に、ソフトウェア試験装置1の動作の流れについて説明する。
図12は、本発明の実施形態に係るソフトウェア試験装置1の動作の一例を示すフローチャートである。
(ステップS101)まず、ソフトウェア試験の対象であるソフトウェアの画面設計書が存在する場合には、ステップS102へ進む。そうでない場合は、ステップS103へ進む。
(ステップS102)ソフトウェア試験の対象であるソフトウェアの画面設計書に必要な情報が記載されている場合には、ステップS103へ進む。そうでない場合は、ステップS104へ進む。
(ステップS103)ソースコード解析部11は、試験対象であるソフトウェアが表示する画面のソースコードを解析する。ソースコード解析部11は、ソースコードの解析結果を、画面仕様書生成部12へ出力する。なお、解析結果とは、ソフトウェア試験に必要な情報、例えば、「項目名」、「ID属性(または、XPath)」、「部品種別」、及び「画面ID」等である。その後、ステップS104へ進む。
(ステップS104)画面仕様書生成部12は、画面設計書を解析して抽出したデータ(例えば、「項目名」、「ID属性(または、XPath)」、「部品種別」、及び「画面ID」等)、または、ソースコード解析部11から取得したソースコードの解析結果を示すデータを、手順書作成部13が処理することができるデータ形式に変換する。画面仕様書生成部12は、変換したデータによって構成される画面仕様書を生成する。そして、画面仕様書生成部12は、変換したデータを手順書作成部13へ出力する。その後、ステップS105へ進む。
(ステップS105)手順書作成部13は、画面仕様書生成部12から取得したデータに基づいて、手順定義画面を生成する。手順定義画面において、例えば、ソフトウェア試験装置1のユーザによって、各ソフトウェア試験手順が定義される。手順書作成部13は、定義された各ソフトウェア試験手順を各試験スクリプトに変換し、ソフトウェア試験手順書を作成する。その後、ステップS106へ進む。
(ステップS106)ここで、ユーザ等によって、手順書作成部13に対し、テストケースを生成する指示がなされ得る。テストケースを生成する指示がなされた場合、手順書作成部13は、ソフトウェア試験手順書を、テストケース生成部134へ出力する。その後、ステップS107へ進む。そうでない場合は、ステップS106に留まる。
(ステップS107)テストケース生成部134は、ソフトウェア試験手順書を手順定義部132から取得する。テストケース生成部134は、取得したソフトウェア試験手順書に含まれる各試験スクリプトに付随して必要となるコマンドを、ソフトウェア試験手順書に付加する。それにより、テストケースが生成される。テストケース生成部134は、テストケースをバッチファイル15として出力する。その後、ステップ108へ進む。
(ステップS108)ここで、ユーザ、またはタスクマネージャ等によって、テストケースを示すバッチファイル15の実行がなされ得る。バッチファイル15を実行する指示がなされた場合、ステップS109へ進む。そうでない場合は、ステップS108に留まる。
(ステップS109)自動実行部14のテストケース読込部141はテストケースを読み込む。そして、テストケース読込部141はスクリプト実行部142へ読み込んだテストケースを出力する。スクリプト実行部142は、テストケースに含まれる試験スクリプトの実行を開始する。その後、ステップS110へ進む。
(ステップS110)スクリプト実行部142が実行する試験スクリプトが、外部サーバが有するデータベースへのアクセスを伴なう試験スクリプトであった場合、ステップS111へ進む。そうでない場合は、ステップS112へ進む。
(ステップS111)スクリプト実行部142は、試験対象のソフトウェアが外部サーバから取得して画面に表示したデータと、自動実行部14が外部サーバから取得したデータと、を比較する。それにより、スクリプト実行部142は、外部サーバへの2種類のアクセス手段に基づいてそれぞれのデータ取得結果を比較することによって結果を検証する。その後、ステップS112へ進む。
(ステップS112)テストケースに含まれる試験スクリプトの実行が全て完了した場合には、ステップS113へ進む。そうでない場合は、ステップS110に戻り、まだ実行していない次の試験スクリプトを実行する。
(ステップS113)
スクリプト実行部142は、テストケースの実行結果を結果出力部144へ出力する。結果出力部144は、スクリプト実行部142から取得したテストケースの実行結果に基づいて、テストケースの実行結果を示す結果ファイル、及び画面キャプチャファイルを生成する。そして、結果出力部144は、生成した結果ファイル及び画面キャプチャファイルを、結果格納部145に格納する。
以上で、本フローチャートの処理を終了する。
以上、この発明の実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
なお、上述した実施形態におけるソフトウェア試験装置1の一部又は全部をコンピュータで実現するようにしてもよい。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
なお、ここでいう「コンピュータシステム」とは、ソフトウェア試験装置1に内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信回線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
また、上述した実施形態におけるソフトウェア試験装置1、を、LSI(Large Scale Integration)等の集積回路として実現してもよい。ソフトウェア試験装置1の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
1・・・ソフトウェア試験装置、11・・・ソースコード解析部、12・・・画面仕様書生成部、13・・・手順書作成部、14・・・自動実行部、15・・・バッチファイル、131・・・画面仕様書読込部、132・・・手順定義部、133・・・リスト記憶部、134・・・テストケース生成部、141・・・テストケース読込部、142・・・スクリプト実行部、143・・・コマンド記憶部、144・・・結果出力部、145・・・結果格納部、p01・・・プルダウンメニュー、p02・・・プルダウンメニュー、p03・・・プルダウンメニュー、pp01・・・DBアクセス情報設定画面、pp02・・・比較カラム情報の設定画面

Claims (5)

  1. 評価対象となるプログラム部品の種別を示す部品種別情報について、第1言語による第1部品種別情報と、第2言語による第2部品種別情報と、を対応付けて記憶する評価対象記憶部と、
    前記評価対象に対する操作内容情報について、前記第1言語による第1操作内容情報と、プログラム言語による第2操作内容情報と、を対応付けて記憶する評価内容記憶部と、
    前記部品種別情報と、当該部品種別情報が示すプログラム部品に対して可能な操作を示す前記操作内容情報と、を対応付ける対応情報を記憶する対応情報記憶部と、
    前記第1部品種別情報が選択された場合に、前記対応情報に基づいて、前記第1操作内容情報の候補を提示する手順定義部と、
    を備えることを特徴とするソフトウェア試験装置。
  2. 前記手順定義部は、前記第1操作内容情報の候補から前記第1操作内容情報が選択された場合に、選択された前記第1部品種別情報に対応する第2部品種別情報と、選択された前記第1操作内容情報に対応する第2操作内容情報と、を含む試験スクリプトを生成することを特徴とする請求項1に記載のソフトウェア試験装置。
  3. 前記手順定義部は、前記試験スクリプトと、選択された前記第1部品種別情報と選択された前記第1操作内容情報とを含む手順書を生成する請求項2に記載のソフトウェア試験装置。
  4. 評価対象となるプログラム部品の種別を示す部品種別情報について、第1言語による第1部品種別情報と、第2言語による第2部品種別情報と、を対応付けて記憶する評価対象記憶ステップと、
    前記評価対象に対する操作内容情報について、前記第1言語による第1操作内容情報と、プログラム言語による第2操作内容情報と、を対応付けて記憶する評価内容記憶ステップと、
    前記部品種別情報と、当該部品種別情報が示すプログラム部品に対して可能な操作を示す前記操作内容情報と、を対応付ける対応情報を記憶する対応情報記憶ステップと、
    前記第1部品種別情報が選択された場合に、前記対応情報に基づいて、前記第1操作内容情報の候補を提示する手順定義ステップと、
    を有することを特徴とするソフトウェア試験方法。
  5. コンピュータに、
    評価対象となるプログラム部品の種別を示す部品種別情報について、第1言語による第1部品種別情報と、第2言語による第2部品種別情報と、を対応付けて記憶する評価対象記憶ステップと、
    前記評価対象に対する操作内容情報について、前記第1言語による第1操作内容情報と、プログラム言語による第2操作内容情報と、を対応付けて記憶する評価内容記憶ステップと、
    前記部品種別情報と、当該部品種別情報が示すプログラム部品に対して可能な操作を示す前記操作内容情報と、を対応付ける対応情報を記憶する対応情報記憶ステップと、
    前記第1部品種別情報が選択された場合に、前記対応情報に基づいて、前記第1操作内容情報の候補を提示する手順定義ステップと、
    を実行させるためのソフトウェア試験用プログラム。
JP2015073954A 2015-03-31 2015-03-31 ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム Active JP5942009B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015073954A JP5942009B1 (ja) 2015-03-31 2015-03-31 ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015073954A JP5942009B1 (ja) 2015-03-31 2015-03-31 ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム

Publications (2)

Publication Number Publication Date
JP5942009B1 true JP5942009B1 (ja) 2016-06-29
JP2016194777A JP2016194777A (ja) 2016-11-17

Family

ID=56244622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015073954A Active JP5942009B1 (ja) 2015-03-31 2015-03-31 ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム

Country Status (1)

Country Link
JP (1) JP5942009B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101826618B1 (ko) * 2016-08-02 2018-02-07 (주)씽크포비엘 테스트 케이스 생성 방법, 장치 및 컴퓨터 판독가능 기록매체

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959021A (zh) * 2018-06-14 2018-12-07 郑州云海信息技术有限公司 一种利用脚本进行nas命令执行时间统计的方法及系统
JP7182044B2 (ja) * 2018-07-25 2022-12-02 株式会社野村総合研究所 テスト管理サーバおよびシステム
JP7116671B2 (ja) * 2018-11-28 2022-08-10 株式会社日立製作所 システム開発支援装置およびシステム開発支援方法
JP6830701B1 (ja) * 2020-04-21 2021-02-17 六元素情報システム株式会社 テスト支援装置、テスト支援プログラムおよび、テスト支援方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301809A (ja) * 1997-04-23 1998-11-13 Nippon Telegr & Teleph Corp <Ntt> Gui操作手順の自動生成方法
JP2007052703A (ja) * 2005-08-19 2007-03-01 Fujitsu Ltd テストシナリオ作成プログラム、テストシナリオ作成装置、テストシナリオ作成方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301809A (ja) * 1997-04-23 1998-11-13 Nippon Telegr & Teleph Corp <Ntt> Gui操作手順の自動生成方法
JP2007052703A (ja) * 2005-08-19 2007-03-01 Fujitsu Ltd テストシナリオ作成プログラム、テストシナリオ作成装置、テストシナリオ作成方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101826618B1 (ko) * 2016-08-02 2018-02-07 (주)씽크포비엘 테스트 케이스 생성 방법, 장치 및 컴퓨터 판독가능 기록매체

Also Published As

Publication number Publication date
JP2016194777A (ja) 2016-11-17

Similar Documents

Publication Publication Date Title
JP7398068B2 (ja) ソフトウェアテスト
AU2017258963B2 (en) Simultaneous multi-platform testing
US9424167B2 (en) Automated testing of an application system
US10114738B2 (en) Method and system for automatic generation of test script
JP5942009B1 (ja) ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム
CN105468779B (zh) 一种面向浏览器兼容性检测的客户端Web应用捕获与重放系统及方法
WO2018010552A1 (zh) 测试方法和装置
US8903691B2 (en) Linking graphical user interface testing tools and human performance modeling to enable usability assessment
Romano et al. An empirical analysis of UI-based flaky tests
US8875103B2 (en) Method of testing multiple language versions of a software system using one test script
JP7385740B2 (ja) ユーザ入力を使用したgui要素の取得プロセスの改善
US11615018B2 (en) Automation testing tool framework
US10152405B2 (en) Application testing system and method
US11436133B2 (en) Comparable user interface object identifications
US20200327043A1 (en) System and a method for automated script generation for application testing
EP3333712A2 (en) Simultaneous multi-platform testing
Hallé et al. Testing web applications through layout constraints
JP5998239B1 (ja) ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム
US20180232299A1 (en) Composing future tests
JP5998238B1 (ja) ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム
US11106571B2 (en) Identification of input object in a graphical user interface
CN107038117B (zh) 一种基于事件处理函数间定义-引用的web自动化测试方法
US20230195825A1 (en) Browser extension with automation testing support
JP5982526B1 (ja) ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム
Ricca et al. Web testware evolution

Legal Events

Date Code Title Description
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: 20160426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160523

R150 Certificate of patent or registration of utility model

Ref document number: 5942009

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250