JP2018092361A - Test script correction apparatus and test script correction program - Google Patents

Test script correction apparatus and test script correction program Download PDF

Info

Publication number
JP2018092361A
JP2018092361A JP2016235069A JP2016235069A JP2018092361A JP 2018092361 A JP2018092361 A JP 2018092361A JP 2016235069 A JP2016235069 A JP 2016235069A JP 2016235069 A JP2016235069 A JP 2016235069A JP 2018092361 A JP2018092361 A JP 2018092361A
Authority
JP
Japan
Prior art keywords
screen
test script
index
screen element
image data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016235069A
Other languages
Japanese (ja)
Other versions
JP6645955B2 (en
Inventor
弘之 切貫
Hiroyuki Kirinuki
弘之 切貫
治門 丹野
Haruto Tanno
治門 丹野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2016235069A priority Critical patent/JP6645955B2/en
Publication of JP2018092361A publication Critical patent/JP2018092361A/en
Application granted granted Critical
Publication of JP6645955B2 publication Critical patent/JP6645955B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide an apparatus which improves accuracy of correction on a test script to be used in a test which requires screen operation.SOLUTION: A test script correction program includes: acquiring a test script including an order of executing operation instructions on screen elements of an old application screen (old screen), and including identification information of the screen elements to be operated, for each operation instruction (S102); acquiring image data in a range of the screen elements to be operated, from the old screen, for each operation instruction included in the test script (S103); and storing the image data in a storage unit, identifying a screen element to be operated in a new screen, on the basis of a comparison between image data stored in the storage unit and image data of screen elements acquired from the new screen, for a first operation instruction of the operation instructions included in the test script, indicating unused identification information on a new application screen (new screen) as a screen element to be operated, and correcting the identification information for the first operation instruction to the identification information of the specified screen element (S105).SELECTED DRAWING: Figure 4

Description

本発明は、テストスクリプト修正装置及びテストスクリプト修正プログラムに関する。   The present invention relates to a test script correction device and a test script correction program.

画面の操作を伴うテストを自動化するための手法として、Capture & ReplayやProgrammable Testingといった手法が用いられている。これらのツールは回帰テストを効率化するために用いられる。回帰テストは、アプリケーションに修正を施した際に、既存機能に悪影響が出ていないかを確認するためのテストである。回帰テストの実行を自動化することで、手動でテストを実行した場合と比較して、テスト工数の削減を期待できる。   Methods such as Capture & Replay and Programmable Testing are used as methods for automating tests involving screen operations. These tools are used to streamline regression testing. The regression test is a test for confirming that existing functions are not adversely affected when the application is modified. By automating the execution of the regression test, the test man-hours can be expected to be reduced compared to the case where the test is executed manually.

しかし、画面を出力するアプリケーション(例えば、Webアプリケーション等)に修正を施した際に、それに合わせてテストスクリプトにも修正が必要になる場合がある。テストスクリプトとは、画面の操作命令が記述されたデータである。すなわち、テストスクリプトに記述された操作命令が自動実行されることで、画面の操作を伴うテストが自動化される。テストスクリプトの修正作業に工数を要すると、期待した工数削減効果が得られない可能性が有る。   However, when an application that outputs a screen (for example, a Web application) is modified, the test script may need to be modified accordingly. The test script is data in which screen operation instructions are described. In other words, the operation command described in the test script is automatically executed, thereby automating the test with screen operation. If man-hours are required to modify the test script, the expected man-hour reduction effect may not be obtained.

テストスクリプトの修正の70%以上がロケータの修正であるといわれている(非特許文献3)。ロケータは、操作対象の画面要素(ボタン、フォームなどの画面中の一要素)を一意に特定するための識別子である。例えば、id、name、XPath等がロケータとして用いられうる。アプリケーションの修正により、画面要素のid、name、XPath等が変更された場合、テストスクリプト中の該当ロケータを修正する必要がある。   It is said that 70% or more of the correction of the test script is correction of the locator (Non-patent Document 3). The locator is an identifier for uniquely specifying a screen element to be operated (one element in a screen such as a button or a form). For example, id, name, XPath, etc. can be used as the locator. When the screen element id, name, XPath, etc. are changed due to the modification of the application, it is necessary to modify the corresponding locator in the test script.

ロケータの修正の手間を削減するための方法として、予め、ロバスト性の高いロケータを使用するようにアプリケーションを実装することで、アプリケーションのリビジョン間において、ロケータの不整合が発生しにくくすることが考えられる。ロバスト性の高いロケータとは、例えば、相対的な情報によって画面要素を識別するロケータである。第1の手法を採用しているツールとして、UFT、Ranorexなどが存在している。また、第1の手法を提案している論文は複数存在する(例えば、非特許文献1等)。   As a method to reduce the trouble of correcting the locator, it may be possible to prevent the occurrence of locator inconsistency between revisions of the application by implementing the application in advance so as to use a highly robust locator. It is done. A highly robust locator is, for example, a locator that identifies screen elements based on relative information. UFT, Ranorex, etc. exist as tools adopting the first method. There are a plurality of papers proposing the first method (for example, Non-Patent Document 1).

但し、不整合が発生しにくいロケータというのは、アプリケーションの種類や場合によって異なるため、柔軟性が低い。また、人がロケータを設定する場合、何をロケータとするのかをあらかじめ検討する必要がある。更に、アプリケーションの想定外の修正でロケータに不整合が発生すると、結局、テストスクリプトに修正が必要となる。   However, locators that are less likely to cause inconsistencies are less flexible because they vary depending on the type of application and the case. In addition, when a person sets a locator, it is necessary to consider in advance what the locator is. Furthermore, if an inconsistency occurs in the locator due to an unexpected modification of the application, the test script will eventually need to be modified.

そこで、ロケータの不整合が発生した際に、ロケータを正しい値に自動的に修正することが考えられる(例えば、非特許文献1、非特許文献2等)。ロケータの不整合とは、新リビジョンのアプリケーションの画面において、旧リビジョンのアプリケーションに対応したテストスクリプト内で指定されているロケータに対応する画面要素が無い状態をいう。   Therefore, it is conceivable to automatically correct the locator to a correct value when a locator mismatch occurs (for example, Non-Patent Document 1, Non-Patent Document 2, etc.). Locator inconsistency refers to a state where there is no screen element corresponding to the locator specified in the test script corresponding to the old revision application on the screen of the new revision application.

Maurizio Leotta, Andrea Stocco, Filippo Ricca, Paolo Tonella、Using Multi-Locators to Increase the Robustness of Web Test Cases、International Conference on Software Testing, Verification and Validation(ICST) 2015Maurizio Leotta, Andrea Stocco, Filippo Ricca, Paolo Tonella, Using Multi-Locators to Increase the Robustness of Web Test Cases, International Conference on Software Testing, Verification and Validation (ICST) 2015 Shauvik Roy Choudhary, Dan Zhao, Husayn Versee, Alessandro Orso、Water: Web Application TEst Repair、Proceedings of the First International Workshop on End-to-End Test Script Engineering(ESTE) 2011Shauvik Roy Choudhary, Dan Zhao, Husayn Versee, Alessandro Orso, Water: Web Application TEst Repair, Proceedings of the First International Workshop on End-to-End Test Script Engineering (ESTE) 2011 Why do Record/Replay Tests of Web Applications Break?, Mouna Hammoudi, Gregg Rothermel,Paolo Tonella, Software Testing, Verification and Validation (ICST) 2016Why do Record / Replay Tests of Web Applications Break ?, Mouna Hammoudi, Gregg Rothermel, Paolo Tonella, Software Testing, Verification and Validation (ICST) 2016

しかしながら、従来技術では、ロケータの修正の精度が低いという課題が有る。   However, the prior art has a problem that the accuracy of locator correction is low.

非特許文献1では、XPathに似た5つの指標(FirePath Abs,FirePath Rel,Selenium IDE(rel xpath),Montoto,ROBULA+)を用いてロケータを修正している。複数の指標を用いることで、多面的にマッチングを判定することができ、柔軟性が増す。   In Non-Patent Document 1, the locator is corrected using five indices similar to XPath (FirePath Abs, FirePath Rel, Selenium IDE (rel xpath), Montoto, ROBULA +). By using a plurality of indexes, matching can be determined from various aspects, and flexibility is increased.

しかし、これらの指標は、全てDOM(Document Object Model )ツリーの構造情報に基づいているところ、構造情報を用いた修正の短所として、構造の変化に弱いということが挙げられる。   However, these indexes are all based on the structure information of a DOM (Document Object Model) tree, and as a disadvantage of correction using the structure information, it is weak against structural changes.

例えば、画面レイアウトの大きな変更や、2つの画面要素の位置の入れ替え等といった修正が有った場合、画面要素間のマッチングができず、ロケータの修正に失敗する。これら5つの指標は似通った指標であるため、全て同様の短所を持つと考えられる。また、各指標は一致又は不一致で評価されており、一致していないが似ているといった評価を行うことができないため、柔軟性が低い。   For example, if there is a modification such as a large change in the screen layout or a change in the position of two screen elements, matching between screen elements cannot be performed, and the locator modification fails. Since these five indicators are similar, all are considered to have the same disadvantages. Further, each index is evaluated by matching or non-matching, and since it is not possible to perform an evaluation that does not match but is similar, flexibility is low.

非特許文献2では、属性、位置、Xpath等の10種類の指標を用いてロケータを修正しているが、指標の重み付けが偏っているため、実質的にXPathのみを用いているに等しい。XPathについては、一致又は不一致ではなく、レーベンシュタイン距離を用いて評価しており、位置の近さを考慮することができる。   In Non-Patent Document 2, the locator is corrected using 10 types of indices such as attribute, position, and Xpath. However, since the weighting of the indices is biased, it is substantially equivalent to using only XPath. XPath is evaluated using the Levenshtein distance, not coincidence or disagreement, and the closeness of the position can be taken into account.

しかし、実質的に1種類の指標(XPath)に依存しているため、多面的な評価を行うことができないという欠点がある。また、XPathのみに依存するため、構造情報を用いた修正の欠点がより強く現れ、レイアウト修正を伴う多くの修正に対応することが困難である。   However, since it depends substantially on one kind of index (XPath), there is a drawback that multi-faceted evaluation cannot be performed. Moreover, since it depends only on XPath, the defect of the correction using the structure information appears more strongly, and it is difficult to cope with many corrections involving layout correction.

本発明は、上記の点に鑑みてなされたものであって、画面の操作を伴うテストに利用されるテストスクリプトの修正の精度を向上させることを目的とする。   The present invention has been made in view of the above points, and an object of the present invention is to improve the accuracy of correction of a test script used for a test involving screen operation.

そこで上記課題を解決するため、テストスクリプト修正装置は、第1の画面の画面要素に対する操作命令の実行順が定義されたテストスクリプトであって、前記操作命令ごとに、操作対象の画面要素の識別情報を含むテストスクリプトを取得するテストスクリプト取得部と、前記テストスクリプトに含まれる操作命令ごとに、操作対象の画面要素の範囲の画像データを前記第1の画面から取得し、取得した画像データを記憶部に記憶する画像取得部と、前記テストスクリプトに含まれる操作命令のうち、第2の画面に関して使用されていない識別情報が操作対象の画面要素として示されている第1の操作命令について、前記記憶部に記憶されている各画像データと、前記第2の画面から取得される各画面要素の画像データとの比較に基づいて、前記第2の画面における操作対象の画面要素を特定する第1の特定部と、前記第1の操作命令に対する識別情報を、前記第1の特定部によって特定された画面要素の識別情報に修正する第1の修正部と、を有する。   Therefore, in order to solve the above-described problem, the test script correction device is a test script in which the execution order of the operation instructions for the screen elements of the first screen is defined, and for each operation instruction, the screen element to be operated is identified. A test script acquisition unit that acquires a test script including information; and, for each operation instruction included in the test script, acquires image data in a range of screen elements to be operated from the first screen, and acquires the acquired image data Among the operation instructions included in the image acquisition unit stored in the storage unit and the test script, the first operation instruction in which identification information that is not used for the second screen is indicated as the screen element to be operated, Based on a comparison between each image data stored in the storage unit and image data of each screen element acquired from the second screen The first specifying unit that specifies the screen element to be operated on the second screen and the identification information for the first operation command are corrected to the identification information of the screen element specified by the first specifying unit. A first correction unit.

画面の操作を伴うテストに利用されるテストスクリプトの修正の精度を向上させることができる。   It is possible to improve the accuracy of the correction of the test script used for the test involving the operation of the screen.

本発明の実施の形態におけるシステム構成例を説明するための図である。It is a figure for demonstrating the system configuration example in embodiment of this invention. 本発明の実施の形態におけるテスト実行装置10のハードウェア構成例を示す図である。It is a figure which shows the hardware structural example of the test execution apparatus 10 in embodiment of this invention. 本発明の実施の形態におけるテスト実行装置10の機能構成例を示す図である。It is a figure which shows the function structural example of the test execution apparatus 10 in embodiment of this invention. テスト実行装置10が実行する処理手順の一例を説明するためのフローチャートである。4 is a flowchart for explaining an example of a processing procedure executed by a test execution device 10. 旧画面の画面要素情報の取得処理の処理手順の一例を説明するためのフローチャートである。It is a flowchart for demonstrating an example of the process sequence of the acquisition process of the screen element information of an old screen. テストスクリプトの一例を説明するための図である。It is a figure for demonstrating an example of a test script. 画面要素情報記憶部122の構成例を示す図である。3 is a diagram illustrating a configuration example of a screen element information storage unit 122. FIG. 新アプリケーションのテスト処理の処理手順の一例を説明するためのフローチャートである。It is a flowchart for demonstrating an example of the process sequence of the test process of a new application. 対応要素候補の探索処理の処理手順の一例を説明するためのフローチャートである。It is a flowchart for demonstrating an example of the process sequence of the search process of a corresponding element candidate. 画像データに基づく探索処理の処理手順の一例を説明するためのフローチャートである。It is a flowchart for demonstrating an example of the process sequence of the search process based on image data. 指標値に基づく探索処理の処理手順の一例を説明するためのフローチャートである。It is a flowchart for demonstrating an example of the process sequence of the search process based on an index value. 未確定のロケータの修正処理の処理手順の一例を説明するためのフローチャートである。It is a flowchart for demonstrating an example of the process sequence of the correction process of an undetermined locator. 重みの計算処理の処理手順の一例を説明するためのフローチャートである。It is a flowchart for demonstrating an example of the process sequence of a calculation process of a weight.

以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるシステム構成例を説明するための図である。図1において、サーバ装置20及びテスト実行装置10は、例えば、LAN(Local Area Network)又はインターネット等のネットワークを介して接続される。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a diagram for explaining a system configuration example according to an embodiment of the present invention. In FIG. 1, the server device 20 and the test execution device 10 are connected via a network such as a LAN (Local Area Network) or the Internet.

サーバ装置20は、画面を生成するアプリケーションを有するコンピュータである。サーバ装置20には、当該アプリケーションの旧リビジョン及新リビジョンが実装されている。例えば、Webサーバが、サーバ装置20として利用されてもよい。なお、リビジョン間において、画面の構成(すなわち、画面に含まれる画面要素の構成)は、必ずしも一致しない。また、画面に含まれる画面要素が定義されたデータ(例えば、HTML(HyperText Markup Language)又はXML(eXtensible Markup Language)等。以下、「画面定義データ」という)内において、リビジョンを跨いで同じ画面要素(対応する画面要素)に対して付与されているロケータの同一性は保証されていない。同じ画面要素(対応する画面要素)とは、例えば、機能及び用途が同一であり、人から見たら同じであることが認識される画面要素の組をいう。   The server device 20 is a computer having an application that generates a screen. The server device 20 has an old revision and a new revision of the application. For example, a Web server may be used as the server device 20. Note that the screen configuration (that is, the configuration of screen elements included in the screen) does not necessarily match between revisions. In addition, the same screen element across revisions in data (for example, HTML (HyperText Markup Language) or XML (eXtensible Markup Language), etc., hereinafter referred to as “screen definition data”) in which screen elements included in the screen are defined. The identity of the locator assigned to (corresponding screen element) is not guaranteed. The same screen element (corresponding screen element) means, for example, a set of screen elements that have the same function and use and are recognized to be the same when viewed from a human.

なお、画面要素とは、画面(Web画面等)を構成するボタン、入力フォーム、リンクといった要素をいう。一つの画面要素は、例えば、1つのHTMLタグ又はXMLタグで定義され、入れ子構造をとりうる。ロケータとは、画面定義データ内において、各画面要素に対して識別子として付与されている情報をいう。   The screen element refers to an element such as a button, an input form, or a link that configures a screen (Web screen or the like). One screen element is defined by, for example, one HTML tag or XML tag, and can have a nested structure. The locator refers to information given as an identifier to each screen element in the screen definition data.

テスト実行装置10は、サーバ装置20のアプリケーションについて、回帰テストを実行するコンピュータである。回帰テストは、旧リビジョンのアプリケーション(以下、「旧アプリケーション」という。)によって生成される画面に対して作成されたテストスクリプトを、新リビジョンのアプリケーション(以下、「新アプリケーション」という。)によって生成される画面に対して適用することで効率的に実行される。テストスクリプトとは、画面に対する操作手順が定義されたデータであり、操作命令ごとに、操作対象の画面要素のロケータ及び操作内容を示す情報等を含むデータである。なお、PC(Personal Computer)、スマートフォン、又はタブレット端末等がテスト実行装置10として利用されてもよい。   The test execution device 10 is a computer that executes a regression test on the application of the server device 20. In the regression test, a test script created for a screen generated by an old revision application (hereinafter referred to as “old application”) is generated by a new revision application (hereinafter referred to as “new application”). It is executed efficiently by applying to the screen. The test script is data in which an operation procedure for the screen is defined, and is data including information indicating the locator of the screen element to be operated and the operation content for each operation command. A PC (Personal Computer), a smartphone, a tablet terminal, or the like may be used as the test execution device 10.

図2は、本発明の実施の形態におけるテスト実行装置10のハードウェア構成例を示す図である。図2のテスト実行装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。   FIG. 2 is a diagram illustrating a hardware configuration example of the test execution device 10 according to the embodiment of the present invention. The test execution device 10 in FIG. 2 includes a drive device 100, an auxiliary storage device 102, a memory device 103, a CPU 104, an interface device 105, a display device 106, an input device 107, and the like that are mutually connected by a bus B.

テスト実行装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。   A program for realizing processing in the test execution device 10 is provided by a recording medium 101 such as a CD-ROM. When the recording medium 101 storing the program is set in the drive device 100, the program is installed from the recording medium 101 to the auxiliary storage device 102 via the drive device 100. However, the program need not be installed from the recording medium 101 and may be downloaded from another computer via a network. The auxiliary storage device 102 stores the installed program and also stores necessary files and data.

メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってテスト実行装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。   The memory device 103 reads the program from the auxiliary storage device 102 and stores it when there is an instruction to start the program. The CPU 104 realizes functions related to the test execution device 10 in accordance with a program stored in the memory device 103. The interface device 105 is used as an interface for connecting to a network. The display device 106 displays a GUI (Graphical User Interface) or the like by a program. The input device 107 includes a keyboard and a mouse, and is used for inputting various operation instructions.

図3は、本発明の実施の形態におけるテスト実行装置10の機能構成例を示す図である。図3において、テスト実行装置10は、テストスクリプト取得部11、テスト実行部12、画面表示制御部13、指標値取得部14、画像取得部15、対応要素候補探索部16、テストスクリプト修正部17、テストスクリプト出力部18及び重み計算部19等を有する。これら各部は、テスト実行装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。   FIG. 3 is a diagram illustrating a functional configuration example of the test execution device 10 according to the embodiment of the present invention. In FIG. 3, the test execution device 10 includes a test script acquisition unit 11, a test execution unit 12, a screen display control unit 13, an index value acquisition unit 14, an image acquisition unit 15, a corresponding element candidate search unit 16, and a test script correction unit 17. A test script output unit 18 and a weight calculation unit 19. Each of these units is realized by processing that one or more programs installed in the test execution device 10 cause the CPU 104 to execute.

テスト実行装置10は、また、テストスクリプト記憶部121、画面要素情報記憶部122、画面履歴記憶部123及び重み記憶部124等を利用する。これら各記憶部は、例えば、補助記憶装置102、又はテスト実行装置10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。   The test execution apparatus 10 also uses a test script storage unit 121, a screen element information storage unit 122, a screen history storage unit 123, a weight storage unit 124, and the like. Each of these storage units can be realized using, for example, a storage device that can be connected to the auxiliary storage device 102 or the test execution device 10 via a network.

テストスクリプト取得部11は、旧アプリケーションに対応するテストスクリプトをテストスクリプト記憶部121から取得する。   The test script acquisition unit 11 acquires a test script corresponding to the old application from the test script storage unit 121.

画面表示制御部13は、旧アプリケーションの画面(以下、「旧画面」という。)及び新アプリケーションの画面(以下、「新画面」という。)のそれぞれを表示する。例えば、Webブラウザに基づいて画面表示制御部13が実現されてもよい。   The screen display control unit 13 displays an old application screen (hereinafter referred to as “old screen”) and a new application screen (hereinafter referred to as “new screen”). For example, the screen display control unit 13 may be realized based on a Web browser.

テスト実行部12は、テストスクリプト取得部11によって取得されたテストスクリプトを使用して、旧画面及び新画面のそれぞれについてテストを実行する。   The test execution unit 12 uses the test script acquired by the test script acquisition unit 11 to execute a test for each of the old screen and the new screen.

指標値取得部14は、旧画面の各画面要素について、画面要素間の類似度を評価するための複数の指標の値(指標値)を取得する。取得された指標値群は、画面要素情報記憶部122に記憶される。   The index value acquisition unit 14 acquires a plurality of index values (index values) for evaluating the similarity between screen elements for each screen element of the old screen. The acquired index value group is stored in the screen element information storage unit 122.

画像取得部15は、旧画面の各画面要素について、当該画面要素の表示範囲の画像データを取得する。取得された画像データは、画面要素情報記憶部122に記憶される。   The image acquisition unit 15 acquires image data of the display range of the screen element for each screen element of the old screen. The acquired image data is stored in the screen element information storage unit 122.

対応要素候補探索部16は、新アプリケーション(新画面)に対するテストの実行中において、テストスクリプトにおいて操作対象の画面要素を示すために指定されているいずれかのロケータが新画面に関して使用されていない場合に、新画面の画面要素の中から、当該ロケータに対応する画面要素の候補を探索する。   When the corresponding element candidate search unit 16 is executing a test for a new application (new screen), any of the locators specified for indicating the screen element to be operated in the test script is not used for the new screen. In addition, a screen element candidate corresponding to the locator is searched from the screen elements of the new screen.

テストスクリプト修正部17は、対応要素候補探索部16による探索結果に基づいて、テストスクリプトを、新アプリケーション(新画面)に対応した状態へ修正する。   The test script correcting unit 17 corrects the test script to a state corresponding to the new application (new screen) based on the search result by the corresponding element candidate searching unit 16.

テストスクリプト出力部18は、修正されたテストスクリプトを出力する。   The test script output unit 18 outputs the corrected test script.

重み計算部19は、対応要素候補探索部16が、旧画面の各画面要素と新画面の各画面要素との類似度を算出する際に利用する、各指標に対する重みを画面履歴記憶部123に記憶されている情報に基づいて統計的に計算する。計算結果(各指標の重み)は、重み記憶部124に記憶される。   The weight calculation unit 19 stores the weight for each index, which is used when the corresponding element candidate search unit 16 calculates the similarity between each screen element of the old screen and each screen element of the new screen, in the screen history storage unit 123. Statistically calculated based on stored information. The calculation result (weight of each index) is stored in the weight storage unit 124.

画面履歴記憶部123には、アプリケーションの各リビジョンの画面の画面要素ごとに、画像データ及び指標値群が記憶されている。   The screen history storage unit 123 stores image data and an index value group for each screen element of the screen of each revision of the application.

なお、テスト実行装置10が、サーバ装置20の機能を有していてもよい。この場合、サーバ装置20は配置されなくてもよい。   The test execution device 10 may have the function of the server device 20. In this case, the server device 20 may not be arranged.

以下、テスト実行装置10が実行する処理手順について説明する。図4は、テスト実行装置10が実行する処理手順の一例を説明するためのフローチャートである。   Hereinafter, a processing procedure executed by the test execution device 10 will be described. FIG. 4 is a flowchart for explaining an example of a processing procedure executed by the test execution device 10.

ステップS101において、画面表示制御部13は、サーバ装置20の旧アプリケーションの画面(旧画面)を表示装置106に表示する。具体的には、画面表示制御部13は、サーバ装置20の旧アプリケーションにアクセスして、画面定義データをダウンロードし、当該画面定義データに基づいて、旧画面を表示する。   In step S <b> 101, the screen display control unit 13 displays the old application screen (old screen) of the server device 20 on the display device 106. Specifically, the screen display control unit 13 accesses the old application of the server device 20, downloads the screen definition data, and displays the old screen based on the screen definition data.

続いて、テストスクリプト取得部11は、旧アプリケーションに対応するテストスクリプトを、テストスクリプト記憶部121から取得し、メモリ装置103に記憶する(S102)。以下において、「テストスクリプト」は、メモリ装置103に記憶されたテストスクリプトをいう。   Subsequently, the test script acquisition unit 11 acquires a test script corresponding to the old application from the test script storage unit 121 and stores it in the memory device 103 (S102). In the following, “test script” refers to a test script stored in the memory device 103.

続いて、テスト実行装置10は、旧画面の画面要素情報の取得処理を実行する(S103)。ステップS103では、旧画面の各画面要素について、他の画面要素との類似度を評価するための複数の指標のそれぞれの値(指標値)や、当該画面要素の表示範囲の画像データ等が取得される。取得された指標値群及び画像データは、画面要素情報記憶部122に記憶される。   Subsequently, the test execution device 10 executes screen element information acquisition processing for the old screen (S103). In step S103, for each screen element of the old screen, the values (index values) of a plurality of indices for evaluating the similarity to other screen elements, the image data of the display range of the screen element, and the like are acquired. Is done. The acquired index value group and image data are stored in the screen element information storage unit 122.

続いて、テスト実行装置10は、新アプリケーションのテスト処理を実行する(S104)。当該テスト処理では、旧画面に対応するテストスクリプトが新画面に適用されて、新アプリケーションについて回帰テストが実行される。回帰テストの過程において、テストスクリプト内の操作命令の操作対象とされているロケータに対応する画面要素が新画面に存在しない場合、当該ロケータに対応する画面要素の探索が行われる。当該画面要素の探索には、画面要素情報記憶部122に記憶された情報等が利用される。当該画面要素が特定された場合には、テストスクリプト内の当該ロケータが、当該画面要素のロケータによって置換(修正)される。   Subsequently, the test execution device 10 executes a test process for the new application (S104). In the test process, a test script corresponding to the old screen is applied to the new screen, and a regression test is executed for the new application. In the regression test process, when a screen element corresponding to the locator that is the operation target of the operation instruction in the test script does not exist on the new screen, the screen element corresponding to the locator is searched. For the search of the screen element, information stored in the screen element information storage unit 122 is used. When the screen element is specified, the locator in the test script is replaced (modified) by the locator of the screen element.

続いて、テストスクリプト出力部18は、ステップS104において修正されたテストスクリプトを出力する(S105)。例えば、当該テストスクリプトが、新リビジョンに対応するテストスクリプトとして、テストスクリプト記憶部121に記憶される。   Subsequently, the test script output unit 18 outputs the test script corrected in step S104 (S105). For example, the test script is stored in the test script storage unit 121 as a test script corresponding to the new revision.

続いて、ステップS103の詳細について説明する。図5は、旧画面の画面要素情報の取得処理の処理手順の一例を説明するためのフローチャートである。   Next, details of step S103 will be described. FIG. 5 is a flowchart for explaining an example of the processing procedure of the acquisition process of the screen element information of the old screen.

ステップS201において、テスト実行部12は、テストスクリプト内に次の命令cが有るか否かを判定する。次の命令cとは、未実行の命令の中で実行順が先頭の命令をいう。   In step S201, the test execution unit 12 determines whether the next instruction c is present in the test script. The next instruction c is an instruction that is first in execution order among unexecuted instructions.

図6は、テストスクリプトの一例を説明するための図である。図6において、画面g1は、表示される画面の一例である。画面定義データh1は、画面g1の一部(画面要素e1)についての画面定義データである。テーブルT1は、画面g1に関するテストスクリプトを表形式で表現したものである。   FIG. 6 is a diagram for explaining an example of a test script. In FIG. 6, a screen g1 is an example of a displayed screen. The screen definition data h1 is screen definition data for a part of the screen g1 (screen element e1). The table T1 represents the test script related to the screen g1 in a table format.

テーブルT1において、各行が、1つの操作に対応する。すなわち、テストスクリプトは、操作ごとに、命令、ロケータ、及び値等を含む。命令は、操作の種別を示す情報である。図6では、「type」、「click」等が例示されている。「type」は、操作対象の画面要素への値の入力を意味する。「click」は、操作対象の画面要素のクリックを意味する。ロケータは、操作対象の画面要素のロケータである。値は、操作対象の画面要素に適用される値である。このように、テストスクリプトには、操作内容(命令及び値)と操作対象(ロケータ)とが操作ごとに含まれている。また、テストスクリプトは、各操作の順番も定義されている。例えば、テーブルT1では、上の行から先に実行される。   In the table T1, each row corresponds to one operation. That is, the test script includes an instruction, a locator, a value, and the like for each operation. The command is information indicating the type of operation. In FIG. 6, “type”, “click”, and the like are illustrated. “Type” means input of a value to the screen element to be operated. “Click” means a click on the screen element to be operated. The locator is a locator of the screen element to be operated. The value is a value applied to the screen element to be operated. As described above, the test script includes the operation content (command and value) and the operation target (locator) for each operation. The test script also defines the order of operations. For example, in the table T1, the process is executed from the top line first.

テストスクリプトに次の命令cが有る場合(S201でYes)、テスト実行部12は、旧画面において、命令cに対応する画面要素に対して命令cを実行する(S202)。   When the next instruction c is present in the test script (Yes in S201), the test execution unit 12 executes the instruction c on the screen element corresponding to the instruction c on the old screen (S202).

続いて、指標値取得部14は、命令cによって操作された画面要素(以下、「対象要素」とい。)を特定する(S203)。対象要素は、例えば、命令cに対応するロケータによって特定されてもよい。続いて、指標値取得部14は、対象要素に関する各指標値を、旧画面の画面定義データから取得する(S204)。ここでは、複数の指標の指標値が取得される。   Subsequently, the index value acquisition unit 14 specifies a screen element operated by the instruction c (hereinafter referred to as “target element”) (S203). For example, the target element may be specified by a locator corresponding to the instruction c. Subsequently, the index value acquisition unit 14 acquires each index value related to the target element from the screen definition data of the old screen (S204). Here, index values of a plurality of indices are acquired.

指標は、例えば、画面要素の属性(id、type、class、name、タグ名等)、画面要素の位置情報(XPath、x座標、y座標、横幅、縦幅)、画面要素に関連するテキスト(リンクテキスト、付近のテキスト、URL等)である。なお、リンクテキストは、画面要素がリンクである場合の指標であり、当該リンクが付与された文字列を示す。付近のテキストとは、画面要素の表示範囲の周囲(例えば、上、下、左、右等の所定の画素数の範囲内)に表示されるテキストである。画面要素の表示範囲とは、例えば、当該画面要素の最小外接矩形でもよい。なお、20種類程度の指標のそれぞれについて、指標値が取得されてもよい。   The index includes, for example, screen element attributes (id, type, class, name, tag name, etc.), screen element position information (XPath, x coordinate, y coordinate, horizontal width, vertical width), text associated with the screen element ( Link text, nearby text, URL, etc.). The link text is an index when the screen element is a link, and indicates a character string to which the link is assigned. The nearby text is text that is displayed around the display range of the screen element (for example, within a predetermined number of pixels such as up, down, left, and right). The display range of the screen element may be, for example, the minimum circumscribed rectangle of the screen element. An index value may be acquired for each of about 20 types of indices.

続いて、指標値取得部14は、取得された指標値群を、対象要素に関連付けて画面要素情報記憶部122に記憶する(S205)。   Subsequently, the index value acquisition unit 14 stores the acquired index value group in the screen element information storage unit 122 in association with the target element (S205).

続いて、画像取得部15は、旧画面のスクリーンショット(画像データ)を取得する(S206)。続いて、画像取得部15は、当該スクリーンショットから、対象要素の表示範囲の画像データを取得する(切り出す)(S207)。なお、対象要素の表示範囲は、例えば、旧画面の画面定義データに含まれている、対象要素の位置情報等に基づいて特定可能である。続いて、画像取得部15は、取得した画像データを、対象要素に関連付けて画面要素情報記憶部122に記憶する(S208)。   Subsequently, the image acquisition unit 15 acquires a screen shot (image data) of the old screen (S206). Subsequently, the image acquisition unit 15 acquires (cuts out) image data of the display range of the target element from the screen shot (S207). The display range of the target element can be specified based on the position information of the target element included in the screen definition data of the old screen, for example. Subsequently, the image acquisition unit 15 stores the acquired image data in the screen element information storage unit 122 in association with the target element (S208).

ステップS202以降が、テストスクリプトの全ての命令について実行されると(S201でNo)、図5の処理手順は終了する。その結果、画面要素情報記憶部122には、旧画面の画面要素のうち、テストスクリプトによって操作された各画面要素の指標値群及び画像データが記憶される。   When step S202 and subsequent steps are executed for all instructions in the test script (No in S201), the processing procedure in FIG. 5 ends. As a result, the screen element information storage unit 122 stores an index value group and image data of each screen element operated by the test script among the screen elements of the old screen.

図7は、画面要素情報記憶部122の構成例を示す図である。図7に示されるように、画面要素情報記憶部122には、テストスクリプトにおいて実行された命令の順番で、操作対象とされた画面要素ごとに、指標値群及び画像データが記憶される。   FIG. 7 is a diagram illustrating a configuration example of the screen element information storage unit 122. As illustrated in FIG. 7, the screen element information storage unit 122 stores an index value group and image data for each screen element to be operated in the order of instructions executed in the test script.

続いて、図4のステップS104の詳細について説明する。図8は、新アプリケーションのテスト処理の処理手順の一例を説明するためのフローチャートである。   Next, details of step S104 in FIG. 4 will be described. FIG. 8 is a flowchart for explaining an example of a processing procedure of a test process for a new application.

ステップS301において、画面表示制御部13は、サーバ装置20の新アプリケーションの画面(新画面)を表示装置106に表示する。具体的には、画面表示制御部13は、サーバ装置20の新アプリケーションにアクセスして、画面定義データをダウンロードし、当該画面定義データに基づいて、新画面を表示する。   In step S <b> 301, the screen display control unit 13 displays a new application screen (new screen) of the server device 20 on the display device 106. Specifically, the screen display control unit 13 accesses a new application of the server device 20, downloads screen definition data, and displays a new screen based on the screen definition data.

続いて、テストスクリプトの最初の命令から順に、ステップS302以降が実行される。当該テストスクリプトは、ステップS102においてメモリ装置103に記憶されたテストスクリプトである。すなわち、当該テストスクリプトは、旧アプリケーションに対応するテストスクリプトである。   Subsequently, step S302 and subsequent steps are executed in order from the first instruction of the test script. The test script is a test script stored in the memory device 103 in step S102. That is, the test script is a test script corresponding to the old application.

ステップS302において、テスト実行部12は、テストスクリプト内に次の命令cが有るか否かを判定する。テストスクリプトに次の命令cが有る場合(S302でYes)、テスト実行部12は、新画面において、命令cに対応する画面要素に対して命令cを実行する(S303)。   In step S302, the test execution unit 12 determines whether or not the next instruction c is present in the test script. When the test script includes the next command c (Yes in S302), the test execution unit 12 executes the command c on the screen element corresponding to the command c on the new screen (S303).

続いて、テスト実行部12は、命令cがアサーションであるか否かを判定する(S304)。アサーションとは、アプリケーションの状態(画面の状態)が、期待通りであることを検証するための命令である。例えば、一まとまりの命令群ごとにアサーションがテストスクリプトに含まれている。例えば、図6のテーブルT1において、最後の行の命令は、アサーションである。命令がアサーションである場合、値は、期待値を意味する。但し、テストスクリプトはアサーションを含まなくてもよい。   Subsequently, the test execution unit 12 determines whether or not the instruction c is an assertion (S304). An assertion is a command for verifying that an application state (screen state) is as expected. For example, an assertion is included in the test script for each group of instructions. For example, in the table T1 of FIG. 6, the last line instruction is an assertion. If the instruction is an assertion, the value means the expected value. However, the test script may not include an assertion.

命令cがアサーションでない場合(S304でNo)、テスト実行部12は、命令cのロケータを有する画面要素が新画面に含まれているか否かを判定する(S305)。当該判定は、新画面の画面定義データを参照することで可能である。命令cのロケータを有する画面要素が新画面に含まれている場合(S305でNo)、ステップS302以降が繰り返される。   When the instruction c is not an assertion (No in S304), the test execution unit 12 determines whether or not the screen element having the locator of the instruction c is included in the new screen (S305). This determination can be made by referring to the screen definition data of the new screen. When the screen element having the locator of the instruction c is included in the new screen (No in S305), Step S302 and subsequent steps are repeated.

命令cのロケータを有する画面要素が新画面に含まれていない場合(S305でYes)、対応要素候補探索部16は、当該ロケータ(以下、「元ロケータ」という。)について、対応要素候補探索処理を実行する(S306)。対応要素候補探索処理では、新画面の画面要素の中で、命令cのロケータに対応する画面要素(以下、「対応要素」という。)の候補(以下、「対応要素候補」という。)が探索される。探索において、新画面の画面要素の中で対応要素候補である可能性が認められる画面要素については、旧画面において当該ロケータを有する画面要素(以下、「元要素」という。)との間で類似度が算出される。類似度の詳細については後述される。   When the screen element having the locator of the instruction c is not included in the new screen (Yes in S305), the corresponding element candidate search unit 16 performs a corresponding element candidate search process for the locator (hereinafter referred to as “original locator”). Is executed (S306). In the corresponding element candidate search process, screen element candidates (hereinafter referred to as “corresponding element candidates”) corresponding to the locator of the instruction c are searched for in the screen elements of the new screen (hereinafter referred to as “corresponding element candidates”). Is done. In the search, a screen element that is recognized as a corresponding element candidate among screen elements of the new screen is similar to a screen element having the locator on the old screen (hereinafter referred to as “original element”). The degree is calculated. Details of the similarity will be described later.

なお、命令cのロケータを有する画面要素が新画面に含まれていない場合、ステップS303において、命令cの実行に失敗する。したがって、ステップS305は、命令cの実行に失敗した場合に実行されてもよい。   If the screen element having the locator of the instruction c is not included in the new screen, the execution of the instruction c fails in step S303. Therefore, step S305 may be executed when the execution of the instruction c fails.

続いて、テストスクリプト修正部17は、対応要素候補の有無を判定する(S307)。すなわち、対応要素候補探索処理において、1以上の対応要素候補が特定(発見)されたか否かが判定される。対応要素候補が無い場合(SS307でNo)、図5の処理手順は終了する。   Subsequently, the test script correcting unit 17 determines whether or not there is a corresponding element candidate (S307). That is, in the corresponding element candidate search process, it is determined whether or not one or more corresponding element candidates have been specified (discovered). If there is no corresponding element candidate (No in SS307), the processing procedure in FIG. 5 ends.

一方、1以上の対応要素候補が特定された場合(S308でYes)、テストスクリプト修正部17は、対応要素候補の中で類似度が最大である対応要素候補のロケータによって、テストスクリプト内の命令cのロケータを修正する(S309)。すなわち、テストスクリプト内の命令cのロケータが、当該対応要素候補のロケータによって置換される。続いて、テスト実行部12は、命令cを実行する(S309)。ステップS309に続いてステップS302以降が繰り返される。このように、本実施の形態では、ロケータに対応する画面要素が見つからない命令が実行された場合、その時点でロケータの修正が行われて、テストが継続される。   On the other hand, when one or more corresponding element candidates are identified (Yes in S308), the test script correcting unit 17 uses the locator of the corresponding element candidate having the maximum similarity among the corresponding element candidates to execute an instruction in the test script. The locator of c is corrected (S309). That is, the locator of the instruction c in the test script is replaced with the corresponding element candidate locator. Subsequently, the test execution unit 12 executes the instruction c (S309). Subsequent to step S309, steps after step S302 are repeated. As described above, in the present embodiment, when an instruction in which a screen element corresponding to a locator is not found is executed, the locator is corrected at that time and the test is continued.

一方、命令cがアサーションである場合(S304でYes)、テストスクリプト修正部17は、アサーションの実行結果が合格であるか否かを判定する(S310)。すなわち、ステップS303において実行された命令c(アサーション)において、新アプリケーション(新画面)の状態が、期待通りであったか否かが判定される。当該判定は、アサーションの実行結果に基づいて可能である。   On the other hand, when the instruction c is an assertion (Yes in S304), the test script correcting unit 17 determines whether or not the execution result of the assertion is acceptable (S310). That is, it is determined whether or not the state of the new application (new screen) is as expected in the instruction c (assertion) executed in step S303. This determination can be made based on the execution result of the assertion.

アサーションの実行結果が合格である場合(S310でYes)、ステップS302以降が繰り返される。アサーションの実行結果が合格でない場合(S310でNo)、テストスクリプト修正部17は、未確定のロケータの修正処理を実行する(S311)。未確定のロケータとは、合格しなかったアサーションが、N番目のアサーションであるとすると、N−1番目のアサーションからN番目のアサーションの間に含まれている各命令のロケータをいう。但し、N=1の場合、N番目のアサーションより前の全ての命令のロケータが、未確定のロケータとなる。   When the execution result of the assertion is acceptable (Yes in S310), Step S302 and subsequent steps are repeated. If the execution result of the assertion is not acceptable (No in S310), the test script correcting unit 17 executes an undetermined locator correcting process (S311). An indeterminate locator is a locator for each instruction included between the (N-1) th assertion and the Nth assertion, assuming that the assertion that did not pass is the Nth assertion. However, when N = 1, the locators of all instructions prior to the Nth assertion become undetermined locators.

すなわち、アサーションに合格した場合、当該アサーションより前の命令のロケータは確定される。アサーションに合格したということは、新アプリケーション(新画面)の状態が、期待通りであることである。したがって、それまでに実行された各命令のいずれかのロケータについて、ステップS308において修正されていたとしても、その修正は正しかったことが確定されるからである。一方、アサーションに合格しなかった場合、ステップS308における修正が誤りであった可能性が有る。そこで、この場合、ステップS311が実行される。   That is, if the assertion passes, the locator for the instruction prior to the assertion is determined. The fact that the assertion has passed means that the state of the new application (new screen) is as expected. Therefore, even if any of the locators executed so far has been corrected in step S308, it is determined that the correction was correct. On the other hand, if the assertion does not pass, there is a possibility that the correction in step S308 was an error. In this case, step S311 is executed.

ステップS311に続いて、ステップS301以降が改めて実行される。すなわち、アサーションに合格しなかった場合、未確定のロケータの修正処理が実行された上で、再度、新画面がダウンロードされてテストスクリプトが最初から実行される。アサーションに合格しなかった場合、新アプリケーションの内部状態が命令cまで実行された際に本来あるべき状態でない可能性が有り、そのままテストを継続したとしても、正しいテストを行えない可能性が有るからである。   Subsequent to step S311, steps after step S301 are executed again. In other words, if the assertion does not pass, an indeterminate locator correction process is executed, a new screen is downloaded again, and the test script is executed from the beginning. If the assertion does not pass, the internal state of the new application may not be the original state when executed up to instruction c. Even if the test is continued as it is, there is a possibility that the correct test cannot be performed. It is.

ステップS302において、テストスクリプト内の全ての命令が実行されたと判定されると(S302でNo)、図8の処理手順は終了する。   If it is determined in step S302 that all instructions in the test script have been executed (No in S302), the processing procedure in FIG. 8 ends.

続いて、図8のステップS306の詳細について説明する。図9は、対応要素候補の探索処理の処理手順の一例を説明するためのフローチャートである。   Next, details of step S306 in FIG. 8 will be described. FIG. 9 is a flowchart for explaining an example of the processing procedure of the corresponding element candidate search processing.

ステップS401において、対応要素候補探索部16は、元ロケータに対応する画面要素(以下、「画面要素x」という。)の画面要素情報(指標値群及び画像データ)を、画面要素情報記憶部122から取得する。続いて、対応要素候補探索部16は、新画面の画面定義データから、新画面の全画面要素のそれぞれの指標値群及び画像データを取得する(S402)。なお、当該全画面要素の集合を、以下「画面要素集合Y」という。また、新画面の画面要素の指標値群及び画像データ(当該画面要素の表示範囲の画像データ)の取得方法は、旧画面の画面要素についての取得方法と同様でよい。   In step S401, the corresponding element candidate search unit 16 acquires screen element information (index value group and image data) of the screen element (hereinafter referred to as “screen element x”) corresponding to the original locator, and the screen element information storage unit 122. Get from. Subsequently, the corresponding element candidate search unit 16 acquires each index value group and image data of all screen elements of the new screen from the screen definition data of the new screen (S402). The set of all screen elements is hereinafter referred to as “screen element set Y”. Further, the method for acquiring the index value group and image data of the screen element of the new screen (image data of the display range of the screen element) may be the same as the method of acquiring the screen element of the old screen.

続いて、対応要素候補探索部16は、画像データに基づく探索処理を実行する(S403)。当該探索処理において対応要素候補であると判定された画面要素y∈Yは、画面要素集合Y'に追加される。なお、画像データに基づく探索処理の開始時において、画面要素集合Y'は空である。   Subsequently, the corresponding element candidate search unit 16 executes a search process based on the image data (S403). The screen element yεY determined to be a corresponding element candidate in the search process is added to the screen element set Y ′. Note that the screen element set Y ′ is empty at the start of search processing based on image data.

画像データに基づく探索処理の実行後、画面要素集合Y'の要素数が複数である場合(S404でYes)、対応要素候補探索部16は、指標値に基づく探索処理を実行する(S405)。一方、画面要素集合Y'の要素数が1以下である場合(S404でNo)、対応要素候補探索部16は、画面要素集合Y'を、画面要素集合Y"に代入する(S406)。なお、画面要素集合Y"は、対応要素候補の集合である。すなわち、図8のステップS307及びS308では、画面要素集合Y"が参照される。   If the number of elements of the screen element set Y ′ is plural after execution of the search process based on the image data (Yes in S404), the corresponding element candidate search unit 16 executes the search process based on the index value (S405). On the other hand, when the number of elements of the screen element set Y ′ is 1 or less (No in S404), the corresponding element candidate search unit 16 substitutes the screen element set Y ′ for the screen element set Y ″ (S406). The screen element set Y ″ is a set of corresponding element candidates. That is, the screen element set Y ″ is referred to in steps S307 and S308 of FIG.

続いて、図9のステップS403の詳細について説明する。2つの画面要素の画像(外観)が一致する場合、それらは高い確率で同じ役割を持つと考えられる。そこで、本実施の形態では、画面要素の画像データを用いて、対応要素候補の絞り込みを行うことで、精度向上と処理時間の短縮を図る。   Next, details of step S403 in FIG. 9 will be described. If the images (appearance) of two screen elements match, they are considered to have the same role with a high probability. Therefore, in the present embodiment, by using the image data of the screen elements, the corresponding element candidates are narrowed down to improve the accuracy and shorten the processing time.

図10は、画像データに基づく探索処理の処理手順の一例を説明するためのフローチャートである。   FIG. 10 is a flowchart for explaining an example of a processing procedure of search processing based on image data.

まず、全ての画面要素y∈Yについて、ステップS501〜S503が実行される。ステップS502において、対応要素候補探索部16は、画面要素xの画像データと、画面要素yの画像データとを比較して、両者が一致する場合には、画面要素yを画面要素集合Y'に追加する。なお、画像データの一致は、完全一致(全ての画素が一致する状態)に限定されなくてもよい。例えば、パターンマッチングの要領で、一方の画像データの画像を、他方の画像データの画像に対して所定画素ずつずらしながら、両者の一致又は不一致が判定されてもよい。すなわち、画像処理技術の分野において、2つの画像データが同一物を示すものであると判定可能である場合には、両者が一致すると判定されてもよい。   First, steps S501 to S503 are executed for all screen elements yεY. In step S502, the corresponding element candidate search unit 16 compares the image data of the screen element x and the image data of the screen element y, and if they match, the screen element y is changed to the screen element set Y ′. to add. Note that the matching of the image data need not be limited to perfect matching (a state in which all pixels match). For example, the pattern matching may be performed by shifting the image of one image data by a predetermined number of pixels with respect to the image of the other image data to determine whether or not they match. That is, in the field of image processing technology, when it can be determined that two pieces of image data indicate the same object, it may be determined that the two match.

全ての画面要素y∈YについてステップS501〜S503が実行されると、対応要素候補探索部16は、画面要素集合Y'に1以上の画面要素yが含まれているか否かを判定する(S504)。画面要素集合Y'に1以上の画面要素が含まれている場合(S504でYes)、図10の処理手順は終了する。面要素集合Y'が空である場合(S504でNo)、対応要素候補探索部16は、画面要素集合Yを、画面要素集合Y'に追加する(S505)。   When steps S501 to S503 are executed for all screen elements yεY, the corresponding element candidate search unit 16 determines whether or not one or more screen elements y are included in the screen element set Y ′ (S504). ). When the screen element set Y ′ includes one or more screen elements (Yes in S504), the processing procedure in FIG. 10 ends. When the surface element set Y ′ is empty (No in S504), the corresponding element candidate search unit 16 adds the screen element set Y to the screen element set Y ′ (S505).

