JP6397800B2 - Test support system and test support method - Google Patents
Test support system and test support method Download PDFInfo
- Publication number
- JP6397800B2 JP6397800B2 JP2015123406A JP2015123406A JP6397800B2 JP 6397800 B2 JP6397800 B2 JP 6397800B2 JP 2015123406 A JP2015123406 A JP 2015123406A JP 2015123406 A JP2015123406 A JP 2015123406A JP 6397800 B2 JP6397800 B2 JP 6397800B2
- Authority
- JP
- Japan
- Prior art keywords
- test
- scenario
- log
- execution log
- execution
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は、ソフトウェアのテストを支援する技術に関する。 The present invention relates to a technique for supporting software testing.
ソフトウェアの品質を確保する上で、設計書どおりに動作するか、所望の性能を有しているかなど、ソフトウェアの動作を確認するためのテストは重要な工程である。特許文献1には、ソフトウェアのプログラムを作成するプログラム作成手段と、プログラム作成の中間過程で生成されるオブジェクト間関係記述ファイルに基づいてソフトウェアの仕様情報を生成する仕様情報生成手段と、仕様情報生成手段により生成された仕様情報に基づいてシステムテストを行う際の操作手順を定めたテストシナリオを生成するテストシナリオ生成手段と、テストシナリオ実行手段等を設けることにより、ソフトウェアのプログラム作成工程からシステムテスト工程までの一連のソフトウェア開発を効率的に行うことができるソフトウェアの開発支援装置が記載されている。
In order to ensure the quality of software, a test for confirming the operation of the software, such as whether it operates according to the design document or has a desired performance, is an important process.
しかし特許文献1に記載の技術は、テストシナリオを生成するために、あらかじめソフトウェアのプログラムを作成し、プログラム作成の中間過程で生成されるオブジェクト間関係記述情報に基づいて、ソフトウェアの仕様情報を生成しておく必要がある。
However, the technique described in
そこで本発明は、あらかじめソフトウェアのプログラムおよび仕様情報を作成することなく、テストシナリオを生成することができるテスト支援方法およびテスト支援システムを提供することを目的とする。 Accordingly, an object of the present invention is to provide a test support method and a test support system that can generate a test scenario without creating a software program and specification information in advance.
本発明の代表的な一例は次の通りである。すなわち、本発明のテスト支援システムは、ソフトウェアのテスト実行時に得られたテスト実行ログ、および、前記テスト実行ログとテス項目との対応付け情報を記憶する記憶部と、前記テスト実行ログに含まれる各レコードに対し、レコードの内容に応じて、状態または遷移を表すラベルを付与するテスト実行ログ格納処理部と、前記ラベルが付与されたテスト実行ログについて、同一内容のテスト実行ログをマージして前記記憶部に格納するテスト実行ログ群格納処理部と、前記マージされた前記テスト実行ログに対し、前記テストの開始から終了までの経路を検索することでテスト実行パスを抽出し、該抽出したテスト実行パスと前記テスト項目対応表とに基づいて、消化可能なテスト項目を含むテストシナリオを抽出し、前記記憶部に格納するテストシナリオ抽出部とを有する。 A typical example of the present invention is as follows. In other words, the test support system of the present invention is included in the test execution log obtained at the time of software test execution, a storage unit that stores association information between the test execution log and test items, and the test execution log. For each record, the test execution log storage processing unit that assigns a label representing the state or transition according to the content of the record, and the test execution log that has the label are merged with the test execution log having the same contents The test execution log group storage processing unit to be stored in the storage unit, and the merged test execution log, the test execution path is extracted by searching the path from the start to the end of the test, and the extracted Based on the test execution path and the test item correspondence table, a test scenario including digestible test items is extracted, and the storage unit And a test scenario extracting unit for storing.
本発明によれば、あらかじめソフトウェアのプログラムおよび仕様情報を作成することなく、テストシナリオを生成することができる。 According to the present invention, a test scenario can be generated without creating a software program and specification information in advance.
(第一の実施例) (First embodiment)
図1は、本実施例におけるテスト支援システム1の全体構成例を表す図である。図1に示すように、テスト支援システム1は、テスト管理装置100とテストシナリオ出力装置110とから構成される。テスト管理装置100は、ユーザインターフェイス101と、テスト実行ログ入力部102およびテスト項目対応表入力部106の各入力部と、テスト実行ログ格納処理部104およびテストシナリオ抽出部108の各処理部と、テスト実行ログ格納部103、テスト項目対応表格納部107およびテスト実行ログ郡格納部105の各格納部とを有する。
FIG. 1 is a diagram illustrating an example of the overall configuration of a
テストシナリオ出力装置110は、ユーザインターフェイス111と、テストシナリオ出力部114(処理部)と、テスト項目対応表格納部112およびテストシナリオ格納部113の各格納部とを有する。
The test
ここで、テスト実行ログ入力部102は、ユーザインターフェイス101を介してユーザにより入力されたテスト実行ログを受付け、テスト実行ログ格納部103に格納する。
Here, the test execution
テスト項目対応表入力部106は、ユーザインターフェイス101を介してユーザにより入力された、消化対象となるテスト項目とテスト実行ログとの対応関係を管理するテスト項目対応表を受付け、テスト項目対応表格納部107に格納する。テスト実行ログ格納処理部104は、テスト実行ログ格納部103に格納されたテスト実行ログを分析し、テスト実行ログ群格納部105の情報を更新する。テストシナリオ抽出部108は、テスト実行ログ郡格納部105からテストシナリオを抽出し、抽出したテストシナリオをテストシナリオ格納部113に格納する。テストシナリオ出力部114は、ユーザインターフェイス111を介してユーザにより入力されたテストシナリオ出力指示に基づき、出力指示されたテストシナリオをテストシナリオ格納部113から抽出し、出力する。
The test item correspondence
なお、テストシナリオ抽出部108により抽出されたテストシナリオのテストシナリオ格納部113への格納は、ネットワークを介して行ってもよいし、USBメモリなどの外部記憶媒体を用いて行ってもよい。同様に、テスト管理装置100のテスト項目対応表格納部107からテストシナリオ出力装置110のテスト項目対応表格納部112へのテスト項目対応表の格納処理は、ネットワークを介して行ってもよいし、USBメモリなどの外部記憶媒体を用いて行ってもよい。
The test scenario extracted by the test
図2は、テスト管理装置100およびテストシナリオ出力装置110を実現するハードウェア構成例を示す図である。図2に示すように、テスト管理装置100およびテストシナリオ出力装置110は、各種処理や演算、コンピュータ全体の制御等を行うCPU(Central Processor Unit)201と、RAM(Random Access Memory)202と、各種プログラムおよびデータを記憶するHDD(Hard Disk Drive)等の外部記憶装置203と、モニタやプリンタ等の出力装置205と、各装置間のデータの送受信を行うインターフェイス(例えば、BUS)204と、を備えた、一般的なコンピュータ(電子計算機)である。
FIG. 2 is a diagram illustrating a hardware configuration example that implements the
CPU201は、外部記憶装置203から各種プログラムをRAM202にロードし、所定のプログラムを実行することにより上述の各処理部を実現する。すなわち、CPU201は、RAM202にロードされたプログラムを実行することにより、テスト管理装置100のテスト実行ログ入力部102、テスト実行ログ格納処理部104、テスト項目対応表入力部106およびテストシナリオ抽出部108の各処理部と、テストシナリオ出力装置110のテストシナリオ出力部114をプロセスとして具現化する。また、テスト管理装置100のテスト実行ログ格納部103、テスト実行ログ群格納部105およびテスト項目対応表格納部107と、テストシナリオ出力装置110のテスト項目対応表格納部112およびテストシナリオ格納部113は、CPU201が実行処理した結果を記憶するRAM202や外部記憶装置203として実現される。
The
上記所定のプログラムは、予め外部記憶装置203に格納されていてもよいし、コンピュータが利用可能な可搬性を有する外部記憶媒体から読取装置を介して必要に応じて読み出されてもよいし、あるいは、コンピュータが利用可能な通信媒体であるネットワークまたはネットワーク上を伝搬する搬送波を利用する通信装置と接続された他のコンピュータから必要に応じてダウンロードされて外部記憶装置203に格納されるものであってもよい。
The predetermined program may be stored in advance in the
図3は、第一の実施例におけるテスト支援システム1の動作概要を示す図である。
FIG. 3 is a diagram showing an outline of the operation of the
開始
ステップ301:テスト支援システム1は、ソフトウェアのテスト実行により得られた全テスト実行ログに対して、ステップ302およびステップ303の処理を繰り返し行う。
Start Step 301: The
ステップ302:テスト実行ログ入力部102は、入力装置206を介して入力されたテスト実行ログを受付け、受付けたテスト実行ログを分析し、その分析結果をテスト実行ログ格納部103に格納する。
Step 302: The test execution
ステップ303:テスト実行ログ格納処理部104は、テスト実行ログ格納部103に格納されたテスト実行ログの分析結果に基づき、テスト実行ログ郡格納部105の情報を更新する。
Step 303: The test execution log
ステップ304:ステップ301に戻る。
Step 304: Return to
ステップ305:テストシナリオ抽出部108は、テスト実行ログ郡格納部105に格納されたテスト実行ログ群を分析する。分析して得られたテストシナリオはネットワークあるいは外部記憶媒体を介してテストシナリオ格納部113に格納される。
Step 305: The test
ステップ306:テストシナリオ出力部114は、入力装置206を介して入力されたテストシナリオの出力指示に基づき、指示されたテストシナリオをテストシナリオ格納部113から抽出し、出力装置205に出力する。
Step 306: The test
終了
図4(a)と図4(b)は、第一の実施例におけるテスト実行ログ入力部102によるテスト実行ログ格納処理420およびテスト実行ログ格納処理部104によるテスト実行ログ群格納処理421のフローを示す図である。本処理によって、各テスト実行ログに対して状態または遷移を示すラベルを付与し、また同一内容の複数のテスト実行ログをマージしてテスト実行ログ群格納部105に格納する。各テスト実行ログに対して状態または遷移を示すラベルを付与することで、テスト実行ログを状態と遷移から構成されるグラフ形式に変換することができる。
4A and 4B show the test execution
開始
[テスト実行ログ格納処理420(ステップ401から404)]
ステップ401:テスト実行ログ入力部102は、ユーザインターフェイス101を介して、ユーザにより入力されたテスト実行ログを取得する。
start
[Test execution log storage processing 420 (
Step 401: The test execution
ステップ402:テスト実行ロブ入力部102は、ステップ401において受け付けたテスト実行ログ内の全てのレコードに対して、ステップ403の分析処理を行う。
Step 402: The test execution
ステップ403:テスト実行ログは、図5のテスト実行ログ500に示すように、「テストログの生成年月日(YYYYMMDD HHmm) テスト対象装置名/機能 処理内容」の形式で出力される。そのため、テスト実行ロブ入力部102は、テスト実行ログの形式を分析し、各レコードの情報を、テストログの生成年月日、テスト対象装置名/機能、および、処理内容の単位に分割する。そしてテスト実行ロブ入力部102は、各レコードに対して、各レコードを一意に識別するログID、および、レコードの内容に基づき状態または遷移を表すラベルを付与するとともに、付与したログID、ラベル、テスト実行ログを分割した結果として得られた、装置/機能、および、処理内容を、テスト実行ログ格納部103に格納する。ラベル付与前の実行ログとラベル付与後の実行ログを図5に示す。
Step 403: As shown in the
ステップ404:ステップ402に戻る。テスト実行ログ内の全てのレコードに対してステップ403の処理が行われると、ステップ405へ進む。
Step 404: Return to Step 402. When the process of
[テスト実行ログ群格納処理421(ステップ405から414)]
ステップ405:テスト実行ログ格納処理部104は、テスト実行ログ格納部103のテスト実行ログ(ラベル付与後)501を参照し、ラベルが「状態」を示す全レコードに対し、ステップ406から408までの処理を行う。
[Test execution log group storage processing 421 (
Step 405: The test execution log
ステップ406:テスト実行ログ格納処理部104は、テスト実行ログ(ラベル付与後)501からラベル512が「状態」となっているレコードを検索する。
Step 406: The test execution log
ステップ407:検索の結果、検索されたレコードと同一情報を持つレコードがテスト実行ログ管理テーブル600に有れば、ステップ409に進み、存在しなかった場合はステップ408に進む。 Step 407: As a result of the search, if there is a record having the same information as the searched record in the test execution log management table 600, the process proceeds to step 409. Otherwise, the process proceeds to step 408.
ステップ408: テスト実行ログ格納処理部104は、テスト実行ログ(ラベル付与後)501に格納されたレコードの情報をテスト実行ログ管理テーブル600に格納するとともに、当該レコードのログIDを状態管理テーブル610の実行ログ612に格納し、
当該ログに対してさらに「状態」を一意に識別するための状態IDを付与し、これを該当レコードの状態ID611に格納する。なお、テスト実行ログ(ラベル付与後)501の内容501が、テスト開始を表す「START」、あるいは、テスト終了を表す「FALSE」、「END」である場合には、「START」あるいは「FALSE」あるいは「END」を表す情報を状態管理テーブル610の該当レコードのフラグ613に格納する。
Step 408: The test execution log
A status ID for uniquely identifying the “status” is assigned to the log, and this is stored in the
ステップ409:ステップ405に戻る。 Step 409: Return to step 405.
ステップ410:テスト実行ログ格納処理部104は、テスト実行ログ格納部103のテスト実行ログ(ラベル付与後)501を参照し、ラベルが「遷移」を示す全レコードに対し、ステップ411から413までの処理を行う。
Step 410: The test execution log
ステップ411:テスト実行ログ格納処理部104は、テスト実行ログ(ラベル付与後)501からラベル512が「遷移」となっているレコードを検索する。
Step 411: The test execution log
ステップ412:検索の結果、検索されたレコードと同一情報を持つレコードが有れば、ステップ414に進み、存在しなかった場合はステップ413に進む。 Step 412: As a result of the search, if there is a record having the same information as the searched record, the process proceeds to step 414, and if it does not exist, the process proceeds to step 413.
ステップ413: テスト実行ログ格納処理部104は、テスト実行ログ(ラベル付与後)501に格納されたレコードの情報をテスト実行ログ管理テーブル600に格納するとともに、当該レコードのログIDに対応する状態ID611を状態管理テーブル610から抽出し、抽出した状態IDおよび遷移IDを遷移管理テーブル620に格納する。
Step 413: The test execution log
ステップ414:ステップ410に戻る。 Step 414: Return to step 410.
終了
なお、ステップ401において、例えば、サーバとクライアントなど複数の装置で出力された実行ログを、別々のファイルとして入力された場合には、テスト実行ログ入力部102は、入力されたテスト実行ログ内の時刻情報等に基づき、テスト実行ログ内の各レコードを時系列に並べ、一つのテスト実行ログに纏める。
End In
また、ログを出力するテスト対象装置におけるテスト実行時のログ生成の際に、あらかじめ状態または遷移のいずれかであるかがわかるような情報を各ログレコードに対して付与しておき、ステップ403において、テスト実行ログ入力部102が、この情報を用いて各ログレコードへのラベル付与を行うようにしてもよい。また、テスト実行ログの出力内容が状態または遷移のいずれに該当するかを記載した対応表をあらかじめ作成しておき、テスト実行ログ入力部102が、この対応表を用いて各ログレコードに対してラベルを付与するようにしてもよい。また、テスト開始状態は、テスト実行時の初期値が異なる場合など必ずしも一つである必要はない。
In addition, when generating a log at the time of a test execution in a test target apparatus that outputs a log, information that indicates whether it is in a state or a transition is given in advance to each log record. The test execution
図5は、ユーザインターフェイスを介してユーザから入力されるテスト実行ログ500、および、テスト実行ログ格納部103に格納されるラベル付与後のテスト実行ログ501の一例を示す図である。
FIG. 5 is a diagram illustrating an example of the
テスト実行ログは、ユーザ(テスト実施者)がテスト対象装置、あるいは、システムを操作する過程で生成されるログであり、例えば、ユーザの画面操作や、システムの動作ログ、システムのメモリ状態などテスト項目の確認のために利用可能なログである。図5に示すテスト実行ログ500は、ユーザの画面操作ログの一例を示している。図5に示すように、テスト実行ログ500の各レコードは、ログの生成年月日と、テスト対象装置名/機能と、処理内容とから構成されている。テスト対象装置名は、ログ生成元であるテスト対象装置あるいはテスト対象システムの名称を表し、機能はテスト対象装置あるいはテスト対象システムにおけるテストログを生成する機能を表す。
The test execution log is a log generated when the user (tester) operates the test target device or the system. For example, the user's screen operation, the system operation log, the memory state of the system, etc. It is a log that can be used for item confirmation. A
また、テスト実行ログ500には、テスト実行の開始時と終了時の状態を表す情報が記載される。例えば、STARTは、テスト実行を開始したことを表し、ENDはテストに成功しテストを終了したことを表す。また図示していないが、FALSEは、テスト対象装置(あるいはシステム)の実装誤りやテストの実行手順誤りにより、テストに失敗して終了したことを表す。これらのテスト開始時と終了時の状態を表す情報は、テスト実行時に各テスト実行ログに付与してもよいし、ユーザインターフェイス101を介してテスト実行ログを入力する際に各テスト実行ログに付与してもよい。
In the
なお、テスト実行ログ500は、システム内の複数の装置、あるいは、装置内の各機能により別々に作成してもよい。このような場合には、各レコードにログ生成時間を記載して、各レコードを時系列順にテスト実行ログ格納部103に格納することで、複数の装置、あるいは、各機能により作成されたログを、テストの実行順序と同じ実行順で保管する。あるいは、システムの動作上、機能Aの後に機能Bが実行される等、実行順序が明らかな場合には、各レコードに出力元の機能、装置名称を記載しておくことで、レコードを時系列に並べるようにしてもよい。
The
テスト実行ログ(ラベル付与後)501は、テスト実行ログ入力部102により、テスト実行ログ500の各レコードを分析し、分析結果にラベルとログIDを付与しテスト実行ログ格納部103に格納した結果を示す。図5に示すように、テスト実行ログ(ラベル付与後)501は、テスト実行ログの各レコードを一意に識別するためのログID510と、ログの生成元である装置/機能511と、当該ログの内容が状態または遷移のいずれの状態であるかを表すラベル512と、実際のログの内容を表す内容513とから構成される。
The test execution log (after label assignment) 501 is a result of analyzing each record of the
装置/機能511には、ログの生成元であるテスト対象装置や機能の名称、あるいは、識別子が格納される。例えば、テスト実行ログ(ラベル付与後)501において、ログIDが「L2」のログは、「装置A」の「F1」という機能により生成されたログであることを表している。なお、テスト対象装置、あるいは、機能が一つしかない場合や、ログの内容からテスト対象装置や機能が確認可能な場合には、装置/機能511をテスト実行ログ(ラベル付与後)501のログレコードの構成要素としなくてもよい。
The device /
前述のとおり、テスト実行ログ500は、「テストログの生成年月日(YYYYMMDD HHmm) テスト対象装置名/機能 処理内容」の形式で出力される。そのため、テスト実行ログ500のテスト実行ログ(ラベル付与後)501への変換にあたっては、テスト実行ログ入力部102により、テスト実行ログ500の形式を分析し、各レコードの情報を、テストログの生成年月日、テスト対象装置名/機能、および、処理内容の単位に分割する。そして、テスト実行ログ入力部102により、各レコードに対して、各レコードを一意に識別するログIDと、状態または遷移を表すラベルを付与するとともに、付与したログIDと、ラベルと、テスト実行ログ500を分割した結果として得られた、装置/機能、および、処理内容とを、それぞれログID510、ラベル512、装置/機能511、内容513に格納する。
As described above, the
ラベル512の「状態」は、例えば、ログイン画面やトップメニュー画面など画面遷移や、システムの動作モード、あるいは、処理状態など、テスト実行中におけるテスト対象システムの動作状態を表し、「遷移」は、上記「状態」に対し、ログイン画面内でのログイン名やパスワードなどの入力、ログイン完了を表すログインボタンのクリック、あるいは、システムの動作モード間の遷移や処理の流れ等、状態間の遷移、および、その遷移における処理や操作などのイベントを表している。
The “state” of the
図5に例示したテスト実行ログ(ラベル付与後)501では、「Open Window :Login Window」や「Update Window :Top menu」など、次の画面に移動したことを表すログに対して、状態ラベルを付与している。これらは、状態と遷移のいずれかであるかがわかるようにテスト実行ログを出力する、あるいは、事前に生成されるログごとに、状態と遷移のいずれに分類するかを定めた対応表を用意しておき、この対応表を参照することでテスト実行ログの各レコードへのラベル付けを行えばよい。なお、テスト実行ログ(ラベル付与後)501には、ソフトウェアの実装誤り等によってテスト失敗となった場合のテスト実行ログや、パスワードの入力誤りによって再ログインをした場合等、テスト実行手順の誤りによって、作業手順が冗長となっているテスト実行ログ、あるいは、作業手順の誤りによって、テストそのものが失敗した場合のテスト実行ログを格納してもよい。また、テスト実行ログ(ラベル付与後)501は、テスト実行順序と、実行内容がわかればよい。よって、図5に示す例では、時刻情報など、今後の分析で不要となる情報は削除している。なお、時刻情報をテスト実行ログ(ラベル付与後)501に含める場合には、時刻情報から各状態、あるいは、遷移にかかる時間を算出し、テスト実行ログ(ラベル付与後)501に合せて保管するようにしてもよい。このような追加情報を保管しておくことで、後述するテストシナリオの抽出処理において、テスト実行に関わる実行時間を考慮した、テストシナリオの抽出が可能となる。 In the test execution log (after label assignment) 501 illustrated in FIG. 5, status labels are displayed for logs indicating that the screen has moved to the next screen, such as “Open Window: Login Window” and “Update Window: Top menu”. Has been granted. These output the test execution log so that it can be identified as either state or transition, or prepare a correspondence table that defines whether to classify the state or transition for each log generated in advance In addition, it is only necessary to label each record of the test execution log by referring to this correspondence table. Note that the test execution log (after label assignment) 501 shows a test execution log in the case of a test failure due to a software implementation error, etc., or a test execution procedure error such as a re-login due to an incorrect password input. Alternatively, a test execution log with a redundant work procedure or a test execution log when the test itself fails due to an error in the work procedure may be stored. The test execution log (after label assignment) 501 only needs to know the test execution order and the execution contents. Therefore, in the example shown in FIG. 5, information unnecessary for future analysis, such as time information, is deleted. When the time information is included in the test execution log (after label assignment) 501, the time taken for each state or transition is calculated from the time information and stored in accordance with the test execution log (after label assignment) 501. You may do it. By storing such additional information, it is possible to extract a test scenario in consideration of an execution time related to test execution in a test scenario extraction process described later.
上記の処理は、図4(a)のテスト実行ログ格納処理420において、全てのテスト実行ログ500の各レコードに対して実行することで、テスト実行時に得られた全てのログがラベルとともにテスト実行ログ格納部103に格納される。
The above processing is executed for each record of all test execution logs 500 in the test execution
図6は、テスト実行ログ群格納部105の構成の一例を示す図である。図6に示すように、テスト実行ログ群格納部105は、テスト実行ログ管理テーブル600、状態管理テーブル610および遷移管理テーブル620から構成されている。テスト実行ログ管理テーブル600は、テスト実行ログ(ラベル付与後)501の構成と同様に、ログを一意に識別するためのログID601、ログの生成元を表す装置/機能602、ラベル603、および、ログの内容を表す内容604とから構成される。同一内容の複数のテスト実行ログは、テスト実行ログ格納処理部104によりマージされてテスト実行ログ管理テーブル600に格納される。すなわち、図4(b)のステップ407とステップ412の処理により、検索レコードと同一情報を持つレコードが「有」と判定されれば、このレコードの情報はテスト実行ログ管理テーブル600には格納されない。なお、装置/機能602は、対象となる装置、あるいは、機能が一つしかない場合や、ログから確認可能な場合には、必ずしもテスト実行ログ管理テーブル600の構成要素としなくてもよい。また、テスト実行ログ(ラベル付与後)501同様、テスト実行ログ管理テーブル600には、ソフトウェアの実装誤り等によってテスト失敗となった場合のテスト実行ログや、パスワードの入力誤りによって再ログインをした場合等、テスト実行手順の誤りによって、作業手順が冗長となっているテスト実行ログ、あるいは、作業手順の誤りによって、テストそのものが失敗した場合のテスト実行ログを格納してもよい。
FIG. 6 is a diagram illustrating an example of the configuration of the test execution log
状態管理テーブル610は、ラベル512が「状態」を表す実行ログに対して、さらにこれらを一意に識別するための状態ID611、当該状態に対応する実行ログのID612を表す実行ログ612、および、テストの開始、終了状態を表すフラグ613から構成される。
The state management table 610 further includes a
遷移管理テーブル620は、実行ログの遷移を一意に識別する遷移ID621、当該遷移の開始状態のIDを表す開始622、当該遷移の終了状態のIDを表す終了623、および、対応する実行ログを表す実行ログ624から構成される。
The transition management table 620 represents a
このようなテスト実行ログ管理テーブル600、状態管理テーブル610、遷移管理テーブル620は、テスト実行ログ格納処理部104により、テスト実行ログ(ラベル付与後)501の情報に基づいて、図4に示したステップ405からステップ414までのテスト実行ログ群格納処理421を行うことにより作成される。
Such a test execution log management table 600, state management table 610, and transition management table 620 are shown in FIG. 4 by the test execution log
以下に、図4のステップ405からステップ409の処理における、テスト実行ログ管理テーブル600と状態管理テーブル610への情報格納処理について、図5と図6を用いて説明する。
Hereinafter, the information storage processing in the test execution log management table 600 and the state management table 610 in the processing from
まずステップ406において、テスト実行ログ格納処理部104は、テスト実行ログ(ラベル付与後)501からラベル512が「状態」となっているレコードを検索する。テスト実行ログ格納処理部104は、検索されたレコードと同一情報を持つレコードが存在する場合には(ステップ407で「有」)、ステップ409へ進む。一方、テスト実行ログ管理テーブル600に、検索されたレコーと同一情報を持つレコードが存在しない場合には(ステップ407で「無」)、次のステップ408において、テスト実行ログ格納処理部104は、テスト実行ログ(ラベル付与後)501に格納されたレコードの情報をテスト実行ログ管理テーブル600に格納するとともに、そのレコードのログIDを状態管理テーブル610の実行ログ612に格納し、当該実行ログに対してさらに「状態」を表す状態IDを付与し状態ID611に格納する。なお、対象となるテスト実行ログ(ラベル付与後)501の内容501が、テスト開始を表す「START」、あるいは、テスト終了を表す「FALSE」、「END」である場合には、テスト実行ログ格納処理部104は、その状態に基づいて、「START」あるいは「FALSE」あるいは「END」を表す情報をフラグ613に格納する。
First, in
次に、図4のステップ410からステップ414の処理における、テスト実行ログ管理テーブル600と遷移管理テーブル620への情報格納処理について、図5と図6を用いて説明する。なお、以下に記載の「→」は、ログの生成順序を表すものとする。
Next, information storage processing in the test execution log management table 600 and the transition management table 620 in the processing from
まずステップ410において、テスト実行ログ格納処理部104は、テスト実行ログ(ラベル付与後)501からラベル512が「状態」となっているレコードを検索し、「状態」(開始状態と呼ぶ)から次の「状態」(終了状態と呼ぶ)までに存在する、ラベル512が「遷移」となっているレコード群(遷移実行ログと呼ぶ)を抽出する。そしてテスト実行ログ格納処理部104は、ステップ411からステップ413において、実行ログ管理テーブル600および遷移管理テーブル620への情報格納処理を行う。なお、上記の開始状態から終了状態間にある遷移実行ログの抽出処理において、遷移実行ログがない場合には、遷移実行ログがないものを「空」として、ステップ411からステップ413の処理を行う。
First, in
上記の処理を具体例を用いて説明する。例えば、図5と図6に示す例では、テスト実行ログ格納処理部104は、以下のようにして、遷移管理テーブル620を作成する。まずテスト実行ログ格納処理部104は、ステップ410において、テスト実行ログ(ラベル付与後)501の最初のレコード(ログID510がL1のレコード)から順に分析を開始する。そしてテスト実行ログ格納処理部104は、ステップ411において、テスト実行ログ(ラベル付与後)501の最初のレコードから、開始状態としてログID510が「L1」を、さらに検索を行い、終了状態としてログID510が「L2」のレコードを特定する。次にテスト実行ログ格納処理部104は、「L1」から「L2」までの間にあるログを抽出する。ここでは、「L1」から「L2」の間にログが存在しないため、遷移実行ログは「空」となる。さらに、ステップ413の処理において、テスト実行ログ格納処理部104は、状態管理テーブル610の実行ログ612を参照し、「L1」と「L2」の状態ID611(「S1」、「S2」)を抽出する。そしてテスト実行ログ格納処理部104は、遷移管理テーブル620の開始622、終了623および実行ログ624を参照し、抽出した状態IDが「S1」、「S2」および当該状態の遷移実行ログ情報として「空」のレコードの有無を確認する。当該レコードが存在しない場合に(ステップ412で「無」)、テスト実行ログ格納処理部104は、ステップ413において、上記「S1」、「S2」を、それぞれ遷移管理テーブル620の開始622、終了623に格納し、遷移IDとして当該レコードを一意に識別する「E1」を付与し、付与した「E1」を遷移ID621に格納する。なお、ここでは遷移実行ログは「空」のため、実行ログ624には特に情報が格納されない。
The above processing will be described using a specific example. For example, in the example shown in FIGS. 5 and 6, the test execution log
ステップ413の処理後、テスト実行ログ格納処理部104はステップ410に戻る。そして、上記同様に、ステップ411の処理において、テスト実行ログ格納処理部104は、テスト実行ログ(ラベル付与後)501を検索し、次の開始状態としてログIDが「L2」、終了状態としてログIDが「L6」を、遷移実行ログとして、「L2」から「L6」の間にある「L3→L4→L5」を抽出する。次にテスト実行ログ格納処理部104は、状態管理テーブル610の実行ログ612を参照し、「L2」と「L6」の状態ID611(「S2」、「S3」)を抽出する。そしてテスト実行ログ格納処理部104は、遷移管理テーブル620の開始622、終了623および実行ログ624を参照し、抽出した状態IDの「S2」、「S3」および当該状態の遷移実行ログが「L3→L4→L5」のレコードの有無を確認する。当該レコードが存在しない場合に(ステップ412で「無」)、テスト実行ログ格納処理部104は、ステップ413において、上記「S2」、「S3」を、それぞれ遷移管理テーブル620の開始622、終了623に格納し、上記「L3→L4→L5」を実行ログ624に格納し、遷移IDとして当該レコードを一意に識別する「E2」を付与し、付与した「E2」を遷移ID621に格納する(ステップ413)。以上のようにして、遷移管理テーブル620が作成される。
After the processing of
図7は、テスト項目対応表格納部107に格納されるテスト項目対応表700の構成の一例を示す図である。テスト項目対応表700は、テスト項目を一意に識別するためのテストID701、テスト項目の内容を表すテスト項目702、および、当該テスト項目702の確認に用いるログを表す対象ログ703から構成される。
FIG. 7 is a diagram illustrating an example of the configuration of the test item correspondence table 700 stored in the test item correspondence
なお、対象ログ703には、対応するテスト項目702を特定するための一つ以上の対応するログが格納される。例えば、テストID701が「T1」のテスト項目702「正規ユーザがログインできること」を確認するための対象ログ703には、「Open Window:Login Window」、「Open Dialog:Login Succeed」の二つのログが格納されている。このような場合には、ログ「Open Window:Login Window」の出力後にログ「Open Dialog:Login Succeed」が出力された場合に、上記テスト項目「正規ユーザがログインできること」が消化されたものと判断する。
The
なお、図7では対象ログ703において、「→」で複数のログを表しているが、例えば、順序関係を問わず二つのログの何れかが出力される「OR」形式、あるいは、双方が出力される「AND」形式、さらにはこれらを組み合わせた形式で格納してもよい。このような対象ログ欄の記述の拡張によって、様々なテスト項目の消化可否の判断が可能となる。
In FIG. 7, in the
また、対象ログ703は、図5に記載のテスト実行ログ500内の文字列の完全一致により検索可能な形式となっているが、文字列の完全一致ではなく、正規表現のようなパターンマッチングを用いてもよい。あるいは、テスト対象装置(あるいはシステム)がテスト実行ログを生成する際に、機能や処理内容ごとにログの種別を定めておき、テスト項目対応表700にはログの種別のみを格納するようにしてもよい。
Further, the
次に、テストシナリオ抽出部108における、テストシナリオ格納部113への登録処理について、図8を用いて、その処理の概要を説明する。
Next, an outline of the registration process in the test
開始
ステップ801:すべてのテスト実行パス(テスト開始から終了までの経路)が得られるまで繰り返す。
Start Step 801: Repeat until all test execution paths (path from the start to the end of the test) are obtained.
[テスト実行ログからのシナリオ抽出処理820(ステップ802から810)]
ステップ802:テストシナリオ抽出部108は、状態管理テーブル610を検索し、STARTフラグを持つ状態を抽出する。
[
Step 802: The test
ステップ803:テストシナリオ抽出部108は、Endフラグに到達するまで、ステップ804から810までの処理を行う。
Step 803: The test
ステップ804:テストシナリオ抽出部108は、遷移管理テーブル620を検索し、開始622が、対象状態のログIDに一致する遷移を抽出する。
Step 804: The test
ステップ805:テストシナリオ抽出部108は、抽出された全ての遷移に対し、ステップ806から810までの処理を行う。
Step 805: The test
ステップ806:テストシナリオ抽出部108は、状態管理テーブル620の対象遷移の終了623から、遷移先の状態のログIDを取得する。
Step 806: The test
ステップ807:テストシナリオ抽出部108は、状態管理テーブル610から、ステップ806で取得したログIDを実行ログ欄612にもつ状態を取得し、フラグ613の内容を確認する。テストシナリオ抽出部108は、フラグ613に、“FALSE”が記載されている場合には、ステップ810に、それ以外の場合は、ステップ808に進む。
Step 807: The test
ステップ808:テストシナリオ抽出部108は、抽出した遷移、状態をパスに追加する。
Step 808: The test
ステップ809:テストシナリオ抽出部108は、分析対象の状態を遷移の終了623に記載された状態に更新する。
Step 809: The test
ステップ810:ステップ805に戻る。 Step 810: Return to step 805.
ステップ811:ステップ803に戻る。 Step 811: Return to Step 803.
ステップ812:テストシナリオ抽出部108は、抽出されたSTARTからENDまでパス(テストパス)をたどり、登録された遷移、登録された遷移に関連する状態、および、対応するレコードをテストシナリオ格納部113に登録する。
Step 812: The test
ステップ813:テストシナリオ抽出部108は、テスト項目対応表格納部112を参照し、パスの消化可能なテスト項目を抽出する。
Step 813: The test
ステップ814:ステップ801に戻る
ステップ815:テストシナリオ抽出部108は、得られたテストシナリオから、全テスト項目を消化可能となるテストシナリオの集合を抽出する。
Step 814: Returning to Step 801 Step 815: The test
終了
以上の処理によって、全テスト実行ログによって消化可能なテスト項目を全て網羅する一つ以上のテストシナリオが生成される。
End Through the above processing, one or more test scenarios that cover all test items that can be digested by all test execution logs are generated.
ステップ802の処理では、テストシナリオ抽出部108は、状態管理テーブル610の情報を分析し、フラグ欄613が「START」となる状態を検索する。例えば、図6の状態管理テーブル613では、テストシナリオ抽出部108は、フラグ欄613に「START」と記述されたレコードとして状態ID「S1」を抽出する。
In the processing of
次に、ステップ804において、テストシナリオ抽出部108は、遷移管理テーブル620を検索し、開始622に状態IDが、上記処理によって得られた状態IDと一致する全てのレコードを抽出する。例えば、上記状態IDが「S1」の状態に対しては、遷移IDが「E1」となる遷移を抽出する。なお、図6は、一部のみを例示しているため、抽出される遷移は「E1」のみであるが、開始欄622に状態ID「S1」が記載された、全遷移を抽出する。
Next, in
次にステップ806において、テストシナリオ抽出部108は、抽出した遷移の終了623を参照し、状態管理テーブル610の状態ID欄611を参照し、該当する状態を抽出する。例えば、上記遷移IDが「E1」の遷移に対しては、終了623に状態ID「S2」が記載されているため、状態管理テーブル610より、状態IDが「S2」である状態を抽出する。
Next, in
さらにステップ807において、テストシナリオ抽出部108は、抽出された状態のフラグ613を参照し、「FALSE」の記載がある場合には、ステップ810に進み、パスの検索を終了する。これは、フラグ613に「FALSE」の記載がある場合には、そのテスト実行は、手順誤り、あるいは、ソフトウェアの実装誤り等の理由によって、テスト実行に失敗したことを表しているため、テストシナリオとして抽出しないようにするためである。
Further, in
一方、ステップ807において、フラグ613に「FALSE」の記載がない場合には、テストシナリオ抽出部108は、ステップ808に進み、得られた遷移をパスに追加する。上記の例では、状態管理テーブル610の状態ID611が「S2」のレコードには、フラグ613に記載がないため、状態「S1」、遷移「E1」、状態「S2」がパスに加えられる。テストシナリオ抽出部108は、さらに状態「S2」に移り(ステップ809)、ステップ803に戻ることで、状態管理テーブル610のフラグ613に「END」の記載があるまで、上記ステップ804からステップ808までの処理を行う。
On the other hand, if “FALSE” is not described in the
上記処理の繰り返しによって得られる、テスト開始(状態管理テーブル610のフラグ613に「START」が記載された状態)から、テスト終了(状態管理テーブル610内のフラグ613に「END」が記載された状態)までに得られた状態と遷移を、テスト実行パスとして登録する(ステップ812)。例えば、上記の例では、S1→E1→S2→…のような状態と遷移が、実行パスとして抽出、登録される。
State obtained by repeating the above process from the start of the test (a state where “START” is described in the
次に、テストシナリオ抽出部108は、抽出されたテスト実行パスに対し、テスト項目対応表700を参照し、抽出されたパスに対し、消化可能なテスト項目を抽出する。
Next, the test
これには、図7のテスト項目対応表格納部107に格納されたテスト項目対応表700を用いて、以下のようにすればよい。
For this purpose, the test item correspondence table 700 stored in the test item correspondence
まず、前記抽出されたテスト実行パスは、状態ID,および、遷移IDのシーケンシャルなデータとして構成される。そこで、テストシナリオ抽出部108は、テスト実行パス内の状態ID、および、遷移IDより、状態管理テーブル610の実行ログ612、および、遷移管理テーブル620の実行ログ624を参照し、対応するログIDを抽出する。
First, the extracted test execution path is configured as sequential data of a state ID and a transition ID. Therefore, the test
テストシナリオ抽出部108は、テスト実行ログ管理テーブル600のログID601を参照し、抽出されたログIDから対応するテスト実行ログのレコードを検索し、検索されたレコードの内容604を参照することで、上記テスト実行パスに対応するテスト実行ログを再生成する。
The test
テストシナリオ抽出部108は、再生成されたテスト実行ログを用いて、テスト項目対応表700のテスト項目それぞれに対し、対象ログ703の内容から、再生成されたテスト実行ログが、各テスト項目を消化可能か否かを確認する。各テスト項目が消化可能か否かは、前述のとおり、テスト項目対応表700の対象ログ703を参照し、再生成されたテスト実行ログの内容に完全に一致するか否か、あるいは、パターンマッチングにより、一致するか否かを確認することで、消化可能か否かを判断すればよい。なお、対象ログ欄700に記載の全ての条件を満たす(ログが一致する)場合には、消化可能とする。
The test
得られた結果は、例えば図9のテストシナリオ管理テーブル900に示すように、シナリオID901と、シナリオ902と、消化可能なテスト項目903のリストの組で管理すればよい。
The obtained result may be managed as a set of a list of
ステップ801からステップ814による上記処理(ステップ805からステップ810)の繰返しによって、テスト実行ログ群格納部105に格納されているテスト実行ログに対し、全てのテスト実行パスを抽出し、抽出されたテスト実行パス、それぞれに対し、消化可能なテスト項目が抽出される。
By repeating the above processing in
次に、テストシナリオ抽出部108は、ステップ815において、抽出されたテスト実行パスをテストシナリオとして、消化可能なテスト項目を網羅するテストシナリオの組合せを抽出する。
Next, in
ここで、ステップ815におけるテストシナリオの抽出は、例えば、ステップ814までに生成されたテストシナリオごとに消化可能なテスト項目をチェックする。次にステップ814までに生成されたテストシナリオの全ての組合せに対し、消化可能なテスト項目を確認し、消化可能なテスト項目を網羅するテストシナリオセットを出力する。
Here, in the test scenario extraction in
このとき、消化可能なテスト項目を網羅するテストシナリオのセットが複数ある場合には、テストシナリオの数が最小となるようなテストシナリオのセットを出力する、あるいは、テストシナリオ内の状態、あるいは、遷移数の合計を計算し、その合計値が最小となるようなテストシナリオのセットを出力するようにしてもよい。また、あるいは、テスト実行ログ(ラベル付与後)500を作成する際、テスト実行に関わるコスト(テスト実行時間)を保存している場合には、各テストシナリオの実行時間を計算し、実行時間が最小となるテストシナリオのセットを生成してもよい。 At this time, if there are multiple test scenario sets that cover digestible test items, the test scenario set that minimizes the number of test scenarios is output, or the state within the test scenario, or The total number of transitions may be calculated, and a set of test scenarios that minimizes the total value may be output. Alternatively, when the test execution log (after labeling) 500 is created, if the cost related to test execution (test execution time) is saved, the execution time of each test scenario is calculated and the execution time is calculated. A set of minimum test scenarios may be generated.
以上のように、生成されたテストシナリオを用いて、なるべく効率的にテストを実施するためには、消化可能なテスト項目を網羅するテストシナリオのセットを出力する際に、テストシナリオのコスト(シナリオ数や実行時間等)を小さくすることが望ましい。 As described above, in order to perform the test as efficiently as possible using the generated test scenario, the cost of the test scenario (scenario) is output when a set of test scenarios covering digestible test items is output. It is desirable to reduce the number and execution time.
図13は、テストシナリオ抽出部104における全テスト項目を消化するためのテストシナリオの集合を出力するための処理の一例を示す図である。
FIG. 13 is a diagram illustrating an example of a process for outputting a set of test scenarios for digesting all test items in the test
開始
ステップ1301:テストシナリオ抽出部104は、抽出された全テストシナリオをテストシナリオ候補として記憶する。
Start Step 1301: The test
ステップ1302:テストシナリオ抽出部104は、テスト項目対応表700を参照し、全テスト項目を未消化テスト項目として記憶する。
Step 1302: The test
ステップ1303:テストシナリオ抽出部104は、未消化テスト項目が空になるまで、ステップ1304からステップ1306の処理を行う。
Step 1303: The test
ステップ1304:テストシナリオ抽出部104は、テストシナリオ候補として記憶された全テストシナリオの内、未消化テスト項目を最も多く含むテストシナリオを抽出する。
Step 1304: The test
ステップ1305:テストシナリオ抽出部104は、ステップ1304で抽出されたテストシナリオを出力テストシナリオに登録し、テストシナリオ候補から削除する。
Step 1305: The test
ステップ1306:テストシナリオ抽出部104は、ステップ1304で抽出されたテストシナリオに対応するテスト項目を未消化テスト項目から削除する。
Step 1306: The test
ステップ1307:ステップ1303に戻る
ステップ1308:テストシナリオ抽出部104は、ステップ1305において出力テストシナリオを、全テスト項目が消化可能なテストシナリオの集合として出力する。
Step 1307: Return to Step 1303 Step 1308: In
終了
テスト実行ログからのシナリオ抽出処理820によって、テスト実行パスと各テスト実行パスが消化可能なテスト項目の対応が得られる。ステップ1301では、テストシナリオ抽出部104は、ステップ814までに得られたテスト実行パスと消化可能なテスト項目をテストシナリオの候補として記憶する。また、ステップ1302では、テストシナリオ抽出部104は、全テスト項目を未消化テスト項目として記憶する。ステップ1301、および、ステップ1302は、ステップ1303からステップ1307の初期化処理に相当する。
End The
ステップ1303からステップ1307は、全テスト項目を消化可能なテストシナリの集合を出力するためのメイン処理となっている。ステップ1304からステップ1306では、テストシナリオ抽出部104は、テストシナリオ候補の中から、未消化テスト項目をもっとも多く消化するテスト項目を抽出し(ステップ1304)、抽出されたテストシナリオを出力結果に加える(ステップ1305)と共に、テストシナリオ候補、および、対応するテスト項目を未消化テスト項目から削除する(ステップ1305、および、ステップ1306)。そして、テストシナリオ抽出部104は、ステップ1304からステップ1306までの処理を、未消化のテスト項目がなくなるまで、すなわち、全テスト項目が消化可能となるまで繰り返し行う。
ステップ1304の処理によって、テストシナリオ候補の中から、消化可能なテスト項目を最も多く消化可能なテストシナリオが選ばれるため、これによって、出力されるテストシナリオの数を少なくすることが可能となる。
By the processing in
なお、ステップ1304において、全テストシナリオ候補が未消化テスト項目を含まない場合には、処理を中断してもよい。これは、ステップ814までに得られたテストシナリオでは、テスト項目対応表700に格納された全テスト項目を消化できない場合に生じる。
In
また、ステップ1304において、消化可能なテスト項目の数が最大となるテストシナリオが複数存在する場合には、そのうちの一つをランダムに選ぶ、または、前記テストシナリオの実行コスト等を参照し、テストシナリオの実行コストが少ないテストシナリオを選ぶなどしてもよい。
In
上記の処理は、ステップ814を実現するための一例であり、実際の処理は上記と異なってもよい。
The above processing is an example for realizing
上記ステップ815の説明では、抽出されたテストシナリオの全組合せに対して、最小となるテストシナリオのセットを出力する処理の一例について説明したが、上記の処理と異なってもよい。また、上記では、テスト実行ログからのシナリオ抽出処理820後に、ステップ815を行ったが、テストシナリオ実行ログからのシナリオ抽出処理820内で、消化可能なテスト項目の見積もりを行い、直接テストシナリオを抽出するようにしてもよい。
In the description of
さらに、上記の説明では、ステップ815の処理は、テストシナリオ抽出部108において行われる処理として説明したが、ステップ813までの処理をテストシナリオ抽出処理部109の処理としてもよい。この場合、ステップ814の処理は、テストシナリオ出力部114の処理として行われることとなる。
Further, in the above description, the process of
図8のステップ801は、全てのテスト実行パスが得られるまで、処理を繰り返している。しかしながら、生成されるテスト実行パスが多い場合には、テストシナリオを抽出するための処理に時間がかかる場合がある。そのような場合には、例えば、一定数のテスト項目が消化可能になるまで、あるいは、事前に定めて特定のテスト項目が消化可能になるまでテスト実行パスを抽出するようにしてもよい。
また、生成するテストシナリオ数の上限を予め定めておき、生成されたテストシナリオが上限に達するまで、テスト実行パスを抽出するようにしてもよい。
Step 801 in FIG. 8 is repeated until all test execution paths are obtained. However, when there are many test execution paths to be generated, it may take time to process the test scenario. In such a case, for example, a test execution path may be extracted until a certain number of test items can be digested or until a specific test item can be digested in advance.
Alternatively, the upper limit of the number of test scenarios to be generated may be determined in advance, and test execution paths may be extracted until the generated test scenarios reach the upper limit.
なお、各テスト実行パスにおいて、消化可能なテスト項目をチェックするには、前述のテスト項目対応表700内の対象ログ703の内容を参照し、対象ログに記載されている内容から、テスト実行パス内の各状態、遷移に紐づけられたテスト実行ログの内容と比較することで判断すればよい。
In order to check digestible test items in each test execution path, the contents of the
図8におけるテストシナリオの抽出処理820は、テスト実行ログ群格納部105に格納されているテスト実行ログが、状態管理テーブル610と遷移管理テーブル620によりグラフ形式で管理可能であるため、グラフ理論の経路検索や集合被覆問題等を解くためのアルゴリズムを用いることも可能である。
In the test
図9は、テストシナリオ格納部113に格納されたテストシナリオ管理テーブル900の構成の一例を示す図である。図9に示すように、テストシナリオ管理テーブル900は、テストシナリオを一意に特定するためのシナリオID901、テストシナリオを表すシナリオ902、および、消化可能なテスト項目を表すテスト項目欄903から構成されている。
FIG. 9 is a diagram illustrating an example of the configuration of the test scenario management table 900 stored in the test
また、テストシナリオレコード管理テーブル910は、テスト実行ログ(ラベル付与後)501と同様に、対応するテスト実行ログの各レコードを一意に特定するためのログID911、ログ生成元の装置、機能を表す装置/機能912、状態、遷移、いずれかの種別を表すラべル913、および、ログの内容914から構成されている。なお、装置/機能912は、対象となる装置、あるいは、機能が一つしかない場合や、ログから確認可能な場合には、必ずしもテストシナリオレコード管理テーブル910の構成要素としなくてもよい。
Similarly to the test execution log (after labeling) 501, the test scenario record management table 910 represents a
図9のテストシナリオ902には、図8に示したテストシナリオ抽出処理820から得られた結果が格納される。
The
図9に示すように、テストシナリオ管理テーブル900には、テストシナリオごとに消化可能なテスト項目がテスト項目903に格納されている。これによって、例えば、ソフトウェアの再開発時に影響するテスト項目、あるいは、再テストを実施したいテスト項目を指定することで、対象となるテスト項目を含むテストシナリオの抽出が可能となる。
As shown in FIG. 9, in the test scenario management table 900, test items that can be digested for each test scenario are stored in the
図10は、図8の処理によって生成されるテストシナリオの一例を示している。なお、図10に記載のテストシナリオは、図9のテストシナリオ管理テーブル900内のシナリオID901がP1となるテストシナリオの一部であり、シナリオ902に記載されたログIDの順序に従い、テストシナリオレコード管理テーブル910のログID911を参照し、一致するログIDを持つ内容欄914の内容を繋ぎ合わせることで、テストシナリオを構成する。
FIG. 10 shows an example of a test scenario generated by the process of FIG. 10 is a part of the test scenario in which the
図8の出力結果から、図9、図10に格納する情報について、以下に説明する。 Information stored in FIGS. 9 and 10 from the output result of FIG. 8 will be described below.
以下では、図8の出力結果の一つとして、「S1」→「E1」→「S2」→「E2」→「S3」→…なるテスト実行パスが得られた場合を例として説明する(状態ID,および、遷移IDは、図6を参照)。 In the following, as one of the output results of FIG. 8, a case where a test execution path of “S1” → “E1” → “S2” → “E2” → “S3” →. (See FIG. 6 for ID and transition ID).
このとき、図6の状態管理テーブル610の状態ID611と実行ログ612を参照することで、S1に対し「L1」、「S2」より「L2」、「S3」より「L6」が得られる。同様に遷移テーブル620の遷移ID621と実行ログ624を参照することで、「E2」に対し「L3→L4→L5」が得られる(「E1に」対しては、実行ログ624が空欄のため、得られるログはない)。上記の得られた結果を、テスト実行パスにしたがって並べれば、下記となる。
At this time, by referring to the
・S1:L1
・E1:
・S2:L2
・E2:L3→L4→L5
・S3:L6
:
上記より、実行ログのみを抽出すれば、テストシナリオ管理テーブル900のシナリオ902に格納する「L1→L2→L3→L4→L5→L6→…」となる。
・ S1: L1
・ E1:
・ S2: L2
E2: L3 → L4 → L5
・ S3: L6
:
From the above, if only the execution log is extracted, “L1 → L2 → L3 → L4 → L5 → L6 →...” Stored in the
さらに、テストシナリオレコード管理テーブル910を参照し、上記のテストシナリの各ログID(L1,L2、L3、L4、L5、L6、…)に対し、内容914を参照することで、下記が得られる。
Further, by referring to the test scenario record management table 910 and referring to the
L1:START
L2:Open Window:Login Window
L3:Input Text “user01” in “ID”
L4:Input Text “user01” in “Password”
L5:Click:OK
L6:Open Dialog:Login Succeed
:
上記より、内容914のみを出力することで、図10に示すテストシナリオ1000が得られる。
L1: START
L2: Open Window: Login Window
L3: Input Text “user01” in “ID”
L4: Input Text “user01” in “Password”
L5: Click: OK
L6: Open Dialog: Login Successed
:
From the above, by outputting only the
なお、図10に例示したテストシナリオ1000では、内容914のみをテストシナリオに出力した例を示したが、装置/機能912の内容も併せて出力してもよい。
In the
また、内容914の内容をそのままテストシナリオとして出力しているが、テストシナリオ1000に出力する際に、ユーザが見やすいように変換して出力してもよい。例えば、ログID911が「L4」の内容914には、「Input Text “User01” in “Password”」と記載されているが、これを「“Password”欄に“User01”を入力する。」等に変換して出力してもよい。このような変換は、あらかじめ実行ログごとに、変換方法を定めた変換表を用意しておき、テストシナリオ1000を出力する際、変換表の内容に基づき、内容914を変換して出力すればよい。
Further, although the content of the
上記の変換は、ユーザが見やすく整形するのではなく、テスト自動実行プログラムが読込み可能な形式に整形してもよい。これによって、再テストを行う際、テスト自動実行プログラムによるテスト操作の自動化が可能となる。 The above conversion may be shaped into a format that can be read by the test automatic execution program, instead of being shaped easily by the user. As a result, when the retest is performed, the test operation can be automated by the test automatic execution program.
さらに、テスト実行ログの出力時にテストデータが分離可能である場合には、これらの値が変更可能な変数として出力するようにしてもよい。例えば、図10のテストシナリオ1000では、4行目の“user01”はユーザによる入力であり、“UserId”は画面上の構成要素を表すIDとなっている。
Further, when the test data can be separated when the test execution log is output, these values may be output as variable variables. For example, in the
このとき、“user01”を“%USER_NAME%”など、ユーザ入力部等の変数であることがわかるようにテスト実行ログを生成することで、テストシナリオ作成時に、テストデータに相当する箇所を、テスト実行時に差し替えて利用できるようにしてもよい。このような操作は、例えば、前述のテストシナリオを実行スクリプトとして生成し、テスト実行を行う際、テストデータに相当する箇所を、任意に差し替えてテスト実行を行う場合などに有効である。 At this time, by generating a test execution log so that it can be understood that it is a variable such as “% USER_NAME%”, such as “user01”, “user01”, a portion corresponding to the test data can be tested when creating a test scenario. It may be used by replacing it at the time of execution. Such an operation is effective when, for example, the test scenario is generated as an execution script and the test execution is performed by arbitrarily replacing a portion corresponding to the test data when performing the test execution.
また、図10では、テストの実施内容のみを出力したが、テスト項目903に記載されたテストIDを元に、テスト項目対応表700を参照し、テストシナリオごとに確認可能なテスト項目の一覧、あるいは、テスト項目の確認箇所をテストシナリオ内に併記して出力してもよい。
In FIG. 10, only the test execution contents are output. Based on the test ID described in the
図12は、テストシナリオ出力部114が提供するユーザインターフェイス111のGUI(Graphical User Interface)の構成の一例を示す図である。
FIG. 12 is a diagram illustrating an example of a configuration of a GUI (Graphical User Interface) of the
図12に示すGUIには、ファイル、設定、および、ヘルプからなる共通メニュー領域1201、テスト項目一覧を表示するテスト項目一覧領域1202、テストシナリオの一覧を表示するテストシナリオ一覧領域1203、および、テストシナリオを表示するテストシナリオ領域1204の各表示領域から構成される。
The GUI shown in FIG. 12 includes a
また、各表示領域には、テスト項目一覧に対する操作メニュー(テスト項目一覧操作メニュー1210)、テストシナリオ一覧に対する操作メニュー(テストシナリオ一覧操作メニュー1211)、および、テストシナリオに対する操作メニュー(テストシナリオ操作メニュー1212)の各メニュー領域から構成されている。 Each display area includes an operation menu for the test item list (test item list operation menu 1210), an operation menu for the test scenario list (test scenario list operation menu 1211), and an operation menu for the test scenario (test scenario operation menu). 1212) each menu area.
共通メニュー領域1201内のファイルメニューは、例えば、テストシナリオ出力装置110が、複数のテスト対象システムに対するテストシナリオ格納部113を有する場合に、該当するテストシナリオ格納部113を特定する場合に用いる。あるいは、テスト観点が異なるなど、テストシナリオ抽出の対象となるテストシナリオのセットが複数存在する場合に、対象となるテストシナリオのセットのみを特定する場合に用いる。
The file menu in the
また、設定メニューは、各領域内の表示内容の変更や、テストシナリオをファイル出力する際のフォーマットの指定などの設定を行うためのメニューであり、ヘルプは、ソフトウェアの利用方法に関する説明やコピーライトの表示を行うためのメニューである。 The setting menu is a menu for changing the display contents in each area and setting the format when outputting the test scenario to a file. Help includes explanations on how to use the software and copyright. This is a menu for displaying.
次に、テスト項目一覧領域1202は、テスト項目対応表700から、テストID701とテスト項目702のリストを表示する領域である。ここで、テスト項目一覧領域1202内のチェック欄は、テスト実行ログの分析の結果、消化したテスト項目に対し、チェックをつけるための欄である。これによって、例えば、テスト工程中に本ツールの未消化のテスト項目の確認にも利用することが可能となる。
Next, the test
テスト項目一覧操作メニュー1210には、テスト項目一覧領域1202に関連する操作メニューが具備されている。図12に記載のテスト項目確認メニューは、選択中のテスト項目がある場合に、対応する対象ログ703の内容をダイアログ表示する。また、チェック済項目確認メニュー、未チェック項目確認メニューは、それぞれ、テスト実行ログの分析の結果、消化可能なテスト項目(すなわち、チェック欄に“レ”記載のテスト項目)、未消化のテスト項目(すなわち、チェック欄に“レ”未記載のテスト項目)のみをテスト項目一覧領域1202に表示するためのメニューである。
The test item
また、関連シナリオ表示メニューは、テスト項目一覧領域1202内の選択中のテスト項目を含むテストシナリオ一覧をテストシナリオ一覧領域1203に強調表示するためのメニューである。これは、下記のようにすればよい。
The related scenario display menu is a menu for highlighting the test scenario list including the test item being selected in the test
まず、テストシナリオ管理テーブル900を参照し、選択中のテスト項目のテストIDを含むテストシナリオを抽出する。そして、抽出されたテストシナリオのシナリオID901を元に、テストシナリオ一覧1203の対応するテストシナリオの罫線を太枠表示する、あるいは、背景色を変更する、などして、選択されたテスト項目を含むテストシナリオを強調表示する。
First, referring to the test scenario management table 900, a test scenario including the test ID of the test item being selected is extracted. Then, based on the
次に、テストシナリオ一覧領域1203は、テストシナリオ管理テーブル900に格納されているテストシナリオの一覧を表示するための領域である。テストシナリオ一覧領域1203には、シナリオを一意に特定するシナリオID,および、シナリオによって消化可能なテスト項目IDを記載するテスト項目のほか、チェック欄、有効欄、および、コメント欄からなる。
Next, the test
シナリオID欄、および、テスト項目欄は、テストシナリオ管理テーブル900より、シナリオID901、および、テスト項目903を取得し、表示する。
The scenario ID column and the test item column acquire the
また、コメント欄は、ユーザからの入力を受付け各テストシナリオに対し、テストの実施内容や留意点等のコメントを追記するための欄である。また、チェック欄、テストシナリオを実行したかどうかを入力するための欄であり、有効欄は、生成されたテストシナリオが実際のテストシナリオとして利用可能か否かの判定結果を入力するための欄である。 The comment column is a column for accepting input from the user and adding comments such as test execution contents and points to be noted to each test scenario. The check column is a column for inputting whether or not the test scenario has been executed, and the valid column is a column for inputting a determination result as to whether or not the generated test scenario can be used as an actual test scenario. It is.
本実施例では、テストシナリオはテスト実行ログの分析結果から自動的に生成される。そのため、例えばテスト項目対応表700の対象ログ703の記述が不十分な場合には、生成されたテストシナリオが、必ずしも有効なテストシナリオとなるとは限らない場合がある。そこで、図12の例では、有効欄を設けることで、無効なテストシナリオがわかるようにしている。 In this embodiment, the test scenario is automatically generated from the analysis result of the test execution log. Therefore, for example, when the description of the target log 703 of the test item correspondence table 700 is insufficient, the generated test scenario may not necessarily be an effective test scenario. Therefore, in the example of FIG. 12, an invalid column is provided so that an invalid test scenario can be recognized.
テストシナリオ一覧領域1203を操作するためのメニューである、テストシナリオ一覧操作メニュー1211には、シナリオ表示、テスト項目確認、および、シナリオ再生成の各操作メニューが具備されている。
The test scenario
シナリオ表示メニューは、テストシナリオ一覧領域1203の選択中の列を、テストシナリオ表示領域1204に表示するためのメニューであり、テスト項目確認は、選択中のテストシナリオに対し、テスト項目に記載のテストIDに対応するテスト項目の一覧をダイアログ等で表示するためのメニューである。
The scenario display menu is a menu for displaying the selected column in the test
シナリオ表示メニューは、選択中のテストシナリオを、前述の図9から図10への変換処理を用いればよい。また、テスト項目確認メニューにおける、テスト項目の確認は、前述の関連シナリオ表示とは逆に以下のように処理すればよい。 The scenario display menu may use the above-described conversion process from FIG. 9 to FIG. 10 for the test scenario being selected. In addition, the confirmation of the test item in the test item confirmation menu may be processed as follows, contrary to the related scenario display described above.
まず、テストシナリオ一覧領域1203内の選択中のテストシナリオを抽出し、テスト項目欄に記載された全テストIDを抽出する。次に抽出したテストIDから、テスト項目一覧領域1202内のIDを参照し、抽出したテストIDと一致するテスト項目を、罫線を太枠表示する、あるいは、背景色を変更するなどして、強調表示する。
First, the selected test scenario in the test
シナリオ再生成メニューは、前述の有効欄が未チェック、すなわち、無効なテストシナリオがある場合に、無効なテストシナリオに変わるテストシナリオを再生成するためのメニューである。なお、本処理を行うためには、テストシナリオ格納部113に、テストシナリオ抽出部108内で抽出された全テストシナリオを保存するようにすればよい。
The scenario regeneration menu is a menu for regenerating a test scenario that changes to an invalid test scenario when the above-mentioned valid column is unchecked, that is, when there is an invalid test scenario. In order to perform this processing, all the test scenarios extracted in the test
あるいは、テストシナリオ抽出部108、および、テスト実行ログ郡格納部105を、テストシナリオ出力装置110に含める、あるいは、テスト管理装置100、テストシナリオ出力装置110を一つの装置として、構成してもよい。
Alternatively, the test
テストシナリオ領域1204には、選択されたテストシナリオの内容を表示するための領域である。また、テストシナリオ領域に具備された操作メニュー(テストシナリオ操作メニュー1212)は、表示中のテストシナリオをファイルとして出力するためのシナリオ出力メニューがある。
The
シナリオ出力メニューを選択することで、表示中のテストシナリオを、例えばテスト手順書、あるいは、テスト自動実行スクリプトとしてファイルに出力する。なお、このような出力処理は、テストシナリオ一覧操作メニュー1211に一括出力メニューを設け、選択中、あるいは、有効なテストシナリオを全て出力するようにしてもよい。
By selecting the scenario output menu, the displayed test scenario is output to a file, for example, as a test procedure manual or a test automatic execution script. In such an output process, a batch output menu may be provided in the test scenario
なお、図12に記載のGUIは本発明を実現するソフトウェアの一例を示したものであり、必ずしも図12に記載のGUIである必要はない。
(第二の実施例)
Note that the GUI described in FIG. 12 is an example of software that implements the present invention, and is not necessarily the GUI described in FIG.
(Second embodiment)
第一の実施例では、テストシナリオ抽出部108において抽出されたテストシナリオを、直接テストシナリオ格納部113に格納する方法について説明した。第二の実施例では、テストシナリオ抽出部108において抽出されたテストシナリオを、テスト実行ログ群格納部105と同様に、状態と遷移に分けて管理する方法について説明する。これにより、テストシナリオ出力装置110におけるテストシナリオ出力部114による、テストシナリオ1000を生成する際に、テストシナリオの再構成が可能となる。
In the first embodiment, the method for directly storing the test scenario extracted by the test
図11は、第二の実施例におけるテストシナリオ格納部113の構成の一例を示す図である。第二の実施例におけるテストシナリオ格納部113は、テストシナリオレコード管理テーブル1100、状態管理テーブル1110、遷移管理テーブル1120、および、テスト項目確認箇所管理テーブル1130の各テーブルから構成される。
FIG. 11 is a diagram illustrating an example of the configuration of the test
テストシナリオレコード管理テーブル1100は、対応するテスト実行ログのレコードを一意に特定するログID1101、ログの送信元の装置/機能を管理する装置/機能1102、状態、遷移いずれかの種別を管理するラベル1103、および、テスト実行ログのレコード内容を格納する内容1104から構成される。なお、装置/機能1102は、図9と同様、対象となる装置、あるいは、機能が一つしかない場合や、ログから確認可能な場合には、必ずしもテストシナリオレコード管理テーブル1100の構成要素としなくてもよい。
The test scenario record management table 1100 includes a
状態管理テーブル1110は、状態を一意に識別するための状態ID1111、対応するテスト実行ログのレコードを格納する実行ログ1112、テストの開始状態、終了状態を格納するフラグ1113から構成され、状態管理テーブル1120は、遷移を一意に格納する遷移ID1121、遷移の開始もととなる状態を格納する開始1122、遷移の終了状態を管理する終了1123、および、対応するテスト実行ログのレコードを格納する実行ログ1124から構成される。さらに、テスト項目確認箇所管理テーブル1130は、消化可能なテスト項目を特定するためのテストID1131、および、テスト項目が消化可能か否かを判断するための状態、あるいは、遷移を管理するための確認箇所1132から構成される。
The state management table 1110 includes a
本テーブルは、第一の実施例に記載したテストシナリオ格納部113への登録処理において、抽出されたテスト実行パス上に存在する状態管理テーブル610、および、遷移管理テーブル620の全レコード、および、レコード内の実行ログ(状態管理テーブル610の実行ログ613、遷移管理テーブル620の実行ログ624)に対応するテスト実行ログ管理テーブル600内の各レコードを、テストシナリオ管理テーブル1100、状態管理テーブル1110、および、遷移管理テーブル1120にコピーすればよい。
This table includes all records of the state management table 610 and the transition management table 620 that exist on the extracted test execution path in the registration process to the test
あるいは、テスト実行パス上の実行ログを再度状態と遷移の状態に分類し、ステップ405から414と同様の処理を行うことで生成してもよい。
Alternatively, the execution log on the test execution path may be classified again into a state and a transition state, and generated by performing the same processing as in
また、テスト項目確認箇所管理テーブル1130は、テスト項目対応表700より対象ログを抽出し、状態管理テーブル1110、および、遷移管理テーブル1120内の実行ログから対応するテスト実行ログのレコードを参照することで生成されるようにすればよい。 The test item confirmation location management table 1130 extracts the target log from the test item correspondence table 700, and refers to the record of the corresponding test execution log from the execution log in the state management table 1110 and the transition management table 1120. It should just be generated by.
例えば、図7のテスト項目対応表700のテストID701がT1のテスト項目702(正規ユーザがログインできること)に対しては、以下のようにテスト項目確認箇所管理テーブル1130が作成される。まず、テスト項目対応表700の対象ログ703より、対象ログとして「Open Window:Login Window」、 「Open Dialog :Login Succeed 」を得る。次に、テストシナリオレコード管理テーブル1100の内容1104より、上記得られた対応ログと同じ内容を持つログを抽出する。図11の場合、「Open Window:Login Window」に対し、L2が、「Open Dialog :Login Succeed 」に対し、L6が抽出される。次に、状態管理テーブル1110、および、遷移管理テーブル1120を検索し、上記抽出したログIDを実行ログ欄1112、および、1124にもつ状態、遷移の状態ID、あるいは、遷移ID1121を抽出し、L2に対しS2、L6に対し、S3を得る。テストID701欄のT1をテスト項目確認箇所1130のテストID欄1131に、テスト項目対応表700の対象ログ欄703を前記得られた状態ID(または、遷移ID)に置き換えた内容(S2→S3)を確認箇所欄1132に登録する。
For example, for the
なお、第一の実施例と同様、テスト項目対応表700の対象ログ703から、テストシナリオレコード管理テーブル1100の内容欄1104を抽出する処理は、ログ内容の完全一致だけでなく、正規表現のようなパターンマッチングを用いてもよい。また、上記の状態管理テーブル1110、および、遷移管理テーブル1120からの状態ID,遷移IDの抽出において、複数の状態、あるいは、遷移が抽出された場合には、これらを全てテスト項目確認箇所管理テーブル1130に登録する。例えば、上記において、L6に対し、S3、S10が抽出されたとする。この場合には、例えば、確認箇所欄1132に、S2→(S3 OR S10)→…のように、OR記号を用い、S3,S10いずれかの場合に、テスト項目が消化可能であることを示すようにすればよい。
As in the first embodiment, the process of extracting the
テスト項目確認箇所管理テーブル1130を作成しておくことにより、図11からテストシナリオを生成する際、どのテスト項目が確認可能であるかの確認が容易になる。これは、テスト項目が消化可能か否かを判断する際、テストシナリオ管理テーブル1100の内容欄1104とテスト項目対応表700の対象ログ欄703を、逐次確認するのではなく、テスト項目確認箇所管理テーブル1130の確認箇所欄1132のみを確認することで、どのテスト項目が消化可能を判断することが可能となるためである(テスト項目対応表700、および、テストシナリオレコード管理テーブル1100の参照が不要となるだけでなく、内容欄確認のための、ログ一致、不一致の確認処理が不要となる)。
By creating the test item confirmation location management table 1130, it is easy to confirm which test items can be confirmed when generating a test scenario from FIG. This is because when determining whether or not a test item can be digested, the
第一の実施例では、テストシナリオ格納部113は、テストシナリオ抽出部108で抽出されたテストシナリオそれぞれを格納していた。第二の実施例では、抽出されたテストシナリオを、テスト実行ログ群格納部105と同様に、状態と遷移に、分類して保管する。
In the first embodiment, the test
これによって、テストシナリオ格納部113内において、各テストシナリオ内の状態、遷移の重複の排除が可能となり、必要となるデータサイズを小さく抑えることが期待できる。また、状態管理テーブル1110、および、遷移管理テーブル1120を利用した、テストシナリオの再抽出を行うことで、テストシナリオ出力部114によるテストシナリオ出力時に、テストシナリオの再構成が容易となる。
As a result, it is possible to eliminate duplication of states and transitions in each test scenario in the test
例えば、状態管理テーブル1110内の状態IDの内、フラグ1113が「START」となるラベル1113から、状態管理テーブル1110、および、遷移管理テーブル1120を用いて、状態管理テーブル1110内で、フラグ1113が「END」となるまで、検索を行い、ステップ803から810の処理と同様に、抽出された状態、および、遷移からテスト実行パスを構成する。
For example, among the state IDs in the state management table 1110, the
この時、追加入力としてテスト項目を指定し、上記テスト実行パス構成時に、追加入力されたテスト項目を必ず通りテスト実行パスをテストシナリオとして抽出する。このようにすることで、ソフトウェアの改修時に再テストが必要となるテスト項目に関連するテストシナリオの抽出等、が可能となる。 At this time, a test item is specified as an additional input, and when the test execution path is configured, the test execution path is extracted as a test scenario by passing through the additionally input test item. In this way, it is possible to extract a test scenario related to a test item that needs to be retested when the software is modified.
また、上記追加入力として指定されたテスト項目に対し、上記テスト実行パスの生成とは反対に、指定されたテスト項目を含まないようにテスト実行パスを抽出し、テストシナリオとしてもよい。この場合、例えば、ソフトウェアの改修によって、関連するテスト項目が変更になった場合等、不要なテスト項目を実施しないようなテストシナリオを抽出することが可能となる。 In addition, the test execution path may be extracted so as not to include the specified test item for the test item specified as the additional input, contrary to the generation of the test execution path. In this case, for example, it is possible to extract a test scenario in which unnecessary test items are not performed, for example, when a related test item is changed due to software modification.
以上の説明では、第一の実施例、第二の実施例ともに画面操作、および、画面遷移を例として説明したが、本発明は、画面に関わるテスト以外に活用してもよい。 In the above description, the screen operation and the screen transition have been described as examples in both the first embodiment and the second embodiment. However, the present invention may be used for tests other than screen tests.
例えば、第一の実施例のテスト項目対応表700では、画面表示項目結果を確認するテスト項目を例示したが、データベースや内部処理を確認するためのテスト項目を含んでもよい。 For example, in the test item correspondence table 700 of the first embodiment, the test item for confirming the screen display item result is exemplified, but the test item for confirming the database and internal processing may be included.
また、例えば、列車の進路制御システムでは、進路制御システムの制御処理をテストするために対象となる路線図上で、列車の走行パターン(ダイヤ)を作成し、テストを行う。この時、列車の走行パターンによって消化可能なテスト項目は異なるため、複数の走行パターンを作成することで、消化すべきテスト項目を全て消化可能になるまでテストを行う。 In addition, for example, in a train route control system, a train travel pattern (diagram) is created and tested on a target route map in order to test control processing of the route control system. At this time, since the test items that can be digested differ depending on the train traveling pattern, the test is performed until all the test items to be digested can be digested by creating a plurality of traveling patterns.
本実施例においては、上記列車走行パターンをテストシナリオとみなし、進路制御システムが生成するテスト実行ログとテスト項目を対応付ける、テスト項目対応表を作成することで、同様にテストシナリオの生成に用いてもよい。 In this embodiment, the train traveling pattern is regarded as a test scenario, and a test item correspondence table is created by associating test execution logs generated by the route control system with test items. Also good.
以上のように、本発明は画面操作、遷移に関わらずテスト実行ログからのテストシナリオの抽出に利用してよい。 As described above, the present invention may be used to extract a test scenario from a test execution log regardless of screen operations and transitions.
以上本発明の実施例について具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、図1ではテスト管理装置100とテストシナリオ出力装置110の二つの装置からなるテスト支援システムを例示したが、テスト管理装置100とテストシナリオ出力装置110を一つの装置で実現してもよい。また、上記実施例では、テスト実行ログをユーザ入力によって与えられる場合を例にとり説明したが、テスト対象装置、あるいは、システムにより生成されたテスト実行ログを、直接テスト管理装置100のテスト実行ログ入力部102へ入力するようにしてもよい。また、例えば、仮想化やクラウド環境等、テスト対象装置、あるいは、システムがネットワーク上に構築されている場合には、生成されたテスト実行ログを自動的にテスト管理装置100に送付するようにしてもよい。
Although the embodiments of the present invention have been specifically described above, the present invention is not limited to these embodiments, and various modifications can be made without departing from the scope of the present invention. For example, although FIG. 1 illustrates a test support system including two devices, the
また、上記処理部は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 The processing unit may be realized by hardware by designing a part or all of the processing unit, for example, with an integrated circuit. Further, for example, the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described. Further, a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. Further, it is possible to add, delete, and replace other configurations for a part of the configuration of each embodiment.
100・・・テスト管理装置、101、111・・・ユーザインターフェイス、102・・・テスト実行ログ入力部、103・・・テスト実行ログ格納部、104・・・テスト実行ログ格納処理部、105・・・テスト実行ログ群格納部、106・・・テスト項目対応表入力部、107、112・・・テスト項目対応表格納部、108・・・テストシナリオ抽出部、113・・・テストシナリオ格納部、114・・・テストシナリオ出力部、201・・・CPU、202・・・RAM、203・・・外部記憶装置、204・・・インターフェイス、205・・・表示装置、206・・・入力装置。
DESCRIPTION OF
Claims (8)
前記テスト実行ログに含まれる各レコードに対し、レコードの内容に応じて、状態または遷移を表すラベルを付与するテスト実行ログ格納処理部と、
前記ラベルが付与されたテスト実行ログについて、同一内容のテスト実行ログをマージして前記記憶部に格納するテスト実行ログ群格納処理部と、
前記マージされた前記テスト実行ログに対し、前記テストの開始から終了までの経路を検索することでテスト実行パスを抽出し、該抽出したテスト実行パスと前記対応付け情報とに基づいて、消化可能なテスト項目を含むテストシナリオを抽出し、前記記憶部に格納するテストシナリオ抽出部と、
を有する、
ことを特徴とするテスト支援システム。 A storage unit for storing a test execution log obtained at the time of executing a software test, and association information between the test execution log and a test item;
A test execution log storage processing unit that assigns a label indicating a state or a transition to each record included in the test execution log according to the content of the record;
A test execution log group storage processing unit that merges test execution logs having the same content and stores them in the storage unit, with respect to the test execution log assigned with the label;
A test execution path can be extracted from the merged test execution log by searching a path from the start to the end of the test, and digested based on the extracted test execution path and the association information A test scenario extraction unit that extracts a test scenario including various test items and stores the test scenario in the storage unit;
Having
Test support system characterized by that.
前記マージされたテスト実行ログにおいて、前記テストの開始から終了までの前記テスト実行パスの抽出処理を繰返し実行し、
前記抽出されたテスト実行パスごとに消化可能なテスト項目を抽出し、前記対応付け情報内の消化可能なテスト項目を網羅する前記テストシナリオを抽出し、前記記憶部に格納する
ことを特徴とする請求項1に記載のテスト支援システム。 The test scenario extraction unit
In the merged test execution log, the test execution path extraction process from the start to the end of the test is repeatedly executed,
Extracting test items that can be digested for each of the extracted test execution paths, extracting the test scenarios that cover digestible test items in the association information, and storing the test scenarios in the storage unit The test support system according to claim 1.
前記消化可能なテスト項目を網羅する前記テストシナリオから、消化可能なテスト項目を網羅するテストシナリオが複数存在する場合、前記テストを実行する際のテスト実行時間が小さくなるテストシナリオを抽出し、前記記憶部に格納する、
ことを特徴とする請求項2に記載のテスト支援システム。 The test scenario extraction unit
If there are a plurality of test scenarios covering digestible test items from the test scenarios covering the digestible test items, a test scenario that reduces the test execution time when executing the test is extracted, Store in the storage unit,
The test support system according to claim 2, wherein:
ことを特徴とする請求項1乃至請求項3の何れか1項に記載のテスト支援システム。 Based on the test scenario output instruction, the test scenario output unit further acquires a test scenario from the storage unit and outputs the test scenario.
The test support system according to any one of claims 1 to 3, wherein the test support system is characterized in that:
テスト支援システムは、ソフトウェアのテストの実行時に得られたテスト実行ログ、および、前記テスト実行ログとテスト項目との対応付け情報を記憶する記憶部を具備し、
前記テスト支援システムにより、
前記テスト実行ログに含まれる各レコードに対し、レコードの内容に応じて、状態または遷移を表すラベルを付与し、
前記ラベルが付与されたテスト実行ログについて、同一内容のテスト実行ログをマージして前記記憶部に格納し、
前記マージされた前記テスト実行ログに対し、前記テストの開始から終了までの経路を検索することでテスト実行パスを抽出し、
前記抽出したテスト実行パスと前記対応付け情報とに基づいて、消化可能なテスト項目を含むテストシナリオを抽出し、
前記抽出したテストシナリオを前記記憶部に格納する、
ことを特徴とするテスト支援方法。 A test support method in a test support system that supports software testing,
The test support system includes a storage unit that stores a test execution log obtained when executing a software test, and association information between the test execution log and a test item,
By the test support system,
For each record included in the test execution log, depending on the content of the record, a label indicating a state or transition is given,
For the test execution log given the label, merge the test execution logs of the same content and store in the storage unit,
A test execution path is extracted by searching a path from the start to the end of the test for the merged test execution log,
Based on the extracted test execution path and the association information, a test scenario including digestible test items is extracted,
Storing the extracted test scenario in the storage unit;
A test support method characterized by that.
前記マージされたテスト実行ログにおいて、前記テストの開始から終了までの前記テスト実行パスの抽出処理を繰返し実行し、
前記抽出されたテスト実行パスごとに消化可能なテスト項目を抽出し、前記対応付け情報内の消化可能なテスト項目を網羅する前記テストシナリオを抽出し、前記記憶部に格納する
ことを特徴とする請求項5に記載のテスト支援方法。 By the test support system,
In the merged test execution log, the test execution path extraction process from the start to the end of the test is repeatedly executed,
Extracting test items that can be digested for each of the extracted test execution paths, extracting the test scenarios that cover digestible test items in the association information, and storing the test scenarios in the storage unit The test support method according to claim 5.
前記消化可能なテスト項目を網羅する前記テストシナリオから、消化可能なテスト項目を網羅するテストシナリオが複数存在する場合、前記テストを実行する際のテスト実行時間が小さくなるテストシナリオを抽出し、前記記憶部に格納する、
ことを特徴とする請求項6に記載のテスト支援方法。 By the test support system,
If there are a plurality of test scenarios covering digestible test items from the test scenarios covering the digestible test items, a test scenario that reduces the test execution time when executing the test is extracted, Store in the storage unit,
The test support method according to claim 6.
前記テストシナリオの出力指示に基づき、該当テストシナリオを前記記憶部から取得し、
出力する、
ことを特徴とする請求項5乃至請求項7の何れか1項に記載のテスト支援方法。 Based on the output instruction of the test scenario by the test support system, the corresponding test scenario is acquired from the storage unit,
Output,
The test support method according to any one of claims 5 to 7, wherein the test support method is characterized in that:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015123406A JP6397800B2 (en) | 2015-06-19 | 2015-06-19 | Test support system and test support method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015123406A JP6397800B2 (en) | 2015-06-19 | 2015-06-19 | Test support system and test support method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017010180A JP2017010180A (en) | 2017-01-12 |
JP6397800B2 true JP6397800B2 (en) | 2018-09-26 |
Family
ID=57761585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015123406A Active JP6397800B2 (en) | 2015-06-19 | 2015-06-19 | Test support system and test support method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6397800B2 (en) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130191814A1 (en) * | 2010-07-27 | 2013-07-25 | Hitachi, Ltd. | Test scenario generation method, test scenario generation system, and test scenario generation program |
-
2015
- 2015-06-19 JP JP2015123406A patent/JP6397800B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017010180A (en) | 2017-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11169906B2 (en) | Extraction of problem diagnostic knowledge from test cases | |
US6986125B2 (en) | Method and apparatus for testing and evaluating a software component using an abstraction matrix | |
US7895470B2 (en) | Collecting and representing knowledge | |
US8151248B1 (en) | Method and system for software defect management | |
US9619373B2 (en) | Method and apparatus to semantically connect independent build and test processes | |
JP4395761B2 (en) | Program test support apparatus and method | |
CN104090776A (en) | Software development method and system | |
US20110016452A1 (en) | Method and system for identifying regression test cases for a software | |
US11074162B2 (en) | System and a method for automated script generation for application testing | |
JP6070847B2 (en) | Verification method, verification apparatus, and verification program | |
US7685471B2 (en) | System and method for detecting software defects | |
JP6440895B2 (en) | Software analysis apparatus and software analysis method | |
JP2015204065A (en) | Test case generation device and test case generation method | |
US11853196B1 (en) | Artificial intelligence driven testing | |
JP2000112784A (en) | Program test support device and storage medium recording program test support program | |
JP2013077124A (en) | Software test case generation device | |
JP6397800B2 (en) | Test support system and test support method | |
JP2008197897A (en) | Test pattern generation apparatus and generation method | |
JP2010055293A (en) | Verification assisting program, verification assisting apparatus, and verification assisting method | |
JP5910410B2 (en) | Schematic program test data generation apparatus and method, and program | |
WO2012066635A1 (en) | Test method, test device, and test execution program | |
JP2022068566A (en) | Test coverage update program, test coverage update method, and information processing apparatus | |
JP2021117547A (en) | Failure analysis device, multi-cluster system, failure analysis program and failure analysis method | |
JP2013228780A (en) | Information processing apparatus, information processing method and program | |
JP2021086484A (en) | Log acquisition program, log acquisition method, and information processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20170111 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20170113 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171120 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180725 |
|
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: 20180807 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180903 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6397800 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |