JP2017021475A - ソフトウェア試験装置及びプログラム - Google Patents
ソフトウェア試験装置及びプログラム Download PDFInfo
- Publication number
- JP2017021475A JP2017021475A JP2015137003A JP2015137003A JP2017021475A JP 2017021475 A JP2017021475 A JP 2017021475A JP 2015137003 A JP2015137003 A JP 2015137003A JP 2015137003 A JP2015137003 A JP 2015137003A JP 2017021475 A JP2017021475 A JP 2017021475A
- Authority
- JP
- Japan
- Prior art keywords
- test
- software
- setting
- setting file
- executed
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】カスタマイズソフトウェアの自動テストを効率的に実行可能なソフトウェア試験装置及びプログラムを提供する。【解決手段】ソフトウェア試験装置の自動テスト実行部30は、テスト基盤部31と、自動化ライブラリ実行部34とを有し、ソフトウェア試験装置の所定のフォルダ21には、テスト対象アプリApと、テスト対象アプリApの設定内容を示す設定ファイルFoとが格納されている。テスト基盤部は、設定ファイルFoと、テスト対象Apアプリとを抽出し、自動化ライブラリ実行部にテスト対象アプリApをテスト対象端末3へインストールさせる。ソフトウェア試験装置の記憶部は、設定ファイルFoにおいて指定され得る各設定に対して必要なテストシナリオTsを記憶し、テスト基盤部は、読み込んだ設定ファイルFoにおいて指定された設定に基づき、実行すべきテストシナリオTsを判定する。【選択図】図2
Description
本発明は、ソフトウェアの自動テストの技術に関する。
従来から、ソフトウェアの作業効率化又は人的誤りの排除を目的としたテストの自動化手法が提案されている。例えば、特許文献1には、ソフトウェアの設計情報に基づいてテスト項目を自動生成する技術が開示されている。また、特許文献2には、ソフトウェアの実行結果の検証を自動化する技術が開示されている。
ソフトウェアソースコードとソフトウェアの機能を定義するファイルである設定ファイルとを入力としてビルドされ、設定ファイルの内容に応じてビルドされる機能が変化するソフトウェア(「カスタマイズソフトウェア」とも呼ぶ。)では、設定ファイルでの設定内容に応じてソフトウェアの機能が異なる。よって、異なる設定のカスタマイズソフトウェアには、異なるテスト項目を実行する必要があるため、自動テストプログラムの開発を個々に行う必要があった。
そこで、本発明は、カスタマイズソフトウェアの自動テストを効率的に実行可能なソフトウェア試験装置及びプログラムを提供することを主な課題とする。
本発明の1つの観点では、ソフトウェア試験装置は、実装する機能に関する設定を指定した設定ファイルを入力としてビルドされるソフトウェアの試験を行うソフトウェア試験装置であって、前記設定ファイルにおいて指定され得る各設定に対して必要な試験項目を記憶する記憶手段と、前記試験を行うソフトウェアの設定ファイルを取得するファイル取得手段と、前記設定ファイルにおいて指定された設定に基づき、前記記憶手段に記憶された試験項目のうち、実行すべき試験項目を判定する試験項目判定手段と、を有する。
上記ソフトウェア試験装置は、実装する機能に関する設定を指定した設定ファイルを入力としてビルドされるソフトウェアの試験を行う。ここで、「機能に関する設定」には、デザインに関する設定も含む。ソフトウェア試験装置は、記憶手段と、ファイル取得手段と、試験項目判定手段と、を有する。記憶手段は、設定ファイルにおいて指定され得る各設定に対して必要な試験項目を記憶する。ファイル取得手段は、試験を行うソフトウェアの設定ファイルを取得する。試験項目判定手段は、設定ファイルにおいて指定された設定に基づき、記憶手段に記憶された試験項目のうち、実行すべき試験項目を判定する。この態様により、ソフトウェア試験装置は、設定ファイルの設定内容に応じて試験項目を適切に抽出し、設定が異なるカスタマイズソフトウェアに対して必要な試験を的確に実行することができる。従って、この場合、ソフトウェア試験装置は、単一のテストプログラムにより、各カスタマイズソフトウェアに必要な試験を実行することができる。
上記ソフトウェア試験装置の一態様では、前記記憶手段は、前記試験項目として、一連の動作を規定するテストシナリオと、前記テストシナリオにおける個々の処理を規定するテストケースとを記憶し、前記試験項目判定手段は、前記設定ファイルにおいて指定された設定に基づき、実行すべきテストシナリオ及びテストケースを判定する。この態様により、ソフトウェア試験装置は、設定ファイルでの設定内容が異なるカスタマイズソフトウェアに対し、必要な試験を好適に実行することができる。
上記ソフトウェア試験装置の他の一態様では、ソフトウェア試験装置は、前記試験を行うソフトウェアの動作環境を認識する動作環境認識手段と、前記判定手段が実行すべきと判定した試験項目のコードを、前記動作環境に応じて変換する変換手段と、をさらに有する。ここで、「動作環境」は、ソフトウェアを実行するオペレーティングシステム(OS)を含む。この態様により、ソフトウェア試験装置は、ソフトウェアの動作環境ごとにテストプログラムを用意することなく、単一のテストプログラムにより、種々の動作環境で動作させるソフトウェアの試験を好適に実行することができる。
上記ソフトウェア試験装置の他の一態様では、前記記憶手段は、前記試験項目のコードにおいて記述されるオブジェクトを、所定の動作環境において機能する表記に変換するためのマップ情報を、前記ソフトウェアが実行され得る動作環境ごとに記憶し、前記変換手段は、前記動作環境認識手段が認識した動作環境に対応する前記マップ情報を参照し、前記試験項目のコード内のオブジェクトの表記を変換する。ここで、「オブジェクト」とは、表示や操作の対象となるユーザインターフェースの要素を表すものを指す。
一般に、OS等に依存する動作環境ごとにコードに記述するオブジェクトの表記が異なる。この場合であっても、ソフトウェア試験装置は、動作環境ごとにマップ情報を記憶し、試験を行う動作環境に対応するマップ情報を参照することで、動作環境ごとにテストプログラムを用意することなく、種々の動作環境でのソフトウェアの試験を好適に実行することができる。
上記ソフトウェア試験装置の他の一態様では、ソフトウェア試験装置は、前記判定手段が実行すべきと判定した試験項目の処理を実行するための情報を、前記ソフトウェアを実行する端末に入力する、又は、前記端末と同一の動作環境を模倣したエミュレータに入力する試験実行手段をさらに有する。これにより、ソフトウェア試験装置は、種々の動作環境下で必要なソフトウェアの試験を好適に行うことができる。
本発明の別の観点では、実装する機能に関する設定を指定した設定ファイルを入力としてビルドされるソフトウェアの試験を行い、前記設定ファイルにおいて指定され得る各設定に対して必要な試験項目を記憶する記憶手段を参照するコンピュータが実行するプログラムであって、前記試験を行うソフトウェアの設定ファイルを取得するファイル取得手段と、前記設定ファイルにおいて指定された設定に基づき、前記記憶手段に記憶された試験項目のうち、実行すべき試験項目を判定する試験項目判定手段として前記コンピュータを機能させる。コンピュータは、このプログラム実行することで、設定ファイルでの設定内容が異なるカスタマイズソフトウェアに対しても、各ソフトウェアに必要な試験を実行することができる。
本発明に係るソフトウェア試験装置によれば、設定ファイルでの設定内容が異なるカスタマイズソフトウェアに対しても、単一のテストプログラムを実行することで、各ソフトウェアに必要な試験を実行することができる。
以下、図面を参照しながら、本発明を実施するのに好適な実施形態について説明する。以後において、「カスタマイズソフトウェア」とは、ソフトウェアソースコードとソフトウェアの機能(デザインも含む)を定義するファイル(「設定ファイルFo」とも呼ぶ。)とを入力としてビルドされ、設定ファイルFoの内容に応じてビルドされる機能が変化するソフトウェアを指す。
[ソフトウェア試験装置の構成]
図1は、本実施形態に係るソフトウェア試験装置1の構成例を示す。ソフトウェア試験装置1は、試験の対象となるカスタマイズソフトウェア(「テスト対象アプリAp」とも呼ぶ。)の試験を設定ファイルFoの設定内容によらずに単一のテストプログラム(「自動テストプログラム」とも呼ぶ。)によって自動で実行する。ソフトウェア試験装置1は、ディスプレイなどの表示部10と、キーボードやマウスなどの入力部11と、記憶部12と、制御部13と、インターフェース14とを備える。これらの各要素は、バスライン19を介して相互に接続されている。
図1は、本実施形態に係るソフトウェア試験装置1の構成例を示す。ソフトウェア試験装置1は、試験の対象となるカスタマイズソフトウェア(「テスト対象アプリAp」とも呼ぶ。)の試験を設定ファイルFoの設定内容によらずに単一のテストプログラム(「自動テストプログラム」とも呼ぶ。)によって自動で実行する。ソフトウェア試験装置1は、ディスプレイなどの表示部10と、キーボードやマウスなどの入力部11と、記憶部12と、制御部13と、インターフェース14とを備える。これらの各要素は、バスライン19を介して相互に接続されている。
記憶部12は、制御部13が実行するプログラム及び当該プログラムの実行に必要な情報を記憶する。例えば、記憶部12は、任意のプログラミング言語で作成された自動テストプログラムを記憶する。自動テストプログラムは、テスト対象アプリApの試験(テスト)を行うプログラムであって、設定ファイルFoでの任意の設定内容に応じて実行するテスト項目を自動的に選択する。また、自動テストプログラムには、テスト対象アプリApを実行するテスト対象端末3のOSの違いを吸収するためのappiumなどの自動化ライブラリも含まれている。また、記憶部12は、テスト対象アプリApと、当該テスト対象アプリApの機能を定義した設定ファイルFoとの組を、所定のフォルダ(ディレクトリ)にまとめて記憶する。さらに、後述するように、記憶部12は、OSの種類(バージョンの違いも含む)ごとにコード内での表記が異なるボタン、ラベル、画像などのオブジェクトの表記について規定したマップ(「オブジェクトマップMp」とも呼ぶ。)を記憶する。
インターフェース14は、テスト対象アプリApを実行する実機であるテスト対象端末3とソフトウェア試験装置1とが電気的に接続するためのインターフェースである。テスト対象端末3は、例えば、テスト対象アプリApの実行環境となるOSの種類及びOSのバージョンごとに用意される。
制御部13は、図示しないCPU(Central Processing Unit)、ROM(Read Only Memory)及びRAM(Random Access Memory)などを備え、ソフトウェア試験装置1の全体を制御する。本実施例では、制御部13は、自動テストプログラムを実行することで所定の処理を実行する自動テスト実行部30を有する。自動テスト実行部30の処理内容については、後述する。制御部13は、本発明における「ファイル取得手段」、「試験項目判定手段」、「動作環境認識手段」、「変換手段」、「試験実行手段」、及び本発明におけるプログラムを実行する「コンピュータ」の一例である。
[自動テストの概要]
図2は、自動テストプログラムに基づき動作する自動テスト実行部30の概略的な機能構成を示す図である。図2の例では、自動テスト実行部30は、テスト基盤部31と、自動化ライブラリ実行部34とを有する。また、ソフトウェア試験装置1の所定のフォルダ21には、バイナリ形式等のテスト対象アプリApと、当該テスト対象アプリApの設定内容を示す設定ファイルFoとが格納されている。
図2は、自動テストプログラムに基づき動作する自動テスト実行部30の概略的な機能構成を示す図である。図2の例では、自動テスト実行部30は、テスト基盤部31と、自動化ライブラリ実行部34とを有する。また、ソフトウェア試験装置1の所定のフォルダ21には、バイナリ形式等のテスト対象アプリApと、当該テスト対象アプリApの設定内容を示す設定ファイルFoとが格納されている。
テスト基盤部31は、記憶部12が記憶する予め指定されたフォルダ21に含まれる設定ファイルFoと、テスト対象アプリApとを抽出する。そして、テスト基盤部31は、抽出したテスト対象アプリApを自動化ライブラリ実行部34へ供給し、自動化ライブラリ実行部34に、供給されたテスト対象アプリApをテスト対象端末3へインストールさせる。
また、テスト基盤部31は、読み込んだ設定ファイルFoに基づき、実行すべきテスト項目の処理を記述したテストシナリオTsを選択する。ここで、テストシナリオTsは、テスト用の一連の動作を規定したプログラムコードであり、記憶部12は、設定ファイルFoのあらゆる設定内容に対応して実行すべきテストシナリオTsを予め記憶している。そして、テスト基盤部31は、設定ファイルFoに基づき、予め用意されたテストシナリオTsから、実行する必要があるテストシナリオTsを選択する。なお、後述するように、各テストシナリオTsは、複数のテストケースから構成される。
また、テスト基盤部31は、テスト対象端末3のOSの種類及びバージョンの情報をテスト対象端末3または入力部11への入力情報に基づき取得し、テスト対象端末3のOSの種類及びバージョンに対応するオブジェクトマップMpを取得する。ここで、オブジェクトマップMpは、自動テストプログラム上でのオブジェクトの表記名と、テスト対象アプリApの実行環境となるOSの種類及びバージョンに準じた表記との対応関係を示すマップであって、テスト対象アプリApの実行環境となるOSの種類及びバージョンごとに用意されている。そして、テスト基盤部31は、選択したテストシナリオTsで用いられるオブジェクトの表記を、テスト対象端末3のOSの種類及びバージョンに対応するオブジェクトマップMpを参照して変換する。そして、テスト基盤部31は、オブジェクトの表記を変換したコードを、自動化ライブラリ実行部34へ供給する。
自動化ライブラリ実行部34は、OSの種類及びバージョンの違いを吸収するためのappiumなどの既存の自動化ライブラリに基づく処理を行う。具体的には、自動化ライブラリ実行部34は、実行すべきテストシナリオTsのコードをテスト基盤部31から受信し、テスト対象アプリApを実行するテスト対象端末3のOSの種類及びバージョンに準拠した形式に変換する。この場合、自動化ライブラリ実行部34は、例えば、テスト基盤部31によってテスト対象端末3のOSの種類及びバージョンに対応するように変換されたオブジェクトを引数とする命令(関数)を、テスト対象端末3のOSが実行可能な形式に変換し、変換したコードをテスト対象端末3へ供給してテスト対象端末3に実行させる。
ここで、設定ファイルFo及びテストシナリオTsの具体例について、図3及び図4を参照して説明する。
図3は、設定ファイルFoのデータ構造の一例である。設定ファイルFoは、例えばXMLファイルであって、設定項目ごとに、設定内容が記述されている。設定ファイルFoでは、テスト対象アプリApに付加可能なオプションの機能の要否が指定されている。例えば、図3の例では、デジタルクーポンの機能については、当該機能を付加する旨(「あり」)の設定となっており、デジタル会員証及びプッシュ通知の機能については、当該機能を付加しない旨(「なし」)の設定となっている。
また、テスト対象アプリApに付加する設定となっている機能については、さらに詳細な設定を指定することが可能である。図3の例では、テスト対象アプリApに機能を付加する設定となっているデジタルクーポンについては、利用回数及びデザインなどの種々の詳細項目について、設定内容が指定されている。そして、テスト対象アプリApは、図3に示すような設定ファイルFoを入力としてビルドされることで生成される。
図4は、図3の設定ファイルFoによりビルドされたテスト対象アプリApに対して実行すべきテストシナリオTs及びテストケースを可視化した図である。ここで、テストケースは、テストシナリオTsに相当する一連の処理を構成する個々の処理に相当する。例えば、あるテストシナリオTsが「クーポンを表示する」という一連の画面遷移の動作を規定するものである場合、当該テストシナリオTsを構成するテストケースは、例えば、「クーポンの一覧表示画面を表示する処理」、「一覧から選択されたクーポンの詳細画面を表示する処理」、及び「詳細画面からクーポンのバーコードを表示させる処理」といった3つのテストケースから構成される。
図4では、テストシナリオTsがテストシナリオTs1からテストシナリオTsnまで存在し、そのうち、自動テスト実行部30は、図3の設定ファイルFoに基づき、テストシナリオTs1及びテストシナリオTsnを含む複数のテストシナリオTsを実行すべきと判断する。また、図4の例では、テスト基盤部31は、実行すべきテストシナリオTs1に属するテストケースA1〜A4のうち、テストケースA1、A2を実行すべきと判断している。また、テスト基盤部31は、実行すべきテストシナリオTsnに属するテストケースX1〜X3のうち、テストケースX1、X3を実行すべきと判断している。
このように、あらゆる設定ファイルFoでの設定内容を想定したテストシナリオ及びテストケースを予め記憶部12が記憶しておき、テスト基盤部31は、読み込んだ設定ファイルFoから、実行すべきテストシナリオTs及びテストケースを選択する。この場合、例えば、各テストシナリオTs及びテストケースのコードには、設定ファイルFoの所定の設定項目を参照して実行要否を判定する部分が含まれている。これにより、テスト基盤部31は、好適に設定ファイルFoに応じて実行すべきテストシナリオTs及びテストケースを選択することができる。
[処理フロー]
図5は、テスト基盤部31が実行する処理手順を示すフローチャートである。テスト基盤部31は、所定のフォルダにテスト対象アプリApと設定ファイルFoが配置された状態で、ユーザによる所定の入力に基づき図5のフローチャートの処理を開始する。
図5は、テスト基盤部31が実行する処理手順を示すフローチャートである。テスト基盤部31は、所定のフォルダにテスト対象アプリApと設定ファイルFoが配置された状態で、ユーザによる所定の入力に基づき図5のフローチャートの処理を開始する。
まず、テスト基盤部31は、所定のフォルダに配置されたテスト対象アプリApを抽出し、当該テスト対象アプリApをテスト対象端末3へ供給することでテスト対象アプリApをテスト対象端末3へインストールさせる(ステップS101)。さらに、テスト基盤部31は、設定ファイルFoを上述のフォルダから読み込む(ステップS102)。
次に、テスト基盤部31は、設定ファイルFoでの設定内容に基づき、テストシナリオTsの実行要否を判定する(ステップS103)。この場合、テスト基盤部31は、設定ファイルFoで指定可能な全ての設定内容のバリエーションに対応した複数のテストシナリオTsのうち、各テストシナリオTsに対して上述の判定を行う。そして、テスト基盤部31は、判定対象のテストシナリオTsを実行すべきと判断した場合(ステップS104;Yes)、当該テストシナリオTsを実行するためのテストシナリオ実行処理を行う(ステップS105)。テストシナリオ実行処理の詳細については、図6を参照して後述する。また、この場合、テスト基盤部31は、テストシナリオ実行処理によりテスト対象端末3に実行させた処理の結果を示すデータを、テスト対象端末3から自動化ライブラリ実行部34を介して受信する。一方、テスト基盤部31は、判定対象のテストシナリオTsを実行する必要がないと判断した場合(ステップS104;No)、ステップS105を行うことなくステップS106へ処理を進める。
次に、テスト基盤部31は、予め用意された全てのテストシナリオTsについて、ステップS103で実行要否を判定したか否か判定する(ステップS106)。そして、テスト基盤部31は、予め用意された全てのテストシナリオTsについてステップS103で実行要否を判定したと判断した場合(ステップS106;Yes)、テストシナリオ実行処理によりテスト対象端末3に実行させた処理結果であるテスト結果のデータを出力する(ステップS107)。この場合、テスト基盤部31は、表示部10にテスト結果のデータを表示させてもよく、ファイル形式にして記憶部12に記憶させてもよい。
一方、テスト基盤部31は、全てのテストシナリオについてステップS103で実行可否を判定していないと判断した場合(ステップS106;No)、再びステップS103へ処理を戻し、用意された個々のテストシナリオについて実行可否を判定する。
図6は、ステップS105のテストシナリオ実行処理の手順を示すフローチャートである。
まず、テスト基盤部31は、テスト対象アプリApを実行するテスト対象端末3のOSの種類及びバージョンを認識する(ステップS201)。この場合、テスト基盤部31は、入力部11への入力に基づきテスト対象端末3のOSの種類及びバージョンを認識してもよく、テスト対象端末3からOSの情報を取得することで認識してもよい。
次に、テスト基盤部31は、ステップS201で認識したOSの種類及びバージョンに対応するオブジェクトマップMpを選択する(ステップS202)。そして、テスト基盤部31は、選択したオブジェクトマップMpを参照し、自動化ライブラリ実行部34に渡すコードのオブジェクトの表記を、テスト対象端末3のOSの種類及びバージョンに対応した表記に変換する(ステップS203)。ステップS202及びステップS203の処理の詳細については図7及び図8を参照して後述する。これにより、テスト基盤部31は、ボタン、ラベル、画像などの各オブジェクトの表記を、テスト対象端末3のOSの種類及びバージョンに対応した表記に変換することが可能となる。
そして、テスト基盤部31は、オブジェクトの表記を変換したコードを、自動化ライブラリ実行部34に供給する(ステップS204)。この処理の具体例については、図9を参照して後述する。この場合、実行するテストシナリオTsに対応する各命令(関数)の引数となるオブジェクトがテスト対象端末3のOSの種類及びバージョンに対応した表記に変換されている。よって、自動化ライブラリ実行部34は、好適にテスト対象端末3が実行可能な形式にテストシナリオTsのコードを変換してテスト対象端末3に実行させることができる。
[テストシナリオ実行処理の詳細]
まず、図6のステップS202でテスト対象端末3のOSの種類及びバージョンに応じたオブジェクトマップMpを選択することの効果について、図7を参照してさらに補足説明する。
まず、図6のステップS202でテスト対象端末3のOSの種類及びバージョンに応じたオブジェクトマップMpを選択することの効果について、図7を参照してさらに補足説明する。
図7(A)は、テスト対象端末3が表示する画面イメージ40の例を示し、図7(B)は、Android(登録商標)に対応する図7(A)の画面のソースコードを概略的に示し、図7(C)は、iOS(登録商標)に対応する図7(A)の画面のソースコードを概略的に示す。図7(A)に示す画面イメージ40は、画像41、42と、ボタン43とを含む。図7(B)、(C)に示すように、同じ画面を表示する場合であっても、ソースコードの各オブジェクトの表記は全く異なる。このようなOSに依存したオブジェクトの表記の違いは、appiumなどの既存の自動化ライブラリでは吸収することができない。
以上を勘案し、テスト基盤部31は、図6のステップS202でテスト対象端末3のOSの種類及びバージョンに応じてオブジェクトマップMpを選択する。そして、ステップS203では、テスト基盤部31は、選択したオブジェクトマップMpを参照することで、テストシナリオTsに記載の各オブジェクトをテスト対象端末3のOSの種類及びバージョンに適合した表記に変換する。これにより、テスト基盤部31は、好適に各テストシナリオTsのコードをテスト対象端末3に実行させることができる。
次に、図6のステップS203で実行する処理の具体例について、図8を参照して説明する。
図8は、ステップS203の処理内容を示す概要図である。具体的には、図8は、テストケース50に記載された命令(関数)を実行する際に、オブジェクトの表記を変換する処理の概要を示す。ここでは、ソフトウェア試験装置1は、オブジェクトマップMpとして、OS名「iOS」のバージョン6に対応するオブジェクトマップMp1と、OS名「Android(登録商標)」のバージョン4.2に対応するオブジェクトマップMp2とを有するものとする。
テストケース50には、OSの種類やバージョンに依存しないオブジェクトの名前を使用した関数が記述されている。図8の例では、テストケース50には、画面イメージ40のボタン43のオブジェクト名「buttonA」を含む関数「coupon−details.buttonA.tap()」が記載されている。そして、上述の関数の実行時には、テスト基盤部31は、ステップS202で選択したテスト対象端末3のOSの種類及びバージョンに応じたオブジェクトマップMp(Mp1又はMp2のいずれか)を参照し、テストケース50を、テスト対象端末3のOSの種類及びバージョンに対応した表記に変換する。その後、ステップS204において、テスト基盤部31は、変換後の関数のコードを、自動化ライブラリ実行部34に供給する。
図9は、テスト基盤部31によるテストケース50の変換処理、及び、自動化ライブラリ実行部34による変換処理の概要を示す図である。この例では、テスト基盤部31は、ステップS202において、テスト対象端末3のOSの種類及びバージョンに応じたオブジェクトマップMpとして、図8に示すオブジェクトマップMp1を選択したものとする。
この場合、テスト基盤部31は、オブジェクトマップMp1を参照し、テストケース50を、オブジェクトの指定方法がテスト対象端末3の実行環境用に設定されたテストケースに変換する。図9の例では、テスト基盤部31は、テストケース50の各関数の表記を、テスト対象端末3のOSの種類及びバージョンに対応したオブジェクト位置(パス)の指定情報(単に「位置情報」とも呼ぶ。)と操作内容とを示すコードに変換している。例えば、テスト基盤部31は、オブジェクトマップMp1を参照し、テストケース50に記載された関数「buttonA.tap()」のオブジェクト名「buttonA」の部分を、オブジェクトの位置情報「path(“‥/UIAWindow/UIAButton[0]”)」に変換する。これにより、テスト基盤部31は、テストケース50を、appiumなどの自動化ライブラリが提供するインターフェース(API:Application Programming Interface)に従って記述されたテストケースに変換することができる。なお、テストケース50に記載された関数「buttonA.tap()」の「tap()」は、オブジェクトに対する操作内容を示す。
そして、自動化ライブラリ実行部34は、テスト基盤部31により変換されたテストケースを、テスト対象端末3の実行環境で実行可能なプログラムへ変換し、変換後のプログラムをテスト対象端末3に実行させる。この場合、まず、自動化ライブラリ実行部34は、自動化ライブラリが提供するインターフェースに従って記述されたテストケースを、テスト対象端末3のOSの種類及びバージョンに対応したインターフェース(API)に従って記述されたテストケースに変換する。図9の例では、自動化ライブラリ実行部34は、位置情報「path(“‥/UIAWindow/UIAButton[0]”)」を、「target.frontMostApp().mainWindow().buttons()[0]」に変換している。そして、自動化ライブラリ実行部34は、テスト対象端末3のOSの種類及びバージョンに対応したインターフェース(API)に従って記述されたテストケースを、テスト対象端末3に実行させる。
[ソフトウェア試験装置の作用効果]
本実施形態に係るソフトウェア試験装置1は、設定ファイルFoにおいて指定され得る各設定に対して必要なテストシナリオTsを記憶し、読み込んだ設定ファイルFoにおいて指定された設定に基づき、実行すべきテストシナリオTsを判定する。これにより、ソフトウェア試験装置1は、設定ファイルFoでの設定内容に応じて実装される機能が異なる各テスト対象アプリApをテストする際に、単一の自動テストプログラムに基づき、必要な試験を実行することができる。即ち、この場合、ソフトウェア試験装置1は、自動テストプログラムを、テスト対象アプリApごとに用意する必要がない。
本実施形態に係るソフトウェア試験装置1は、設定ファイルFoにおいて指定され得る各設定に対して必要なテストシナリオTsを記憶し、読み込んだ設定ファイルFoにおいて指定された設定に基づき、実行すべきテストシナリオTsを判定する。これにより、ソフトウェア試験装置1は、設定ファイルFoでの設定内容に応じて実装される機能が異なる各テスト対象アプリApをテストする際に、単一の自動テストプログラムに基づき、必要な試験を実行することができる。即ち、この場合、ソフトウェア試験装置1は、自動テストプログラムを、テスト対象アプリApごとに用意する必要がない。
また、ソフトウェア試験装置1は、テスト対象端末3のOSの種類及びバージョンに対応するオブジェクトマップMpを選択し、自動化ライブラリ実行部34に渡すコード内のオブジェクトの表記を、テスト対象端末3のOSの種類及びバージョンに対応した表記に変換する。これにより、ソフトウェア試験装置1は、単一の自動テストプログラムにより、種々のOSの種類及びバージョンに対応するテスト対象端末3に対してテストシナリオTsを実行させることができる。
[変形例]
次に、上述の実施形態の変形例について説明する。以下の変形例は、組み合わせて上述の実施形態に適用してもよい。
次に、上述の実施形態の変形例について説明する。以下の変形例は、組み合わせて上述の実施形態に適用してもよい。
(変形例1)
図1のソフトウェア試験装置1の構成例は、一例であり、本発明が適用可能な構成は、これに限定されない。例えば、ソフトウェア試験装置1は、テスト対象端末3とインターフェース14を介して接続する代わりに、テスト対象端末3と同一の動作環境を模倣したエミュレータを起動し、当該エミュレータによりテストシナリオに基づくテストを実行してもよい。この場合、ソフトウェア試験装置1は、自動化ライブラリ実行部34が出力する情報を、エミュレータに入力して実行する。
図1のソフトウェア試験装置1の構成例は、一例であり、本発明が適用可能な構成は、これに限定されない。例えば、ソフトウェア試験装置1は、テスト対象端末3とインターフェース14を介して接続する代わりに、テスト対象端末3と同一の動作環境を模倣したエミュレータを起動し、当該エミュレータによりテストシナリオに基づくテストを実行してもよい。この場合、ソフトウェア試験装置1は、自動化ライブラリ実行部34が出力する情報を、エミュレータに入力して実行する。
(変形例2)
実施例に基づくソフトウェア試験装置1の処理を、複数の装置が分散して実行してもよい。例えば、テスト基盤部31の処理を実行する装置と、自動化ライブラリ実行部34の処理を実行する装置とが通信を行うことで、実施例のソフトウェア試験装置1の処理を実行してもよい。
実施例に基づくソフトウェア試験装置1の処理を、複数の装置が分散して実行してもよい。例えば、テスト基盤部31の処理を実行する装置と、自動化ライブラリ実行部34の処理を実行する装置とが通信を行うことで、実施例のソフトウェア試験装置1の処理を実行してもよい。
1…ソフトウェア試験装置
3…テスト対象端末
10…表示部
11…入力部
12…記憶部
13…制御部
14…インターフェース
3…テスト対象端末
10…表示部
11…入力部
12…記憶部
13…制御部
14…インターフェース
Claims (6)
- 実装する機能に関する設定を指定した設定ファイルを入力としてビルドされるソフトウェアの試験を行うソフトウェア試験装置であって、
前記設定ファイルにおいて指定され得る各設定に対して必要な試験項目を記憶する記憶手段と、
前記試験を行うソフトウェアの設定ファイルを取得するファイル取得手段と、
前記設定ファイルにおいて指定された設定に基づき、前記記憶手段に記憶された試験項目のうち、実行すべき試験項目を判定する試験項目判定手段と、
を有することを特徴とするソフトウェア試験装置。 - 前記記憶手段は、前記試験項目として、一連の動作を規定するテストシナリオと、前記テストシナリオにおける個々の処理を規定するテストケースとを記憶し、
前記試験項目判定手段は、前記設定ファイルにおいて指定された設定に基づき、実行すべきテストシナリオ及びテストケースを判定することを特徴とする請求項1に記載のソフトウェア試験装置。 - 前記試験を行うソフトウェアの動作環境を認識する動作環境認識手段と、
前記判定手段が実行すべきと判定した試験項目のコードを、前記動作環境に応じて変換する変換手段と、
をさらに有することを特徴とする請求項2に記載のソフトウェア試験装置。 - 前記記憶手段は、前記試験項目のコードにおいて記述されるオブジェクトを、所定の動作環境において機能する表記に変換するためのマップ情報を、前記ソフトウェアが実行され得る動作環境ごとに記憶し、
前記変換手段は、前記動作環境認識手段が認識した動作環境に対応する前記マップ情報を参照し、前記試験項目のコード内のオブジェクトの表記を変換することを特徴とする請求項3に記載のソフトウェア試験装置。 - 前記判定手段が実行すべきと判定した試験項目の処理を実行するための情報を、前記ソフトウェアを実行する端末に入力する、又は、前記端末と同一の動作環境を模倣したエミュレータに入力する試験実行手段をさらに有することを特徴とする請求項1〜4のいずれか一項に記載のソフトウェア試験装置。
- 実装する機能に関する設定を指定した設定ファイルを入力としてビルドされるソフトウェアの試験を行い、前記設定ファイルにおいて指定され得る各設定に対して必要な試験項目を記憶する記憶手段を参照するコンピュータが実行するプログラムであって、
前記試験を行うソフトウェアの設定ファイルを取得するファイル取得手段と、
前記設定ファイルにおいて指定された設定に基づき、前記記憶手段に記憶された試験項目のうち、実行すべき試験項目を判定する試験項目判定手段と、
として前記コンピュータを機能させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015137003A JP2017021475A (ja) | 2015-07-08 | 2015-07-08 | ソフトウェア試験装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015137003A JP2017021475A (ja) | 2015-07-08 | 2015-07-08 | ソフトウェア試験装置及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017021475A true JP2017021475A (ja) | 2017-01-26 |
Family
ID=57888257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015137003A Pending JP2017021475A (ja) | 2015-07-08 | 2015-07-08 | ソフトウェア試験装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017021475A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739756A (zh) * | 2018-12-27 | 2019-05-10 | 上海连尚网络科技有限公司 | 移动终端应用测试的方法及设备 |
JP6798050B1 (ja) * | 2020-01-23 | 2020-12-09 | PayPay株式会社 | 生成装置、生成方法および生成プログラム |
-
2015
- 2015-07-08 JP JP2015137003A patent/JP2017021475A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739756A (zh) * | 2018-12-27 | 2019-05-10 | 上海连尚网络科技有限公司 | 移动终端应用测试的方法及设备 |
CN109739756B (zh) * | 2018-12-27 | 2022-07-29 | 上海尚往网络科技有限公司 | 移动终端应用测试的方法及设备 |
JP6798050B1 (ja) * | 2020-01-23 | 2020-12-09 | PayPay株式会社 | 生成装置、生成方法および生成プログラム |
JP2021117591A (ja) * | 2020-01-23 | 2021-08-10 | PayPay株式会社 | 生成装置、生成方法および生成プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101314949B1 (ko) | 통합 환경 생성기 | |
JP4395761B2 (ja) | プログラムテスト支援装置およびその方法 | |
JP6354457B2 (ja) | アプリケーション開発支援装置、そのデータ処理方法、およびプログラム | |
EP1890235A1 (en) | Test case management | |
US11409631B2 (en) | Verification automation apparatus, verification automation method, and computer-readable recording medium | |
US20140082582A1 (en) | Resource Tracker | |
CN113704110A (zh) | 用户界面的自动化测试方法及装置 | |
JP6440895B2 (ja) | ソフトウェア分析装置及びソフトウェア分析方法 | |
CN113760266B (zh) | 一种功能模块文件的创建方法、创建装置和电子设备 | |
WO2021061185A1 (en) | Test automation of application | |
JP2017021475A (ja) | ソフトウェア試験装置及びプログラム | |
US20050033953A1 (en) | Systems and methods for a bootstrap mechanism for software execution | |
JP6097231B2 (ja) | プログラム生成装置および方法 | |
CN112364667B (zh) | 字符校验方法、装置、计算机设备及计算机可读存储介质 | |
JP6551082B2 (ja) | テスト支援装置、テスト支援方法およびテスト支援プログラム | |
JP4888663B2 (ja) | 検証用プログラム自動生成装置、その方法及びプログラム | |
CN113886906A (zh) | Cad图纸的加载方法、字体文件替换方法、装置和存储介质 | |
US10798181B2 (en) | Storage medium containing a program, information processing device, and processing method for deploying an application generated to a cloud environment | |
JP7212238B2 (ja) | 情報処理装置、その制御方法及びプログラム | |
JP2010204840A (ja) | ユーザインターフェース操作統合システムのカスタマイズ方法及び端末装置並びにコンピュータプログラム及び情報記録媒体 | |
US8464212B2 (en) | Method, apparatus and storage medium for customizing application | |
EP4254171A1 (en) | Generation program, generation method, and information processing device | |
JP7280475B2 (ja) | 情報処理装置及びその制御方法、プログラム | |
CN118093356A (zh) | 测试方法、装置、电子设备、存储介质及程序产品 | |
CN112558973A (zh) | 一种前端页面的生成方法及装置、存储介质、电子装置 |