続いて、図9のステップS405の詳細について説明する。例えば、画面要素X(id=login、XPath=//A/B/X)が修正されて、画面要素X'(id=user_login、XPath=//C/D/X)となった場合、非特許文献1及び非特許文献2に示された手法では対応すること(画面要素X'が、画面要素Xの対応要素候補であると判定すること)が困難である。   Next, details of step S405 in FIG. 9 will be described. For example, when screen element X (id = login, XPath = // A / B / X) is modified to become screen element X ′ (id = user_login, XPath = // C / D / X), non- It is difficult to cope with the methods disclosed in Patent Document 1 and Non-Patent Document 2 (determining that screen element X ′ is a corresponding element candidate for screen element X).

非特許文献1の手法では、相対的な構造(例:id=fooを持つ画面要素の子でXというタグを持つ画面要素)を表す指標も用いられる。しかし、この修正例の場合、修正前のXの親がA、B、修正後のXの親がC、Dと異なっているため、相対的な位置で指定していたとしても修正前後で当該指標は一致しない。   In the method of Non-Patent Document 1, an index representing a relative structure (for example, a screen element having a tag X as a child of a screen element having id = foo) is also used. However, in this modification example, the parent of X before modification is different from A and B, and the parent of X after modification is different from C and D. Indicators do not match.

また、非特許文献2の手法では、XPathのレーベンシュタイン距離を基に判定しており、//A/B/YといったXPathを持つ画面要素Yが他に存在する場合、画面要素XとYの類似性の方が、画面要素Xと画面要素X'との類似性よりも高いと判定されてしまう。   In the method of Non-Patent Document 2, determination is made based on the Lavenstein distance of XPath. If there is another screen element Y having XPath such as // A / B / Y, the screen elements X and Y It is determined that the similarity is higher than the similarity between the screen element X and the screen element X ′.

上記の問題は、指標の一致又は不一致のみを評価していたり、1つの指標に依存していたりすることに起因する。   The above problem is caused by evaluating only matching or mismatching of indices or depending on one index.

本実施の形態では、図10において説明したように、画面要素の画像データに基づいて対応要素候補を判定したり、図11について以下に説明されるように、複数の指標に対し、一致又は不一致ではなく、実数値として類似度を算出し、それを統合して1つの値としたりすることで精度向上を図る。   In the present embodiment, as described in FIG. 10, the corresponding element candidate is determined based on the image data of the screen element, or as described below with reference to FIG. Instead, the accuracy is calculated by calculating the similarity as a real value and integrating them into one value.

図11は、指標値に基づく探索処理の処理手順の一例を説明するためのフローチャートである。図11では、画面要素集合Y'に含まれている全ての画面要素yについて、ステップS601〜S613が実行される。また、全ての指標i∈Iについて、ステップS602〜S609が実行される。なお、Iは、本実施の形態における全ての指標の集合(id、type、class、name、タグ名、XPath、x座標、y座標、横幅、縦幅、リンクテキスト、付近のテキスト、URL等)である。   FIG. 11 is a flowchart for explaining an example of the processing procedure of the search processing based on the index value. In FIG. 11, steps S601 to S613 are executed for all screen elements y included in the screen element set Y ′. In addition, steps S602 to S609 are executed for all indices iεI. Note that I is a set of all indexes in this embodiment (id, type, class, name, tag name, XPath, x coordinate, y coordinate, horizontal width, vertical width, link text, nearby text, URL, etc.) It is.

ステップS603において、対応要素候補探索部16は、指標iの指標値が、選択的なものであるか否かを判定する。例えば、idの値は、任意に設定可能であるが、typeの値は、予め決められた値(input、button等)の中から選択される。タグ名も同様である。ステップS603では、指標iがこのように予め決められた選択肢の中から指標値が選択されるものでるか否かが判定される。   In step S603, the corresponding element candidate search unit 16 determines whether or not the index value of the index i is selective. For example, the value of id can be arbitrarily set, but the value of type is selected from predetermined values (input, button, etc.). The tag name is the same. In step S <b> 603, it is determined whether or not the index i is an index value selected from options determined in advance.

指標iの指標値が選択的である場合(S603でYes)、対応要素候補探索部16は、画面要素xと画面要素yとについて、それぞれの指標iの指標値が一致しているか否かに基づいて、画面要素xと画面要素yとにおける指標iの類似度sを決定する(S604)。すなわち、それぞれの指標iの指標値が一致していれば、当該指標iの類似度sは1とされ、そうでなければ当該指標iの類似度sは0とされる。すなわち、選択的である指標iについての類似度sは、0又は1となる。なお、本実施の形態において、全ての指標に関して、類似度sは0以上1以下の値とされる。但し、他の尺度(例えば、0から100等)によって類似度sが評価されてもよい。 When the index value of the index i is selective (Yes in S603), the corresponding element candidate search unit 16 determines whether the index values of the respective indices i are the same for the screen element x and the screen element y. Based on this, the similarity s i of the index i between the screen element x and the screen element y is determined (S604). That is, if the index values of the respective indices i match, the similarity s i of the index i is set to 1, and if not, the similarity s i of the index i is set to 0. That is, the similarity s i for the index i that is selective is 0 or 1. In the present embodiment, the similarity s is set to a value not less than 0 and not more than 1 for all indexes. However, the similarity s may be evaluated by other scales (for example, 0 to 100, etc.).

指標iの指標値が選択的でない場合(S603でNo)、対応要素候補探索部16は、指標iの指標値が任意の文字列であるか否かを判定する(S605)。例えば、id、class、name、XPath等は任意の文字列である。指標iの指標値が任意の文字列である場合(S605でYes)、対応要素候補探索部16は、画面要素xと画面要素yとについて、それぞれの指標iの指標値のレーベンシュタイン距離に基づいて、画面要素xと画面要素yとにおける指標iの類似度sを計算する(S606)。具体的には、
類似度s=1−レーベンシュタイン距離/長い方の文字列の長さ
に基づいて、画面要素xと画面要素yとにおける指標iの類似度sが算出される。なお、長い方の文字列の長さとは、画面要素xの指標iの指標値(文字列)と、画面要素yの指標iの指標値(文字列)とのうち長い方の文字列の文字数をいう。
When the index value of the index i is not selective (No in S603), the corresponding element candidate search unit 16 determines whether or not the index value of the index i is an arbitrary character string (S605). For example, id, class, name, XPath, etc. are arbitrary character strings. When the index value of the index i is an arbitrary character string (Yes in S605), the corresponding element candidate search unit 16 for the screen element x and the screen element y is based on the Levenshtein distance of the index value of each index i. Then, the similarity s i of the index i between the screen element x and the screen element y is calculated (S606). In particular,
Similarity s i = 1−Levenstein distance / similarity s i of index i between screen element x and screen element y is calculated based on the longer character string length. The length of the longer character string is the number of characters in the longer character string of the index value (character string) of the index i of the screen element x and the index value (character string) of the index i of the screen element y. Say.

指標iの指標値が任意の文字列でない場合(S605でNo)、対応要素候補探索部16は、指標iの指標値が数値であるか否かを判定する(S607)。例えば、x座標、y座標、横幅、縦幅等は、数値である。指標iの指標値が数値である場合(S607でYes)、対応要素候補探索部16は、画面要素xと画面要素yとについて、それぞれの指標iの指標値のユークリッド距離に基づいて、画面要素xと画面要素yとにおける指標iの類似度sを計算する(S608)。具体的には、
類似度s=1−|2つの指標値の差/最大値|
に基づいて、画面要素xと画面要素yとにおける指標iの類似度sが算出される。なお、2つの指標値の差とは、画面要素xの指標iの指標値と、画面要素yの指標iの指標値との差をいう。また、最大値とは、当該指標iに関して取りうる最大値をいう。例えば、指標iがx座標であれば、最大値は、画面の横幅である。
When the index value of the index i is not an arbitrary character string (No in S605), the corresponding element candidate search unit 16 determines whether or not the index value of the index i is a numerical value (S607). For example, the x coordinate, the y coordinate, the horizontal width, the vertical width, etc. are numerical values. When the index value of the index i is a numerical value (Yes in S607), the corresponding element candidate search unit 16 selects the screen element for the screen element x and the screen element y based on the Euclidean distance of the index value of each index i. The similarity s i of the index i between x and the screen element y is calculated (S608). In particular,
Similarity s i = 1− | difference between two index values / maximum value |
Based on the above, the similarity s i of the index i between the screen element x and the screen element y is calculated. Note that the difference between the two index values refers to the difference between the index value of the index i of the screen element x and the index value of the index i of the screen element y. The maximum value is the maximum value that can be taken for the index i. For example, if the index i is the x coordinate, the maximum value is the horizontal width of the screen.

なお、各指標iの指標値が、選択的、任意の文字列及び数値のいずれに該当するのかは、対応要素候補探索部16のアルゴリズムにおいて既知である。   Note that it is known in the algorithm of the corresponding element candidate search unit 16 whether the index value of each index i corresponds selectively, any character string, or a numerical value.

全ての指標i∈Iについて、ステップS602〜S609が実行されると、対応要素候補探索部16は、各指標iに対する重みWを、重み記憶部124から取得する(S610)。なお、重みWは、例えば、後述されるように、重み計算部19によって予め計算される。但し、各重みWは、ユーザの任意によって設定されてもよい。 For all indices i∈I, the step S602~S609 are performed, the corresponding element candidate search unit 16, the weight W i for each index i, obtained from the weight storage unit 124 (S610). Incidentally, the weight W i, for example, as described below, is pre-calculated by the weight calculator 19. However, the weight W i may be set by any user.

続いて、対応要素候補探索部16は、画面要素xと画面要素yとの類似度Stotalを以下の式に基づいて算出する(S611)。 Subsequently, the corresponding element candidate search unit 16 calculates the similarity S total between the screen element x and the screen element y based on the following formula (S611).

total=Σ(s×W)/ΣW
すなわち、指標iの指標値について重みをWとする加重平均を計算することで、類似度Stotalが算出される。
S total = Σ (s i × W i ) / ΣW i
That is, the similarity S total is calculated by calculating a weighted average of the index value of the index i with the weight as Wi .

続いて、対応要素候補探索部16は、類似度Stotalが、予め設定された閾値αより大きければ、画面要素yを画面要素集合Y"に追加する(S612)。 Subsequently, the corresponding element candidate search unit 16 adds the screen element y to the screen element set Y ″ if the similarity S total is larger than the preset threshold value α (S612).

ステップS601〜S613が、全ての画面要素y∈Y'について実行されると、図11の処理手順は終了する。   When steps S601 to S613 are executed for all the screen elements yεY ′, the processing procedure of FIG. 11 ends.

続いて、図8のステップS311の詳細について説明する。図12は、未確定のロケータの修正処理の処理手順の一例を説明するためのフローチャートである。   Next, details of step S311 in FIG. 8 will be described. FIG. 12 is a flowchart for explaining an example of a processing procedure of correction processing for an undetermined locator.

ステップS701において、テストスクリプト修正部17は、未確定のロケータに対応する命令群の中から、ステップS308において修正されたロケータを含む命令群Cを抽出する。未確定のロケータに対応する命令群とは、最後に実行されたアサーションがN番目のアサーションであれば、N−1番目のアサーションからN番目のアサーションの間に含まれている命令のロケータをいう。但し、N=1の場合、N番目のアサーションより前の全ての命令のロケータが、未確定のロケータとなる。   In step S701, the test script correcting unit 17 extracts an instruction group C including the locator corrected in step S308 from the instruction group corresponding to the undetermined locator. The instruction group corresponding to the undetermined locator means the locator of the instruction included between the (N-1) th assertion and the Nth assertion if the last executed assertion is the Nth assertion. . However, when N = 1, the locators of all instructions prior to the Nth assertion become undetermined locators.

続いて、テストスクリプト修正部17は、命令群Cから、実行順が最後の命令clastを取得する(S702)。続いて、テストスクリプト修正部17は、命令clastについて未試行の対応要素候補の有無を判定する(S703)。命令clastについて未試行の対応要素候補とは、命令clastの修正前のロケータを元ロケータとして、ステップS306において探索された対応要素候補のうち、ステップS308においてロケータの修正に利用されなかった対応要素候補をいう。 Subsequently, the test script correcting unit 17 acquires the instruction c last having the last execution order from the instruction group C (S702). Subsequently, the test script correcting unit 17 determines whether or not there is an unsuccessful corresponding element candidate for the instruction c last (S703). For instructions c last the corresponding component candidate untried, as unmodified locator original locator instruction c last, among the searched corresponding component candidate in step S306, has not been used in the locator of the correction in step S308 corresponds An element candidate.

該当する対応要素候補が無い場合(S703でNo)、テストスクリプト修正部17は、命令群Cから、命令clastを削除して(S704)、ステップS702以降を繰り返す。なお、ステップS704では、テストスクリプトから命令clastが削除される。命令clastは、新アプリケーションに対して適切な命令でない可能性が高いからである。 When there is no corresponding corresponding element candidate (No in S703), the test script correcting unit 17 deletes the instruction c last from the instruction group C (S704), and repeats step S702 and subsequent steps. In step S704, the instruction c last is deleted from the test script. This is because there is a high possibility that the instruction c last is not an appropriate instruction for the new application.

一方、該当する対応要素候補が1以上有る場合(S703でYes)、テストスクリプト修正部17は、該当する対応要素候補のうち、元要素との類似度Stotalが最大の対応要素候補のロケータによって、命令clastのロケータを置換する(S705)。 On the other hand, when there is one or more corresponding element candidates (Yes in S703), the test script correcting unit 17 uses the corresponding element candidate locator having the maximum similarity S total to the original element among the corresponding element candidates. The locator of the instruction c last is replaced (S705).

このように、本実施の形態では、新画面において使用されていないロケータを対象とする命令が実行された場合、当該ロケータに対する対応要素候補のうち、類似度Stotalが高いものから順に試行され、テストに成功した(アサーションに合格した)対応要素候補が、正しい対応要素として特定される。 As described above, in the present embodiment, when an instruction for a locator that is not used in the new screen is executed, the corresponding element candidates for the locator are tried in descending order of the similarity S total . Corresponding element candidates that have been successfully tested (passed the assertion) are identified as correct corresponding elements.

続いて、重み計算部19が実行する処理手順について説明する。当該処理手順は、上記した各処理手順とは非同期に実行されてよい。例えば、テスト対象のアプリケーションについて、新たなリビジョンが発生するたびに当該処理手順が実行されてもよい。   Subsequently, a processing procedure executed by the weight calculation unit 19 will be described. The processing procedure may be executed asynchronously with each processing procedure described above. For example, the processing procedure may be executed every time a new revision occurs for the test target application.

例えば、各指標の重みをユーザの任意によって設定する場合、以下のような問題点が考えられる。
(a)アプリケーションによって重要な指標が異なる。
(b)どの指標が重要か簡単には判別できない。
(c)開発が進むにつれて、重要な指標が変化する。
For example, when the weight of each index is set arbitrarily by the user, the following problems can be considered.
(A) Important indicators differ depending on the application.
(B) It is not easy to determine which index is important.
(C) As development progresses, important indicators change.

そこで、本実施の形態では、統計的手法を用いて、アプリケーション毎に適切な重み付けが行われる。   Therefore, in this embodiment, appropriate weighting is performed for each application using a statistical method.

本実施の形態において、画面要素の対応関係の判定(マッチング)は、各指標の一致の度合い(類似度s)に基づいて行われる。したがって、重み付けの方法として、以下の2通りの考え方が採用される。
(1)アプリケーションの修正によって変化しやすい指標の重みを減らし、変化しにくい指標の重みを増やす。例えば、idは変わりにくいのでマッチングにおいて重視するが、XPathは変わりやすいので重視しない。
(2)異なる画面要素間で同じ値を持つ確率が高い指標の重みを減らし、同じ値を持つ確率が低い指標の重みを増やす。例えば、idは画面要素間で同じ値を持たないので重みを増やすが、classは複数の画面要素で値が重複する可能性が有るので重みを減らす。
In the present embodiment, the determination (matching) of the correspondence between screen elements is performed based on the degree of matching (similarity s) of each index. Therefore, the following two ways of thinking are adopted as the weighting method.
(1) The weight of an index that is likely to change due to application modification is reduced, and the weight of an index that is difficult to change is increased. For example, since id is difficult to change, importance is placed on matching, but XPath is easy to change and is not important.
(2) The weight of an index having a high probability of having the same value between different screen elements is reduced, and the weight of an index having a low probability of having the same value is increased. For example, since id does not have the same value between screen elements, the weight is increased. However, since the value of class may be duplicated among a plurality of screen elements, the weight is decreased.

指標の重みを決定するために、同じ画面要素間における指標の変わりやすさと、異なる画面要素間における指標の一致しやすさを評価する必要がある。以下、同じ画面要素間における指標の変わりやすさを評価する指標を「変化率」という。また、異なる画面要素間における指標の一致しやすさを評価する指標を「一致率」という。なお、同じ画面要素間とは、リビジョン間で対応する画面要素(ユーザから見て同一の画面要素)の組をいう。異なる画面要素間とは、リビジョン間で対応しない画面要素(ユーザから見て異なる画面要素)の組をいう。   In order to determine the weight of the index, it is necessary to evaluate the variability of the index between the same screen elements and the ease of matching of the indices between different screen elements. Hereinafter, an index for evaluating the variability of the index between the same screen elements is referred to as “change rate”. In addition, an index for evaluating the ease of matching of indexes between different screen elements is referred to as “match rate”. Note that “between the same screen elements” refers to a set of screen elements corresponding to the revisions (the same screen elements as viewed from the user). Between different screen elements means a set of screen elements that do not correspond between revisions (screen elements that differ from the user's perspective).

上記の考えに基づいて、重み計算部19は、図13に示される処理手順によって各指標の重みを算出する。図13は、重みの計算処理の処理手順の一例を説明するためのフローチャートである。   Based on the above idea, the weight calculator 19 calculates the weight of each index by the processing procedure shown in FIG. FIG. 13 is a flowchart for explaining an example of a processing procedure of weight calculation processing.

ステップS801〜S813は、リビジョンv〜リビジョンv+1までリビジョンごとに実行される。   Steps S801 to S813 are executed for each revision from revision v to revision v + 1.

また、ステップS802〜S812は、リビジョンkの画面要素集合Aに含まれる各画面要素a∈Aごとに実行される。なお、リビジョンkの初期値は、vである。   Steps S802 to S812 are executed for each screen element aεA included in the screen element set A of revision k. Note that the initial value of revision k is v.

更に、ステップS803〜S810は、リビジョンk+1の画面要素集合A'に含まれる画面要素a'ごとに実行される。   Further, steps S803 to S810 are executed for each screen element a ′ included in the screen element set A ′ of revision k + 1.

ステップS804において、重み計算部19は、画面要素aの画像データと画面要素a'の画像データとが一致するか否かを判定する。画像データの一致又は不一致の判定方法は、図10のステップS502における方法と同様でよい。なお、各リビジョンの各画面の各画面要素の画像データは、画面履歴記憶部123に記憶されている。   In step S804, the weight calculation unit 19 determines whether or not the image data of the screen element a matches the image data of the screen element a ′. The method for determining whether the image data matches or does not match may be the same as the method in step S502 of FIG. Note that image data of each screen element of each screen of each revision is stored in the screen history storage unit 123.

比較された画像データが一致する場合(S804でYes)、重み計算部19は、指標ごとに、画面要素aの指標値と画面要素a'の指標値とを比較する(S805)。なお、各リビジョンの各画面の各画面要素の各指標の指標値は、画面履歴記憶部123に記憶されている。   When the compared image data matches (Yes in S804), the weight calculation unit 19 compares the index value of the screen element a and the index value of the screen element a ′ for each index (S805). The index value of each index of each screen element of each screen of each revision is stored in the screen history storage unit 123.

全ての指標について指標値が一致する場合(S805でNo)、リビジョンk+1の次の画面要素a'についてステップS804以降が実行される。一方、いずれか1以上の指標iについて指標値が異なる場合(S805でYes)、重み計算部19は、指標値が異なる各指標iに対応するカウンタc(i)に1を加算する(S806)。なお、カウンタcは、指標ごとカウンタの配列であり、同じ画面要素間で指標値が異なる回数を指標ごとにカウントするために利用される。図13の処理手順の開始時において、カウンタcの各要素の値は0である。   If the index values match for all indices (No in S805), Step S804 and subsequent steps are executed for the next screen element a ′ of revision k + 1. On the other hand, when the index values are different for any one or more indices i (Yes in S805), the weight calculation unit 19 adds 1 to the counter c (i) corresponding to each index i having a different index value (S806). . Note that the counter c is an array of counters for each index, and is used to count the number of times that index values differ between the same screen elements for each index. At the start of the processing procedure of FIG. 13, the value of each element of the counter c is 0.

続いて、重み計算部19は、カウンタdに1を加算する(S807)。カウンタdは、同じ画面要素間で、いずれかの指標の指標値が異なる回数をカウントするために利用されるカウンタである。図13の処理手順の開始時において、カウンタdの値は0である。   Subsequently, the weight calculation unit 19 adds 1 to the counter d (S807). The counter d is a counter used for counting the number of times that the index value of any index is different between the same screen elements. At the start of the processing procedure of FIG. 13, the value of the counter d is 0.

一方、ステップS804において比較された画像データが一致しない場合(S804でNo)、重み計算部19は、画面要素aと画面要素a'との間で、指標値が一致する指標が1以上有るか否かを判定する(S808)。該当する指標iが無い場合(S808でNo)、リビジョンk+1の次の画面要素a'についてステップS804以降が実行される。該当する指標iが有る場合(S808でYes)、重み計算部19は、指標値が一致する指標iに対応するカウンタe(i)に1を加算する。なお、カウンタeは、指標ごとカウンタの配列であり、異なる画面要素間で指標値が一致する回数を指標値ごとにカウントするために利用される。図13の処理手順の開始時において、カウンタeの各要素の値は0である。   On the other hand, when the image data compared in step S804 does not match (No in S804), the weight calculation unit 19 determines that there is one or more indexes with the same index value between the screen element a and the screen element a ′. It is determined whether or not (S808). If there is no corresponding index i (No in S808), Step S804 and subsequent steps are executed for the next screen element a ′ of the revision k + 1. When there is a corresponding index i (Yes in S808), the weight calculation unit 19 adds 1 to the counter e (i) corresponding to the index i with the matching index value. The counter e is an array of counters for each index, and is used to count the number of times that index values match between different screen elements for each index value. At the start of the processing procedure of FIG. 13, the value of each element of the counter e is 0.

リビジョンk+1の全ての画面要素a'∈A'について、ステップS803〜S810が実行されると、重み計算部19は、カウンタfに1を加算する(S811)。カウンタfは、全リビジョンの画面要素の総数(画面要素の延べ数)をカウントするために利用されるカウンタである。例えば、リビジョンvについて、ステップS802〜S812までの実行が完了した時点において、カウンタfには、リビジョンvの画面要素の総数が記憶される。なお、図13の処理手順の開始時において、カウンタfの値は0である。   When Steps S803 to S810 are executed for all screen elements a′εA ′ of the revision k + 1, the weight calculation unit 19 adds 1 to the counter f (S811). The counter f is a counter used for counting the total number of screen elements of all revisions (total number of screen elements). For example, for the revision v, when the execution of steps S802 to S812 is completed, the counter f stores the total number of screen elements of the revision v. Note that the value of the counter f is 0 at the start of the processing procedure of FIG.

ステップS801〜S813が、リビジョンv〜リビジョンv+nまで実行されると、重み計算部19は、各指標の変化率を計算する(S814)。指標iの変化率(i)は、以下の式に基づいて算出される。
変化率(i)=c(i)/d
すなわち、変化率(i)は、同じ画面要素間の各指標の比較において指標iが変化した回数(異なる回数)を、同じ画面要素間の各指標の比較においていずれかの指標が変化した回数(異なる回数)によって除することで算出される。
When steps S801 to S813 are executed from revision v to revision v + n, the weight calculator 19 calculates the rate of change of each index (S814). The rate of change (i) of the index i is calculated based on the following equation.
Rate of change (i) = c (i) / d
That is, the rate of change (i) indicates the number of times that the index i has changed (a different number of times) in the comparison of each index between the same screen elements, and the number of times that any index has changed in the comparison of each index between the same screen elements ( It is calculated by dividing by (different number of times).

続いて、重み計算部19は、各指標の一致率を計算する(S815)。指標iの一致率(i)は、以下の式に基づいて算出される。
一致率(i)=e(i)/f
すなわち、一致率(i)は、異なる画面要素間の各指標の比較において指標iが一致した回数を、画面要素の延べ数(総数)で除することで算出される。
Subsequently, the weight calculation unit 19 calculates the matching rate of each index (S815). The coincidence rate (i) of the index i is calculated based on the following formula.
Match rate (i) = e (i) / f
That is, the coincidence rate (i) is calculated by dividing the number of times the index i matches in the comparison of each index between different screen elements by the total number (total number) of screen elements.

続いて、重み計算部19は、各指標の重みを計算する(S816)。指標iの重みWは、以下の式に基づいて算出される。
=変化率(i)×(1−一致率(i))×定数β
図13の処理手順によれば、アプリケーション毎に異なる重み付けを自動で行うことができ、重み付けに最新の10リビジョンを用いる等の工夫を行うことで、開発が進むにつれて重要な指標が変化する場合にも対応することが可能である。
Subsequently, the weight calculator 19 calculates the weight of each index (S816). The weight W i of the index i is calculated based on the following formula.
W i = change rate (i) × (1−match rate (i)) × constant β
According to the processing procedure of FIG. 13, different weighting can be automatically performed for each application, and when an important index changes as development progresses by devising such as using the latest 10 revisions for weighting. Can also be supported.

上述したように、本実施の形態によれば、各画面要素の画像データに基づいて、画面要素間の対応関係が判定される。ここで、画像データ(外観)が一致する画面要素は、そのロケータや各指標に相違点が有ったとしても、用途及び機能が一致する画面要素である可能性が高い。したがって、画面要素間の対応関係の判定の精度を向上させることができる。その結果、テストスクリプト中のロケータの自動修正をより高精度で効率よく行うことができるようになる。すなわち、画面の操作を伴うテストに利用されるテストスクリプトの修正の精度を向上させることができる。   As described above, according to the present embodiment, the correspondence between screen elements is determined based on the image data of each screen element. Here, a screen element having the same image data (appearance) is highly likely to be a screen element having the same usage and function even if there is a difference between the locator and each index. Therefore, it is possible to improve the accuracy of determining the correspondence between screen elements. As a result, automatic correction of the locator in the test script can be performed with higher accuracy and efficiency. That is, it is possible to improve the accuracy of the correction of the test script used for the test involving the operation of the screen.

従来、画面操作を伴うテストの自動化は、メンテナンスが大変であるため費用対効果の面で避けられることが多かったが、本実施の形態によれば、画面操作を伴うテストの自動化への障壁を取り去り、ソフトウェア開発を一層効率化することができる。   Traditionally, automation of tests involving screen operations has often been avoided cost-effectively due to heavy maintenance, but according to the present embodiment, there is a barrier to test automation involving screen operations. This can make software development more efficient.

また、本実施の形態では、画面要素の対応関係の判定精度を更に高めるため、複数の指標のそれぞれについて類似度が算出され、当該類似度に基づいて、画面要素間の類似度が算出される。すなわち、本実施の形態では、画面要素間について、単に、一致しているか否かではなく、一致している可能性(類似度)が判定される。そうすることで、旧リビジョンの或る画面要素について、新リビジョンの画面要素の中から対応する候補を複数得ることができる。その結果、対応する画面要素を正しく探し出せる可能性を高めることができる。   Further, in this embodiment, in order to further increase the determination accuracy of the correspondence relationship between the screen elements, the similarity is calculated for each of the plurality of indices, and the similarity between the screen elements is calculated based on the similarity. . In other words, in the present embodiment, the possibility of matching (similarity) is determined, not just whether or not the screen elements match. By doing so, a plurality of corresponding candidates can be obtained from the screen elements of the new revision for a screen element of the old revision. As a result, it is possible to increase the possibility of correctly searching for the corresponding screen element.

また、新画面中の全ての画面要素について類似度を計算するのは時間がかかるところ、本実施の形態では、画像データの比較に基づいて類似度の計算対象が絞り込まれる(フィルタリングされる)ため、処理時間の短縮化を期待することができる。   In addition, since it takes time to calculate the similarity for all screen elements in the new screen, in this embodiment, the calculation target of the similarity is narrowed (filtered) based on the comparison of image data. Shortening of processing time can be expected.

また、本実施の形態では、複数のロケータについて不整合が存在した場合でも、ロケータを修正しつつテストを継続することができるため、実行速度の向上を図ることができる。   Further, in the present embodiment, even when inconsistencies exist for a plurality of locators, the test can be continued while correcting the locators, so that the execution speed can be improved.

すなわち、仮に、ロケータを1つ修正するたびにテストを最初から実行する場合、1つのテストスクリプトに対し、ロケータの誤りの数+1回のテストを実行する必要がある。画面操作を伴うテストは、ブラウザの立ち上げや画面のロード等が必要となるため、単体テストに比べてオーバーヘッドが大きく、ロケータを修正するたびにテストを最初から実行する場合、これらのオーバーヘッドにより、テスト工数が増加する。   That is, if a test is executed from the beginning every time one locator is corrected, it is necessary to execute the number of locator errors plus one test for one test script. Tests that involve screen operations require browser startup, screen loading, etc., so the overhead is larger than unit tests, and if the test is executed from the beginning each time the locator is modified, these overheads cause the test. Man-hours increase.

このようなテスト工数の増加を回避するため、動的プログラム書き換え等により、ロケータの誤りを無視し、様々な入力を試しながら無理やりテスト実行を続け、ロケータの修正を行うといった方法も考えられる。   In order to avoid such an increase in the number of test steps, a method of ignoring the locator error by dynamic program rewriting, etc., forcibly continuing the test execution while trying various inputs, and correcting the locator can be considered.

しかし、この場合、画面に対して何らかの操作を行った時点でプログラムの内部状態が本来あるべきでない状態になる恐れがあり、全てのロケータの修正が一度にできたとしてもテスト実行の妥当性を保つことができない可能性が有る。不整合の有る全てのロケータを無理やり修正した後、再度通してテストを実行することも考えられるが、動的要素の多いアプリケーションの場合、正しく修正を行える可能性が低く、試行回数が増える恐れがある。   However, in this case, there is a possibility that the internal state of the program should not be originally when any operation is performed on the screen, and even if all the locators can be corrected at once, the validity of the test execution can be reduced. There is a possibility that it cannot be kept. It may be possible to force all the inconsistent locators to be corrected and then re-run the test, but for applications with many dynamic elements, the possibility of correct correction is low and the number of trials may increase. is there.

そこで、本実施の形態では、単純にロケータを修正しながら実行するのみではなく、プログラム内部状態の整合性を保持しながら、必要に応じて(アサーションに合格しなかった場合)プログラムの再実行が行われる。   Therefore, in this embodiment, the program is not re-executed while simply correcting the locator, but the program is re-executed as necessary (when the assertion is not passed) while maintaining the consistency of the internal state of the program. Done.

なお、本実施の形態において、テスト実行装置10は、テストスクリプト修正装置の一例である。対応要素候補探索部16は、第1の特定部及び第2の特定部の一例である。テストスクリプト修正部17は、第1の修正部及び第2の修正部の一例である。重み計算部19は、計算部の一例である。画面要素情報記憶部は、記憶部の一例である。ロケータは、識別情報の一例である。旧画面は、第1の画面の一例である。新画面は、第2の画面の一例である。カウンタcの値は、第1の回数の一例である。カウンタdの値は、第2の回数の一例である。カウンタeの値は、第3の回数の一例である。   In the present embodiment, the test execution device 10 is an example of a test script correction device. The corresponding element candidate search unit 16 is an example of a first specifying unit and a second specifying unit. The test script correction unit 17 is an example of a first correction unit and a second correction unit. The weight calculation unit 19 is an example of a calculation unit. The screen element information storage unit is an example of a storage unit. A locator is an example of identification information. The old screen is an example of a first screen. The new screen is an example of a second screen. The value of the counter c is an example of the first number of times. The value of the counter d is an example of the second number of times. The value of the counter e is an example of the third number of times.

以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。   As mentioned above, although the Example of this invention was explained in full detail, this invention is not limited to such specific embodiment, In the range of the summary of this invention described in the claim, various deformation | transformation・ Change is possible.

10 テスト実行装置
11 テストスクリプト取得部
12 テスト実行部
13 画面表示制御部
14 指標値取得部
15 画像取得部
16 対応要素候補探索部
17 テストスクリプト修正部
18 テストスクリプト出力部
19 重み計算部
20 サーバ装置
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
121 テストスクリプト記憶部
122 画面要素情報記憶部
123 画面履歴記憶部
124 重み記憶部
B バス
DESCRIPTION OF SYMBOLS 10 Test execution apparatus 11 Test script acquisition part 12 Test execution part 13 Screen display control part 14 Index value acquisition part 15 Image acquisition part 16 Corresponding element candidate search part 17 Test script correction part 18 Test script output part 19 Weight calculation part 20 Server apparatus 100 drive device 101 recording medium 102 auxiliary storage device 103 memory device 104 CPU
105 interface device 106 display device 107 input device 121 test script storage unit 122 screen element information storage unit 123 screen history storage unit 124 weight storage unit B bus

Claims (6)

第1の画面の画面要素に対する操作命令の実行順が定義されたテストスクリプトであって、前記操作命令ごとに、操作対象の画面要素の識別情報を含むテストスクリプトを取得するテストスクリプト取得部と、
前記テストスクリプトに含まれる操作命令ごとに、操作対象の画面要素の範囲の画像データを前記第1の画面から取得し、取得した画像データを記憶部に記憶する画像取得部と、
前記テストスクリプトに含まれる操作命令のうち、第2の画面に関して使用されていない識別情報が操作対象の画面要素として示されている第1の操作命令について、前記記憶部に記憶されている各画像データと、前記第2の画面から取得される各画面要素の画像データとの比較に基づいて、前記第2の画面における操作対象の画面要素を特定する第1の特定部と、
前記第1の操作命令に対する識別情報を、前記第1の特定部によって特定された画面要素の識別情報に修正する第1の修正部と、
を有することを特徴とするテストスクリプト修正装置。
A test script in which an execution order of operation instructions for the screen elements of the first screen is defined, and a test script acquisition unit that acquires a test script including identification information of a screen element to be operated for each operation instruction;
For each operation command included in the test script, an image acquisition unit that acquires image data in a range of screen elements to be operated from the first screen and stores the acquired image data in a storage unit;
Among the operation commands included in the test script, each image stored in the storage unit for the first operation command in which identification information that is not used for the second screen is indicated as a screen element to be operated. A first specifying unit for specifying a screen element to be operated on the second screen based on comparison of data and image data of each screen element acquired from the second screen;
A first correction unit that corrects the identification information for the first operation command to the identification information of the screen element specified by the first specification unit;
A test script correcting device comprising:
前記テストスクリプトに含まれる操作命令ごとに、操作対象の画面要素について、画面要素間の類似度の算出に利用される複数の指標の値を前記第1の画面に関して取得して、取得した各値を前記記憶部に記憶する指標値取得部と、
前記第1の特定部によって複数の画面要素が特定された場合に、前記記憶部に記憶された各値と、前記第2の画面に関して取得される各画面要素の各指標の値とに基づいて、前記第1の画面の各画面要素と、前記第2の画面の各画面要素との類似度を算出し、算出された類似度に基づいて、前記第2の画面における操作対象の画面要素を特定する第2の特定部と、
を有することを特徴とする請求項1記載のテストスクリプト修正装置。
For each operation command included in the test script, for each screen element to be operated, a plurality of index values used for calculating the similarity between the screen elements are acquired for the first screen, and each acquired value An index value acquisition unit for storing in the storage unit,
When a plurality of screen elements are specified by the first specifying unit, based on each value stored in the storage unit and a value of each index of each screen element acquired with respect to the second screen The similarity between each screen element of the first screen and each screen element of the second screen is calculated, and the screen element to be operated on the second screen is calculated based on the calculated similarity. A second identifying part to identify;
The test script correcting device according to claim 1, comprising:
前記第2の特定部は、前記指標ごとに、前記第1の画面に関する値と前記第2の画面に関する値との類似度を算出し、前記指標ごとの類似度について、前記指標ごとの重みに基づく加重平均を計算することで、前記第1の画面の各画面要素と前記第2の画面の各画面要素との類似度を算出する、
ことを特徴とする請求項2記載のテストスクリプト修正装置。
The second specifying unit calculates, for each index, a similarity between a value related to the first screen and a value related to the second screen, and the similarity for each index is used as a weight for each index. Calculating a weighted average based on the similarity between each screen element of the first screen and each screen element of the second screen;
The test script correcting device according to claim 2, wherein
複数の画面に関して、画像データが一致する画面要素間において値が異なる第1の回数を前記指標ごとにカウントし、当該画面要素間において、いずれかの前記指標の値が一致した第2の回数をカウントし、画像データが一致しない画面要素間において値が一致する第3の回数を前記指標ごとにカウントし、前記第1の回数を前記第2の回数で除した値と、前記第3の回数を、前記複数の画面における画面要素の総数で除した値とに基づいて、前記指標ごとの重みを計算する計算部、
を有することを特徴とする請求項3記載のテストスクリプト修正装置。
For a plurality of screens, a first number of times different in value between screen elements having the same image data is counted for each index, and a second number of times that the value of any of the indices is matched between the screen elements. The third number of times of counting and the number of times that the values match between screen elements that do not match the image data is counted for each index, and the value obtained by dividing the first number by the second number of times and the third number of times , Based on a value obtained by dividing by the total number of screen elements in the plurality of screens, a calculation unit that calculates a weight for each index,
4. The test script correcting device according to claim 3, further comprising:
前記テストスクリプトは、前記実行順のいずれかにおいてアサーションを含み、
前記アサーションの実行時において、前記第2の画面が前記アサーションによって期待される状態でない場合に、前記アサーションより前において前記第1の修正部によって修正されたいずれかの識別情報を修正する第2の修正部を有し、
前記第2の修正部によって修正が行われた場合に、前記テストスクリプトの最初の操作命令から実行しなおす、
ことを特徴とする請求項1乃至4いずれか一項記載のテストスクリプト修正装置。
The test script includes assertions in any of the execution order;
When executing the assertion, if the second screen is not in a state expected by the assertion, a second one that corrects any identification information corrected by the first correction unit before the assertion. Having a correction part,
Re-execution from the first operation instruction of the test script when correction is performed by the second correction unit;
The test script correcting device according to claim 1, wherein the test script correcting device is a test script correcting device.
第1の画面の画面要素に対する操作命令の実行順が定義されたテストスクリプトであって、前記操作命令ごとに、操作対象の画面要素の識別情報を含むテストスクリプトを取得するテストスクリプト取得手順と、
前記テストスクリプトに含まれる操作命令ごとに、操作対象の画面要素の範囲の画像データを前記第1の画面から取得し、取得した画像データを記憶部に記憶する画像取得手順と、
前記テストスクリプトに含まれる操作命令のうち、第2の画面に関して使用されていない識別情報が操作対象の画面要素として示されている第1の操作命令について、前記記憶部に記憶されている各画像データと、前記第2の画面から取得される各画面要素の画像データとの比較に基づいて、前記第2の画面における操作対象の画面要素を特定する第1の特定手順と、
前記第1の操作命令に対する識別情報を、前記第1の特定手順によって特定された画面要素の識別情報に修正する第1の修正手順と、
をコンピュータに実行させることを特徴とするテストスクリプト修正プログラム。
A test script in which an execution order of operation instructions for the screen elements of the first screen is defined, and for each operation instruction, a test script acquisition procedure for acquiring a test script including identification information of an operation target screen element;
For each operation command included in the test script, an image acquisition procedure for acquiring image data in a range of screen elements to be operated from the first screen and storing the acquired image data in a storage unit;
Among the operation commands included in the test script, each image stored in the storage unit for the first operation command in which identification information that is not used for the second screen is indicated as a screen element to be operated. A first specifying procedure for specifying a screen element to be operated on the second screen based on a comparison between the data and image data of each screen element acquired from the second screen;
A first correction procedure for correcting the identification information for the first operation command into the identification information of the screen element specified by the first specification procedure;
A test script correction program characterized by causing a computer to execute.
JP2016235069A 2016-12-02 2016-12-02 Test script correction device and test script correction program Active JP6645955B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016235069A JP6645955B2 (en) 2016-12-02 2016-12-02 Test script correction device and test script correction program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016235069A JP6645955B2 (en) 2016-12-02 2016-12-02 Test script correction device and test script correction program

Publications (2)

Publication Number Publication Date
JP2018092361A true JP2018092361A (en) 2018-06-14
JP6645955B2 JP6645955B2 (en) 2020-02-14

Family

ID=62566220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016235069A Active JP6645955B2 (en) 2016-12-02 2016-12-02 Test script correction device and test script correction program

Country Status (1)

Country Link
JP (1) JP6645955B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766268A (en) * 2018-12-17 2019-05-17 南瑞集团有限公司 A kind of sequence assembly instruction program verification method and system
JP2020173615A (en) * 2019-04-10 2020-10-22 日本電信電話株式会社 Similar transition identifying device, similar transition identifying method and program
CN112667517A (en) * 2021-01-07 2021-04-16 卫宁健康科技集团股份有限公司 Method, device, equipment and storage medium for acquiring automatic test script
CN113127349A (en) * 2021-04-19 2021-07-16 广州掌动智能科技有限公司 Software testing method and system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030236775A1 (en) * 2002-06-20 2003-12-25 International Business Machines Corporation Topological best match naming convention apparatus and method for use in testing graphical user interfaces
JP2007102654A (en) * 2005-10-07 2007-04-19 Hitachi Software Eng Co Ltd Test script processing program
JP2012221318A (en) * 2011-04-11 2012-11-12 Toshiba Corp Scenario generation device and scenario generation program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030236775A1 (en) * 2002-06-20 2003-12-25 International Business Machines Corporation Topological best match naming convention apparatus and method for use in testing graphical user interfaces
JP2007102654A (en) * 2005-10-07 2007-04-19 Hitachi Software Eng Co Ltd Test script processing program
JP2012221318A (en) * 2011-04-11 2012-11-12 Toshiba Corp Scenario generation device and scenario generation program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"GUIテスティング・フレームワーク Abbot", 月刊ジャバワールド, vol. 第7巻,第8号, JPN6019036716, 1 August 2003 (2003-08-01), JP, pages 10, ISSN: 0004121665 *
伊藤望: "開発現場でホントに役立つツール 第5回 テストツール「Selenium」", 日経SYSTEMS, vol. 第256号, JPN6019036711, 26 July 2014 (2014-07-26), JP, pages 92 - 97, ISSN: 0004121664 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766268A (en) * 2018-12-17 2019-05-17 南瑞集团有限公司 A kind of sequence assembly instruction program verification method and system
CN109766268B (en) * 2018-12-17 2019-10-25 南瑞集团有限公司 A kind of sequence assembly instruction program verification method and system
JP2020173615A (en) * 2019-04-10 2020-10-22 日本電信電話株式会社 Similar transition identifying device, similar transition identifying method and program
JP7127601B2 (en) 2019-04-10 2022-08-30 日本電信電話株式会社 Similar Transition Identifying Device, Similar Transition Identifying Method, and Program
CN112667517A (en) * 2021-01-07 2021-04-16 卫宁健康科技集团股份有限公司 Method, device, equipment and storage medium for acquiring automatic test script
CN113127349A (en) * 2021-04-19 2021-07-16 广州掌动智能科技有限公司 Software testing method and system

Also Published As

Publication number Publication date
JP6645955B2 (en) 2020-02-14

Similar Documents

Publication Publication Date Title
JP7398068B2 (en) software testing
US10949225B2 (en) Automatic detection of user interface elements
US9983984B2 (en) Automated modularization of graphical user interface test cases
CN106796585B (en) Conditional validation rules
US10503478B2 (en) System and method for guiding a user in a software development lifecycle using machine learning
US10936807B1 (en) Systems and methods for displaying effects of code changes
US20220083450A1 (en) Automated bug fixing using deep learning
JP6891779B2 (en) Test script modifiers and programs
US9952832B2 (en) Methods for generating smart archtecture templates and devices thereof
JP6645955B2 (en) Test script correction device and test script correction program
US8904352B2 (en) Systems and methods for processing source code during debugging operations
EP3685258B1 (en) Ranking of software code parts
US20200210427A1 (en) Column lineage and metadata propagation
US20140113257A1 (en) Automated evaluation of programming code
US20150169669A1 (en) Method and a Consistency Checker for Finding Data Inconsistencies in a Data Repository
US10346450B2 (en) Automatic datacenter state summarization
US10037264B2 (en) Test suite minimization
JP6689734B2 (en) Test script correction device and test script correction program
US11645192B2 (en) Graph-based method for inductive bug localization
CN112241370B (en) API interface class checking method, system and device
JP6451417B2 (en) Debug support device, debug support system, debug support method, and debug support program
CN115357269A (en) Configuration information updating method and device, computer equipment and storage medium
Yandrapally et al. Automated modularization of GUI test cases
Lavoie et al. A case study of TTCN-3 test scripts clone analysis in an industrial telecommunication setting
CN115408049A (en) File version control method and device and electronic equipment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191127

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200109

R150 Certificate of patent or registration of utility model

Ref document number: 6645955

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150