WO2012042560A1 - Image acquisition device, image acquisition method, and computer program - Google Patents

Image acquisition device, image acquisition method, and computer program Download PDF

Info

Publication number
WO2012042560A1
WO2012042560A1 PCT/JP2010/005827 JP2010005827W WO2012042560A1 WO 2012042560 A1 WO2012042560 A1 WO 2012042560A1 JP 2010005827 W JP2010005827 W JP 2010005827W WO 2012042560 A1 WO2012042560 A1 WO 2012042560A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
browser
test
screen
browser window
Prior art date
Application number
PCT/JP2010/005827
Other languages
French (fr)
Japanese (ja)
Inventor
高畠勇人
溝口拓治
石橋琢磨
阪上紗里
伊藤俊廷
Original Assignee
株式会社野村総合研究所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社野村総合研究所 filed Critical 株式会社野村総合研究所
Priority to PCT/JP2010/005827 priority Critical patent/WO2012042560A1/en
Priority to JP2012506253A priority patent/JP5303680B2/en
Priority to CN201080043089.XA priority patent/CN102549556B/en
Publication of WO2012042560A1 publication Critical patent/WO2012042560A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Definitions

  • This invention relates to a technique for acquiring an image of web content displayed on a screen.
  • the operation test is automatically executed by the test program to save labor of the operation test.
  • an automatic function test tool “QTP (Quick Test Professional)” provided by HP (Hewlett-Packard) automates an operation test by executing a test program created by a user.
  • an image of the web content displayed on the external device may be captured. Then, the normality of the operation may be confirmed by a test engineer confirming the captured image.
  • the display format of the window (hereinafter also referred to as “browser window”) in which the web browser is started differs depending on the web browser. For this reason, when the same web content is displayed on different web browsers, the present inventor has thought that the appearance of the entire browser window may be different, which may reduce the efficiency of the operation test.
  • the present invention has been completed based on the above-mentioned problem recognition of the present inventor, and its main purpose is to provide a technique for acquiring a display image of web content that is highly convenient in an operation test. .
  • an image acquisition device provides a browser window display on a screen for a browser window including a client area in which a web page is displayed and an additional area different from the client area. Specifies the display position of the client area on the screen according to the window position acquisition unit that acquires the position, the display position of the browser window on the screen, the size of the additional area of the browser window, and the size of the status bar of the browser window And an image acquisition unit that captures a display image of the client area in accordance with the display position on the screen specified by the image position specification unit.
  • Another aspect of the present invention is an image acquisition method.
  • This method is a method executed by the image acquisition device, and acquires the display position of the browser window on the screen for a browser window including a client area in which a web page is displayed and an additional area different from the client area. And specifying the display position of the client area on the screen according to the step of displaying, the display position of the browser window on the screen, the size of the additional area of the browser window, and the size of the status bar of the browser window Capturing a display image of the client area according to the display position on the screen specified in the step.
  • FIG. 1 it is a schematic diagram until it detects a user's data input operation and performs an operation test. It is a screen figure of the function setting screen in the reference technique 2. It is a screen figure of the function setting screen in the reference technique 2. It is a screen figure of the input setting screen in the reference technique 2. It is a screen figure of the case setting screen in the reference technique 2.
  • FIG. 10 It is a figure which shows the characteristic of two operation methods with respect to a web browser. It is a figure which shows typically the calling relationship between functions about two operation methods with respect to a web browser. It is a block diagram which shows the function structure of the operation verification apparatus of the reference technique 3. It is a block diagram which shows the detail of the program execution part of FIG. 10 is a flowchart showing the operation of the operation verification device of Reference Technique 3. It is a figure which shows typically the calling relationship between the functions in the operation
  • FIG. 31 is a flowchart showing in detail a test program reading process in S402 of FIG. 30.
  • FIG. It is a flowchart which shows the web browser starting process of S419 of FIG. 30 in detail.
  • FIG. 34 is a flowchart showing in detail an IE operation process in S458 of FIG. 33.
  • FIG. 1A is a screen view of the portal site first screen 300.
  • the portal site first screen 300 includes an edit box 302 and a search link 304.
  • the search link 304 includes four links of “web”, “blog”, “image”, and “dictionary”.
  • the search for the input character string is started. For example, when the character string “liquid crystal” is input to the edit box 302 and the link “web” is clicked with the mouse, a website including the character string “liquid crystal” is searched.
  • FIG. 1B is a screen view of the portal site second screen 310.
  • “test” is input on the portal site first screen 300 and “dictionary” is clicked with the mouse
  • a portal site second screen 310 shown in FIG. 1B is displayed.
  • items related to the character string “test” are listed by the “dictionary” service provided by the portal site.
  • the link “test” at the top of the search result column 306 is clicked with the mouse.
  • FIG. 2 is a diagram showing the log 320 when the dictionary test is executed.
  • QTP When a client terminal in which HP QTP is installed is operated to access the portal site and the operations A1 to A3 are executed, QTP generates a log 320 shown in FIG.
  • operations A1 to A3 are recorded as code sentences in a predetermined format.
  • the operation A1 is Browser ("XYZ!). Page ("XYZ!). WebEdit ("p"). Set “Test” It is expressed by the code sentence. This corresponds to a web site “XYZ!”, A web page named “XYZ!”, And an edit box named p (corresponding to the edit box 302 shown in FIGS. 1A and 1B).
  • the character string “test” is input.
  • FIG. 3 is a diagram showing a program 330 for executing the dictionary test.
  • a test program may be created by describing the content equivalent to the log 320 in a VB (Visual Basic) script or the like.
  • a program 330 shown in FIG. 3 is a test program created with reference to the log 320 of FIG.
  • the operation A1 is WebEditSet (Browser ("XYZ!). Page ("XYZ!).
  • the specific logic of the WebEditSet function is as described in the middle of the figure.
  • the program 330 is different from the log 320 in that input data such as the character string “test” is not included in the program 330. Instead, the WebEditSet function receives input data from a file expressed as dtGlobalSheet (hereinafter referred to as “input data file”). That is, logic and input data are separated. By rewriting or replacing input data files, dictionary tests with the same logic can be executed based on various input data. Compared to the operation test by manual operation and the operation test by log 320, the operation test by program 330 has an advantage that it is easy to increase variations of input data.
  • the operation test by the program 330 has the following problems. d1. There is a new effort to create a program. d2.
  • the content of the program changes depending on the program creator.
  • the WebEditSet function created by the programmer P1 corresponding to the operation A1 and the WebEditSet function created by the programmer P2 corresponding to the operation A1 do not necessarily have the same logic even though the function names are the same.
  • bugs may be mixed in the program itself. For this reason, it is necessary to make efforts to ensure the reliability of the program 330 itself.
  • the program 330 also requires logic that is not directly related to the operation test, such as exception processing, but not all programmers implement logic that considers even exception processing.
  • the logic is set up so that it can cope with the case where the input data is an empty character. Might do. As a result, programmer skills are likely to affect the content and results of behavior tests.
  • FIG. 4 is a functional block diagram of the operation verification apparatus 100.
  • Each functional block shown in the block diagram of the present specification can be realized in hardware by an element or a mechanical device such as a CPU of a computer, and in software by a computer program or the like.
  • the functional block realized by those cooperation is drawn. Therefore, those skilled in the art will understand that these functional blocks can be realized in various forms by a combination of hardware and software.
  • each functional block may be stored in a recording medium as a computer program, installed in a hard disk of an information processing device, read into a main memory as appropriate, and executed by a processor.
  • the operation verification apparatus 100 may be formed as dedicated hardware, or may be formed as a software module that cooperates with a user interface such as a web browser.
  • the operation verification apparatus 100 of the reference technique 1 will be described as a software module formed as an add-on of QTP.
  • the operation verification apparatus 100 includes an IF (interface) unit 110, a data processing unit 130, and a data holding unit 140.
  • the IF unit 110 is in charge of an interface with a user or QTP.
  • the data processing unit 130 executes various data processing based on data acquired from the IF unit 110 and the data holding unit 140.
  • the data processing unit 130 also serves as an interface between the IF unit 110 and the data holding unit 140.
  • the data holding unit 140 is a storage area for holding various data.
  • the IF unit 110 includes an input unit 112 and an output unit 118.
  • the input unit 112 is in charge of input processing from the user and QTP
  • the output unit 118 is in charge of output processing for the user and QTP.
  • the input unit 112 includes a log acquisition unit 114 and an input data acquisition unit 116.
  • the log acquisition unit 114 acquires a log from QTP.
  • the input data acquisition unit 116 acquires an input data file and acquires input data to be provided to the program from the input data file. Details of the input data file will be described in detail with reference to FIGS.
  • the output unit 118 includes a function setting screen display unit 120, an input setting screen display unit 122, a program screen display unit 124, and a case setting screen display unit 126.
  • the function setting screen display unit 120 displays a function setting screen 210 shown in FIG.
  • the input setting screen display unit 122 displays an input setting screen 230 shown in FIG.
  • the program screen display unit 124 displays a program screen 220 shown in FIG.
  • the case setting screen display unit 126 displays a case setting screen 240 shown in FIG.
  • the data processing unit 130 includes a program generation unit 132, a program execution unit 134, and a test case registration unit 136.
  • the program generation unit 132 automatically generates an operation test program.
  • the program execution unit 134 executes the generated program.
  • QTP is caused to execute a program.
  • the test case registration unit 136 registers the execution set in the case file. The execution set and the case file will be described in detail with reference to FIG.
  • the data holding unit 140 includes a log holding unit 142, a program holding unit 144, an input data file holding unit 146, a case file holding unit 148, a function holding unit 150, and a result holding unit 152.
  • the log holding unit 142 holds a log.
  • the program holding unit 144 holds a program.
  • the input data file holding unit 146 holds an input data file.
  • the case file holding unit 148 holds a case file.
  • the function holding unit 150 holds a function library for the functions registered in the operation test program.
  • the result holding unit 152 holds the result of the operation test.
  • FIG. 5 is a schematic diagram from obtaining a log to executing an operation test in Reference Technology 1.
  • the portal site “XYZ!” Is accessed by operating the web browser of the client terminal.
  • QTP generates a log
  • the log acquisition unit 114 acquires a log from QTP.
  • a function is associated with each code sentence in advance.
  • the function setting screen display unit 120 reads the function library of the function holding unit 150 and displays a list of functions corresponding to each code sentence included in the log (S1).
  • the user can add, change, and delete functions as appropriate. In this way, functions to be included in the program are specified. S1 will be described in detail later with reference to FIG.
  • a combination of a program and an input data file is registered as an “execution set” from a plurality of types of programs and a plurality of types of input data files.
  • a plurality of execution sets can be registered (S4).
  • the setting contents are registered as a case file. For example, when the program P1 is executed based on the input data file F2 and then the program P2 is executed based on the input data file F6, Execution set 1: Program P1 + Input data file F2 Execution set 2: Program P2 + input data file F6 Is registered in the case file. S4 will be described in detail with reference to FIG. Finally, the program is executed according to the case file (S5). In the case of the above example, the program execution unit 134 continuously executes the execution set 1 and the execution set 2. The program execution unit 134 registers the execution result of the program, in other words, the test result in the result holding unit 152.
  • FIG. 6 is a screen diagram of the log screen 200.
  • the output unit 118 displays the log on the log display area 202 in the log screen 200.
  • the user may copy and paste the QTP log into the log display area 202.
  • the output unit 118 may acquire a log (file) generated by QTP when the log screen 200 is displayed and display the log in the log display area 202.
  • a function setting screen 210 shown in FIG. 7 is displayed.
  • FIG. 7 is a screen diagram of the function setting screen 210.
  • the program generation unit 132 specifies a function for the code sentence included in the log, and displays the specified function in a list in the function column 214 of the function setting screen 210.
  • the number column 212 indicates the execution order
  • the description column 216 indicates the outline of the function
  • the object column 218 indicates the operation target object
  • the parameter column 219 indicates the parameter name
  • the input value column 217 indicates the input data.
  • a sign statement indicating the above-mentioned operation A1 Browser ("XYZ!). Page ("XYZ!). WebEdit ("p"). Set “Test”
  • the WebEditSet function is associated with the function library in advance.
  • the program generating unit 132 When the program generating unit 132 reads the first code sentence of the log 320, the program generating unit 132 refers to the function library of the function holding unit 150 and identifies the WebEditSet function. Since the object to be operated by the operation A1 is the page “Browser (“ XYZ! ”). Page (“ XYZ! ”)”, The object column 218 displays “Browser (“ XYZ! ”). Page ( "XYZ!) "Is set.
  • the WebEditSet function is a function that takes input data set in the edit box p (edit box 302) as an argument. Although it is possible to set input data to be set in the edit box p in the input value column 217, it is assumed that no input data is registered in the function setting screen 210. Input data to be set in the edit box p is set on the input setting screen 230 described in detail with reference to FIG.
  • the program generation unit 132 specifies three functions. The user may add, delete, or change a function on the function setting screen 210.
  • the fourth TextCheck function and the fifth WebScreenCapture function in FIG. 7 are functions additionally selected by the user.
  • the TextCheck function is a function that determines whether or not the character string to be assigned to the variable q is included in the displayed web page.
  • the WebScreenCapture function is a function that captures a screen of the web page being displayed.
  • the WebScreenCapture function is a convenient function for trail management of the results of operation tests.
  • the function library includes not only functions corresponding to user operations such as the WebEditSet function but also functions for assisting and supporting the operation test such as the TestCheck function. The user can set logic to be included in the operation test simply by selecting a desired function from the function library.
  • test case setting button 215 When the test case setting button 215 is clicked, a case setting screen 240 of FIG. 10 is displayed.
  • the input data file creation button 213 When the input data file creation button 213 is clicked, the input setting screen 230 of FIG. 9 is displayed.
  • the program creation button 211 When the program creation button 211 is clicked, the program screen 220 of FIG. 8 is displayed.
  • the operation verification apparatus 100 of the reference technique 1 has the following merits. m1.
  • the logic to be included in the program can be selected simply by selecting a function based on GUI (Graphical User Interface). There is little effort to create a program.
  • FIG. 8 is a screen diagram of the program screen 220.
  • the program generation unit 132 When the program creation button 211 is clicked with the mouse on the function setting screen 210, the program generation unit 132 generates a program, and the program screen display unit 124 displays the source code in the program display area 222 in the program screen 220. The program is held in the program holding unit 144.
  • FIG. 9 is a screen diagram of the input setting screen 230.
  • the input setting screen display unit 122 displays the input setting screen 230.
  • parameters p and q are defined.
  • the number column 232 indicates the input order
  • the variable column 234 indicates the input data to the parameter p
  • the variable column 236 indicates the input data to the parameter q.
  • input data to be substituted for the parameters p and q is set. Each input data is held in the input data file holding unit 146 as an input data file.
  • FIG. 10 is a screen diagram of the case setting screen 240.
  • the case setting screen display unit 126 displays the case setting screen 240.
  • the number column 244 indicates the execution order
  • the execution set column 245 indicates the outline of the execution set
  • the program column 246 indicates the program to be executed
  • the input data file column 247 indicates the input data file from which the input data is to be extracted.
  • the website of the Internet securities will be described as an operation test target.
  • the user can freely create a test scenario on the case setting screen 240. For example, instead of the execution set “Stock Sell”, you can register the execution set “Stock Purchase”, or register another input data file instead of “stock1.xls” as the input data file for the execution set “Stock Sell”. May be.
  • the test scenario registered on the case setting screen 240 is recorded as a case file and held in the case file holding unit 148. By changing the test scenario configuration and the input data file little by little, it becomes easier to expand the variation of the operation test.
  • the operation verification device 100 of the reference technique 1 has been described above.
  • a program and input data that is, a process and a parameter can be separated.
  • the program for it can be automatically generated based on the setting of the GUI base. This makes it possible to easily generate a stable quality program while ensuring the diversity of logic included in the program.
  • the contents of the operation test can be changed simply by changing the contents of the input data file, it is easy to expand the variations of the operation test.
  • the reference technique 2 proposes an operation verification apparatus 100 obtained by improving the reference technique 1. First, an outline of the operation verification apparatus 100 of the reference technique 2 will be described while comparing the operation verification apparatus 100 of the reference technique 1 and the operation verification apparatus 100 of the reference technique 2.
  • FIG. 11 shows an outline of the configuration of each of the operation verification apparatus 100 of the reference technique 1 and the operation verification apparatus 100 of the reference technique 2.
  • the operation verification apparatus 100 of the reference technique 1 is used to improve the efficiency of the operation test of the QTP module 102 which is an execution engine of the operation test and the web server 400 using the QTP module 102.
  • a wrapper module 104 includes the functional blocks shown in FIG.
  • the user operates the web server 400, which is a target device for operation confirmation, via the QTP module 102 (S100).
  • the wrapper module 104 obtains a log in which the operation content is recorded from the QTP module 102 and provides the function setting screen 210 to the user (S102).
  • the user causes the wrapper module 104 to generate an operation test program that can be read by the QTP module, and causes the QTP module 102 to execute the program (S104).
  • the operation verification apparatus 100 of the reference technique 2 includes an integrated verification module 106 in which the function of the operation test execution engine and the function of the wrapper module 104 are integrated.
  • the integrated verification module 106 sequentially detects the operation contents, sets the data of the function setting screen 210, and provides the function setting screen 210 to the user. (S202).
  • the user causes the integrated verification module 106 to generate and execute an operation test program (S204).
  • FIG. 12 shows an outline of operations in each of the operation verification apparatus 100 of the reference technique 1 and the operation verification apparatus 100 of the reference technique 2.
  • FIG. 12A shows an outline of the operation in the operation verification apparatus 100 of the reference technique 1.
  • the user executes a data input operation on the web server 400 (S110), and the QTP module 102 outputs a log in which the operation content is recorded (S112).
  • the user copies the log data to a predetermined input area of the QTP module 102 (S114).
  • the wrapper module 104 sets and displays a function setting screen based on the log data set in the predetermined input area (S116), and the user adds the function / input data to be added / changed via the function setting screen.
  • Set (S118).
  • the wrapper module 104 generates a QTP program for an operation test based on the data on the function setting screen (S120).
  • the user copies the QTP program to a predetermined input area of the QTP module 102 (S122).
  • the user sets an operation test scenario that specifies the QTP program and the input data file as a set (S124).
  • the wrapper module 104 passes a set of the QTP program and the input data file to the QTP module 102, and executes an operation test for each set (S126).
  • FIG. 12B shows an outline of the operation in the operation verification apparatus 100 of the reference technique 2.
  • the user executes a data input operation on the web server 400 (S210).
  • the integrated verification module 106 sequentially detects the data input operation, records the function corresponding to the data input operation in the operation content file, and displays the recorded data of the operation content file on the function setting screen (S212).
  • the user sets the function / input data to be added / changed in the operation content file via the function setting screen (S214).
  • the user sets an operation test scenario specifying the operation content file and the input data file as a set (S216).
  • the integrated verification module 106 Based on the scenario, the integrated verification module 106 generates and executes an operation test program in which one or more sets in the scenario are aggregated (S218).
  • the QTP module 102 and the wrapper module 104 are separated. Therefore, in order to link the two modules, the user himself / herself has to execute a mediation operation. Further, the wrapper module 104 needs to call the QTP module 102 for each set in the scenario and execute the test program for each set.
  • the execution engine for the operation test and the wrapper for realizing its efficient use are seamlessly integrated without being separated. Therefore, compared with the operation verification apparatus 100 of the reference technique 1, the user's work required for linking the separated modules becomes unnecessary, and the user's work amount for the operation test is reduced. In addition, since an operation test program in which a plurality of sets in a scenario are aggregated is generated and a series of scenarios is executed by executing the program, a quick operation test is realized.
  • FIG. 13 is a block diagram showing a functional configuration of the operation verification apparatus 100 of the reference technique 2.
  • the functional blocks shown in the figure are included in the integrated verification module 106 shown in FIG.
  • the functional blocks corresponding to the functional blocks of the reference technique 1 are denoted by the same reference numerals.
  • Functional blocks with the same reference numerals as those of the reference technique 1 are described when the functions are different from the contents described in the reference technique 1, and description of similar functions is omitted.
  • the data holding unit 140 includes an operation content file holding unit 143, a program holding unit 144, an input data file holding unit 146, a case file holding unit 148, and a function holding unit 150.
  • the operation content file holding unit 143 stores an operation content file in which a function to be set in the operation test program is recorded.
  • the program holding unit 144 stores an operation test program generated according to the operation content file.
  • the input unit 112 of the IF unit 110 includes an operation detection unit 115 and a user setting reception unit 117.
  • the operation detection unit 115 sequentially detects user data input operations on the web server 400.
  • the user setting reception unit 117 detects setting information by the user for the function setting screen 210, the input setting screen 230, and the case setting screen 240.
  • the output unit 118 of the IF unit 110 includes a function setting screen display unit 120, an input setting screen display unit 122, and a case setting screen display unit 126.
  • the function setting screen display unit 120 displays a function setting screen 210 that displays the contents of the operation content file recorded in the operation content file holding unit 143 on a predetermined display device.
  • the data processing unit 130 includes a program generation unit 132, a program execution unit 134, a test case registration unit 136, an operation recording unit 137, and an input data recording unit 138.
  • the operation recording unit 137 refers to the function holding unit 150, specifies a function corresponding to the data input operation detected by the operation detection unit 115, and records the function in the operation content file.
  • the operation recording unit 137 records user setting information for the function setting screen 210 in an operation content file.
  • the input data recording unit 138 records input data input by the user via the input setting screen 230 in an input data file.
  • the program generation unit 132 generates an operation test program according to the function recorded in the operation content file.
  • the program execution unit 134 executes an operation test program as an operation test execution engine, and records the result in the result holding unit 152.
  • FIG. 14 is a schematic diagram from when the reference data 2 is detected until a user data input operation is detected and an operation test is executed.
  • the user operates the web browser of the client terminal to access the web server 400, and executes various operations on the web server 400, typically data input operations on web pages provided by the web server 400.
  • the operation detection unit 115 sequentially detects data input operations by the user, and the operation recording unit 137 reads the function library of the function holding unit 150 and sequentially records the functions corresponding to the data input operations in the operation content file (S220).
  • the function setting screen display unit 120 reads the operation content file in the operation content file holding unit 143 and displays a function setting screen that displays a list of functions corresponding to the operation by the user.
  • the user can add, change, and delete functions as appropriate, and can set input data to be statically set in the operation test program. In this way, a function to be included in the operation test program is specified.
  • the function setting screen will be described later with reference to FIGS. 15 and 16.
  • the input setting screen display unit 122 displays the input setting screen 230.
  • the user sets input data to be dynamically supplied to the operation test program when the operation test is executed via the input setting screen 230.
  • the input data set by the user is recorded in the input data file (S222).
  • the input setting screen 230 will be described later with reference to FIG.
  • the case setting screen display unit 126 displays the case setting screen 240.
  • the user registers a combination of an operation content file and an input data file as an execution set from a plurality of types of operation content files and a plurality of types of input data files.
  • the test case registration unit 136 records one or more execution sets in the case file (S224). For example, in the test case 1, after the setting content of the operation content file F01 is executed based on the input data file F12, the setting content of the operation content file F02 is executed based on the input data file F16.
  • Execution set 2 operation content file F02 + input data file F16 Is registered in the case file.
  • the case setting screen 240 will be described later with reference to FIG.
  • the program generation unit 132 generates an operation test program based on the case file and the operation content file (S226). Specifically, the functions sequentially recorded in the operation content file set in the execution set may be sequentially set in the program code of the operation test program. Further, when a plurality of execution sets are set in one test case, the program generation unit 132 collects and sets the functions recorded in the operation content file of each execution set in one operation test program.
  • the program generation unit 132 statically sets the input data in the operation test program. For example, when generating an operation test program, input data is set in advance as a function argument in the program code. If an input data file is specified for the function of the operation content file, the data of the input data file is set to be read when the program is executed.
  • the program execution unit 134 executes the operation test program to reproduce a series of operations executed by the user on the web server 400 (S228).
  • the data of the input data file read when the operation test program is executed is passed as an argument. That is, the function is executed based on the input data dynamically acquired from the input data file.
  • FIG. 15 is a screen diagram of the function setting screen 210. This figure shows a function setting screen 210 that displays “search entry.xls” described later in FIG.
  • the data file column name column 250 is an area in which the column name of the input data file in which the input data set in the parameter is recorded is designated. The user may describe the input data itself in the input value field 217, or instead, may specify the column name of the input data file in the data file column name field 250.
  • the column name of the input data file is specified in the data file column name field 250, when the operation test program is executed, one or more input data set in the column of the input data file is read and passed to the function. .
  • FIG. 16 is a screen diagram of the function setting screen 210 in the reference technique 2.
  • input data candidates are listed in a drop-down list 252.
  • the input data candidates displayed in the drop-down list 252 are input data candidates displayed in the drop-down list of the web page when the user inputs data to the web page. The user can select input data from the drop-down list 252 and the burden on the user in setting the input data is reduced.
  • the operation detection unit 115 acquires input data candidates displayed in the drop-down list of the web page when the user performs a data input operation on the web page.
  • a candidate for input data in the drop-down list is acquired from web page data acquired from the web server 400, for example, HTML data.
  • the operation recording unit 137 records the input data candidates in the input value field 217 of the operation content file.
  • the function setting screen display unit 120 displays a list of input data candidates recorded in the operation content file in the form of a drop-down list.
  • FIG. 17 is a screen diagram of the input setting screen 230 in the reference technique 2.
  • FIG. 17A shows an input setting screen 230 that displays the input data file “search entry data.xls” in which the column name is specified in the function setting screen 210 of FIGS. 15 and 16. 15 and FIG. 16, the “name kanji” column and the “name kana” column in FIG. 17A are designated.
  • FIG. 17B shows an input setting screen 230 that displays another input data file “login data 2.xls”. The input data file shown in the figure will be described later with reference to FIG.
  • FIG. 18 is a screen diagram of the case setting screen 240 in the reference technique 2.
  • a basic execution order of each execution set is set in the execution number column 253, and test case identification information is set in the test case ID column 254.
  • group ID column 256 identification information indicating a group of execution set repetition processing is set, and in the line number column 258, a reference range of the input data file in the operation test is set.
  • the operation content file column 260 is set with an operation content file for each execution set, and the input data file column 262 is set with an input data file for each execution set.
  • the setting content on the case setting screen 240 is stored as a case file in the case file holding unit 148.
  • the program generation unit 132 When the test execution button 264 is pressed on the case setting screen 240, the program generation unit 132 generates an operation test program according to the case file and the operation content file. Specifically, based on one or more operation content files in which the same test case ID is set in the case file, one operation test program in which the function recorded in each operation content file is set in the program code Generate. For example, the program generation unit 132 performs one operation test program for executing a registered case and one for executing a search case in accordance with a case file in which the contents of the case setting screen 240 of FIG. 18 are recorded. An operation test program is generated. Note that “one operation test program” means a program executed as one execution unit, in other words, a program executed at one execution opportunity, and the number of physical programs is not limited.
  • the program execution unit 134 executes one function recorded in each operation content file
  • the program execution unit 134 associates the function with the function in the operation content file among the data of the input data file associated with the operation content file. Pass column data to the function.
  • the program execution unit 134 handles a plurality of execution sets assigned the same group ID in the same test case as the same group that should execute the same repetition process. Specifically, each execution set with the same group ID is repeatedly executed, and each time it is repeated, the function recorded in the operation content file of each execution set is recorded in the input data file. Pass a certain number of records. In the reference technique 2, one record recorded in the input data file is passed to the function every time it is repeated.
  • the program generation unit 132 may generate an operation test program in which a repetition instruction for executing the above-described processing is set in the program code.
  • the program execution unit 134 passes the input data specified by the line number in the input data file to the function recorded in the operation content file. Therefore, when the repetition process by the group ID is designated and the line number is further designated, the repetition is executed by the designated number of line numbers. For example, in the registration case of FIG. 18, there is no group setting across execution sets, and processing for one input data is executed in each execution set. On the other hand, in the search case of FIG. 18, the process for one input data in each execution set is repeated three times.
  • login2. Login data for the function recorded in xls Data “t_yamada” on the 35th line of xls is passed. And search entry. Search entry data for the function recorded in xls, specifically, the function No. 1 in FIG. The data “Taro Yamada” in the first line of the xls and full name kanji is passed. For the function No. 2 in FIG. The data “Yamada Taro” in the first line of the xls and the name Kana is passed.
  • login 2. 1. Login data for the function recorded in xls The data “h_yamada” on the 36th line of xls is passed. And search entry.
  • Search entry data for the function No. 1 in FIG. Data “Kana Yamada” in the second line of xls and full name kanji is passed.
  • search entry data for the function No. 2 in FIG. The data “Yamada Hanako” in the second line of xls and the name Kana is passed.
  • the input data in the incremented line number is passed to each function.
  • the operation verification apparatus 100 of the reference technique 2 also has the effects described in the reference technique 1. Specifically, since separation of processing and parameters and GUI-based setting are realized, it is possible to easily generate a stable quality program while ensuring the diversity of logic included in the operation test program. Moreover, it becomes easy to expand the variation of the operation test by setting the input data file. Furthermore, operation tests in various scenarios can be realized by setting case files.
  • the execution engine function that executes the operation test program and the wrapper function that realizes efficient use of the execution engine are seamlessly linked without requiring user intervention. To do. Thereby, the burden on the user for executing the operation test can be reduced.
  • the user does not need to be aware of the environment for program execution such as a QTP project. That is, an operation content file and an input data file in a format that can be easily understood and operated by the user may be set. As a result, the user can easily perform the operation test.
  • one operation test program in which a plurality of execution sets of the same test case are aggregated is generated, and the one operation test program is executed.
  • execution for each execution set in the operation verification apparatus 100 of the reference technology 1 that is, for each project of QTP generated based on the execution set, overhead when executing a series of operation tests in one test case is reduced. A quick operation test can be realized.
  • the operation verification apparatus 100 of the reference technique 2 it is possible to set a repeated group over a plurality of execution sets. As a result, the execution set can be flexibly divided, and an operation test scenario can be flexibly set. Furthermore, the reference range of the input data file can be set. Thereby, even if the input data file is the same, the reference range can be flexibly changed according to the scenario, and various variations of the operation test can be easily realized.
  • the drop-down list 252 is shown as an example of supporting the value setting on the function setting screen 210.
  • candidates for input data displayed so as to be selectable by a radio button, a check box, a list box, etc. on the web page are displayed so as to be selectable on the function setting screen 210 in a drop-down list 252 or other formats. Also good. That is, input data candidates that are displayed so as to be selectable in various formats for the user when performing a data input operation on the operation confirmation target device are displayed so as to be selectable when setting values on the function setting screen 210. Also good.
  • the operation verification apparatus 100 creates an operation test program on the condition that a user operation on the web server 400 is accepted by the QTP and a log is generated.
  • the operation verification apparatus 100 detects a user operation on the web server 400 and creates an operation test program.
  • an operation test program may be generated when the operation verification apparatus 100 acquires an HTML file from the web server 400.
  • the operation verification apparatus 100 searches for a form tag included in the HTML file and specifies what input interface is included in the HTML file. If a function for inputting data to each input interface is selected and these functions are arranged in various orders, an operation test program can be generated without an explicit web operation by the user.
  • Method 1 External operation: By calling an API (Application Programming Interface) published by the web browser to the outside, that is, an interface that accepts an input operation to the test target page being displayed on the web browser (hereinafter also referred to as “operation IF”), Operate from.
  • the operation IF of the reference technique 3 is a function for inputting data to the test target page, executing the form of the test target page, and transmitting a GET request or a POST request to the web server. is there.
  • Method 2 Operation from inside: A script document (hereinafter also referred to as “control code”) that accepts an input operation to the test target page and causes the web browser to execute the input operation is added to the program code (ie, HTML document) of the test target page. . Then, the web browser is operated from the inside by calling the control code. In other words, the web browser is operated by a script document embedded in advance in a web page displayed on the web browser.
  • control code ie, HTML document
  • the control code of Reference Technology 3 is a program code in which a function including an interface function that accepts an input operation to the test target page from the outside is described. Further, the program code describes a function including a function for updating the display contents of the test target page by operating the DOM tree of the test target page and a function for transmitting a GET request or a POST request to the web server.
  • the control code may be described in a predetermined script language (for example, JAVA script (“JAVA” is a registered trademark)).
  • FIG. 19 shows the characteristics of the two operation methods for the web browser.
  • the figure compares the operation method from the outside with the operation method from the inside.
  • the reliability of the operation test itself which is assumed to be the most important, it can be said that the operation method from the outside is superior because the operation method from the inside rewrites the test target page.
  • the operation method from the outside depends on the operation IF in the web browser, so the operation method from the inside is superior.
  • the operation verification device operates the web browser from the inside. Propose. As a result, it is possible to support operation tests using various types of web browsers while ensuring reliability of the operation tests at best effort.
  • FIG. 20 schematically shows a calling relationship between functions for two operation methods for the web browser.
  • the web server 400 is an information processing apparatus that provides a test target page.
  • Browser A 402a, browser B 402b, browser C 402c, and browser D 402d, which are collectively referred to as browser 402, are web browsers that function as HTTP user agents, and execute display processing / operation processing of a test target page.
  • the browser A 402a and the browser B 402b shown in the figure disclose the operation IF to the outside, and the browser C 402c and the browser D 402d make the operation IF private.
  • the browser A engine 404a and the browser B engine 404b which are collectively referred to as the individual browser engine 404, are program codes that call the operation IFs of the browser A 402a and the browser B 402b, respectively.
  • the common IF 406 is an interface for calling the operation IF of each of the plurality of types of browsers 402, and is a program code having a common format interface that does not depend on the operation IFs that are different for each of the plurality of types of browsers 402.
  • the browser A engine driver 408a and the browser B engine driver 408b which are collectively referred to as the individual browser engine driver 408, convert the data in the common IF 406 format independent of the type of the browser 402 into data in the operation IF format different for each browser 402. By performing the conversion, the operation test program and the individual browser engine 404 are bridged.
  • the proxy server 410 functions as a reverse proxy that acquires a test target page from a web server as a proxy of the browser 402. After adding the control code to the test target page, the proxy server 410 provides the test target page to the browser C402c and the browser D402d.
  • the internal operation engine 412 calls the control code added to the test target page via the proxy server 410.
  • the internal operation engine driver 414 bridges the operation test program and the internal operation engine 412 by converting data in the common IF 406 format into data in a predetermined format for calling a control code.
  • the operation test program calls the common IF 406. Accordingly, the web browser operation IF is called via the individual browser engine driver 408 and the individual browser engine 404, whereby the web browser is operated, and the input operation to the test target page is realized.
  • the proxy server 410 adds a control code to the test target page and causes the test browser to display the test target page.
  • the operation test program calls the common IF 406, and the control code added to the test target page is called through the internal operation engine driver 414, the internal operation engine 412, and the proxy server 410.
  • the operation test program can always operate the test execution browser by calling the common IF 406 regardless of the type of web browser (hereinafter also referred to as “test execution browser”) used in the operation test of the web page.
  • test execution browser a type of web browser
  • FIG. 21 is a block diagram showing a functional configuration of the operation verification apparatus of Reference Technique 3.
  • the functional blocks corresponding to the functional blocks of the operation verification apparatus 100 shown in the reference techniques 1 and 2 are denoted by the same reference numerals.
  • Functional blocks with the same reference numerals are described when the functions are different from those already described in Reference Techniques 1 and 2, and similar functions are already described, and thus description thereof is omitted as appropriate.
  • the operation verification apparatus 100 further includes a browser processing unit 160 in addition to the functional blocks shown in FIG.
  • the browser processing unit 160 corresponds to the browser 402 in FIG. 20 and functions as a web browser.
  • a single operation verification apparatus 100 may include a plurality of types of browser processing units 160.
  • the program execution unit 134 selects an external operation method or an internal operation method according to the type of the test execution browser, in other words, the mode of the browser processing unit 160 when executing the operation test program.
  • the unit 160 is operated.
  • FIG. 22 is a block diagram showing details of the program execution unit 134 of FIG.
  • the program execution unit 134 includes a test subject selection unit 162, an external operation execution unit 164, a proxy processing unit 166, an internal operation execution unit 168, and a witness setting unit 170.
  • the test subject selection unit 162 acquires information indicating the type of the test execution browser, in other words, information indicating the disclosure status of the operation IF in the browser processing unit 160 from a predetermined setting file or an operation test program, and according to the information Determine the execution subject of the operation test. For example, with reference to a table in which various web browsers are associated with the disclosure status of each operation IF, the disclosure status of the operation IF in the test execution browser may be specified.
  • the test subject selection unit 162 selects an external operation execution unit 164 described later as an execution subject of the operation test.
  • a proxy processing unit 166 and an internal operation execution unit 168 described later are selected as execution subjects of the operation test.
  • the external operation execution unit 164 corresponds to the individual browser engine 404 in FIG. 20 and detects the call to the common IF 406 by the operation test program when the operation test program is executed. Then, the browser processing unit 160 is operated by calling an operation IF disclosed by the browser processing unit 160 to execute an input operation on the test target page.
  • the proxy processing unit 166 corresponds to the proxy server 410 in FIG. 20, obtains the test target page requested from the browser processing unit 160 by proxy from the web server 400, and inserts a control code into the HTML code of the test target page. Then, the HTML code of the modified test target page is sent to the browser processing unit 160 for display.
  • the proxy processing unit 166 receives a control code call from an internal operation execution unit 168, which will be described later, and calls the control code added to the test target page. Communication between the proxy processing unit 166 and the test target page may be implemented as asynchronous communication using XMLHttpRequest.
  • the internal operation execution unit 168 corresponds to the internal operation engine 412 in FIG. 20, and detects the call to the common IF 406 by the operation test program when the operation test program is executed. Then, by calling the control code added to the test target page via the proxy processing unit 166, the browser processing unit 160 is operated to perform an input operation on the test target page.
  • the proxy processing unit 166 and the internal operation execution unit 168 may be implemented using a Selenium (http://seleniumhq.org/) library published as a test automation tool.
  • the testimony object setting unit 170 sets data (hereinafter also referred to as “testimony object”) that proves the result of the operation test. Is stored in the result holding unit 152.
  • a screen snap of the test target page displayed on the display by the browser processing unit 160 may be acquired, and data transmitted and received by HTTP communication with the web server 400 may be acquired.
  • the screen snap acquisition function may be provided by the operating system (hereinafter also referred to as “OS”) of the operation verification apparatus 100, and the HTTP communication data acquisition function is a packet installed in the operation verification apparatus 100. It may be provided by capture software.
  • FIG. 23 is a flowchart showing the operation of the operation verification apparatus 100.
  • This figure shows an operation when an operation test program is executed in the operation verification apparatus 100. For example, it shows details of S218 in FIG. 12, and also shows details of S228 in FIG.
  • the test subject selection unit 162 selects an operation test execution engine according to the disclosure status of the operation IF in the browser processing unit 160 (S300).
  • the browser processing unit 160 requests the web server 400 to provide a test target page (S302).
  • the proxy processing unit 166 obtains the test target page by proxy, adds the control code to the HTML code, and then transmits the test target page to the browser.
  • the data is sent to the processing unit 160 (S306). If the operation IF is disclosed (Y in S304), S306 is skipped.
  • the browser processing unit 160 displays the test target page on a predetermined display (S308).
  • the proof object setting unit 170 sets a proof object of the operation test, such as obtaining a screen snap of the test target page, and stores it in the result holding unit 152 (S310).
  • the operation verification apparatus 100 of the reference technique 3 is obtained by adding a configuration for supporting a web page operation test in a plurality of types of web browsers on the premise of the configuration of the operation verification apparatus 100 described in the reference techniques 1 and 2. is there. Therefore, the configuration of the operation verification apparatus 100 of the reference technique 3 has the effects described in the reference techniques 1 and 2 as they are, and further has the following effects.
  • the operation verification apparatus 100 can execute an operation test of web pages in a plurality of types of web browsers regardless of whether or not the operation IF is disclosed in the web browser by implementing an internal operation method as the web browser operation method. .
  • the operation verification apparatus 100 also implements an external operation method as a web browser operation method. When the web browser publishes an operation IF, an operation test is performed by an external operation method. It becomes easy to ensure the reliability of the operation test.
  • the operation verification device 100 of the reference technique 3 has been described above.
  • the proxy processing unit 166 corresponding to the proxy server 410 is included in the operation verification apparatus 100.
  • the proxy processing unit 166 may be provided in another information processing apparatus different from the operation verification apparatus 100.
  • a plurality of types of web browsers may be installed in the single operation verification device 100, and the operation verification device 100 may include a plurality of browser processing units 160 corresponding to the plurality of types of web browsers.
  • the program execution unit 134 may execute an operation test on the test target page in each web browser. That is, the processing shown in FIG. 23 may be executed in parallel for each web browser. Since an operation test in a plurality of types of web browsers can be performed in the single operation verification apparatus 100, an operation test can be realized efficiently and at low cost.
  • either the internal operation method or the external operation method was selected for each type of web browser.
  • both formulas may be combined in an operational test with a single web browser.
  • an operation that can be executed using the published operation IF applies an external operation method, that is, the external operation execution unit 164 calls the operation IF.
  • the operation method from the inside is applied to an operation that cannot be executed by the published operation IF, that is, the internal operation execution unit 168 calls a control code. Since script code written in a web page generally allows a wide range of operations, constraints from external operation methods that occur depending on the operation IF specifications are complemented by internal operation methods. can do.
  • the reference technique 4 is related to the reference technique 3 and proposes an operation verification apparatus 100 that supports a web page operation test by various types of web browsers.
  • “Windows”, “Internet Explorer”, “Firefox”, “Mac”, “Mac OS”, “Safari” (Safari) ) ",” JAVA ", etc. are trademarks or registered trademarks of the respective companies.
  • FIG. 24 schematically shows a call relationship between functions in the web page operation test.
  • the operation verification engine 500 in FIG. 5 shows a core function for an operation test of a web page in the operation verification apparatus 100.
  • a Windows environment 540 indicates an environment in the Windows OS
  • a Mac environment 560 indicates an environment in the MacOS.
  • the operation verification apparatus 100 in which Windows is installed in the OS may be configured by a combination of the operation verification engine 500 and the Windows environment 540.
  • the operation verification apparatus 100 in which MacOS is installed in the OS may be configured by a combination of the operation verification engine 500 and the Mac environment 560.
  • the IE (Internet Explorer) browser 542 in FIG. 24 discloses COM550, which is an operation IF that can be called from an external application. Therefore, the operation method from the outside in the reference technique 3 is adopted for the operation of the web page displayed on the IE browser 542.
  • the FF (Firefox) browser 546 and the Safari browser 562 do not disclose an operation IF that can be called from an external application. Therefore, the operation method from the inside in the reference technique 3 is adopted for the operation on the web page displayed on these browsers.
  • FIG. 24 shows a selenium module 530 for an operation method from the inside.
  • the selenium module 530 is a server program of Selenium (http://seleniumhq.org/) that corresponds to the internal operation engine 412 and the proxy server 410 of FIG. 20 and is published as a test automation tool.
  • the selenium module 530 assigns a unique identifier to a web browser window (hereinafter also referred to as “browser window”) that displays a web page. Then, by specifying the identifier from the client, the browser window (in other words, the web page) to be operated is uniquely identified.
  • the common IF 406 corresponds to the common IF 406 in FIG.
  • the IE driver 502 corresponds to the individual browser engine driver 408 of FIG.
  • the IE driver 502 functions as a bridge between an operation test program (hereinafter also referred to as “test program”) and the IE browser 542 in a web page operation test using the IE browser 542.
  • the IE driver 502 includes an IE window manager 504, an IE browser operation unit 506, and an IE dialog operation unit 508.
  • the IE window manager 504 has an identifier assigned by the user in the test program (hereinafter also referred to as “user assigned ID”) and an identifier assigned by the OS (hereinafter “ The correspondence relationship with the “OS allocation ID”) is managed.
  • the IE browser operation unit 506 specifies an OS allocation ID corresponding to the user allocation ID specified by the test program for a browser window (hereinafter also referred to as “operation target window”) on which a web page should be operated.
  • the COM 550 function corresponding to the operation content specified by the test program is specified.
  • the IE browser 542 is operated from the outside, and the IE browser 542 is caused to execute the web page operation in the operation target window.
  • the IE browser 542 may display a dialog box by directly using the resources of the Windows OS.
  • this dialog box is also referred to as an “OS dialog”.
  • the IE dialog operation unit 508 operates the OS dialog 544 displayed by the IE browser 542. Specifically, when the OS dialog 544 is detected, an operation for the OS dialog 544 is executed by calling a Win32 API 552 function corresponding to the dialog operation specified by the test program. Note that typical operation contents for the OS dialog 544 include input of a character string, selection of a display item, and pressing of a button. The same applies to the operation contents for the FF dialog 548 and the Safari dialog 564 described later.
  • the FF driver 510 corresponds to the internal operation engine driver 414 in FIG. 20 and functions as a bridge between the test program and the FF browser 546 in the web page operation test using the FF browser 546.
  • the FF driver 510 includes an FF window manager 512, an FF browser operation unit 514, and an FF dialog operation unit 516.
  • the FF window manager 512 assigns an identifier (hereinafter also referred to as “selenium assignment ID”) assigned by the selenium module 530 to the browser window displaying the web page, and a user assignment ID and an OS assignment ID for the window. Manage the correspondence of.
  • an identifier hereinafter also referred to as “selenium assignment ID”
  • the FF browser operation unit 514 specifies a selenium assignment ID corresponding to the user assignment ID specified by the test program for the operation target window.
  • the function of the selenium module 530 corresponding to the operation content specified by the test program is specified.
  • the function of the selenium module 530 is called by specifying the selenium allocation ID.
  • the selenium module 530 specifies an operation target window based on the selenium assignment ID, and calls a control code corresponding to the called function among the control codes of the web page displayed in the operation target window.
  • a specific JAVA script is operated on the operation target web page, and the FF browser 546 is operated from the inside, and the operation of the web page specified by the test program is realized.
  • the FF browser operation unit 514 suppresses calling of the selenium module 530 when a predetermined operation to be operated without going through the selenium module 530, typically, a browser window closing process is designated by the test program. Instead, similar to the IE dialog operation unit 508, the operation is executed by calling the Win32 API 552.
  • the FF browser 546 may display the OS dialog 544 or a dialog box (hereinafter, also referred to as “FF dialog”) using a unique resource of the FF browser 546. is there.
  • the OS dialog 544 is displayed in cooperation with the OS, such as saving a file, and the FF dialog 548 is displayed as an alert dialog by JAVA script.
  • the FF dialog operation unit 516 operates the OS dialog 544 and the FF dialog 548. Specifically, when the display of the OS dialog 544 is detected, an operation for the OS dialog 544 is executed by calling a Win32 API 552 function corresponding to the dialog operation specified by the test program. When the display of the FF dialog 548 is detected, an operation for the FF dialog 548 is executed by calling the FF plug-in 554 which is an extension function set in advance in the FF browser 546 and instructing the dialog operation. Details of this will be described later with reference to FIG.
  • the Safari driver 520 corresponds to the internal operation engine driver 414 in FIG. 20 and functions as a bridge between the test program and the Safari browser 562 in the web page operation test using the Safari browser 562.
  • the Safari driver 520 includes a Safari window manager 522, a Safari browser operation unit 524, and a Safari dialog operation unit 526.
  • the Safari window manager 522 manages the correspondence between the user allocation ID, the OS allocation ID, and the selenium allocation ID for the window in which the web page is displayed. In MacOS, it is the Safari browser 562 that assigns an ID to a browser window, but for simplicity of description, the name is unified with the OS assignment ID.
  • the Safari browser operation unit 524 specifies a selenium allocation ID corresponding to the user allocation ID specified by the test program for the operation target window.
  • the function of the selenium module 530 corresponding to the operation content specified by the test program is specified.
  • the function of the selenium module 530 is called by specifying the selenium allocation ID.
  • an operation on the operation target web page is executed via the selenium module 530.
  • the Safari browser operation unit 524 suppresses calling of the selenium module 530 when a predetermined operation to be operated without going through the selenium module 530, typically, a window closing process is designated by the test program. Instead, the operation is executed by calling an API provided by MacOS. Specifically, an accessibility API 566 which is an API group provided for use by an application for a disabled person is called. Details of this will be described later with reference to FIG.
  • the Safari browser 562 may display a dialog (hereinafter also referred to as “Safari dialog”).
  • Sesi dialog a dialog
  • the Safari dialog operation unit 526 detects the display of the Safari dialog 564
  • the Safari dialog operation unit 526 calls the MacOS API corresponding to the dialog operation specified by the test program to execute the operation on the Safari dialog 564. Also at this time, the above-described accessibility API 566 is called. Details of this will be described later with reference to FIG.
  • FIG. 25 shows an example of data stored in the selenium window manager 532.
  • the selenium window manager 532 holds the user assignment ID, selenium assignment ID, and OS assignment ID assigned to each browser window in the web page operation test in association with each other.
  • the operation of the IE browser 542 is not performed through the selenium module 530. Therefore, the IE window manager 504 holds only the user allocation ID and the OS allocation ID in association with each other.
  • the FF browser operation unit 514 and the Safari browser operation unit 524 are collectively referred to as a selenium browser operation unit 534 that operates a web browser via the selenium module 530.
  • FIG. 26 shows an operation mechanism for the FF dialog 548 shown in FIG.
  • a window handler 572 implemented by a JAVA script is preset in the FF profile 570 read by the FF browser 546.
  • the function of the window handler 572 is additionally incorporated by reading the window handler 572 into the storage area of the FF plug-in 554.
  • the listener object for detecting window generation by the FF browser 546 is registered in the window watcher 582 via the XPConnect 578 and the XPCOM 580.
  • the window handler 572 detects that the FF dialog 548 has been generated via the registered listener object, the window handler 572 performs socket communication with the socket server 574 of the FF dialog operation unit 516 and notifies that the FF dialog 548 has been generated. To do.
  • the notification information includes a display character string in the FF dialog 548 and display mode information indicating a display object such as a button.
  • the FF dialog operation unit 516 When notified that the FF dialog 548 has been generated, the FF dialog operation unit 516 is a function corresponding to the dialog operation specified by the test program, and notifies the window handler 572 of the identification information of the XPCOM 580 function. .
  • the window handler 572 operates the FF dialog 548 by calling the XPCOM 580 function designated by the FF dialog operation unit 516.
  • the FF dialog operation unit 516 may appropriately adjust the operation content for the FF dialog 548 in accordance with the display mode of the FF dialog 548. For example, for the button pressing operation specified by the test program, the ID of the button to be pressed may be added and the operation instruction may be notified to the window handler 572.
  • the FF browser 546 displays the FF dialog 548 as an alert dialog of JAVA script. Since the FF dialog 548 is displayed using resources unique to the FF browser 546, the contents of the dialog cannot be determined from the OS side. For example, display character strings and display objects such as buttons in the FF dialog 548 cannot be determined. For this reason, an operation via the Win32 API 552 cannot be performed like an operation on the OS dialog 544. For example, the pressing operation on the button displayed in the FF dialog 548 cannot be performed.
  • the display contents of the FF dialog 548 can be acquired, and an operation for the FF dialog 548 is realized.
  • a function for dialog operation (for example, a program code similar to the window handler 572) is set in the program code of the web page.
  • the FF dialog 548 is a modal dialog (an application modal dialog or a system modal dialog)
  • the window handler 572 incorporated as the FF plug-in 554 can continue the operation to the modal dialog. From this viewpoint, it can be said that the window handler 572 is desirably set as an extended function of the FF browser 546.
  • FIG. 27 shows an operation mechanism for the Safari dialog 564 shown in FIG.
  • An Apple script 584 in the figure is a script for calling an Apple event, which is an inter-application communication technique in MacOS.
  • a system event 586 is an application provided by MacOS, and implements the calling of the accessibility API 566 by the Apple script 584 through the Apple script 584 and the accessibility API 566.
  • FIG. 27 shows MacOS in four layers, and an upper layer provides an API having a higher abstraction level than a lower layer, in other words, provides a high level API.
  • the accessibility API 566 belongs to the highest hierarchy “user experience”. As described above, the accessibility API 566 is an API group related to a UI automation function for ensuring usability for persons with disabilities.
  • the operation contents to be automated include various user interface (screen) operations such as opening a window and pressing a button.
  • the Safari dialog operation unit 526 specifies the function of the accessibility API 566 corresponding to the dialog operation specified by the test program, and transmits the Apple script 584 specifying the function to the system event 586. Thus, a dialog operation function prepared as the accessibility API 566 is called through the system event 586.
  • the operation on the Safari dialog 564 can be realized using a lower level API group in MacOS.
  • the Safari dialog operation unit 526 can execute the operation on the Safari dialog 564 by calling the “Quartz” API of the graphics and media hierarchy.
  • the accessibility API 566 provides a high-level function corresponding to the UI operation by the user, the accessibility API 566 can be used to reduce the code amount of the Safari dialog operation unit 526 and to improve the maintainability thereof. Can do.
  • the Safari browser operation unit 524 calls the accessibility API 566 for a predetermined operation to be performed without going through the selenium module 530 among the operations on the web page, as in the Safari dialog operation unit 526. This causes the MacOS or Safari browser 562 to execute the operation.
  • FIG. 28 is a block diagram illustrating a functional configuration of the operation verification apparatus 100 of the reference technique 4.
  • functional blocks that are the same as or correspond to the functional blocks of the operation verification apparatus 100 shown in the reference techniques 1 to 3 are denoted by the same reference numerals.
  • Functional blocks with the same reference numerals are described when their functions are different from those already described in Reference Techniques 1 to 3, and descriptions of similar functions are omitted as appropriate.
  • the operation verification apparatus 100 further includes a window ID holding unit 154 and an ID acquisition unit 139.
  • the window ID holding unit 154 and the ID acquisition unit 139 correspond to the IE window manager 504 and the selenium window manager 532 in FIG. That is, the window ID holding unit 154 holds the correspondence relationship between the user assignment ID, selenium assignment ID, and OS assignment ID assigned to the browser window that displays the web page.
  • the ID acquisition unit 139 acquires an OS allocation ID for the browser window from the OS (Windows OS or MacOS).
  • the ID acquisition unit 139 acquires a window handle obtained by calling Win32 API.
  • the HWND value returned by the function “FindWindow” is acquired as a long integer and stored in the OS allocation ID field of the window ID holding unit 154.
  • those not stored in the window ID holding unit 154 may be added as new records in the window ID holding unit 154.
  • the ID acquisition unit 139 acquires a long value obtained from the Safari browser 562 using the Apple script, and stores it in the OS allocation ID field of the window ID holding unit 154.
  • the following script tell application "Safari" return id of windows end tell To obtain a list of long values assigned by the Safari browser 562 to each browser window.
  • the ID acquisition unit 139 acquires “seleniumWindowName” which is a window attribute value assigned to each browser window by the selenium module 530 (Selenium-CORE). Then, the window attribute value is stored as a selenium allocation ID in the selenium allocation ID field of the window ID holding unit 154. For example, a list of window attribute values managed by the selenium module 530 is acquired by calling the function “getAttributeFromAllWindows (“ seleniumwindowName ”)” of the selenium module 530.
  • the ID acquisition unit 139 acquires a user allocation ID allocated to the browser window by an ID allocation unit 174 and an ID allocation unit 180, which will be described later, and stores them in the user allocation ID field of the window ID holding unit 154.
  • the ID acquisition unit 139 sequentially stores the user allocation ID, the selenium allocation ID, and the OS allocation ID in the window ID holding unit 154 in the allocation order on the time axis (the acquisition order in the ID acquisition unit 139). Also good.
  • the ID for example, selenium allocation ID
  • the ID previously allocated on the time axis is similarly associated with another ID (for example, user allocation ID) previously allocated on the time axis.
  • FIG. 29 is a block diagram showing details of the program execution unit 134 of FIG.
  • the program execution unit 134 includes a test environment determination unit 171, an external operation execution unit 164, a proxy processing unit 166, an internal operation execution unit 168, and a witness setting unit 170.
  • functional blocks in the figure functional blocks that are the same as or correspond to the functional blocks of the program execution unit 134 shown in the reference technique 3 are denoted by the same reference numerals. Functional blocks with the same reference numerals are described when their functions are different from those already described in Reference Technology 3, and descriptions of similar functions are omitted as appropriate.
  • the test environment determination unit 171 corresponds to the test subject selection unit 162 in the reference technique 3 (FIG. 21), and is based on the environment for the operation test of the web page, specifically based on the combination of the OS and the web browser. Determine the operation test method. For example, a web browser operation method and a dialog operation method are determined.
  • the external operation execution unit 164 corresponds to the IE browser operation unit 506 in FIG.
  • the external operation execution unit 164 includes an ID assignment unit 174 and a dialog operation unit 176.
  • the ID allocation unit 174 detects that a function (command) for generating a new browser window is specified in the test program during execution of the test program, the ID allocation unit 174 uses the ID specified as an argument of the command as the user allocation ID. Determine as.
  • a new ID that is unique in the external operation execution unit 164 and the internal operation execution unit 168 may be assigned as a user allocation ID.
  • the dialog operation unit 176 corresponds to the IE dialog operation unit 508 in FIG. 24 and periodically monitors the dialog settings by the IE browser 542. For example, the above-described FindWindow function of Win32 API 552 may be periodically called to detect that a dialog window has been generated.
  • the dialog operation unit 176 operates the OS dialog 544 displayed on the IE browser 542 via the Win32 API 552.
  • the external operation execution unit 164 includes a web page operation function that can be specified by the test program, a function defined as the web browser operation IF, a function defined in COM550 or Win32 API 552 in Reference Technique 4. Holds a table that stores the correspondence relationship.
  • the external operation execution unit 164 refers to the table and calls a COM550 or Win32 API 552 function corresponding to the function specified by the test program.
  • the proxy processing unit 166 corresponds to the selenium module 530 in FIG. As already described in the reference technique 3, the proxy processing unit 166 acquires the operation target web page by proxy.
  • the program code of the web page is a program code implemented by a JAVA script, and a function group ("control code" in Reference Technology 3) prepared in advance for executing various operations on the web page is added. To do. Then, the web page after the addition of the control code is displayed on the browser processing unit 160. Further, in response to an operation instruction from the internal operation execution unit 168, a function of a control code corresponding to the operation instruction is called to execute the web page operation in an intermediary manner.
  • the proxy processing unit 166 includes an ID issuing unit 178 and an add-on setting unit 179.
  • the ID issuing unit 178 issues identification information for uniquely identifying the browser window in the proxy processing unit 166 when the browser processing unit 160 displays the web page after the addition of the control code. This identification information is acquired as a selenium allocation ID by the ID acquisition unit 139.
  • the add-on setting unit 179 specifies the FF profile 570 including the window handler 572 in FIG. 26 when the FF browser 546 is to be activated in order to display the web page after the addition of the control code on the browser processing unit 160. Start up. As a result, the window handler 572 is incorporated as an extended function of the FF browser 546.
  • the internal operation execution unit 168 corresponds to the selenium browser operation unit 534 in FIG.
  • the internal operation execution unit 168 includes an ID assignment unit 180 and a dialog operation unit 182.
  • the ID allocation unit 180 has the same configuration as the ID allocation unit 174 of the external operation execution unit 164.
  • the internal operation execution unit 168 holds a table that stores the correspondence between web page operation functions that can be specified by the test program and web page operation functions defined in the selenium module 530.
  • the external operation execution unit 164 refers to the table and calls a function of the selenium module 530 corresponding to the function specified by the test program as an operation instruction to the selenium module 530.
  • the dialog operation unit 182 corresponds to the FF dialog operation unit 516 and the Safari dialog operation unit 526 in FIG.
  • the dialog operation unit 182 periodically monitors the dialog settings by the FF browser 546. For example, the above-described FindWindow function of Win32 API 552 may be periodically called to detect that a dialog window has been generated.
  • the dialog operation unit 182 operates the OS dialog 544 displayed on the FF browser 546 via the Win32 API 552. Further, the dialog operation unit 182 detects the FF dialog 548 displayed by the FF browser 546 via the FF plug-in 554 and operates it via the FF plug-in 554.
  • the dialog operation unit 182 periodically monitors the dialog settings by the Safari browser 562.
  • the above-mentioned Apple script may be periodically executed to detect a dialog window setting in the Safari browser 562.
  • the dialog operation unit 182 operates the Safari dialog 564 displayed on the Safari browser 562 via the accessibility API 566.
  • FIG. 30 is a flowchart showing the operation of the operation verification apparatus 100.
  • This figure shows an operation when an operation test program is executed in the operation verification apparatus 100. For example, it shows details of S218 in FIG. 12, and also shows details of S228 in FIG. That is, as illustrated in FIG. 14, the operation verification apparatus 100 supports the operation check of the web page by reproducing a series of input operations performed by the user in advance on the web page.
  • 30 can be said to be a more detailed version of the flowchart of FIG.
  • the test environment determination unit 171 determines the type of the OS and web browser that are the execution environment of the operation test. Then, according to the determination result, the external operation execution unit 164 or the internal operation execution unit 168 is selected as the operation subject of the web page (S400).
  • the program execution unit 134 in other words, the external operation execution unit 164 or the internal operation execution unit 168 selected as the operation subject executes a test program reading process to be described later (S402).
  • This test program is an operation test program set by the series of processes shown in FIG.
  • “waitForNewWindow” is specified as a function for specifying operation 1 and operation 2
  • the URL of the web page and the user-specified ID are set as arguments.
  • “selectWindow” is designated as a function for designating operations 3 and 7, and an ID designated by the user is set as an argument thereof.
  • functions for specifying the operation 4 the operation 5, and the operation 8
  • functions for various operations such as WebEditSet and WebElementClick are specified.
  • a predetermined function for dialog operation is designated as a function for designating the operation 6.
  • the operation commands described in the test program are executed sequentially.
  • an unexecuted operation command remains in the test program (N in S404)
  • the display of a new web page is requested in the test program, that is, when the above operation 1 and operation 2 are to be executed
  • the external operation execution unit 164 or the ID assignment unit of the internal operation execution unit 168 selected as the operation subject assigns the ID specified by the operation command as the user assignment ID.
  • the ID acquisition unit 139 acquires the user assignment ID and stores it in the window ID holding unit 154 (S408).
  • the external operation execution unit 164 causes the web browser to acquire the data of the operation target web page by calling the operation IF (S412). Then, the browser window displaying the operation target web page is displayed on the display (S420).
  • Y in S410 is when the web browser is the IE browser 542, and the COM 550 corresponds to the operation IF at this time.
  • N in S410 When the operation IF of the web browser is not disclosed (N in S410), the internal operation execution unit 168 instructs the proxy processing unit 166 to acquire the operation target web page.
  • the ID issuing unit 178 of the proxy processing unit 166 issues a selenium allocation ID (S414).
  • the proxy processing unit 166 acquires data of the operation target web page (S416), and adds a control code to the data of the web page (S418).
  • the proxy processing unit 166 after executing a web browser activation process described later (S419), passes the web page data to which the control code is added to the web browser, and displays a browser window for displaying the operation target web page on the display. (S420).
  • N in S410 is when the web browser is the FF browser 546 or the Safari browser 562.
  • the ID acquisition unit 139 calls an API provided by the OS, acquires the OS assignment ID assigned by the OS to the browser window, and stores the acquired OS assignment ID in the window ID holding unit 154.
  • the API provided by the selenium module 530 is called to acquire the selenium assignment ID assigned by the selenium module 530 to the browser window and store it in the window ID holding unit 154. To do.
  • the user allocation ID, the OS allocation ID, and the selenium allocation ID allocated to the browser window A and the browser window B are associated with each other (S422).
  • the program execution unit 134 executes a web page operation process described later (S426). If no web page operation is specified in the test program (N in S424), S426 is skipped. After the operation on the web page, the proof object setting unit 170 stores the proof object data such as the screen snapshot in the result holding unit 152 (S428), and the process returns to S404.
  • the proof object setting unit 170 records the proof object such as a screen snap related to the browser window as the proof object in association with the user assignment ID assigned to the browser window.
  • the user who confirms the result of the operation test on the web page can confirm the proof corresponding to the ID designated by the user, and the convenience of the user in the confirmation of the proof can be improved.
  • FIG. 31 is a flowchart showing in detail the test program reading process in S402 of FIG.
  • the program execution unit 134 reads an operation test program (S430). When a predetermined function indicating a dialog operation is specified in the program (Y in S432), the program execution unit 134 stores the content of the dialog operation (the above operation 6) in a predetermined dialog operation holding table (S434). ). If no dialog operation is specified (N in S432), S434 is skipped.
  • FIG. 32 is a flowchart showing in detail the web browser activation process in S419 of FIG.
  • the proxy processing unit 166 activates a web browser for the operation test (S440).
  • the web browser for the operation test is the FF browser 546 (Y in S442)
  • the add-on setting unit 179 adds on the window handler 572 as an extended function of the FF browser 546 (S444).
  • the window handler 572 registers a listener for detecting the FF dialog 548 in the FF browser 546 (S446). If the web browser for the operation test is not the FF browser 546 (N in S442), S444 and S446 are skipped.
  • FIG. 33 is a flowchart showing in detail the web page operation process of S426 of FIG.
  • the internal operation execution unit 168 executes a Mac operation process described later (S452). If the OS is not MacOS (N in S450), S452 is skipped.
  • the OS is Windows (Y in S454) and the web browser is the IE browser 542 (Y in S456)
  • the external operation execution unit 164 executes an IE operation process described later (S458).
  • the web browser is not the IE browser 542 (N in S456) and is the FF browser 546 (Y in S460)
  • the internal operation execution unit 168 executes an FF operation process described later (S462). If the web browser is not the FF browser 546 (N in S460), S462 is skipped, and if the OS is not Windows (N in S454), S456 and subsequent steps are skipped.
  • FIG. 34 is a flowchart showing in detail the Mac operation process in S452 of FIG.
  • a window selection operation (the above operations 3 and 7) is specified in the test program (Y in S470)
  • the ID allocation unit 180 of the internal operation execution unit 168 identifies the ID received as an argument as the user allocation ID. (S472).
  • a predetermined operation to be executed via the Safari browser 562 (the above-described operations 4, 5, and 8, hereinafter also referred to as “browser operation”) is designated instead of the window selection operation (N in S470) (Y in S474)
  • the internal operation execution unit 168 specifies the selenium allocation ID associated with the user allocation ID (S476).
  • the selenium module 530 of an operation instruction designating the selenium allocation ID the function corresponding to the operation instruction among the control codes added to the web page is called by the selenium module 530 (S478).
  • OS operation When not a browser operation (N in S474) but a predetermined operation to be executed via MacOS (the above operations 9 and 10, hereinafter also referred to as “OS operation”) is designated (Y in S480), an internal operation is executed.
  • the unit 168 identifies the OS assignment ID associated with the user assignment ID (S482). Then, by designating the OS allocation ID and calling a function of the accessibility API 566 corresponding to the operation content, Mac OS is caused to execute the OS operation on the browser window (S484). If it is not an OS operation (N in S480), S482 and S484 are skipped.
  • the dialog operation unit 182 of the internal operation execution unit 168 detects the display of the Safari dialog 564 (Y in S486)
  • the operation content for the dialog (the above operation 6) is acquired from the dialog operation holding table (S488).
  • an operation for the Safari dialog 564 is executed by calling a function of the accessibility API 566 corresponding to the operation content (S490). If the display of the Safari dialog 564 is not detected (N in S486), S488 and S490 are skipped.
  • FIG. 35 is a flowchart showing in detail the IE operation process in S458 of FIG.
  • a window selection operation (the above operations 3 and 7) is specified in the test program (Y in S500)
  • the ID assignment unit 174 of the external operation execution unit 164 specifies the ID received as an argument as the user assignment ID. (S502).
  • an operation to be executed via the IE browser 542 (the above-described operations 4, 5, and 8, hereinafter also referred to as “browser operation”) is specified instead of the window selection operation (N in S500) (Y in S504)
  • the external operation execution unit 164 identifies the OS assignment ID associated with the user assignment ID (S506). Then, by designating the OS allocation ID and calling a function of the COM 550 corresponding to the content of the browser operation, the IE browser 542 is caused to execute the operation (S508).
  • the external operation execution unit 164 Specifies the OS allocation ID associated with the user allocation ID (S512). Then, by designating the OS assignment ID and calling a function of the Win32 API 552 corresponding to the operation content, the OS operation on the browser window is executed by the Windows OS (S514). If it is not an OS operation (N in S510), S512 and S514 are skipped.
  • the dialog operation unit 176 of the external operation execution unit 164 detects the display of the OS dialog 544 (Y in S516)
  • the operation content for the dialog (the above operation 6) is acquired from the dialog operation holding table (S518).
  • an operation for the OS dialog 544 is executed by calling a function of the Win32 API 552 corresponding to the operation content (S520). If the display of the OS dialog 544 is not detected (N in S516), S518 and S520 are skipped.
  • FIG. 36 is a flowchart showing in detail the FF operation process in S462 of FIG.
  • a window selection operation (the above operations 3 and 7) is specified in the test program (Y in S530)
  • the ID allocation unit 180 of the internal operation execution unit 168 identifies the ID received as an argument as the user allocation ID. (S532).
  • a predetermined operation to be executed via the FF browser 546 (the above-described operations 4, 5, and 8, hereinafter also referred to as “browser operation”) is designated instead of the window selection operation (N in S530) (Y in S534)
  • the internal operation execution unit 168 identifies the selenium allocation ID associated with the user allocation ID (S536).
  • the selenium module 530 is called a function corresponding to the operation instruction among the control codes added to the web page (S538).
  • OS operation When not a browser operation (N in S534) but a predetermined operation to be executed via Windows OS (the above operations 9 and 10, hereinafter also referred to as "OS operation") is designated (Y in S540), an internal operation is executed.
  • the unit 168 identifies the OS assignment ID associated with the user assignment ID (S542). Then, by designating the OS allocation ID and calling a function of the Win32 API 552 corresponding to the operation content, the OS operation on the browser window is executed by the Windows OS (S544). If it is not an OS operation (N in S540), S542 and S544 are skipped.
  • the dialog displayed by the operation 5 is the FF dialog 548.
  • the dialog operation unit 182 of the internal operation execution unit 168 detects the display of the FF dialog 548 based on the notification from the window handler 572 (Y in S546)
  • the dialog operation holding table displays the operation content (the above operation 6) for the dialog. (S548).
  • the window handler 572 is caused to call a function of the FF browser 546 corresponding to the operation content (S550).
  • an operation according to the test program is executed for the FF dialog 548. If the display of the FF dialog 548 is not detected (N of S546), S548 and S550 are skipped.
  • the dialog displayed by the operation 5 is the OS dialog 544.
  • the dialog operation unit 182 of the internal operation execution unit 168 detects that the OS dialog 544 is displayed (Y in S552)
  • the operation content for the dialog (the above operation 6) is acquired from the dialog operation holding table (S554).
  • an operation on the OS dialog 544 is executed by calling a Win32 API 552 function corresponding to the operation content (S556). If the display of the OS dialog 544 is not detected (N in S552), S554 and S556 are skipped.
  • the selenium module 530 According to the operation verification apparatus 100 of the reference technique 4, as already described in the reference technique 3, by using the selenium module 530, web pages on various web browsers can be displayed regardless of whether or not the operation IF is disclosed. Operation check is possible. Further, the user can assign an arbitrary ID to the browser window in the test program and the operation content file or function setting screen that is the generation source of the test program. In other words, the user can appropriately set the browser window ID according to the convenience of the test, while the selenium module 530 does not need to be aware of the selenium allocation ID necessary for identifying the browser window, thereby improving the user convenience. It can be improved.
  • the operation verification apparatus 100 can support an operation on a browser window that should be performed without using the selenium module 530.
  • the user can arbitrarily set the ID of the browser window according to the convenience of the test, but the user does not need to be aware of the ID assigned to the browser window by the OS or the web browser. Can be improved.
  • a dialog detection function is added on as an extended function of the web browser (FF browser 546).
  • the function of the OS cannot acquire the contents of the dialog because the web browser uses its own resource to display the dialog
  • the contents of the dialog are acquired via the dialog detection function that is added, and the dialog Can be operated.
  • the operation for either dialog can be performed by appropriately switching the dialog operation method. Also make it possible.
  • the first dialog is operated through the add-on dialog detection function
  • the second dialog is operated through the OS native function, thereby supporting a series of operations on the web page. Can be reproduced.
  • the selenium module 530 is used in many operations on the browser window, and the OS API is directly called or a dialog operation module is used in exceptional operations.
  • the OS API is directly called or a dialog operation module is used in exceptional operations.
  • FIG. 37 shows a display example of web content in the browser window. This figure shows a situation in which a web page (typically a test target page) provided from a web server is displayed on a browser window 632 on a display screen 630.
  • the web browser activated in the browser window is the Safari browser 562.
  • the browser window 632 includes a client area 634 and a header area 636.
  • the header area 636 is an area in which information related to the Safari browser 562 is mainly displayed, and various menus and icons for operating the Safari browser 562 are displayed. Also, meta information of the web page such as URL and title is displayed instead of the content of the web page itself.
  • the client area 634 is an area where the content of the web page itself is displayed.
  • the client area 634 includes a plurality of frames each displaying a different web page.
  • a frame a638, a frame b640, and a frame c642 are included.
  • the header area 636 is arranged above the client area 634.
  • the vertical scroll bar 646 is arranged in the frame a638 because the entire vertical length including the non-display portion exceeds the vertical length of the visible range.
  • the frame a638 includes an element 644.
  • the “element” in the first embodiment is a GUI component that is arranged in a frame and can be set with a scroll bar, and includes, for example, a text box and a list box.
  • the vertical scroll bar 645 is disposed in the element 644 in the drawing because the entire vertical length including the non-display portion exceeds the vertical length of the visible range.
  • the horizontal width including the non-display portion exceeds the horizontal length of the visible range, so the horizontal scroll bar 650 is arranged.
  • the frame b640 includes a table 648.
  • the operation verification apparatus 100 stores a display image of the browser window 632 as one piece of image data for each frame. That is, in a screen capture of a web page composed of a plurality of frames, in other words, a web page that displays a plurality of web pages divided into frames (hereinafter also referred to as “top page” for convenience), for each frame. Save captured images. Further, when the contents of the entire frame cannot be displayed at a time in the browser window 632 and scrolling is necessary, a plurality of pieces of image data each including a part of the frame are acquired, and the image data obtained by connecting them is obtained as a final captured image. Save as.
  • FIG. 38 shows a captured image of the browser window of FIG.
  • FIG. 38A shows a captured image of the frame a638.
  • the entire frame a638 including the area not displayed in FIG. 37 is stored as one image.
  • FIG. 38B shows a captured image of the element 644 in the frame a638.
  • the entire element 644 including the area not displayed in FIG. 37 is stored as one image.
  • FIG. 38C shows a captured image of the frame b640.
  • the entire frame b640 including the non-displayed area is stored as one image.
  • a captured image of the frame c642 is also acquired. Since no scroll bar is arranged in the frame c642, a captured image indicating the display content in FIG. 37 is acquired.
  • a browser window that should capture a display image is called a “capture target window”
  • a frame included in the capture target window is referred to as a “capture target frame”
  • an element included in the capture target frame is referred to as a “capture target element”.
  • a web page displayed in each frame on the top page is referred to as a “frame page”.
  • the main functional configuration of the operation verification apparatus 100 in the first embodiment is the same as the functional configuration of the operation verification apparatus 100 in the reference technique 4 shown in FIGS.
  • the description of the configurations already described in the reference techniques 1 to 4 will be omitted as appropriate, and the configuration for screen capture processing of web content will be described in detail.
  • FIG. 39 is a block diagram showing a functional configuration related to screen capture processing in the first embodiment.
  • the operation verification apparatus 100 includes the evidence setting unit 170, the proxy processing unit 166, and the browser processing unit 160.
  • the witness setting unit 170 calls various functions described later provided by the proxy processing unit 166.
  • the proxy processing unit 166 appropriately communicates with the control code added to the program code of the web page, and causes the browser processing unit 160 to execute the JAVA script corresponding to the function called by the evidence setting unit 170.
  • the witness setting unit 170 operates the web page using various functions provided by the proxy processing unit 166, and acquires information necessary for image capture of the web page from the browser processing unit 160 and the proxy processing unit 166. To do.
  • FIG. 40 shows functions provided by the proxy processing unit 166 to the witness setting unit 170.
  • these functions are functions that the selenium module 530 in FIG. 24 exposes to the outside.
  • the functions other than “getOffsetPositionOfWindow” in the figure may be functions provided by the proxy processing unit 166, that is, the selenium module 530 as standard.
  • the proxy processing unit 166 of the first embodiment acquires the top page to be displayed on the Safari browser 562 as a proxy, and adds a control code to the top page.
  • a frame page to be displayed in the frame of the top page is obtained by proxy, and a control code is added to each frame page.
  • a unique ID is assigned to the browser window displaying the web page, and an ID is also assigned to each frame displayed on the web page. Then, the ID assigned to the window and the ID assigned to the frame are managed in association with each other.
  • the proxy processing unit 166 includes an image position specifying unit 600.
  • the witness setting unit 170 includes an object specifying unit 612, a frame processing unit 614, an element processing unit 619, an image acquisition unit 625, and an image composition unit 627.
  • Each function block in the figure can also be collectively referred to as a screen capture processing unit 629 as a function block for executing a screen capture process of web content.
  • Each functional block of the screen capture processing unit 629 may be arranged in the proxy processing unit 166 according to the function of the function provided by the proxy processing unit 166 to the witness object setting unit 170. It may be arranged.
  • Proxy processing unit 166 The image position specifying unit 600 realizes the function of the function “getOffsetPositionOfWindow” in FIG. That is, the display position on the screen 630 is derived for the frame (capture target frame) specified by the argument of the function, and information indicating the display position is notified to the evidence object setting unit 170.
  • the image position specifying unit 600 includes a window display position acquiring unit 602, a header area specifying unit 604, a client area specifying unit 606, a frame relative position acquiring unit 608, and a frame display position specifying unit 610.
  • the window display position acquisition unit 602 acquires the display position on the screen 630 of the browser window 632 in which the capture target frame is displayed.
  • the coordinates in the Cartesian coordinate system with the upper left corner of the screen 630 as the origin and the coordinates of the upper left corner of the browser window (point 659 in FIG. 37) are acquired.
  • the window display position acquisition unit 602 communicates with the control code of the top page including the capture target frame, and causes “window.screenX” to be executed on the top page. Then, as a return value, the abscissa value of the point 659 (abscissa 652 in FIG. 37) is acquired. Similarly, “window.screenY” is executed on the top page, and the ordinate value of the point 659 (ordinate 654 in FIG. 37) is acquired as a return value.
  • the header area specifying unit 604 specifies the size of the header area 636 in the browser window 632. In the first embodiment, since the header area 636 is disposed above the client area 634, the header area specifying unit 604 specifies the vertical length of the header area 636.
  • the header area specifying unit 604 communicates with the control code of the top page including the capture target frame, and causes “window.outerHeight” to be executed on the top page. Then, the vertical length of the browser window 632 (vertical width 656 in FIG. 37) is acquired as a return value. Similarly, “window.innerHeight” is executed on the top page, and the vertical length of the client area 634 (vertical width 658 in FIG. 37) is acquired as a return value.
  • the header area specifying unit 604 derives the vertical length of the header area 636 by subtracting the vertical length of the client area 634 from the vertical length of the browser window 632.
  • the client area specifying unit 606 specifies the display position of the client area 634 on the screen 630 according to the display position of the browser window 632 on the screen 630 and the size of the header area 636. Specifically, the vertical length of the header area 636 is added to the ordinate value of the coordinates of the upper left corner (point 659) of the browser window 632, while the abscissa value of the coordinates of the point 659 is used as it is. The coordinates of the upper left corner (point 660) of the area 634 are derived.
  • the frame relative position acquisition unit 608 acquires the position of the capture target frame in the client area 634.
  • the coordinates are in an orthogonal coordinate system with the upper left corner of the client area 634 (point 660 in FIG. 37) as the origin, and the coordinates of the upper left corner of the capture target frame (hereinafter also referred to as “coordinate within the client area”). .)
  • the capture target frame is the frame b640
  • the coordinates in the client area of the point 662 in FIG. 37 are acquired.
  • the frame relative position acquisition unit 608 communicates with the control code of the top page including the capture target frame, and causes “frame name.frameElement.offsetLeft” to be executed on the top page. Then, as a return value, the abscissa value of the coordinates in the client area of the capture target frame is acquired. Similarly, “frame name.frameElement.offsetTop” is executed on the top page, and the ordinate value of the coordinates in the client area of the capture target frame is acquired as a return value.
  • the frame display position specifying unit 610 determines the capture target frame on the screen 630 according to the display position of the client area 634 on the screen 630 derived by the client area specifying unit 606 and the position of the capture target frame on the client area 634. Specify the display position. Specifically, by adding the ordinate value and the abscissa value of the coordinates in the client region of the capture target frame to the ordinate value and the abscissa value of the upper left coordinate of the client region 634, the upper left end of the capture target frame The coordinates (coordinates on the screen 630) are derived.
  • the target specifying unit 612 determines target content to be image-captured from the web content displayed on the screen 630. Specifically, the capture target window, the capture target frame, and the capture target element are sequentially specified.
  • a user sets a screen capture function (for example, “WebScreen Capture” in FIG. 7) on the function setting screen 210, and sets a user allocation ID of a browser window to be captured as an argument thereof.
  • the target specifying unit 612 identifies the browser window corresponding to the user assignment ID specified by the argument of the screen capture function as the capture target window.
  • the target specifying unit 612 calls the function “getAllFrame” by specifying the selenium allocation ID corresponding to the user allocation ID specified by the argument of the screen capture function. Then, the proxy processing unit 166 obtains frame list information (hereinafter also referred to as “frame list”) included in the capture target window. This frame list includes the ID of each frame (hereinafter also referred to as “frame ID”) assigned by the selenium module 530 to each frame included in the capture target window. The target specifying unit 612 identifies each frame included in the frame list as a capture target frame.
  • the target identifying unit 612 calls the function “getScrollableElement” by designating each ID of the capture target frame. Then, scrollable element list information (hereinafter also referred to as “element list”) included in the capture target frame is acquired from the proxy processing unit 166. This element list includes the ID of each scrollable element included in the capture target frame (hereinafter also referred to as “element ID”). The target specifying unit 612 specifies each element included in the element list as a capture target element.
  • the frame processing unit 614 executes a preparation process for capturing a capture target frame.
  • the frame processing unit 614 includes a frame display position acquisition unit 615, a frame range acquisition unit 616, and a frame scroll processing unit 617.
  • the frame display position acquisition unit 615 calls the function “getOffsetPositionOfWindow” by specifying the frame ID of the capture target frame.
  • the image position specifying unit 600 of the proxy processing unit 166 specifies the coordinates indicating the display position of the capture target frame on the screen 630, and the coordinate value is acquired from the proxy processing unit 166.
  • the frame range acquisition unit 616 specifies the frame ID of the capture target frame and calls the function “getScrollRectangleOfElement”. Then, the invisible portion of the capture target frame, in other words, the entire size including the portion displayed on the screen 630 for the first time by scrolling, here the horizontal length (horizontal width) and the vertical length of the entire capture target frame. (Vertical width) is acquired from the proxy processing unit 166.
  • the proxy processing unit 166 may execute different JAVA scripts on the top page depending on the type of the browser processing unit 160. That is, in the case of the Safari browser 562 as in the first embodiment, the execution result of “frame name. Document. Width” may be specified as the horizontal width of the entire capture target frame. Similarly, the execution result of “frame name. Document. Height” may be specified as the vertical width of the entire capture target frame.
  • the execution result of “frame name.window.innerWidth” + the execution result of “frame name.window.scrollMaxX” is specified as the horizontal width of the entire capture target frame. Also good.
  • the execution result of “frame name.window.innerHeight” + the execution result of “frame name.window.scrollMaxY” may be specified as the vertical width of the entire capture target frame.
  • the frame range acquisition unit 616 specifies the frame ID of the capture target frame and calls the function “getClientRectangle”.
  • the visible portion of the capture target frame in other words, the size of the portion displayed on the screen 630 without scrolling, that is, the horizontal width and the vertical width of the visible portion in the capture target frame are acquired from the proxy processing unit 166.
  • the proxy processing unit 166 executes a JAVA script corresponding to the function on the top page.
  • the execution result of “frame name. Document. DocumentElement. ClientWidth” may be specified as the horizontal width of the visible portion in the capture target frame.
  • the execution result of “frame name. Document. DocumentElement. ClientHeight” may be specified as the vertical width of the visible portion in the capture target frame.
  • the frame scroll processing unit 617 divides the horizontal width of the entire capture target frame by the horizontal width of the visible portion (the remainder is rounded up), and determines the result as the maximum number of horizontal scrolls. Further, the vertical width of the entire capture target frame is divided by the vertical width of the visible portion (the remainder is rounded up), and the result is determined as the upper limit number of vertical scrolls.
  • the frame scroll processing unit 617 vertically scrolls the frame or vertically scrolls and horizontally scrolls before acquiring the next image.
  • the frame ID of the capture target frame the horizontal scroll amount is 0
  • the vertical width of the visible portion of the capture target frame is specified as the vertical scroll amount
  • the function “doScrollFrameTo” is set. call.
  • the function “doScrollFrameTo” is called by specifying the frame ID of the capture target frame, the horizontal width of the visible portion of the capture target frame as the horizontal scroll amount, and 0 as the vertical scroll amount.
  • scrolling is executed in a so-called inverted N type. That is, for each image acquisition process, the frame scroll processing unit 617 first repeats the vertical scroll once for the upper limit number of times while fixing the horizontal position. Next, the vertical position is returned to the initial position and horizontal scrolling is executed once. Then, the vertical scrolling is repeated once each up to the upper limit number while the horizontal position is fixed again. When both the vertical scroll count and horizontal scroll count reach the upper limit count, the scroll process for the capture target frame is terminated.
  • the element processing unit 619 executes a preparation process for capturing the capture target element.
  • the element processing unit 619 includes an element relative position acquisition unit 620, an element display position specification unit 621, an element range acquisition unit 622, and an element scroll processing unit 623.
  • the element relative position acquisition unit 620 calls the function “getOffsetPositionOfElement” by specifying the element ID of the capture target element. Then, the coordinates in the Cartesian coordinate system having the origin at the upper left corner of the frame including the capture target element and the coordinates of the upper left corner of the capture target element (hereinafter also referred to as “in-frame coordinates”) are acquired. For example, for the element 644 included in the frame a638, the upper left corner coordinate of the element 644 with the point 662 as the origin is acquired.
  • the proxy processing unit 166 When the proxy processing unit 166 receives a call to the function “getOffsetPositionOfElement”, the proxy processing unit 166 causes the JAVA script corresponding to the function to be executed on the frame page. For example, “element name.getBoundingClientRect.left” may be executed, and the abscissa value of the in-frame coordinates of the capture target element may be acquired as the return value. Similarly, “element name.getBoundingClientRect.top” may be executed, and the ordinate value of the in-frame coordinates of the capture target element may be acquired as the return value.
  • the element display position specifying unit 621 acquires coordinates of the display position of the capture target frame on the screen 630 acquired by the frame display position acquisition unit 615, and the frame of the capture target element acquired by the element relative position acquisition unit 620.
  • the display position of the capture target element on the screen 630 is specified according to the internal coordinates. Specifically, by adding the ordinate and abscissa values of the in-frame coordinates of the capture target element to the ordinate and abscissa values of the upper-left corner coordinates of the capture target frame, the upper-left corner of the capture target element Coordinates (coordinates on the screen 630) are derived.
  • the element range acquisition unit 622 specifies the element ID of the capture target element and calls the function “getScrollRectangleOfElement”. Then, the entire size including the invisible part of the capture target frame, here, the horizontal width and the vertical width of the entire capture target frame are acquired from the proxy processing unit 166.
  • the proxy processing unit 166 when the proxy processing unit 166 receives a call to the function “getScrollRectangleOfElement”, the proxy processing unit 166 causes the JAVA script corresponding to the function to be executed on the frame page. For example, “element name. ScrollWidth” may be executed, and the horizontal width of the entire capture target element may be acquired as the return value. Similarly, “element name. ScrollHeight” may be executed, and the vertical width of the in-frame coordinates of the capture target element may be acquired as the return value.
  • the element range acquisition unit 622 calls the function “getClientRectangleOfElement” by specifying the element ID of the capture target element. Then, the size of the visible portion of the capture target element, here, the horizontal width and vertical width of the visible portion in the capture target frame is acquired from the proxy processing unit 166.
  • the proxy processing unit 166 executes a JAVA script corresponding to the function on the frame page.
  • the execution result of “element name. ClientWidth” may be acquired as the width of the visible portion of the capture target element.
  • the execution result of “element name. ClientHeight” may be acquired as the vertical width of the visible portion of the capture target element.
  • the element scroll processing unit 623 divides the horizontal width of the entire capture target element by the horizontal width of the visible portion (rounds up the remainder), and determines the result as the maximum number of horizontal scrolls. Further, the vertical width of the entire capture target element is divided by the vertical width of the visible portion (the remainder is rounded up), and the result is determined as the upper limit number of vertical scrolls.
  • the element scroll processing unit 623 vertically scrolls the element or vertically scrolls and horizontally scrolls before acquiring the next image.
  • the element ID of the capture target element the horizontal scroll amount is 0
  • the vertical width of the visible portion of the capture target element is specified as the vertical scroll amount
  • the function “doScrollElementTo” is executed. call.
  • the function “doScrollElementTo” is called by specifying 0 as the element ID of the capture target element, the horizontal width of the visible portion of the capture target element, and the vertical scroll amount as the horizontal scroll amount.
  • the scroll mode of the element is the same as the scroll mode of the frame described above.
  • the image acquisition unit 625 captures the display image of the capture target frame according to the display position of the capture target frame on the screen 630. Further, the display image of the capture target element is captured according to the display position of the capture target element on the screen 630.
  • the image acquisition unit 625 of the first embodiment excludes the header area 636 of the browser window 632 from the capture target. In other words, the display image of the capture target frame is obtained purely from which the display image of the header area 636 is excluded.
  • the image acquisition unit 625 specifies the coordinate value of the upper left corner of the capture target frame on the screen 630 as the start point, specifies the horizontal width and vertical width of the visible portion of the capture target element as the capture range, and performs screen capture of the OS.
  • a function API may be called. Then, the image data of the visible portion of the capture target element may be stored in the memory (clipboard).
  • the image acquisition unit 625 repeats the capture processing of the capture target frame until the number of vertical and horizontal scrolls determined by the frame scroll processing unit 617 reaches the upper limit. Similarly, the capture processing of the capture target element is repeated until the number of vertical and horizontal scrolls determined by the element scroll processing unit 623 reaches the upper limit. Therefore, for a frame or element in which a scroll bar is set, data of a plurality of captured images is taken into the memory.
  • the image composition unit 627 synthesizes the data of a plurality of captured images acquired by a plurality of image acquisition processes for one capture target frame into one image data.
  • one piece of image data is stored in the result holding unit 152 as a proof of the operation test.
  • the element For one capture target frame, one piece of image data is stored in the result holding unit 152 as a proof of the operation test. If there is an overlapping portion between a plurality of captured images, the overlapping portion is trimmed from one captured image and then combined into a single image.
  • FIG. 41 is a flowchart showing the operation of image capture processing in the operation verification apparatus 100.
  • the target specifying unit 612 acquires a list of frames included in the capture target window specified by the request from the proxy processing unit 166. (S602).
  • the target specifying unit 612 specifies one of the frames included in the frame list as a capture target frame (S604).
  • the frame display position acquisition unit 615 designates a capture target frame and causes the proxy processing unit 166 to execute a frame display position specifying process described later (S606).
  • the frame range acquisition unit 616 acquires the size of the entire capture target frame and the size of the visible portion (S608).
  • the frame scroll processing unit 617 determines the maximum number of horizontal and vertical scrolls to be performed on the capture target frame according to the size of the entire capture target frame and the size of the visible portion (S610).
  • the image acquisition unit 625 temporarily stores the image of the visible portion of the capture target frame in the memory (S612). If the upper limit number of scrolls has not been reached (N in S614), the frame scroll processing unit 617 changes the display content (that is, the visible portion) of the capture target frame by scrolling the capture target frame by one unit. , The process returns to S612 (S616).
  • the image composition unit 627 acquires a plurality of capture images temporarily stored for the capture target frame, and sets one image data obtained by composing them. Then, the combined image data is stored in the result holding unit 152 as a proof of the operation test (S618). If there is one captured image, the image is stored in the result holding unit 152 as a proof as it is.
  • the target specifying unit 612 acquires a list of elements included in the capture target frame from the proxy processing unit 166.
  • the element relative position acquisition unit 620 acquires the position of the capture target element in the capture target frame (S622).
  • the element display position specifying unit 621 derives the display position of the capture target element on the screen according to the display position of the capture target frame on the screen and the position of the capture target element in the capture target frame (S624). ). Then, the process returns to S608.
  • the element range acquisition unit 622 acquires the size of the entire capture target element and the size of the visible portion (S608).
  • the element scroll processing unit 623 determines the maximum number of vertical and horizontal scrolls to be performed on the capture target element according to the size of the entire capture target element and the size of the visible portion (S610).
  • the image acquisition unit 625 temporarily stores the image of the visible portion of the capture target element in the memory (S612). If the upper limit number of scrolls has not been reached (N in S614), the element scroll processing unit 623 scrolls the capture target element by one unit and returns to S612 (S616).
  • the image composition unit 627 acquires a plurality of captured images temporarily stored for the capture target element, and sets one image data obtained by composing them. S618).
  • FIG. 42 is a flowchart showing in detail the frame display position specifying process in S606 of FIG.
  • the window display position acquisition unit 602 acquires the display position on the screen of the capture target window including the capture target frame (S630).
  • the header area specifying unit 604 derives the size of the header area 636 by calculating the difference between the size of the entire capture target window and the size of the client area 634 (S632).
  • the client area specifying unit 606 derives the display position of the client area 634 on the screen according to the display position of the capture target window on the screen and the size of the header area 636 (S634).
  • the frame relative position acquisition unit 608 acquires the position of the capture target frame in the client area 634 (S636).
  • the frame display position specifying unit 610 derives the display position of the capture target frame on the screen according to the display position of the client area 634 on the screen and the position of the capture target frame on the client area 634 (S638).
  • the operation verification apparatus 100 of the first embodiment only the display image of the web page necessary for confirming the success or failure of the operation test is stored as a proof. Specifically, it is the content of the web page displayed in the frame itself, and presents the captured image to the user, excluding the extra part such as the header area, in other words, the part that would rather get in the way of confirming the result of the operation test. it can. Thereby, an efficient operation test can be supported.
  • the second embodiment of the present invention differs from the first embodiment in that the web browser activated in the browser window 632 is the FF browser 546.
  • FIG. 43 shows a display example of web content in the browser window.
  • the browser window 632 of the second embodiment includes a fixed-length (for example, 26 pixels) status bar at the bottom of the client area 634.
  • the browser window 632 of the second embodiment includes a frame line 666 in which a certain amount of width (for example, a fixed length of 4 pixels) is set as a boundary with an object outside the browser window (another window, background, etc.). .
  • the main functional configuration of the operation verification apparatus 100 in the second embodiment is the same as that of the first embodiment, and the main operation is also the same as that of the first embodiment.
  • the operation verification device 100 according to the second embodiment will be described while referring to differences from the first embodiment.
  • the header area specifying unit 604 of the image position specifying unit 600 specifies the size of the header area 636 in consideration of the size (width) of the status bar 664. Specifically, by subtracting the vertical width of the client area 634 from the vertical width of the browser window 632 and subtracting the vertical length of the status bar 664, which is a predetermined 26 pixels in this case, the header area 636 is subtracted. The vertical length of is derived. Strictly speaking, the fixed value of 26 pixels can be said to be the total value of the vertical length of the status bar 664 and the width of the frame line 666.
  • the client area specifying unit 606 of the image position specifying unit 600 specifies the display position of the client area 634 on the screen 630 in consideration of the size (width) of the frame line 666. Specifically, the vertical length of the header area 636 is added to the ordinate value of the upper left coordinate of the browser window 632, while the width of the frame line 666, which is predetermined here, is added to the abscissa value of the coordinate.
  • the coordinates of the upper left corner of the client area 634 are derived by adding the four pixels.
  • the operation test using the web browser in which the status bar 664 and the frame line 666 having a certain width are arranged in the browser window 632 is the same as in the first embodiment.
  • the effect of can be realized.
  • a captured image that excludes a portion that hinders confirmation of the result of the operation test, such as a status bar and a frame line can be presented to the user.
  • the header area 636 is arranged above the client area 634, but the mode of the browser window 632 is not limited to this.
  • the header area 636 may be disposed on the left side of the client area 634.
  • the header area specifying unit 604 specifies the horizontal length of the header area 636 by acquiring the horizontal length of the browser window 632 and the horizontal length of the client area 634 and calculating the difference between them. May be.
  • the client area specifying unit 606 adds the horizontal length of the header area 636 to the abscissa value of the upper left corner of the browser window 632, while using the ordinate value as it is, the upper left corner of the client area 634. Coordinates may be derived.
  • the first embodiment and the second embodiment may be combined and realized in the same operation verification apparatus 100.
  • the proxy processing unit 166 captures the display image of the browser window in which the FF browser 546 is activated and the first image position specifying unit that is called when capturing the display image of the browser window in which the Safari browser 562 is activated. May include a second image position specifying unit to be called. Then, the proxy processing unit 166 may operate one of them depending on the type of browser window to be captured.
  • the header area specifying unit 604 and the client area specifying unit 606 of the image position specifying unit 600 perform the operation described in the first embodiment or the second embodiment according to the type of browser window to be captured. Any of the operations described may be performed.
  • the browser window type may be specified by the user in an argument at the start of the operation test or in various setting files, or may be dynamically read from the OS or the browser processing unit 160.
  • the client area 634 is divided into a plurality of frames.
  • the client area 634 is not necessarily divided into a plurality of frames.
  • the frame processing unit 614 may operate in the same manner as in the embodiment, regarding the entire client area as one frame.
  • the element processing unit 619 may operate in the same manner as in the embodiment, regarding elements included in the entire client area as elements included in one frame.
  • the Safari browser 562 and the FF browser 546 are illustrated as web browsers.
  • the scope of application of the technical idea of the present invention is not limited to these types of web browsers.
  • the technology of the first embodiment can be applied to a web browser in which the status bar 664 is not arranged in the browser window 632 and the width of the frame line 666 is less than a predetermined value.
  • the technology of the second embodiment can be applied to a web browser in which the status bar 664 is arranged and the width of the frame line 666 is a predetermined value or more.
  • the width of the frame line 666 is less than a predetermined value when the status bar 664 is disposed, or conversely, when the width of the frame line 666 is not greater than the predetermined value when the status bar 664 is not disposed, Those skilled in the art will understand that the configurations of the first embodiment and the second embodiment may be appropriately selected and combined.
  • the operation verification apparatus 100 further includes a verification image holding unit that holds a verification image for verifying whether the captured images acquired in the operation test match. Also good.
  • This collation image is image data set in units of frames and elements, as in the capture image of the embodiment.
  • the operation verification apparatus 100 may further include a verification unit that determines whether the captured image as the evidence and the verification image match.
  • the captured image as the evidence is a captured image in the operation test, in other words, an image synthesized by the image synthesizing unit 627, and in other words, a captured image stored in the result holding unit 152.
  • the collation unit may store the determination result as to whether the captured image and the collation image match in a predetermined storage area (file, DB, etc.) and notify the user. According to this modification, it is possible to support the efficient operation test by automating the determination of the normality of the operation. Further, in the above embodiment, pure web content contents with the header area excluded are captured, so that the exclusion setting of the verification area (so-called mask processing) becomes unnecessary, and the captured image matches the verification image. It can be easily determined whether or not to do so.
  • 100 operation verification device 160 browser processing unit, 166 proxy processing unit, 170 evidence object setting unit, 600 image position specifying unit, 602 window display position acquisition unit, 604 header area specifying unit, 606 client area specifying unit, 608 frame relative position Acquisition unit, 610 frame display position specifying unit, 612 target specifying unit, 625 image acquiring unit, 627 image compositing unit, 630 screen, 632 browser window, 634 client area, 636 header area, 664 status bar, 666 frame line.
  • This invention can be used for an apparatus for testing the operation of a product.

Abstract

An operation verification device (100) is provided with: a window display position acquisition unit (602) which acquires the on-screen display position of a browser window containing a client region where a web page is displayed and an additional region different from the client region; a client region determination unit (606) which determines the on-screen display position of the client region according to the on-screen display position of the browser window, the size of the additional region in the browser window, and the size of the status bar in the browser window; and an image acquisition unit (625) which captures a display image in the client region according to the determined on-screen display position.

Description

画像取得装置、画像取得方法およびコンピュータプログラムImage acquisition apparatus, image acquisition method, and computer program
 この発明は、画面に表示されたウェブコンテンツの画像を取得する技術に関する。 This invention relates to a technique for acquiring an image of web content displayed on a screen.
 製品品質を保証する上で、製品出荷前の動作テストは不可欠である。一般的には、テスト・エンジニアが製品を手動操作し、その操作結果を確認することにより動作テストを実行することが多い。しかし、操作バリエーションが豊富な多機能製品の場合、手動による動作テストには限界がある。 ∙ Operational testing before product shipment is indispensable to guarantee product quality. In general, a test engineer often performs an operation test by manually operating a product and confirming the operation result. However, manual operation tests are limited in the case of multi-function products with abundant operation variations.
 そこで、テスト・プログラムで動作テストを自動実行することにより、動作テストの省力化を図ることも多い。たとえば、HP(Hewlett-Packard)社が提供する自動機能テストツール「QTP(Quick Test Professional)」は、ユーザが自作したテスト・プログラムを実行することにより、動作テストを自動化する。 Therefore, in many cases, the operation test is automatically executed by the test program to save labor of the operation test. For example, an automatic function test tool “QTP (Quick Test Professional)” provided by HP (Hewlett-Packard) automates an operation test by executing a test program created by a user.
特開2004-227396号公報JP 2004-227396 A
 外部装置に対してウェブコンテンツを提供するウェブサーバや、そのウェブサーバ上で動作するウェブアプリケーションの動作テストにおいては、外部装置に表示されたウェブコンテンツの画像がキャプチャされることがある。そして、そのキャプチャ画像をテスト・エンジニアが確認することにより、動作の正常性を確認することがある。 In an operation test of a web server that provides web content to an external device or a web application that runs on the web server, an image of the web content displayed on the external device may be captured. Then, the normality of the operation may be confirmed by a test engineer confirming the captured image.
 ところで、様々なウェブブラウザを使用して製品の動作テストを行う場合、ウェブブラウザを起動したウィンドウ(以下、「ブラウザウィンドウ」とも呼ぶ。)の表示形式は、ウェブブラウザごとに異なる。そのため、異なるウェブブラウザに同じウェブコンテンツを表示させた場合、ブラウザウィンドウ全体としての見た目が異なることがあり、動作テストの効率を低下させることがあると本発明者は考えた。 By the way, when performing an operation test of a product using various web browsers, the display format of the window (hereinafter also referred to as “browser window”) in which the web browser is started differs depending on the web browser. For this reason, when the same web content is displayed on different web browsers, the present inventor has thought that the appearance of the entire browser window may be different, which may reduce the efficiency of the operation test.
 本発明は、本発明者の上記課題認識に基づいて完成された発明であり、その主たる目的は、動作テストにおいて利便性の高いウェブコンテンツの表示画像を取得するための技術を提供することである。 The present invention has been completed based on the above-mentioned problem recognition of the present inventor, and its main purpose is to provide a technique for acquiring a display image of web content that is highly convenient in an operation test. .
 上記課題を解決するために、本発明のある態様の画像取得装置は、ウェブページが表示されるクライアント領域と、クライアント領域とは異なる付加領域とを含むブラウザウィンドウについて、画面上におけるブラウザウィンドウの表示位置を取得するウィンドウ位置取得部と、画面上におけるブラウザウィンドウの表示位置と、ブラウザウィンドウの付加領域のサイズと、ブラウザウィンドウのステータスバーのサイズとにしたがって、画面上におけるクライアント領域の表示位置を特定する画像位置特定部と、画像位置特定部により特定された画面上における表示位置にしたがって、クライアント領域の表示画像をキャプチャする画像取得部と、を備える。 In order to solve the above problems, an image acquisition device according to an aspect of the present invention provides a browser window display on a screen for a browser window including a client area in which a web page is displayed and an additional area different from the client area. Specifies the display position of the client area on the screen according to the window position acquisition unit that acquires the position, the display position of the browser window on the screen, the size of the additional area of the browser window, and the size of the status bar of the browser window And an image acquisition unit that captures a display image of the client area in accordance with the display position on the screen specified by the image position specification unit.
 本発明の別の態様は、画像取得方法である。この方法は、画像取得装置により実行される方法であって、ウェブページが表示されるクライアント領域と、クライアント領域とは異なる付加領域とを含むブラウザウィンドウについて、画面上におけるブラウザウィンドウの表示位置を取得するステップと、画面上におけるブラウザウィンドウの表示位置と、ブラウザウィンドウの付加領域のサイズと、ブラウザウィンドウのステータスバーのサイズとにしたがって、画面上におけるクライアント領域の表示位置を特定するステップと、特定するステップにおいて特定された画面上における表示位置にしたがって、クライアント領域の表示画像をキャプチャするステップと、を備える。 Another aspect of the present invention is an image acquisition method. This method is a method executed by the image acquisition device, and acquires the display position of the browser window on the screen for a browser window including a client area in which a web page is displayed and an additional area different from the client area. And specifying the display position of the client area on the screen according to the step of displaying, the display position of the browser window on the screen, the size of the additional area of the browser window, and the size of the status bar of the browser window Capturing a display image of the client area according to the display position on the screen specified in the step.
 なお、以上の構成要素の任意の組合せ、本発明の表現を装置、方法、システム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。 It should be noted that any combination of the above-described constituent elements and the expression of the present invention converted between the apparatus, method, system, program, recording medium storing the program, etc. are also effective as an aspect of the present invention.
 本発明によれば、動作テストにおいて利便性の高いウェブコンテンツの表示画像を取得することができる。 According to the present invention, it is possible to obtain a web content display image that is highly convenient in an operation test.
ポータルサイト第1画面の画面図である。It is a screen figure of a portal site 1st screen. ポータルサイト第2画面の画面図である。It is a screen figure of a portal site 2nd screen. 辞書テストを実行したときのログを示す図である。It is a figure which shows the log when a dictionary test is performed. 辞書テストを実行するためのプログラムを示す図である。It is a figure which shows the program for performing a dictionary test. 動作検証装置の機能ブロック図である。It is a functional block diagram of an operation verification device. ログを取得して動作テストを実行するまでの概要図である。It is an outline figure until it acquires a log and performs an operation test. ログ画面の画面図である。It is a screen figure of a log screen. 関数設定画面の画面図である。It is a screen figure of a function setting screen. プログラム画面の画面図である。It is a screen figure of a program screen. 入力設定画面の画面図である。It is a screen figure of an input setting screen. ケース設定画面の画面図である。It is a screen figure of a case setting screen. 参考技術1の動作検証装置と参考技術2の動作検証装置とのそれぞれにおける構成の概要を示す図である。It is a figure which shows the outline | summary of a structure in each of the operation verification apparatus of the reference technique 1, and the operation verification apparatus of the reference technique 2. 参考技術1の動作検証装置と参考技術2の動作検証装置とのそれぞれにおける動作の概要を示す図である。It is a figure which shows the outline | summary of operation | movement in each of the operation verification apparatus of the reference technique 1, and the operation verification apparatus of the reference technique 2. 参考技術2の動作検証装置の機能構成を示すブロック図である。It is a block diagram which shows the function structure of the operation verification apparatus of the reference technique 2. FIG. 参考技術2において、ユーザのデータ入力操作を検出して動作テストを実行するまでの概要図である。In the reference technique 2, it is a schematic diagram until it detects a user's data input operation and performs an operation test. 参考技術2における関数設定画面の画面図である。It is a screen figure of the function setting screen in the reference technique 2. 参考技術2における関数設定画面の画面図である。It is a screen figure of the function setting screen in the reference technique 2. 参考技術2における入力設定画面の画面図である。It is a screen figure of the input setting screen in the reference technique 2. 参考技術2におけるケース設定画面の画面図である。It is a screen figure of the case setting screen in the reference technique 2. ウェブブラウザに対する2つの操作方式の特徴を示す図である。It is a figure which shows the characteristic of two operation methods with respect to a web browser. ウェブブラウザに対する2つの操作方式について機能間の呼び出し関係を模式的に示す図である。It is a figure which shows typically the calling relationship between functions about two operation methods with respect to a web browser. 参考技術3の動作検証装置の機能構成を示すブロック図である。It is a block diagram which shows the function structure of the operation verification apparatus of the reference technique 3. 図21のプログラム実行部の詳細を示すブロック図である。It is a block diagram which shows the detail of the program execution part of FIG. 参考技術3の動作検証装置の動作を示すフローチャートである。10 is a flowchart showing the operation of the operation verification device of Reference Technique 3. ウェブページの動作テストにおける機能間の呼び出し関係を模式的に示す図である。It is a figure which shows typically the calling relationship between the functions in the operation | movement test of a web page. セレニウムウィンドウマネージャに格納されるデータ例を示す図である。It is a figure which shows the example of data stored in a selenium window manager. 図24のFFダイアログに対する操作の仕組みを示す図である。It is a figure which shows the mechanism of operation with respect to FF dialog of FIG. 図24のSafariダイアログに対する操作の仕組みを示す図である。It is a figure which shows the mechanism of operation with respect to the Safari dialog of FIG. 参考技術4の動作検証装置の機能構成を示すブロック図である。It is a block diagram which shows the function structure of the operation verification apparatus of the reference technique 4. 図28のプログラム実行部の詳細を示すブロック図である。It is a block diagram which shows the detail of the program execution part of FIG. 参考技術4の動作検証装置の動作を示すフローチャートである。10 is a flowchart showing the operation of the operation verification device of Reference Technique 4. 図30のS402のテストプログラム読込処理を詳細に示すフローチャートである。FIG. 31 is a flowchart showing in detail a test program reading process in S402 of FIG. 30. FIG. 図30のS419のウェブブラウザ起動処理を詳細に示すフローチャートである。It is a flowchart which shows the web browser starting process of S419 of FIG. 30 in detail. 図30のS426のウェブページ操作処理を詳細に示すフローチャートである。It is a flowchart which shows the web page operation process of S426 of FIG. 30 in detail. 図33のS452のMac用操作処理を詳細に示すフローチャートである。It is a flowchart which shows the operation process for Mac of S452 of FIG. 33 in detail. 図33のS458のIE用操作処理を詳細に示すフローチャートである。FIG. 34 is a flowchart showing in detail an IE operation process in S458 of FIG. 33. FIG. 図33のS462のFF用操作処理を詳細に示すフローチャートである。It is a flowchart which shows in detail the operation process for FF of S462 of FIG. ブラウザウィンドウにおけるウェブコンテンツの表示例を示す図である。It is a figure which shows the example of a display of the web content in a browser window. 図37のブラウザウィンドウのキャプチャ画像を示す図である。It is a figure which shows the captured image of the browser window of FIG. 第1実施形態における画面キャプチャ処理に関する機能構成を示すブロック図である。It is a block diagram which shows the function structure regarding the screen capture process in 1st Embodiment. プロキシ処理部が証左物設定部に提供する関数を示す図である。It is a figure which shows the function which a proxy process part provides to a proof object setting part. 動作検証装置における画像キャプチャ処理の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the image capture process in an operation verification apparatus. 図41のS606のフレーム表示位置特定処理を詳細に示すフローチャートである。It is a flowchart which shows the frame display position specific process of S606 of FIG. 41 in detail. ブラウザウィンドウにおけるウェブコンテンツの表示例を示す図である。It is a figure which shows the example of a display of the web content in a browser window.
 本実施の形態の動作検証装置について説明する前に、その前提となる構成について、参考技術1、参考技術2、参考技術3、および参考技術4により説明する。 Before describing the operation verification apparatus according to the present embodiment, the presupposed configuration will be described with reference technology 1, reference technology 2, reference technology 3, and reference technology 4.
 (参考技術1)
 図1(a)は、ポータルサイト第1画面300の画面図である。
 参考技術1においては、ポータル・サイト「XYZ!」を対象とした動作テストについて説明する。ポータルサイト第1画面300は、エディットボックス302と検索リンク304を含む。検索リンク304は、「ウェブ」、「ブログ」、「画像」、「辞書」という4つのリンクを含む。ユーザがエディットボックス302に文字列を入力し、検索リンク304のうちのいずれかをマウス・クリックすると、入力文字列の検索が開始される。たとえば、エディットボックス302に文字列「液晶」と入力し、リンク「ウェブ」をマウス・クリックした場合、文字列「液晶」を含むウェブサイトが検索対象となる。エディットボックス302に文字列「液晶」と入力し、リンク「ブログ」をマウス・クリックした場合には、このポータル・サイトに開設されているブログ(Weblog)のうち、文字列「液晶」を含むブログページが検索対象となる。
 ここでは、エディットボックス302に文字列「テスト」が入力され、リンク「辞書」がマウス・クリックされたとする。
(Reference technology 1)
FIG. 1A is a screen view of the portal site first screen 300.
In Reference Technique 1, an operation test for the portal site “XYZ!” Will be described. The portal site first screen 300 includes an edit box 302 and a search link 304. The search link 304 includes four links of “web”, “blog”, “image”, and “dictionary”. When the user inputs a character string into the edit box 302 and clicks one of the search links 304 with the mouse, the search for the input character string is started. For example, when the character string “liquid crystal” is input to the edit box 302 and the link “web” is clicked with the mouse, a website including the character string “liquid crystal” is searched. When the character string “LCD” is entered in the edit box 302 and the link “blog” is clicked with the mouse, the blog including the character string “LCD” among the blogs (Weblogs) established on this portal site. The page becomes the search target.
Here, it is assumed that the character string “test” is input to the edit box 302 and the link “dictionary” is clicked with the mouse.
 図1(b)は、ポータルサイト第2画面310の画面図である。
 ポータルサイト第1画面300にて、「テスト」を入力し、「辞書」をマウス・クリックすると、図1(b)に示すポータルサイト第2画面310が表示される。検索結果欄306には、このポータル・サイトが提供している「辞書」サービスにより、文字列「テスト」に関連する項目が羅列される。
 ここで、検索結果欄306の1番上にあるリンク「テスト(test)」がマウス・クリックされたとする。
FIG. 1B is a screen view of the portal site second screen 310.
When “test” is input on the portal site first screen 300 and “dictionary” is clicked with the mouse, a portal site second screen 310 shown in FIG. 1B is displayed. In the search result column 306, items related to the character string “test” are listed by the “dictionary” service provided by the portal site.
Here, it is assumed that the link “test” at the top of the search result column 306 is clicked with the mouse.
 上記過程においては、以下に示す3つの操作がなされている。
 A1.ポータルサイト第1画面300のエディットボックス302に文字列「テスト」を入力する操作。
 A2.ポータルサイト第1画面300の検索リンク304のうち、リンク「辞書」をマウス・クリックする操作。
 A3.ポータルサイト第2画面310の検索結果欄306のうち、リンク「テスト(test)」をマウス・クリックする操作。
 以下においては、上記A1~A3の操作により実現される動作過程のことを、「辞書テスト」とよぶ。
In the above process, the following three operations are performed.
A1. An operation of inputting the character string “test” in the edit box 302 of the portal site first screen 300.
A2. An operation of clicking the link “dictionary” in the search link 304 of the portal site first screen 300 with a mouse.
A3. An operation of clicking the link “test” in the search result column 306 of the portal site second screen 310 with a mouse.
Hereinafter, the operation process realized by the operations A1 to A3 is referred to as “dictionary test”.
 図2は、辞書テストを実行したときのログ320を示す図である。
 HP社のQTPが導入されているクライアント端末を操作して、上記ポータル・サイトにアクセスし、A1~A3の操作を実行した場合、QTPは図2に示すログ320を生成する。ログ320には、操作A1~A3が所定フォーマットの符合文として記録される。
 たとえば、操作A1は、
 Browser("XYZ!").Page("XYZ!").WebEdit("p").Set"テスト"
という符号文にて表現される。これは、"XYZ!"というウェブ・サイト、"XYZ!"という名前のウェブページ、pという名前のエディットボックス(図1(a)、図1(b)に示すエディットボックス302に相当する)に対して、文字列「テスト」が入力されたことを意味している。
 同様にして、操作A2は、
 Browser("XYZ!").Page("XYZ!").Link("辞書").Click
 操作A3は、
 Browser("XYZ!").Page("XYZ!-すべての辞書-テスト").Link("テスト(test)").Click
という符号文にて表示される。参考技術1においては、QTPの文法に基づいて説明するが、符合文のフォーマットはこれに限られるものではない。
FIG. 2 is a diagram showing the log 320 when the dictionary test is executed.
When a client terminal in which HP QTP is installed is operated to access the portal site and the operations A1 to A3 are executed, QTP generates a log 320 shown in FIG. In the log 320, operations A1 to A3 are recorded as code sentences in a predetermined format.
For example, the operation A1 is
Browser ("XYZ!"). Page ("XYZ!"). WebEdit ("p"). Set "Test"
It is expressed by the code sentence. This corresponds to a web site “XYZ!”, A web page named “XYZ!”, And an edit box named p (corresponding to the edit box 302 shown in FIGS. 1A and 1B). On the other hand, the character string “test” is input.
Similarly, the operation A2 is
Browser ("XYZ!"). Page ("XYZ!"). Link ("Dictionary"). Click
Operation A3 is
Browser ("XYZ!"). Page ("XYZ! -All dictionaries-Test"). Link ("Test"). Click
It is displayed with the code sentence. Reference technology 1 will be described based on the grammar of QTP, but the format of the code sentence is not limited to this.
 QTPは、ログ320の符合文を解釈しながら、符合文により表現される操作を再現実行できる。このため、いったんログ320を生成すれば、同一内容の辞書テストを何度でも繰り返し実行できる。また、ログ320の一部を書き換えれば、手動操作時とは異なる内容にて辞書テストを実行できる。たとえば、
 Browser("XYZ!").Page("XYZ!").WebEdit("p").Set"テスト"
に含まれる文字列「テスト」を別の文字列「テイスト」に変更し、
 Browser("XYZ!").Page("XYZ!").WebEdit("p").Set"テイスト"
と書き換えてQTPに入力すれば、エディットボックス302への入力文字列だけ変更した同内容の辞書テストを自動実行できる。
 しかし、ログ320を書き換えながら動作テストを実行するには、ログ320の文法に関してある程度の知識が必要である。また、ログ320の書き換えに際し、人為的なミスが発生する可能性がある。
QTP can reproduce and execute the operation expressed by the code sentence while interpreting the code sentence of the log 320. For this reason, once the log 320 is generated, the dictionary test with the same contents can be repeatedly executed. Further, if a part of the log 320 is rewritten, the dictionary test can be executed with contents different from those at the time of manual operation. For example,
Browser ("XYZ!"). Page ("XYZ!"). WebEdit ("p"). Set "Test"
Change the string "test" contained in to another string "taste"
Browser ("XYZ!"). Page ("XYZ!"). WebEdit ("p"). Set "Taste"
And re-input to QTP, it is possible to automatically execute a dictionary test of the same content in which only the input character string in the edit box 302 is changed.
However, in order to execute the operation test while rewriting the log 320, a certain degree of knowledge about the grammar of the log 320 is required. Further, when the log 320 is rewritten, a human error may occur.
 図3は、辞書テストを実行するためのプログラム330を示す図である。
 ログ320により動作テストを実行する代わりに、ログ320と同等の内容をVB(Visual Basic)スクリプト等で記述することにより、テスト・プログラムを作成してもよい。図3に示すプログラム330は、図2のログ320を参照しつつ作成されたテスト・プログラムである。
 たとえば、操作A1は、
 WebEditSet(Browser("XYZ!").Page("XYZ!").WebEdit("p"),DataTable("p1,dtGlobalSheet")
というVB関数により表現される。WebEditSet関数の具体的なロジックは、同図中段に記述されている通りである。
FIG. 3 is a diagram showing a program 330 for executing the dictionary test.
Instead of executing the operation test using the log 320, a test program may be created by describing the content equivalent to the log 320 in a VB (Visual Basic) script or the like. A program 330 shown in FIG. 3 is a test program created with reference to the log 320 of FIG.
For example, the operation A1 is
WebEditSet (Browser ("XYZ!"). Page ("XYZ!"). WebEdit ("p"), DataTable ("p1, dtGlobalSheet")
It is expressed by the VB function. The specific logic of the WebEditSet function is as described in the middle of the figure.
 プログラム330、文字列「テスト」のような入力データをプログラム330中に含まない点においてログ320と異なる。代わりに、WebEditSet関数は、dtGlobalSheetとして表現されるファイル(以下、「入力データファイル」とよぶ)から入力データを受け取る。すなわち、ロジックと入力データが分離されることになる。入力データファイルの書き換えや取り替えにより、さまざまな入力データに基づいて同一ロジックの辞書テストを実行できる。手動による動作テストやログ320による動作テストに比べて、プログラム330による動作テストは、入力データのバリエーションを増やしやすいというメリットがある。 The program 330 is different from the log 320 in that input data such as the character string “test” is not included in the program 330. Instead, the WebEditSet function receives input data from a file expressed as dtGlobalSheet (hereinafter referred to as “input data file”). That is, logic and input data are separated. By rewriting or replacing input data files, dictionary tests with the same logic can be executed based on various input data. Compared to the operation test by manual operation and the operation test by log 320, the operation test by program 330 has an advantage that it is easy to increase variations of input data.
 ただし、プログラム330による動作テストには、以下の問題点がある。
 d1.プログラムを作成する手間が新たに発生する。
 d2.プログラム作成者によって、プログラムの内容が変化する。たとえば、プログラマP1が操作A1に対応して作成するWebEditSet関数と、プログラマP2が操作A1に対応して作成するWebEditSet関数は、関数名は同じでもロジックが同一になるとは限らない。また、プログラム自体にバグが混入する可能性がある。このため、プログラム330自体の信頼性を担保するための取り組みが必要となる。また、プログラム330には、例外処理等、動作テストとは直接関係しないロジックも必要であるが、全てのプログラマが例外処理まで考慮したロジックを実装するとは限らない。たとえば、図3に示すWebEditSet関数の場合、入力データが空文字の場合にも対応できるようにロジックが組まれているが、別のプログラマがWebEditSet関数を実装する場合には、こういった配慮が欠如するかもしれない。
 結果として、プログラマのスキルが動作テストの内容・結果に影響を及ぼしやすくなってしまう。
However, the operation test by the program 330 has the following problems.
d1. There is a new effort to create a program.
d2. The content of the program changes depending on the program creator. For example, the WebEditSet function created by the programmer P1 corresponding to the operation A1 and the WebEditSet function created by the programmer P2 corresponding to the operation A1 do not necessarily have the same logic even though the function names are the same. In addition, bugs may be mixed in the program itself. For this reason, it is necessary to make efforts to ensure the reliability of the program 330 itself. The program 330 also requires logic that is not directly related to the operation test, such as exception processing, but not all programmers implement logic that considers even exception processing. For example, in the case of the WebEditSet function shown in FIG. 3, the logic is set up so that it can cope with the case where the input data is an empty character. Might do.
As a result, programmer skills are likely to affect the content and results of behavior tests.
 図4は、動作検証装置100の機能ブロック図である。
 本明細書のブロック図が示す各機能ブロックは、ハードウェア的には、コンピュータのCPUをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組み合わせによっていろいろなかたちで実現できることは、当業者には理解されるところである。例えば、各機能ブロックは、コンピュータプログラムとして記録媒体に格納され、情報処理装置のハードディスクにインストールされ、適宜メインメモリに読み出されてプロセッサにより実行されてもよい。
 動作検証装置100は、専用ハードウェアとして形成されてもよいし、ウェブブラウザなどのユーザインタフェースと連携するソフトウェア・モジュールとして形成されてもよい。
 参考技術1の動作検証装置100とは、QTPのアドオンとして形成されるソフトウェア・モジュールであるとして説明する。
FIG. 4 is a functional block diagram of the operation verification apparatus 100.
Each functional block shown in the block diagram of the present specification can be realized in hardware by an element or a mechanical device such as a CPU of a computer, and in software by a computer program or the like. Here, The functional block realized by those cooperation is drawn. Therefore, those skilled in the art will understand that these functional blocks can be realized in various forms by a combination of hardware and software. For example, each functional block may be stored in a recording medium as a computer program, installed in a hard disk of an information processing device, read into a main memory as appropriate, and executed by a processor.
The operation verification apparatus 100 may be formed as dedicated hardware, or may be formed as a software module that cooperates with a user interface such as a web browser.
The operation verification apparatus 100 of the reference technique 1 will be described as a software module formed as an add-on of QTP.
 動作検証装置100は、IF(インタフェース)部110、データ処理部130およびデータ保持部140を含む。
 IF部110は、ユーザやQTPとのインタフェースを担当する。データ処理部130は、IF部110やデータ保持部140から取得されたデータを元にして各種のデータ処理を実行する。データ処理部130は、IF部110とデータ保持部140との間のインタフェースの役割も果たす。データ保持部140は、各種データを保持するための記憶領域である。
The operation verification apparatus 100 includes an IF (interface) unit 110, a data processing unit 130, and a data holding unit 140.
The IF unit 110 is in charge of an interface with a user or QTP. The data processing unit 130 executes various data processing based on data acquired from the IF unit 110 and the data holding unit 140. The data processing unit 130 also serves as an interface between the IF unit 110 and the data holding unit 140. The data holding unit 140 is a storage area for holding various data.
 IF部110:
 IF部110は、入力部112と出力部118を含む。入力部112はユーザやQTPからの入力処理を担当し、出力部118はユーザやQTPに対する出力処理を担当する。入力部112は、ログ取得部114と入力データ取得部116を含む。ログ取得部114は、QTPからログを取得する。入力データ取得部116は、入力データファイルを取得し、入力データファイルからプログラムに提供する入力データを取得する。入力データファイルの詳細については、図5や図9に関連して詳述する。
IF unit 110:
The IF unit 110 includes an input unit 112 and an output unit 118. The input unit 112 is in charge of input processing from the user and QTP, and the output unit 118 is in charge of output processing for the user and QTP. The input unit 112 includes a log acquisition unit 114 and an input data acquisition unit 116. The log acquisition unit 114 acquires a log from QTP. The input data acquisition unit 116 acquires an input data file and acquires input data to be provided to the program from the input data file. Details of the input data file will be described in detail with reference to FIGS.
 出力部118は、関数設定画面表示部120、入力設定画面表示部122、プログラム画面表示部124およびケース設定画面表示部126を含む。関数設定画面表示部120は、図7に示す関数設定画面210を表示させる。入力設定画面表示部122は、図9に示す入力設定画面230を表示させる。プログラム画面表示部124は、図8に示すプログラム画面220を表示させる。ケース設定画面表示部126は、図10に示すケース設定画面240を表示させる。 The output unit 118 includes a function setting screen display unit 120, an input setting screen display unit 122, a program screen display unit 124, and a case setting screen display unit 126. The function setting screen display unit 120 displays a function setting screen 210 shown in FIG. The input setting screen display unit 122 displays an input setting screen 230 shown in FIG. The program screen display unit 124 displays a program screen 220 shown in FIG. The case setting screen display unit 126 displays a case setting screen 240 shown in FIG.
 データ処理部130:
 データ処理部130は、プログラム生成部132、プログラム実行部134およびテストケース登録部136を含む。プログラム生成部132は、動作テスト用のプログラムを自動的に生成する。プログラム実行部134は、生成されたプログラムを実行させる。参考技術1においては、QTPにプログラムを実行させる。テストケース登録部136は、実行セットをケースファイルに登録する。実行セットおよびケースファイルについては図10に関連して詳述する。
Data processing unit 130:
The data processing unit 130 includes a program generation unit 132, a program execution unit 134, and a test case registration unit 136. The program generation unit 132 automatically generates an operation test program. The program execution unit 134 executes the generated program. In the reference technique 1, QTP is caused to execute a program. The test case registration unit 136 registers the execution set in the case file. The execution set and the case file will be described in detail with reference to FIG.
 データ保持部140:
 データ保持部140は、ログ保持部142、プログラム保持部144、入力データファイル保持部146、ケースファイル保持部148、関数保持部150および結果保持部152を含む。ログ保持部142は、ログを保持する。プログラム保持部144は、プログラムを保持する。入力データファイル保持部146は、入力データファイルを保持する。ケースファイル保持部148は、ケースファイルを保持する。関数保持部150は、動作テスト用のプログラムに登録される関数について、関数ライブラリを保持する。結果保持部152は、動作テストの結果を保持する。
Data holding unit 140:
The data holding unit 140 includes a log holding unit 142, a program holding unit 144, an input data file holding unit 146, a case file holding unit 148, a function holding unit 150, and a result holding unit 152. The log holding unit 142 holds a log. The program holding unit 144 holds a program. The input data file holding unit 146 holds an input data file. The case file holding unit 148 holds a case file. The function holding unit 150 holds a function library for the functions registered in the operation test program. The result holding unit 152 holds the result of the operation test.
 図5は、参考技術1において、ログを取得して動作テストを実行するまでの概要図である。
 まず、動作テストの対象となる機器を手動操作する。参考技術1においては、クライアント端末のウェブブラウザを操作して、ポータル・サイト「XYZ!」にアクセスする。QTPはログを生成し、ログ取得部114はQTPからログを取得する。各種符合文にはあらかじめ関数が対応づけられている。関数設定画面表示部120は、関数保持部150の関数ライブラリを読み出し、ログに含まれる各符号文に対応する関数を一覧表示させる(S1)。関数設定画面表示部120において、ユーザは、適宜、関数を追加・変更・削除できる。こうして、プログラムに含まれるべき関数が特定される。S1については、図7に関連して後に詳述する。
FIG. 5 is a schematic diagram from obtaining a log to executing an operation test in Reference Technology 1.
First, manually operate the device to be tested. In Reference Technology 1, the portal site “XYZ!” Is accessed by operating the web browser of the client terminal. QTP generates a log, and the log acquisition unit 114 acquires a log from QTP. A function is associated with each code sentence in advance. The function setting screen display unit 120 reads the function library of the function holding unit 150 and displays a list of functions corresponding to each code sentence included in the log (S1). In the function setting screen display unit 120, the user can add, change, and delete functions as appropriate. In this way, functions to be included in the program are specified. S1 will be described in detail later with reference to FIG.
 次に、このプログラムに供給すべき入力データを設定する(S2)。設定内容は、入力データファイルとして登録される。S2については、図9に関連して後に詳述する。S1で設定された関数群からプログラムを自動生成する(S3)。S3については、図8に関連して後に詳述する。 Next, input data to be supplied to this program is set (S2). The setting contents are registered as an input data file. S2 will be described in detail later with reference to FIG. A program is automatically generated from the function group set in S1 (S3). S3 will be described later in detail with reference to FIG.
 次に、複数種類のプログラムおよび複数種類の入力データファイルから、プログラムと入力データファイルの組合せを「実行セット」として登録する。実行セットは複数個登録することもできる(S4)。設定内容は、ケースファイルとして登録される。たとえば、プログラムP1を入力データファイルF2に基づいて実行したあと、プログラムP2を入力データファイルF6に基づいて実行させたい場合、
 実行セット1:プログラムP1+入力データファイルF2
 実行セット2:プログラムP2+入力データファイルF6
としてケースファイルに登録される。S4については、図10に関連して詳述する。
 最後に、ケースファイルにしたがって、プログラムを実行する(S5)。上記例の場合には、プログラム実行部134は、実行セット1と実行セット2を連続実行させる。プログラム実行部134は、プログラムの実行結果、いいかえれば、テスト結果を結果保持部152に登録する。
Next, a combination of a program and an input data file is registered as an “execution set” from a plurality of types of programs and a plurality of types of input data files. A plurality of execution sets can be registered (S4). The setting contents are registered as a case file. For example, when the program P1 is executed based on the input data file F2 and then the program P2 is executed based on the input data file F6,
Execution set 1: Program P1 + Input data file F2
Execution set 2: Program P2 + input data file F6
Is registered in the case file. S4 will be described in detail with reference to FIG.
Finally, the program is executed according to the case file (S5). In the case of the above example, the program execution unit 134 continuously executes the execution set 1 and the execution set 2. The program execution unit 134 registers the execution result of the program, in other words, the test result in the result holding unit 152.
 図6は、ログ画面200の画面図である。
 ログ取得部114がログを取得すると、出力部118はログ画面200におけるログ表示領域202にログを画面表示させる。ユーザは、QTPのログをログ表示領域202にコピー&ペーストしてもよい。あるいは、出力部118は、ログ画面200の表示時において、QTPが生成したログ(ファイル)を取得し、ログ表示領域202に画面表示させてもよい。ユーザが実行ボタン204をマウス・クリックすると、次の図7に示す関数設定画面210が表示される。
FIG. 6 is a screen diagram of the log screen 200.
When the log acquisition unit 114 acquires the log, the output unit 118 displays the log on the log display area 202 in the log screen 200. The user may copy and paste the QTP log into the log display area 202. Alternatively, the output unit 118 may acquire a log (file) generated by QTP when the log screen 200 is displayed and display the log in the log display area 202. When the user clicks the execution button 204 with the mouse, a function setting screen 210 shown in FIG. 7 is displayed.
 図7は、関数設定画面210の画面図である。
 プログラム生成部132は、ログに含まれる符号文について関数を特定し、関数設定画面210の関数欄214に特定した関数を一覧表示させる。番号欄212は実行順序、説明欄216は関数の概要説明、オブジェクト欄218は操作対象オブジェクト、パラメータ欄219はパラメータ名、入力値欄217は入力データを示す。
 先述の操作A1を示す符合文、
 Browser("XYZ!").Page("XYZ!").WebEdit("p").Set"テスト"
には、あらかじめ、WebEditSet関数が関数ライブラリにおいて対応づけられている。プログラム生成部132はログ320の1番目の符合文を読み出すと、関数保持部150の関数ライブラリを参照し、WebEditSet関数を特定する。操作A1が操作対象とするオブジェクトは、「Browser("XYZ!").Page("XYZ!")」のページであるため、オブジェクト欄218には、「Browser("XYZ!").Page("XYZ!")」が設定される。WebEditSet関数は、エディットボックスp(エディットボックス302)に設定される入力データを引数とする関数である。入力値欄217において、エディットボックスpに設定すべき入力データを設定することもできるが、関数設定画面210では入力データを登録しないものとして説明する。エディットボックスpに設定すべき入力データは、図9に関連して詳述する入力設定画面230にて設定される。
FIG. 7 is a screen diagram of the function setting screen 210.
The program generation unit 132 specifies a function for the code sentence included in the log, and displays the specified function in a list in the function column 214 of the function setting screen 210. The number column 212 indicates the execution order, the description column 216 indicates the outline of the function, the object column 218 indicates the operation target object, the parameter column 219 indicates the parameter name, and the input value column 217 indicates the input data.
A sign statement indicating the above-mentioned operation A1,
Browser ("XYZ!"). Page ("XYZ!"). WebEdit ("p"). Set "Test"
The WebEditSet function is associated with the function library in advance. When the program generating unit 132 reads the first code sentence of the log 320, the program generating unit 132 refers to the function library of the function holding unit 150 and identifies the WebEditSet function. Since the object to be operated by the operation A1 is the page “Browser (“ XYZ! ”). Page (“ XYZ! ”)”, The object column 218 displays “Browser (“ XYZ! ”). Page ( "XYZ!") "Is set. The WebEditSet function is a function that takes input data set in the edit box p (edit box 302) as an argument. Although it is possible to set input data to be set in the edit box p in the input value column 217, it is assumed that no input data is registered in the function setting screen 210. Input data to be set in the edit box p is set on the input setting screen 230 described in detail with reference to FIG.
 ログ320には操作A1~A3に対応して3つの符合文が含まれているため、プログラム生成部132は3つの関数を特定する。ユーザは、関数設定画面210にて、関数を追加・削除・変更してもよい。図7における4番目のTextCheck関数と5番目のWebScreenCapture関数は、ユーザが追加選択した関数である。 Since the log 320 includes three code sentences corresponding to the operations A1 to A3, the program generation unit 132 specifies three functions. The user may add, delete, or change a function on the function setting screen 210. The fourth TextCheck function and the fifth WebScreenCapture function in FIG. 7 are functions additionally selected by the user.
 TextCheck関数は、表示中のウェブページにおいて、変数qに代入される文字列が含まれているかを判定する関数である。WebScreenCapture関数は、表示中のウェブページを画面キャプチャする関数である。動作テストの結果を証跡管理する上で、WebScreenCapture関数は便利な関数である。このように、関数ライブラリには、WebEditSet関数のようにユーザの操作に対応した関数だけでなく、TestCheck関数のように動作テストを補助・支援するための関数も用意されている。ユーザは、関数ライブラリから所望の関数を選択するだけで、動作テストに含めたいロジックを設定できる。 The TextCheck function is a function that determines whether or not the character string to be assigned to the variable q is included in the displayed web page. The WebScreenCapture function is a function that captures a screen of the web page being displayed. The WebScreenCapture function is a convenient function for trail management of the results of operation tests. As described above, the function library includes not only functions corresponding to user operations such as the WebEditSet function but also functions for assisting and supporting the operation test such as the TestCheck function. The user can set logic to be included in the operation test simply by selecting a desired function from the function library.
 テストケース設定ボタン215がクリックされると、図10のケース設定画面240が表示される。入力データファイル作成ボタン213がクリックされると、図9の入力設定画面230が表示される。プログラム作成ボタン211がクリックされると、図8のプログラム画面220が表示される。 When the test case setting button 215 is clicked, a case setting screen 240 of FIG. 10 is displayed. When the input data file creation button 213 is clicked, the input setting screen 230 of FIG. 9 is displayed. When the program creation button 211 is clicked, the program screen 220 of FIG. 8 is displayed.
 参考技術1の動作検証装置100には、以下のメリットがある。
 m1.GUI(Graphical User Interface)ベースで関数を選択するだけで、プログラムに含めたいロジックを選択できる。プログラムを作成するための手間がほとんどかからない。
 m2.プログラムに含まれる関数は、関数ライブラリとして登録済みの関数であるため、作成者によってプログラムの品質がばらつきにくい。例外処理等の必要なロジックも、あらかじめ各関数に組み込まれている。
The operation verification apparatus 100 of the reference technique 1 has the following merits.
m1. The logic to be included in the program can be selected simply by selecting a function based on GUI (Graphical User Interface). There is little effort to create a program.
m2. Since the functions included in the program are functions registered as a function library, the quality of the program hardly varies depending on the creator. Necessary logic such as exception handling is also incorporated in each function in advance.
 図8は、プログラム画面220の画面図である。
 関数設定画面210において、プログラム作成ボタン211がマウス・クリックされると、プログラム生成部132がプログラムを生成し、プログラム画面表示部124はプログラム画面220におけるプログラム表示領域222にそのソースコードを表示させる。プログラムは、プログラム保持部144に保持される。
FIG. 8 is a screen diagram of the program screen 220.
When the program creation button 211 is clicked with the mouse on the function setting screen 210, the program generation unit 132 generates a program, and the program screen display unit 124 displays the source code in the program display area 222 in the program screen 220. The program is held in the program holding unit 144.
 図9は、入力設定画面230の画面図である。
 関数設定画面210において、入力データファイル作成ボタン213がマウス・クリックされると、入力設定画面表示部122は入力設定画面230を表示させる。関数設定画面210においては、パラメータpとqが定義されている。番号欄232は入力順序、変数欄234はパラメータpへの入力データ、変数欄236はパラメータqへの入力データを示す。入力設定画面230では、このパラメータpとqに代入する入力データを設定する。各入力データは、入力データファイルとして入力データファイル保持部146に保持される。
FIG. 9 is a screen diagram of the input setting screen 230.
When the input data file creation button 213 is clicked on the function setting screen 210, the input setting screen display unit 122 displays the input setting screen 230. In the function setting screen 210, parameters p and q are defined. The number column 232 indicates the input order, the variable column 234 indicates the input data to the parameter p, and the variable column 236 indicates the input data to the parameter q. On the input setting screen 230, input data to be substituted for the parameters p and q is set. Each input data is held in the input data file holding unit 146 as an input data file.
 たとえば、プログラム330に、図9に示す形式の入力データファイルを与えると、
 1.文字列「テスト」をエディットボックス302に入力して辞書を検索し、実行結果を示す画面に文字列「試験」が含まれているかを判定するテスト
 2.文字列「test」をエディットボックス302に入力して辞書を検索し、実行結果を示す画面に文字列「試験」が含まれているかを判定するテスト
 3.文字列「テストケース」をエディットボックス302に入力して辞書を検索し、実行結果を示す画面に文字列「試験」が含まれているかを判定するテスト
・・・のように、異なる入力データに基づく複数の辞書テストを連続実行できる。
For example, when an input data file in the format shown in FIG.
1. 1. A test for inputting a character string “test” into the edit box 302 to search the dictionary and determining whether the character string “test” is included in the screen showing the execution result. 2. A test for inputting a character string “test” into the edit box 302 and searching the dictionary to determine whether the character string “test” is included in the screen showing the execution result. Enter the character string “test case” in the edit box 302, search the dictionary, and determine whether the character string “test” is included in the screen showing the execution result. Multiple dictionary tests based on can be executed continuously.
 図10は、ケース設定画面240の画面図である。
 関数設定画面210において、テストケース設定ボタン215がマウス・クリックされると、ケース設定画面表示部126はケース設定画面240を表示させる。番号欄244は実行順序、実行セット欄245は実行セットの概要、プログラム欄246は実行対象となるプログラム、入力データファイル欄247は入力データの抽出対象となる入力データファイルを示す。
 ここでは、インターネット証券のウェブ・サイトを動作テストの対象として説明する。
FIG. 10 is a screen diagram of the case setting screen 240.
When the test case setting button 215 is clicked with the mouse on the function setting screen 210, the case setting screen display unit 126 displays the case setting screen 240. The number column 244 indicates the execution order, the execution set column 245 indicates the outline of the execution set, the program column 246 indicates the program to be executed, and the input data file column 247 indicates the input data file from which the input data is to be extracted.
Here, the website of the Internet securities will be described as an operation test target.
 同図においては、1.ログイン、2.ニュースチェック、3.株売り、4.債券売り、5.住所変更、6.ログアウトという6つの実行セットが登録されている。まず、QTPは、プログラム「login.vbs」から「login」プロジェクトを生成する。ここでいう「プロジェクト」とは、QTPの実行形式ファイル群を含むディレクトリである。QTPは「login」プロジェクトを入力として、login.vbsとlogin.xlsに定義された処理を実行する。ユーザが実行ボタン248をマウス・クリックすると、最初に、実行セット「ログイン」の「login」プロジェクトが実行される。1番目の実行セット「ログイン」が完了すると、実行セット「ニュースチェック」として、「ncheck」プロジェクトが実行される。 In the figure, 1. 1. Login 2. News check, 3. Stock sales; Bond sales, 5. Address change, 6. Six execution sets called logout are registered. First, QTP generates a “login” project from the program “login.vbs”. Here, the “project” is a directory including a group of QTP execution format files. QTP executes the process defined in login.vbs and login.xls with the “login” project as input. When the user clicks the execute button 248 with a mouse, the “login” project of the execution set “login” is first executed. When the first execution set “login” is completed, the “ncheck” project is executed as the execution set “news check”.
 このように、実行ボタン248がマウス・クリックされると、1.ログイン、2.ニュースチェック、3.株売り、4.債券売り、5.住所変更、6.ログアウトという6つの実行セットが連続実行される。これにより、「ログインして、ニュースをチェックした後、手持ち株と手持ち債券の売りを指示し、住所変更をした上で、ログアウトする」というテスト・シナリオに基づく動作テストを自動化できる。 In this way, when the execution button 248 is clicked with the mouse, 1. Login 2. News check, 3. Stock sales; Bond sales, 5. Address change, 6. Six execution sets called logout are executed continuously. As a result, it is possible to automate an operation test based on a test scenario of “login, check news, instruct to sell hand shares and bonds, change address, and log out”.
 ユーザは、ケース設定画面240において自由にテスト・シナリオを作ることができる。たとえば、実行セット「株売り」の代わりに実行セット「株買い」を登録してもよいし、実行セット「株売り」の入力データファイルとして「stock1.xls」ではなく別の入力データファイルを登録してもよい。ケース設定画面240において登録されたテスト・シナリオはケースファイルとして記録され、ケースファイル保持部148に保持される。
 テスト・シナリオの構成や入力データファイル等を少しずつ変化させることにより、動作テストのバリエーションを広げやすくなる。
The user can freely create a test scenario on the case setting screen 240. For example, instead of the execution set “Stock Sell”, you can register the execution set “Stock Purchase”, or register another input data file instead of “stock1.xls” as the input data file for the execution set “Stock Sell”. May be. The test scenario registered on the case setting screen 240 is recorded as a case file and held in the case file holding unit 148.
By changing the test scenario configuration and the input data file little by little, it becomes easier to expand the variation of the operation test.
 以上、参考技術1の動作検証装置100を説明した。
 動作検証装置100によれば、プログラムと入力データ、すなわち、処理とパラメータを分離できる。そして、そのためのプログラムをGUIベースの設定に基づき自動生成できる。これにより、プログラムに含めるロジックの多様性を確保しつつも、安定した品質のプログラムを簡易に生成できる。また、入力データファイルの内容を変更するだけで、動作テストの内容を変更できるため、動作テストのバリエーションを広げやすくなる。
The operation verification device 100 of the reference technique 1 has been described above.
According to the operation verification apparatus 100, a program and input data, that is, a process and a parameter can be separated. And the program for it can be automatically generated based on the setting of the GUI base. This makes it possible to easily generate a stable quality program while ensuring the diversity of logic included in the program. Moreover, since the contents of the operation test can be changed simply by changing the contents of the input data file, it is easy to expand the variations of the operation test.
 更に、実行セットをケースファイルに登録してテスト・シナリオを作ることにより、既存のプログラムを組合せながら、さまざまな状況における動作テストを実現できる。また、WebEditSet関数のようなテスト対象機器を操作するための関数だけでなく、WebScreenCapture関数のような動作テストを支援するための関数を用意しておくことにより、動作テストの効率や信頼性をいっそう向上させやすくなる。 In addition, by registering execution sets in case files and creating test scenarios, operation tests in various situations can be realized while combining existing programs. In addition to functions for operating the test target device such as the WebEditSet function, functions such as the WebScreenCapture function for supporting the operation test are prepared to further improve the efficiency and reliability of the operation test. It becomes easy to improve.
 (参考技術2)
 参考技術2では、上記の参考技術1を改良した動作検証装置100を提案する。
 まず、参考技術1における動作検証装置100と、参考技術2の動作検証装置100とを比較しつつ、参考技術2の動作検証装置100についてその概要を説明する。
(Reference technology 2)
The reference technique 2 proposes an operation verification apparatus 100 obtained by improving the reference technique 1.
First, an outline of the operation verification apparatus 100 of the reference technique 2 will be described while comparing the operation verification apparatus 100 of the reference technique 1 and the operation verification apparatus 100 of the reference technique 2.
 図11は、参考技術1の動作検証装置100と参考技術2の動作検証装置100とのそれぞれにおける構成の概要を示す。図11(a)が示すように、参考技術1の動作検証装置100は、動作テストの実行エンジンであるQTPモジュール102と、QTPモジュール102を使用したウェブサーバ400の動作テストを効率化するためのラッパーモジュール104とを備えた。このラッパーモジュール104には、図4で示した各機能ブロックが含まれる。 FIG. 11 shows an outline of the configuration of each of the operation verification apparatus 100 of the reference technique 1 and the operation verification apparatus 100 of the reference technique 2. As shown in FIG. 11A, the operation verification apparatus 100 of the reference technique 1 is used to improve the efficiency of the operation test of the QTP module 102 which is an execution engine of the operation test and the web server 400 using the QTP module 102. And a wrapper module 104. The wrapper module 104 includes the functional blocks shown in FIG.
 図11(a)において、ユーザは、QTPモジュール102を介して、動作確認の対象装置であるウェブサーバ400を操作する(S100)。ラッパーモジュール104は、その操作内容が記録されたログをQTPモジュール102から取得して、関数設定画面210をユーザに提供した(S102)。ユーザは、動作テスト実行の際、QTPモジュールが読み込み可能な動作テスト用プログラムをラッパーモジュール104において生成させ、QTPモジュール102にそのプログラムを実行させた(S104)。 In FIG. 11A, the user operates the web server 400, which is a target device for operation confirmation, via the QTP module 102 (S100). The wrapper module 104 obtains a log in which the operation content is recorded from the QTP module 102 and provides the function setting screen 210 to the user (S102). When performing the operation test, the user causes the wrapper module 104 to generate an operation test program that can be read by the QTP module, and causes the QTP module 102 to execute the program (S104).
 これに対して、図11(b)が示すように、参考技術2の動作検証装置100は、動作テストの実行エンジンの機能とラッパーモジュール104の機能とが統合された統合検証モジュール106を備える。ユーザが統合検証モジュール106を介してウェブサーバ400を操作すると(S200)、統合検証モジュール106はその操作内容を逐次検出して関数設定画面210のデータを設定し、関数設定画面210をユーザに提供する(S202)。ユーザは、動作テスト実行の際、統合検証モジュール106において動作テスト用プログラムを生成させて実行させる(S204)。 On the other hand, as illustrated in FIG. 11B, the operation verification apparatus 100 of the reference technique 2 includes an integrated verification module 106 in which the function of the operation test execution engine and the function of the wrapper module 104 are integrated. When the user operates the web server 400 via the integrated verification module 106 (S200), the integrated verification module 106 sequentially detects the operation contents, sets the data of the function setting screen 210, and provides the function setting screen 210 to the user. (S202). When executing the operation test, the user causes the integrated verification module 106 to generate and execute an operation test program (S204).
 図12は、参考技術1の動作検証装置100と参考技術2の動作検証装置100とのそれぞれにおける動作の概要を示す。図12(a)は、参考技術1の動作検証装置100における動作の概要を示している。ユーザはウェブサーバ400に対するデータ入力操作を実行し(S110)、QTPモジュール102はその操作内容が記録されたログを出力する(S112)。ユーザはそのログのデータをQTPモジュール102の所定の入力エリアにコピーする(S114)。ラッパーモジュール104は所定の入力エリアに設定されたログのデータに基づいて関数設定画面を設定して表示させ(S116)、ユーザはその関数設定画面を介して追加・変更すべき関数・入力データを設定する(S118)。 FIG. 12 shows an outline of operations in each of the operation verification apparatus 100 of the reference technique 1 and the operation verification apparatus 100 of the reference technique 2. FIG. 12A shows an outline of the operation in the operation verification apparatus 100 of the reference technique 1. The user executes a data input operation on the web server 400 (S110), and the QTP module 102 outputs a log in which the operation content is recorded (S112). The user copies the log data to a predetermined input area of the QTP module 102 (S114). The wrapper module 104 sets and displays a function setting screen based on the log data set in the predetermined input area (S116), and the user adds the function / input data to be added / changed via the function setting screen. Set (S118).
 ラッパーモジュール104は、関数設定画面のデータに基づいて、動作テストのためのQTP用プログラムを生成する(S120)。ユーザは、QTP用プログラムをQTPモジュール102の所定の入力エリアにコピーする(S122)。ユーザは、ケース設定画面において、QTP用プログラムと入力データファイルとをセットとして指定した動作テストのシナリオを設定する(S124)。ラッパーモジュール104は、そのシナリオに基づいて、QTP用プログラムと入力データファイルのセットをQTPモジュール102に渡して、セット毎に動作テストを実行させる(S126)。 The wrapper module 104 generates a QTP program for an operation test based on the data on the function setting screen (S120). The user copies the QTP program to a predetermined input area of the QTP module 102 (S122). On the case setting screen, the user sets an operation test scenario that specifies the QTP program and the input data file as a set (S124). Based on the scenario, the wrapper module 104 passes a set of the QTP program and the input data file to the QTP module 102, and executes an operation test for each set (S126).
 図12(b)は、参考技術2の動作検証装置100における動作の概要を示している。ユーザは、ウェブサーバ400に対するデータ入力操作を実行する(S210)。統合検証モジュール106は、そのデータ入力操作を逐次検出して、データ入力操作に対応する関数を操作内容ファイルに記録し、その操作内容ファイルの記録データを関数設定画面において表示する(S212)。ユーザは、その関数設定画面を介して追加・変更すべき関数・入力データを操作内容ファイルに設定する(S214)。そしてユーザは、ケース設定画面において、操作内容ファイルと入力データファイルとをセットとして指定した動作テストのシナリオを設定する(S216)。統合検証モジュール106は、そのシナリオに基づいて、シナリオ内の1以上のセットを集約した動作テスト用プログラムを生成して実行する(S218)。 FIG. 12B shows an outline of the operation in the operation verification apparatus 100 of the reference technique 2. The user executes a data input operation on the web server 400 (S210). The integrated verification module 106 sequentially detects the data input operation, records the function corresponding to the data input operation in the operation content file, and displays the recorded data of the operation content file on the function setting screen (S212). The user sets the function / input data to be added / changed in the operation content file via the function setting screen (S214). Then, on the case setting screen, the user sets an operation test scenario specifying the operation content file and the input data file as a set (S216). Based on the scenario, the integrated verification module 106 generates and executes an operation test program in which one or more sets in the scenario are aggregated (S218).
 このように、参考技術1の動作検証装置100では、QTPモジュール102とラッパーモジュール104とが分離していた。したがって、両モジュールを連係させるために、ユーザ自身が仲介作業を実行する必要があった。また、ラッパーモジュール104はシナリオ内のセット毎にQTPモジュール102をコールして、テスト用プログラムをセット毎に実行させる必要があった。 As described above, in the operation verification apparatus 100 of the reference technique 1, the QTP module 102 and the wrapper module 104 are separated. Therefore, in order to link the two modules, the user himself / herself has to execute a mediation operation. Further, the wrapper module 104 needs to call the QTP module 102 for each set in the scenario and execute the test program for each set.
 これに対して、参考技術2の動作検証装置100では、動作テストの実行エンジンと、その効率的な利用を実現するラッパーとが分離されることなく、シームレスに統合されている。したがって、参考技術1の動作検証装置100と比較すると、分離したモジュールを連係させるために必要であったユーザの作業が不要になり、動作テストのためのユーザの作業量が低減する。また、シナリオ内の複数のセットが集約された動作テスト用プログラムが生成され、そのプログラムの実行により一連のシナリオが実行されるため、迅速な動作テストが実現される。 On the other hand, in the operation verification apparatus 100 of the reference technique 2, the execution engine for the operation test and the wrapper for realizing its efficient use are seamlessly integrated without being separated. Therefore, compared with the operation verification apparatus 100 of the reference technique 1, the user's work required for linking the separated modules becomes unnecessary, and the user's work amount for the operation test is reduced. In addition, since an operation test program in which a plurality of sets in a scenario are aggregated is generated and a series of scenarios is executed by executing the program, a quick operation test is realized.
 図13は、参考技術2の動作検証装置100の機能構成を示すブロック図である。同図の機能ブロックは、図11(b)で示した統合検証モジュール106に含まれる。参考技術2の機能ブロックのうち、参考技術1の機能ブロックに対応する機能ブロックには、同じ符号を付している。参考技術1の機能ブロックと同じ符号を付した機能ブロックについてはその機能が参考技術1に既述した内容と異なる場合に記載しており、同様の機能についてはその記載を省略する。 FIG. 13 is a block diagram showing a functional configuration of the operation verification apparatus 100 of the reference technique 2. The functional blocks shown in the figure are included in the integrated verification module 106 shown in FIG. Among the functional blocks of the reference technique 2, the functional blocks corresponding to the functional blocks of the reference technique 1 are denoted by the same reference numerals. Functional blocks with the same reference numerals as those of the reference technique 1 are described when the functions are different from the contents described in the reference technique 1, and description of similar functions is omitted.
 データ保持部140は、操作内容ファイル保持部143と、プログラム保持部144と、入力データファイル保持部146と、ケースファイル保持部148と、関数保持部150とを有する。操作内容ファイル保持部143は、動作テスト用プログラムに設定すべき関数が記録される操作内容ファイルを記憶する。プログラム保持部144は、操作内容ファイルにしたがって生成された動作テスト用プログラムを記憶する。 The data holding unit 140 includes an operation content file holding unit 143, a program holding unit 144, an input data file holding unit 146, a case file holding unit 148, and a function holding unit 150. The operation content file holding unit 143 stores an operation content file in which a function to be set in the operation test program is recorded. The program holding unit 144 stores an operation test program generated according to the operation content file.
 IF部110の入力部112は、操作検出部115とユーザ設定受付部117とを有する。操作検出部115は、ウェブサーバ400に対するユーザのデータ入力操作を逐次検出する。ユーザ設定受付部117は、関数設定画面210、入力設定画面230、ケース設定画面240に対するユーザによる設定情報を検出する。 The input unit 112 of the IF unit 110 includes an operation detection unit 115 and a user setting reception unit 117. The operation detection unit 115 sequentially detects user data input operations on the web server 400. The user setting reception unit 117 detects setting information by the user for the function setting screen 210, the input setting screen 230, and the case setting screen 240.
 IF部110の出力部118は、関数設定画面表示部120と入力設定画面表示部122とケース設定画面表示部126とを有する。関数設定画面表示部120は、操作内容ファイル保持部143に記録された操作内容ファイルの内容を表示する関数設定画面210を所定の表示装置に表示させる。 The output unit 118 of the IF unit 110 includes a function setting screen display unit 120, an input setting screen display unit 122, and a case setting screen display unit 126. The function setting screen display unit 120 displays a function setting screen 210 that displays the contents of the operation content file recorded in the operation content file holding unit 143 on a predetermined display device.
 データ処理部130は、プログラム生成部132と、プログラム実行部134と、テストケース登録部136と、操作記録部137と、入力データ記録部138とを有する。操作記録部137は、関数保持部150を参照して、操作検出部115において検出されたデータ入力操作に対応する関数を特定し、その関数を操作内容ファイルに記録する。また操作記録部137は、関数設定画面210に対するユーザの設定情報を操作内容ファイルに記録する。入力データ記録部138は、入力設定画面230を介してユーザが入力した入力データを入力データファイルに記録する。プログラム生成部132は、操作内容ファイルに記録された関数に応じて動作テスト用プログラムを生成する。プログラム実行部134は、動作テストの実行エンジンとして、動作テスト用プログラムを実行し、その結果を結果保持部152に記録する。 The data processing unit 130 includes a program generation unit 132, a program execution unit 134, a test case registration unit 136, an operation recording unit 137, and an input data recording unit 138. The operation recording unit 137 refers to the function holding unit 150, specifies a function corresponding to the data input operation detected by the operation detection unit 115, and records the function in the operation content file. The operation recording unit 137 records user setting information for the function setting screen 210 in an operation content file. The input data recording unit 138 records input data input by the user via the input setting screen 230 in an input data file. The program generation unit 132 generates an operation test program according to the function recorded in the operation content file. The program execution unit 134 executes an operation test program as an operation test execution engine, and records the result in the result holding unit 152.
 図14は、参考技術2において、ユーザのデータ入力操作を検出して動作テストを実行するまでの概要図である。まず、ユーザはクライアント端末のウェブブラウザを操作してウェブサーバ400にアクセスし、ウェブサーバ400に対する各種操作、典型的にはウェブサーバ400が提供するウェブページに対するデータ入力操作を実行する。操作検出部115はユーザによるデータ入力操作を逐次検出し、操作記録部137は関数保持部150の関数ライブラリを読み出し、そのデータ入力操作に対応する関数を操作内容ファイルに逐次記録する(S220)。 FIG. 14 is a schematic diagram from when the reference data 2 is detected until a user data input operation is detected and an operation test is executed. First, the user operates the web browser of the client terminal to access the web server 400, and executes various operations on the web server 400, typically data input operations on web pages provided by the web server 400. The operation detection unit 115 sequentially detects data input operations by the user, and the operation recording unit 137 reads the function library of the function holding unit 150 and sequentially records the functions corresponding to the data input operations in the operation content file (S220).
 次に、関数設定画面表示部120は、操作内容ファイル保持部143の操作内容ファイルを読み出し、ユーザによる操作に対応する関数を一覧表示する関数設定画面を表示させる。関数設定画面において、ユーザは、適宜、関数を追加・変更・削除でき、また、動作テスト用プログラムに静的に設定すべき入力データを設定できる。こうして、動作テスト用プログラムに含まれるべき関数が特定される。関数設定画面については、図15および図16に関連して後述する。 Next, the function setting screen display unit 120 reads the operation content file in the operation content file holding unit 143 and displays a function setting screen that displays a list of functions corresponding to the operation by the user. On the function setting screen, the user can add, change, and delete functions as appropriate, and can set input data to be statically set in the operation test program. In this way, a function to be included in the operation test program is specified. The function setting screen will be described later with reference to FIGS. 15 and 16.
 次に、入力設定画面表示部122は、入力設定画面230を表示させる。ユーザは、入力設定画面230を介して、動作テストの実行時に動作テスト用プログラムに対して動的に供給されるべき入力データを設定する。ユーザにより設定された入力データは、入力データファイルに記録される(S222)。入力設定画面230については、図17に関連して後述する。 Next, the input setting screen display unit 122 displays the input setting screen 230. The user sets input data to be dynamically supplied to the operation test program when the operation test is executed via the input setting screen 230. The input data set by the user is recorded in the input data file (S222). The input setting screen 230 will be described later with reference to FIG.
 次に、ケース設定画面表示部126は、ケース設定画面240を表示させる。ユーザは、複数種類の操作内容ファイルおよび複数種類の入力データファイルから、操作内容ファイルと入力データファイルとの組み合わせを実行セットとして登録する。テストケース登録部136は、1以上の実行セットをケースファイルに記録する(S224)。例えば、テストケース1において、操作内容ファイルF01の設定内容を入力データファイルF12に基づいて実行させた後、操作内容ファイルF02の設定内容を入力データファイルF16に基づいて実行させる場合、
 テストケース1:
  実行セット1:操作内容ファイルF01+入力データファイルF12
  実行セット2:操作内容ファイルF02+入力データファイルF16
 としてケースファイルに登録される。ケース設定画面240については、図18に関連して後述する。
Next, the case setting screen display unit 126 displays the case setting screen 240. The user registers a combination of an operation content file and an input data file as an execution set from a plurality of types of operation content files and a plurality of types of input data files. The test case registration unit 136 records one or more execution sets in the case file (S224). For example, in the test case 1, after the setting content of the operation content file F01 is executed based on the input data file F12, the setting content of the operation content file F02 is executed based on the input data file F16.
Test case 1:
Execution set 1: operation content file F01 + input data file F12
Execution set 2: operation content file F02 + input data file F16
Is registered in the case file. The case setting screen 240 will be described later with reference to FIG.
 次に、プログラム生成部132は、ケースファイルおよび操作内容ファイルに基づいて動作テスト用プログラムを生成する(S226)。具体的には、実行セットに設定された操作内容ファイルに順次記録された関数を、動作テスト用プログラムのプログラムコードに順次設定してもよい。また、プログラム生成部132は、1つのテストケースに複数の実行セットが設定されている場合、各実行セットの操作内容ファイルに記録された関数を1つの動作テスト用プログラムに集約して設定する。 Next, the program generation unit 132 generates an operation test program based on the case file and the operation content file (S226). Specifically, the functions sequentially recorded in the operation content file set in the execution set may be sequentially set in the program code of the operation test program. Further, when a plurality of execution sets are set in one test case, the program generation unit 132 collects and sets the functions recorded in the operation content file of each execution set in one operation test program.
 また、プログラム生成部132は、操作内容ファイルの関数に対して入力データそのものが設定されていた場合には、その入力データを動作テスト用プログラムに静的に設定する。例えば、動作テスト用プログラムの生成の際に、そのプログラムコードにおける関数の引数として入力データをあらかじめ設定する。また、操作内容ファイルの関数に対して入力データファイルが指定されていた場合には、その入力データファイルのデータをプログラム実行時に読み込むように設定する。 In addition, when the input data itself is set for the function of the operation content file, the program generation unit 132 statically sets the input data in the operation test program. For example, when generating an operation test program, input data is set in advance as a function argument in the program code. If an input data file is specified for the function of the operation content file, the data of the input data file is set to be read when the program is executed.
 最後に、プログラム実行部134は、動作テスト用プログラムを実行して、ウェブサーバ400に対してユーザにより実行された一連の操作を再現する(S228)。入力データファイルのデータを必要とする関数に対しては、動作テスト用プログラムの実行の際に読み込んだ入力データファイルのデータを引数として渡す。すなわち、入力データファイルから動的に取得した入力データに基づいて関数を実行する。 Finally, the program execution unit 134 executes the operation test program to reproduce a series of operations executed by the user on the web server 400 (S228). For functions that require data in the input data file, the data of the input data file read when the operation test program is executed is passed as an argument. That is, the function is executed based on the input data dynamically acquired from the input data file.
 図15は、関数設定画面210の画面図である。同図は、図18で後述する「検索記入.xls」を表示する関数設定画面210を示している。データファイルカラム名欄250は、パラメータに設定する入力データを記録した入力データファイルのカラム名が指定される領域である。ユーザは、入力値欄217に入力データそのものを記述してもよく、その代わりに、データファイルカラム名欄250に入力データファイルのカラム名を指定してもよい。データファイルカラム名欄250に入力データファイルのカラム名が指定された場合、動作テスト用プログラムの実行時に、その入力データファイルのカラムに設定された1以上の入力データが読み込まれて関数に渡される。 FIG. 15 is a screen diagram of the function setting screen 210. This figure shows a function setting screen 210 that displays “search entry.xls” described later in FIG. The data file column name column 250 is an area in which the column name of the input data file in which the input data set in the parameter is recorded is designated. The user may describe the input data itself in the input value field 217, or instead, may specify the column name of the input data file in the data file column name field 250. When the column name of the input data file is specified in the data file column name field 250, when the operation test program is executed, one or more input data set in the column of the input data file is read and passed to the function. .
 図16は、参考技術2における関数設定画面210の画面図である。同図の「検索部署名」パラメータの入力値欄217においては、入力データの候補がドロップダウンリスト252で一覧表示されている。ドロップダウンリスト252において表示される入力データの候補は、ウェブページに対するユーザによるデータ入力の際に、そのウェブページのドロップダウンリストにおいて表示された入力データの候補である。ユーザはドロップダウンリスト252から入力データを選択することができ、入力データの設定におけるユーザの負担が軽減される。 FIG. 16 is a screen diagram of the function setting screen 210 in the reference technique 2. In the input value field 217 of the “search part signature” parameter in FIG. 9, input data candidates are listed in a drop-down list 252. The input data candidates displayed in the drop-down list 252 are input data candidates displayed in the drop-down list of the web page when the user inputs data to the web page. The user can select input data from the drop-down list 252 and the burden on the user in setting the input data is reduced.
 ドロップダウンリスト252を設定するために、操作検出部115は、ウェブページに対するユーザによるデータ入力操作の際に、そのウェブページのドロップダウンリストにおいて表示された入力データの候補を取得する。例えば、ウェブサーバ400から取得されたウェブページのデータ、例えばHTMLデータからドロップダウンリストにおける入力データの候補を取得する。操作記録部137は、その入力データの候補を操作内容ファイルの入力値欄217に記録する。関数設定画面表示部120は、入力値欄217が入力される際に、操作内容ファイルに記録された入力データの候補をドロップダウンリストの形式で一覧表示させる。 In order to set the drop-down list 252, the operation detection unit 115 acquires input data candidates displayed in the drop-down list of the web page when the user performs a data input operation on the web page. For example, a candidate for input data in the drop-down list is acquired from web page data acquired from the web server 400, for example, HTML data. The operation recording unit 137 records the input data candidates in the input value field 217 of the operation content file. When the input value field 217 is input, the function setting screen display unit 120 displays a list of input data candidates recorded in the operation content file in the form of a drop-down list.
 図17は、参考技術2における入力設定画面230の画面図である。図17(a)は、図15および図16の関数設定画面210においてカラム名が指定された入力データファイル「検索記入データ.xls」を表示する入力設定画面230を示している。なお、図15および図16では、図17(a)の「氏名漢字」カラムと「氏名カナ」カラムとが指定されている。図17(b)は、別の入力データファイル「ログインデータ2.xls」を表示する入力設定画面230を示している。同図の入力データファイルについては、図18に関連して後述する。 FIG. 17 is a screen diagram of the input setting screen 230 in the reference technique 2. FIG. 17A shows an input setting screen 230 that displays the input data file “search entry data.xls” in which the column name is specified in the function setting screen 210 of FIGS. 15 and 16. 15 and FIG. 16, the “name kanji” column and the “name kana” column in FIG. 17A are designated. FIG. 17B shows an input setting screen 230 that displays another input data file “login data 2.xls”. The input data file shown in the figure will be described later with reference to FIG.
 図18は、参考技術2におけるケース設定画面240の画面図である。実行番号欄253には各実行セットの基本的な実行順序、テストケースID欄254にはテストケースの識別情報が設定される。グループID欄256には実行セットの繰り返し処理のグループを示す識別情報、行番号欄258には動作テストにおける入力データファイルの参照範囲が設定される。操作内容ファイル欄260は各実行セットにおける操作内容ファイル、入力データファイル欄262は各実行セットの入力データファイルが設定される。ケース設定画面240における設定内容は、ケースファイル保持部148においてケースファイルとして記憶される。 FIG. 18 is a screen diagram of the case setting screen 240 in the reference technique 2. A basic execution order of each execution set is set in the execution number column 253, and test case identification information is set in the test case ID column 254. In the group ID column 256, identification information indicating a group of execution set repetition processing is set, and in the line number column 258, a reference range of the input data file in the operation test is set. The operation content file column 260 is set with an operation content file for each execution set, and the input data file column 262 is set with an input data file for each execution set. The setting content on the case setting screen 240 is stored as a case file in the case file holding unit 148.
 ケース設定画面240においてテスト実行ボタン264が押下されると、プログラム生成部132は、ケースファイルおよび操作内容ファイルにしたがって動作テスト用プログラムを生成する。具体的には、ケースファイルにおいて同一のテストケースIDが設定された1以上の操作内容ファイルに基づいて、各操作内容ファイルに記録された関数がプログラムコードに設定された1つの動作テスト用プログラムを生成する。例えば、プログラム生成部132は、図18のケース設定画面240の内容が記録されたケースファイルにしたがって、登録ケースを実行するための1つの動作テスト用プログラムと、検索ケースを実行するための1つの動作テスト用プログラムとを生成する。なお、「1つの動作テスト用プログラム」は、1つの実行単位として実行されるプログラム、言い換えれば1つの実行契機で実行されるプログラムを意味し、物理的なプログラム数は問わない。 When the test execution button 264 is pressed on the case setting screen 240, the program generation unit 132 generates an operation test program according to the case file and the operation content file. Specifically, based on one or more operation content files in which the same test case ID is set in the case file, one operation test program in which the function recorded in each operation content file is set in the program code Generate. For example, the program generation unit 132 performs one operation test program for executing a registered case and one for executing a search case in accordance with a case file in which the contents of the case setting screen 240 of FIG. 18 are recorded. An operation test program is generated. Note that “one operation test program” means a program executed as one execution unit, in other words, a program executed at one execution opportunity, and the number of physical programs is not limited.
 プログラム実行部134は、各操作内容ファイルに記録された1つの関数を実行する際、その操作内容ファイルと対応づけられた入力データファイルのデータのうち、操作内容ファイルにおいてその関数と対応づけられたカラムのデータをその関数に渡す。 When the program execution unit 134 executes one function recorded in each operation content file, the program execution unit 134 associates the function with the function in the operation content file among the data of the input data file associated with the operation content file. Pass column data to the function.
 また、プログラム実行部134は、同一のテストケースにおいて同一のグループIDが付与された複数の実行セットを、同一の繰り返し処理を実行すべき同一のグループとして取り扱う。具体的には、同一のグループIDが付与された複数の実行セットそれぞれの実行を繰り返し、繰り返しのたびに、各実行セットの操作内容ファイルに記録された関数に対して、入力データファイルに記録された所定数のレコードを渡す。参考技術2では、繰り返しのたびに入力データファイルに記録された1レコードを関数に渡すこととする。なお、上述の処理を実行するための繰り返し命令がプログラムコードに設定された動作テスト用プログラムを、プログラム生成部132おいて生成してもよい。 In addition, the program execution unit 134 handles a plurality of execution sets assigned the same group ID in the same test case as the same group that should execute the same repetition process. Specifically, each execution set with the same group ID is repeatedly executed, and each time it is repeated, the function recorded in the operation content file of each execution set is recorded in the input data file. Pass a certain number of records. In the reference technique 2, one record recorded in the input data file is passed to the function every time it is repeated. Note that the program generation unit 132 may generate an operation test program in which a repetition instruction for executing the above-described processing is set in the program code.
 また、プログラム実行部134は、行番号が指定された実行セットについては、その操作内容ファイルに記録された関数に対して、入力データファイルにおいてその行番号で特定される入力データを渡す。したがって、グループIDによる繰り返し処理が指定され、さらに行番号が指定された場合には、行番号の指定数だけその繰り返しを実行することになる。例えば、図18の登録ケースでは、実行セットをまたがったグループの設定はなく、各実行セットでは入力データ1個分の処理が実行される。これに対し、図18の検索ケースでは、各実行セットにおける入力データ1個分の処理が3回繰り返される。 Further, for the execution set in which the line number is designated, the program execution unit 134 passes the input data specified by the line number in the input data file to the function recorded in the operation content file. Therefore, when the repetition process by the group ID is designated and the line number is further designated, the repetition is executed by the designated number of line numbers. For example, in the registration case of FIG. 18, there is no group setting across execution sets, and processing for one input data is executed in each execution set. On the other hand, in the search case of FIG. 18, the process for one input data in each execution set is repeated three times.
 具体的には、1回目の繰り返しでは、ログイン2.xlsに記録された関数に対してログインデータ2.xlsの35行目のデータ「t_yamada」が渡される。そして、検索記入.xlsに記録された関数、具体的には図15のNo1の関数に対しては検索記入データ.xlsの1行目・氏名漢字のデータ「山田太郎」が渡される。また、図15のNo2の関数に対しては検索記入データ.xlsの1行目・氏名カナのデータ「ヤマダタロウ」が渡される。
 2回目の繰り返しでは、ログイン2.xlsに記録された関数に対してログインデータ2.xlsの36行目のデータ「h_yamada」が渡される。そして、検索記入.xlsに記録された図15のNo1の関数に対して検索記入データ.xlsの2行目・氏名漢字のデータ「山田花子」が渡される。また、図15のNo2の関数に対して検索記入データ.xlsの2行目・氏名カナのデータ「ヤマダハナコ」が渡される。
 3回目の繰り返しにおいても同様に、インクリメントされた行番号における入力データが各関数に渡されることになる。
Specifically, in the first iteration, login2. 1. Login data for the function recorded in xls Data “t_yamada” on the 35th line of xls is passed. And search entry. Search entry data for the function recorded in xls, specifically, the function No. 1 in FIG. The data “Taro Yamada” in the first line of the xls and full name kanji is passed. For the function No. 2 in FIG. The data “Yamada Taro” in the first line of the xls and the name Kana is passed.
In the second iteration, login 2. 1. Login data for the function recorded in xls The data “h_yamada” on the 36th line of xls is passed. And search entry. Search entry data for the function No. 1 in FIG. Data “Kana Yamada” in the second line of xls and full name kanji is passed. In addition, the search entry data for the function No. 2 in FIG. The data “Yamada Hanako” in the second line of xls and the name Kana is passed.
Similarly, in the third iteration, the input data in the incremented line number is passed to each function.
 参考技術2の動作検証装置100においても、参考技術1で既述した効果を奏する。具体的には、処理とパラメータの分離、および、GUIベースの設定が実現されるため、動作テスト用プログラムに含めるロジックの多様性を確保しつつも、安定した品質のプログラムを簡易に生成できる。また、入力データファイルの設定によって、動作テストのバリエーションを広げやすくなる。さらに、ケースファイルの設定によって、様々なシナリオにおける動作テストを実現できる。 The operation verification apparatus 100 of the reference technique 2 also has the effects described in the reference technique 1. Specifically, since separation of processing and parameters and GUI-based setting are realized, it is possible to easily generate a stable quality program while ensuring the diversity of logic included in the operation test program. Moreover, it becomes easy to expand the variation of the operation test by setting the input data file. Furthermore, operation tests in various scenarios can be realized by setting case files.
 参考技術2の動作検証装置100においては、さらに、動作テスト用プログラムを実行する実行エンジン機能と、実行エンジンの効率的な利用を実現するラッパー機能とがシームレスに、ユーザによる仲介を要することなく連係する。これにより、動作テストを実行するためのユーザの負担を軽減できる。また、参考技術1の動作検証装置100の場合と異なり、ユーザは、QTPのプロジェクト等、プログラム実行のための環境を意識する必要がない。すなわち、ユーザにとって理解・操作が容易な形式の操作内容ファイルと入力データファイルとを設定すればよい。これにより、ユーザは動作テストを容易に実施できるようになる。 In the operation verification apparatus 100 of Reference Technology 2, the execution engine function that executes the operation test program and the wrapper function that realizes efficient use of the execution engine are seamlessly linked without requiring user intervention. To do. Thereby, the burden on the user for executing the operation test can be reduced. Unlike the case of the operation verification apparatus 100 of the reference technique 1, the user does not need to be aware of the environment for program execution such as a QTP project. That is, an operation content file and an input data file in a format that can be easily understood and operated by the user may be set. As a result, the user can easily perform the operation test.
 参考技術2の動作検証装置100においては、さらにまた、同一テストケースの複数の実行セットが集約された1つの動作テスト用プログラムが生成され、その1つの動作テスト用プログラムが実行される。参考技術1の動作検証装置100における実行セット毎、すなわち実行セットに基づき生成されたQTPのプロジェクト毎の実行と比較して、1つのテストケースにおける一連の動作テストを実行する際のオーバーヘッドが低減され、迅速な動作テストを実現できる。 In the operation verification apparatus 100 of the reference technique 2, one operation test program in which a plurality of execution sets of the same test case are aggregated is generated, and the one operation test program is executed. Compared with execution for each execution set in the operation verification apparatus 100 of the reference technology 1, that is, for each project of QTP generated based on the execution set, overhead when executing a series of operation tests in one test case is reduced. A quick operation test can be realized.
 参考技術2の動作検証装置100においては、さらにまた、複数の実行セットに亘る繰り返しのグループを設定できる。これにより、実行セットを柔軟に分割でき、また、動作テストのシナリオを柔軟に設定できる。さらにまた、入力データファイルの参照範囲を設定できる。これにより、入力データファイルが同一であっても、シナリオに応じて柔軟に参照範囲を変更でき、様々なバリエーションの動作テストを容易に実現できる。 In the operation verification apparatus 100 of the reference technique 2, it is possible to set a repeated group over a plurality of execution sets. As a result, the execution set can be flexibly divided, and an operation test scenario can be flexibly set. Furthermore, the reference range of the input data file can be set. Thereby, even if the input data file is the same, the reference range can be flexibly changed according to the scenario, and various variations of the operation test can be easily realized.
 上述した参考技術2においては、関数設定画面210における値設定を支援する例としてドロップダウンリスト252を示した。変形例においては、ウェブページにおけるラジオボタン、チェックボックス、リストボックス等で選択可能に表示された入力データの候補が、ドロップダウンリスト252またはその他の形式で関数設定画面210において選択可能に表示されてもよい。すなわち、動作確認対象の機器に対するデータ入力操作の際にユーザに対して様々な形式で選択可能に表示された入力データの候補が、関数設定画面210における値設定の際に選択可能に表示されてもよい。 In the reference technique 2 described above, the drop-down list 252 is shown as an example of supporting the value setting on the function setting screen 210. In the modified example, candidates for input data displayed so as to be selectable by a radio button, a check box, a list box, etc. on the web page are displayed so as to be selectable on the function setting screen 210 in a drop-down list 252 or other formats. Also good. That is, input data candidates that are displayed so as to be selectable in various formats for the user when performing a data input operation on the operation confirmation target device are displayed so as to be selectable when setting values on the function setting screen 210. Also good.
 上述した参考技術1においては、ウェブサーバ400に対するユーザの操作をQTPが受け付け、ログを生成したことを条件として、動作検証装置100が動作テスト用プログラムを作成している。また、上述した参考技術2においては、ウェブサーバ400に対するユーザの操作を動作検証装置100が検出して、動作テスト用プログラムを作成している。変形例として、動作検証装置100においてウェブサーバ400からHTMLファイルを取得した時点で、動作テスト用プログラムを生成してもよい。この場合、動作検証装置100は、HTMLファイルに含まれるフォームタグを検索し、HTMLファイルにどのような入力インタフェースが含まれているかを特定する。そして、各入力インタフェースにデータを入力するための関数を選択し、これらの関数をさまざまな順序で並べれば、ユーザによる明示的なウェブ操作がなくても、動作テスト用のプログラムを生成できる。 In the reference technique 1 described above, the operation verification apparatus 100 creates an operation test program on the condition that a user operation on the web server 400 is accepted by the QTP and a log is generated. In the reference technique 2 described above, the operation verification apparatus 100 detects a user operation on the web server 400 and creates an operation test program. As a modification, an operation test program may be generated when the operation verification apparatus 100 acquires an HTML file from the web server 400. In this case, the operation verification apparatus 100 searches for a form tag included in the HTML file and specifies what input interface is included in the HTML file. If a function for inputting data to each input interface is selected and these functions are arranged in various orders, an operation test program can be generated without an explicit web operation by the user.
 (参考技術3)
 まず参考技術3の概要を説明する。
 現在、数多くのウェブブラウザが公開されており、ユーザのPCにおいても様々な種類のウェブブラウザが使用されている。したがって動作検証装置としては、複数種のウェブブラウザによるウェブページの動作テストをサポートできることが望ましい。この場合、動作検証装置は、ウェブブラウザの仕様に応じてウェブブラウザを操作する必要があり、そのアーキテクチャは以下の2つに大別される。なお、動作テストの対象となるウェブページを、以下では「テスト対象ページ」とも称する。
(Reference technology 3)
First, an outline of the reference technique 3 will be described.
Currently, many web browsers are open to the public, and various types of web browsers are also used in user PCs. Therefore, it is desirable that the operation verification apparatus can support a web page operation test using a plurality of types of web browsers. In this case, the operation verification apparatus needs to operate the web browser according to the specifications of the web browser, and the architecture is roughly divided into the following two. Note that the web page that is the target of the operation test is also referred to as a “test target page” below.
 方式1.外部からの操作:
 ウェブブラウザが外部に公開するAPI(Application Programming Interface)、すなわちウェブブラウザに表示中のテスト対象ページへの入力操作を受け付けるインタフェース(以下、「操作IF」とも呼ぶ)を呼び出すことにより、ウェブブラウザを外部から操作する。参考技術3の操作IFは、具体的には、テスト対象ページに対してデータを入力し、またテスト対象ページのフォームを実行させ、またウェブサーバに対するGETリクエストやPOSTリクエストを送信させるための関数である。
Method 1. External operation:
By calling an API (Application Programming Interface) published by the web browser to the outside, that is, an interface that accepts an input operation to the test target page being displayed on the web browser (hereinafter also referred to as “operation IF”), Operate from. Specifically, the operation IF of the reference technique 3 is a function for inputting data to the test target page, executing the form of the test target page, and transmitting a GET request or a POST request to the web server. is there.
 方式2.内部からの操作:
 テスト対象ページへの入力操作を受け付けて、その入力操作をウェブブラウザに実行させるスクリプト文書(以下、「制御コード」とも呼ぶ)を、テスト対象ページのプログラムコード(すなわちHTML文書)に対して追記する。そして、その制御コードを呼び出すことにより、ウェブブラウザを内部から操作する。言い換えれば、ウェブブラウザに表示されたウェブページに予め埋め込まれたスクリプト文書によってそのウェブブラウザを操作する。
Method 2. Operation from inside:
A script document (hereinafter also referred to as “control code”) that accepts an input operation to the test target page and causes the web browser to execute the input operation is added to the program code (ie, HTML document) of the test target page. . Then, the web browser is operated from the inside by calling the control code. In other words, the web browser is operated by a script document embedded in advance in a web page displayed on the web browser.
 参考技術3の制御コードは、テスト対象ページへの入力操作を外部から受け付けるインタフェース機能を含む関数が記述されたプログラムコードである。また、テスト対象ページのDOMツリーを操作することによりテスト対象ページの表示内容を更新する機能や、ウェブサーバに対するGETリクエストやPOSTリクエストを送信する機能を含む関数が記述されたプログラムコードでもある。なお制御コードは、所定のスクリプト言語(例えば、JAVAスクリプト(「JAVA」は登録商標))で記述されてもよい。 The control code of Reference Technology 3 is a program code in which a function including an interface function that accepts an input operation to the test target page from the outside is described. Further, the program code describes a function including a function for updating the display contents of the test target page by operating the DOM tree of the test target page and a function for transmitting a GET request or a POST request to the web server. The control code may be described in a predetermined script language (for example, JAVA script (“JAVA” is a registered trademark)).
 図19は、ウェブブラウザに対する2つの操作方式の特徴を示す。同図は、外部からの操作方式と内部からの操作方式とを比較したものである。最重要と想定される動作テストそのものの信頼性については、内部からの操作方式はテスト対象ページを書き換えるものであるため、外部からの操作方式の方が優れるといえる。その一方で適合性および汎用性については、外部からの操作方式はウェブブラウザにおける操作IFに依存するものであるため、内部からの操作方式の方が優れるといえる。 FIG. 19 shows the characteristics of the two operation methods for the web browser. The figure compares the operation method from the outside with the operation method from the inside. Regarding the reliability of the operation test itself, which is assumed to be the most important, it can be said that the operation method from the outside is superior because the operation method from the inside rewrites the test target page. On the other hand, regarding compatibility and versatility, the operation method from the outside depends on the operation IF in the web browser, so the operation method from the inside is superior.
 そこで参考技術3では、動作テストに使用するウェブブラウザの操作IFが公開されている場合はウェブブラウザを外部から操作し、操作IFが非公開である場合はウェブブラウザを内部から操作する動作検証装置を提案する。これにより、動作テストの信頼性をベストエフォートで確保しつつ、様々な種類のウェブブラウザによる動作テストをサポートできる。 Therefore, in the reference technique 3, when the operation IF of the web browser used for the operation test is disclosed, the web browser is operated from the outside, and when the operation IF is not disclosed, the operation verification device operates the web browser from the inside. Propose. As a result, it is possible to support operation tests using various types of web browsers while ensuring reliability of the operation tests at best effort.
 図20は、ウェブブラウザに対する2つの操作方式について機能間の呼び出し関係を模式的に示す。ウェブサーバ400は、テスト対象ページを提供する情報処理装置である。ブラウザ402で総称されるブラウザA402a、ブラウザB402b、ブラウザC402c、ブラウザD402dは、HTTPユーザエージェントとして機能するウェブブラウザであり、テスト対象ページの表示処理・操作処理等を実行する。なお、同図のブラウザA402aおよびブラウザB402bはその操作IFを外部に公開し、ブラウザC402cおよびブラウザD402dはその操作IFを非公開とするものである。 FIG. 20 schematically shows a calling relationship between functions for two operation methods for the web browser. The web server 400 is an information processing apparatus that provides a test target page. Browser A 402a, browser B 402b, browser C 402c, and browser D 402d, which are collectively referred to as browser 402, are web browsers that function as HTTP user agents, and execute display processing / operation processing of a test target page. Note that the browser A 402a and the browser B 402b shown in the figure disclose the operation IF to the outside, and the browser C 402c and the browser D 402d make the operation IF private.
 個別ブラウザ用エンジン404で総称されるブラウザA用エンジン404aとブラウザB用エンジン404bとのそれぞれは、ブラウザA402aとブラウザB402bそれぞれの操作IFを呼び出すプログラムコードである。共通IF406は、複数種のブラウザ402それぞれの操作IFを呼び出すためのインタフェースであり、複数種のブラウザ402それぞれで異なる操作IFに依存しない共通形式のインタフェースを備えるプログラムコードである。個別ブラウザ用エンジンドライバ408で総称されるブラウザA用エンジンドライバ408a、ブラウザB用エンジンドライバ408bは、ブラウザ402の種類に依存しない共通IF406形式のデータを、ブラウザ402ごとに異なる操作IF形式のデータへ変換することにより、動作テスト用プログラムと個別ブラウザ用エンジン404とをブリッジする。 The browser A engine 404a and the browser B engine 404b, which are collectively referred to as the individual browser engine 404, are program codes that call the operation IFs of the browser A 402a and the browser B 402b, respectively. The common IF 406 is an interface for calling the operation IF of each of the plurality of types of browsers 402, and is a program code having a common format interface that does not depend on the operation IFs that are different for each of the plurality of types of browsers 402. The browser A engine driver 408a and the browser B engine driver 408b, which are collectively referred to as the individual browser engine driver 408, convert the data in the common IF 406 format independent of the type of the browser 402 into data in the operation IF format different for each browser 402. By performing the conversion, the operation test program and the individual browser engine 404 are bridged.
 プロキシサーバ410は、ブラウザ402の代理として、ウェブサーバからテスト対象ページを取得するリバースプロキシとして機能する。プロキシサーバ410は、テスト対象ページへ制御コードを追加した後、そのテスト対象ページをブラウザC402cおよびブラウザD402dへ提供する。内部操作エンジン412は、プロキシサーバ410を介して、テスト対象ページに付加された制御コードを呼び出す。内部操作エンジンドライバ414は、共通IF406形式のデータを、制御コードを呼び出すための所定形式のデータへ変換することにより、動作テスト用プログラムと内部操作エンジン412とをブリッジする。 The proxy server 410 functions as a reverse proxy that acquires a test target page from a web server as a proxy of the browser 402. After adding the control code to the test target page, the proxy server 410 provides the test target page to the browser C402c and the browser D402d. The internal operation engine 412 calls the control code added to the test target page via the proxy server 410. The internal operation engine driver 414 bridges the operation test program and the internal operation engine 412 by converting data in the common IF 406 format into data in a predetermined format for calling a control code.
 図20の動作を説明する。テスト対象ページを表示するウェブブラウザがブラウザA402a、またはブラウザB402bである場合、動作テスト用プログラムは共通IF406をコールする。それに伴って、個別ブラウザ用エンジンドライバ408・個別ブラウザ用エンジン404を介して、ウェブブラウザの操作IFがコールされることにより、ウェブブラウザが操作され、テスト対象ページへの入力操作が実現される。 The operation of FIG. 20 will be described. When the web browser that displays the test target page is the browser A 402a or the browser B 402b, the operation test program calls the common IF 406. Accordingly, the web browser operation IF is called via the individual browser engine driver 408 and the individual browser engine 404, whereby the web browser is operated, and the input operation to the test target page is realized.
 一方で、テスト対象ページを表示するウェブブラウザがブラウザC402c、またはブラウザD402dである場合、プロキシサーバ410はテスト対象ページに制御コードを追加して、そのテスト対象ページをウェブブラウザに表示させる。この場合も動作テスト用プログラムは共通IF406をコールし、内部操作エンジンドライバ414・内部操作エンジン412・プロキシサーバ410を介して、テスト対象ページに付加された制御コードが呼び出される。これにより、ウェブブラウザの操作IFを介することなくウェブブラウザが操作され、テスト対象ページへの入力操作が実現される。 On the other hand, when the web browser displaying the test target page is the browser C402c or the browser D402d, the proxy server 410 adds a control code to the test target page and causes the test browser to display the test target page. In this case as well, the operation test program calls the common IF 406, and the control code added to the test target page is called through the internal operation engine driver 414, the internal operation engine 412, and the proxy server 410. Thereby, the web browser is operated without going through the operation IF of the web browser, and the input operation to the test target page is realized.
 図20の構成によれば、個別ブラウザ用エンジンドライバ408および内部操作エンジンドライバ414によりウェブブラウザのインタフェースの差異が吸収される。これにより、動作テスト用プログラムは、ウェブページの動作テストで使用するウェブブラウザ(以下、「テスト実行ブラウザ」とも呼ぶ)の種類によらず、常に共通IF406を呼び出すことでテスト実行ブラウザを操作できる。言い換えれば、同一の動作テスト用プログラムにより、複数種のウェブブラウザによる動作テストを自動実行させることができる。 20, the difference in the web browser interface is absorbed by the individual browser engine driver 408 and the internal operation engine driver 414. Thus, the operation test program can always operate the test execution browser by calling the common IF 406 regardless of the type of web browser (hereinafter also referred to as “test execution browser”) used in the operation test of the web page. In other words, an operation test using a plurality of types of web browsers can be automatically executed by the same operation test program.
 図21は、参考技術3の動作検証装置の機能構成を示すブロック図である。同図の機能ブロックのうち、参考技術1および2で示した動作検証装置100の機能ブロックに対応する機能ブロックには、同じ符号を付している。同じ符号を付した機能ブロックについては、その機能が参考技術1および2に既述した内容と異なる場合に記載しており、同様の機能については既述であるため適宜その記載を省略する。 FIG. 21 is a block diagram showing a functional configuration of the operation verification apparatus of Reference Technique 3. Among the functional blocks in the figure, the functional blocks corresponding to the functional blocks of the operation verification apparatus 100 shown in the reference techniques 1 and 2 are denoted by the same reference numerals. Functional blocks with the same reference numerals are described when the functions are different from those already described in Reference Techniques 1 and 2, and similar functions are already described, and thus description thereof is omitted as appropriate.
 動作検証装置100は、図13で示した機能ブロックに加え、ブラウザ処理部160をさらに備える。ブラウザ処理部160は、図20のブラウザ402に対応し、ウェブブラウザとして機能する。なお、単一の動作検証装置100が複数種のブラウザ処理部160を備えてもよいことはもちろんである。 The operation verification apparatus 100 further includes a browser processing unit 160 in addition to the functional blocks shown in FIG. The browser processing unit 160 corresponds to the browser 402 in FIG. 20 and functions as a web browser. Of course, a single operation verification apparatus 100 may include a plurality of types of browser processing units 160.
 プログラム実行部134は、動作テスト用プログラムの実行に際し、テスト実行ブラウザの種類、言い換えれば、ブラウザ処理部160の態様に応じて、外部からの操作方式または内部からの操作方式を選択してブラウザ処理部160を操作する。図22は、図21のプログラム実行部134の詳細を示すブロック図である。プログラム実行部134は、テスト主体選択部162と、外部操作実行部164と、プロキシ処理部166と、内部操作実行部168と、証左物設定部170とを含む。 The program execution unit 134 selects an external operation method or an internal operation method according to the type of the test execution browser, in other words, the mode of the browser processing unit 160 when executing the operation test program. The unit 160 is operated. FIG. 22 is a block diagram showing details of the program execution unit 134 of FIG. The program execution unit 134 includes a test subject selection unit 162, an external operation execution unit 164, a proxy processing unit 166, an internal operation execution unit 168, and a witness setting unit 170.
 テスト主体選択部162は、テスト実行ブラウザの種類を示す情報、言い換えれば、ブラウザ処理部160における操作IFの公開状況を示す情報を所定の設定ファイルや動作テスト用プログラムから取得し、その情報にしたがって動作テストの実行主体を決定する。例えば、各種ウェブブラウザとそれぞれの操作IFの公開状況とを対応づけたテーブルを参照して、テスト実行ブラウザにおける操作IFの公開状況を特定してもよい。 The test subject selection unit 162 acquires information indicating the type of the test execution browser, in other words, information indicating the disclosure status of the operation IF in the browser processing unit 160 from a predetermined setting file or an operation test program, and according to the information Determine the execution subject of the operation test. For example, with reference to a table in which various web browsers are associated with the disclosure status of each operation IF, the disclosure status of the operation IF in the test execution browser may be specified.
 テスト主体選択部162は、ブラウザ処理部160が操作IFを外部に公開するものである場合、動作テストの実行主体として後述する外部操作実行部164を選択する。その一方で、ブラウザ処理部160が操作IFを外部に非公開とするものである場合、動作テストの実行主体として後述するプロキシ処理部166および内部操作実行部168を選択する。 When the browser processing unit 160 exposes the operation IF to the outside, the test subject selection unit 162 selects an external operation execution unit 164 described later as an execution subject of the operation test. On the other hand, when the browser processing unit 160 makes the operation IF private to the outside, a proxy processing unit 166 and an internal operation execution unit 168 described later are selected as execution subjects of the operation test.
 外部操作実行部164は、図20の個別ブラウザ用エンジン404に対応し、動作テスト用プログラムの実行に際し、動作テスト用プログラムによる共通IF406の呼び出しを検出する。そして、ブラウザ処理部160が公開する操作IFを呼び出すことにより、ブラウザ処理部160を操作して、テスト対象ページに対する入力操作を実行する。 The external operation execution unit 164 corresponds to the individual browser engine 404 in FIG. 20 and detects the call to the common IF 406 by the operation test program when the operation test program is executed. Then, the browser processing unit 160 is operated by calling an operation IF disclosed by the browser processing unit 160 to execute an input operation on the test target page.
 プロキシ処理部166は、図20のプロキシサーバ410に対応し、ブラウザ処理部160から要求されたテスト対象ページをウェブサーバ400から代理取得し、テスト対象ページのHTMLコード内に制御コードを挿入する。そして改変後のテスト対象ページのHTMLコードをブラウザ処理部160へ送出して表示させる。またプロキシ処理部166は、後述する内部操作実行部168から制御コードの呼び出しを受け付け、テスト対象ページに追加した制御コードを呼び出す。プロキシ処理部166とテスト対象ページとの通信は、XMLHttpRequestによる非同期通信として実装されてもよい。 The proxy processing unit 166 corresponds to the proxy server 410 in FIG. 20, obtains the test target page requested from the browser processing unit 160 by proxy from the web server 400, and inserts a control code into the HTML code of the test target page. Then, the HTML code of the modified test target page is sent to the browser processing unit 160 for display. The proxy processing unit 166 receives a control code call from an internal operation execution unit 168, which will be described later, and calls the control code added to the test target page. Communication between the proxy processing unit 166 and the test target page may be implemented as asynchronous communication using XMLHttpRequest.
 内部操作実行部168は、図20の内部操作エンジン412に対応し、動作テスト用プログラムの実行に際し、動作テスト用プログラムによる共通IF406の呼び出しを検出する。そして、プロキシ処理部166を介して、テスト対象ページに追加された制御コードを呼び出すことにより、ブラウザ処理部160を操作して、テスト対象ページに対する入力操作を実行する。なお、プロキシ処理部166および内部操作実行部168は、テスト自動化ツールとして公開されているSelenium(http://seleniumhq.org/)のライブラリを用いて実装されてもよい。 The internal operation execution unit 168 corresponds to the internal operation engine 412 in FIG. 20, and detects the call to the common IF 406 by the operation test program when the operation test program is executed. Then, by calling the control code added to the test target page via the proxy processing unit 166, the browser processing unit 160 is operated to perform an input operation on the test target page. Note that the proxy processing unit 166 and the internal operation execution unit 168 may be implemented using a Selenium (http://seleniumhq.org/) library published as a test automation tool.
 証左物設定部170は、外部操作実行部164または内部操作実行部168からの要求に応じて、動作テストの結果を証明するデータ(以下、「証左物」とも呼ぶ)を設定し、その証左物を結果保持部152へ格納する。証左物として、ブラウザ処理部160によりディスプレイに表示されたテスト対象ページの画面スナップを取得し、また、ウェブサーバ400とのHTTP通信で送受されるデータを取得してもよい。なお、画面スナップの取得機能は、動作検証装置100のオペレーティングシステム(以下、「OS」とも呼ぶ。)により提供されてもよく、HTTP通信データの取得機能は、動作検証装置100にインストールされたパケットキャプチャソフトにより提供されてもよい。 In response to a request from the external operation execution unit 164 or the internal operation execution unit 168, the testimony object setting unit 170 sets data (hereinafter also referred to as “testimony object”) that proves the result of the operation test. Is stored in the result holding unit 152. As a proof, a screen snap of the test target page displayed on the display by the browser processing unit 160 may be acquired, and data transmitted and received by HTTP communication with the web server 400 may be acquired. Note that the screen snap acquisition function may be provided by the operating system (hereinafter also referred to as “OS”) of the operation verification apparatus 100, and the HTTP communication data acquisition function is a packet installed in the operation verification apparatus 100. It may be provided by capture software.
 以上の構成による動作を以下説明する。
 図23は、動作検証装置100の動作を示すフローチャートである。同図は、動作検証装置100において動作テスト用プログラムが実行される際の動作を示すものである。例えば、図12におけるS218の詳細を示すものであり、図14におけるS228の詳細を示すものでもある。
The operation of the above configuration will be described below.
FIG. 23 is a flowchart showing the operation of the operation verification apparatus 100. This figure shows an operation when an operation test program is executed in the operation verification apparatus 100. For example, it shows details of S218 in FIG. 12, and also shows details of S228 in FIG.
 テスト対象ページの動作テストの開始時、テスト主体選択部162は、ブラウザ処理部160における操作IFの公開状況に応じて、動作テストの実行エンジンを選択する(S300)。ブラウザ処理部160は、ウェブサーバ400に対してテスト対象ページの提供を要求する(S302)。ブラウザ処理部160において操作IFが非公開である場合(S304のN)、プロキシ処理部166は、テスト対象ページを代理取得して、そのHTMLコードへ制御コードを追加した後、テスト対象ページをブラウザ処理部160へ送出する(S306)。操作IFが公開されていれば(S304のY)、S306はスキップされる。ブラウザ処理部160は、テスト対象ページを所定のディスプレイに表示させる(S308)。証左物設定部170は、テスト対象ページの画面スナップを取得する等、動作テストの証左物を設定して結果保持部152へ格納する(S310)。 At the start of the operation test for the test target page, the test subject selection unit 162 selects an operation test execution engine according to the disclosure status of the operation IF in the browser processing unit 160 (S300). The browser processing unit 160 requests the web server 400 to provide a test target page (S302). When the operation IF is not disclosed in the browser processing unit 160 (N in S304), the proxy processing unit 166 obtains the test target page by proxy, adds the control code to the HTML code, and then transmits the test target page to the browser. The data is sent to the processing unit 160 (S306). If the operation IF is disclosed (Y in S304), S306 is skipped. The browser processing unit 160 displays the test target page on a predetermined display (S308). The proof object setting unit 170 sets a proof object of the operation test, such as obtaining a screen snap of the test target page, and stores it in the result holding unit 152 (S310).
 動作テストで実行すべき全操作が実行済であれば(S312のY)、本図のフローを終了する。未実行の操作が残っており(S312のN)、ブラウザ処理部160において操作IFが公開されている場合(S314のY)、外部操作実行部164は、動作テスト用プログラムによるテスト対象ページへの入力操作を、その操作IFをコールすることにより実行する(S316)。操作IFが非公開であれば(S314のN)、内部操作実行部168は、動作テスト用プログラムによるテスト対象ページへの入力操作を、そのテスト対象ページに追加された制御コードをコールすることにより実行する(S318)。テスト対象ページへの操作により新たなウェブページの提供が要求される場合、例えば、GETリクエストやPOSTリクエスト等による画面遷移が発生する場合(S320のY)、S304に戻る。新たなウェブページの提供が要求されなければ(S320のN)、S310に戻る。 If all operations to be executed in the operation test have been executed (Y in S312), the flow of this figure is terminated. When an unexecuted operation remains (N in S312) and the operation IF is disclosed in the browser processing unit 160 (Y in S314), the external operation execution unit 164 applies the test to the test target page by the operation test program. The input operation is executed by calling the operation IF (S316). If the operation IF is not disclosed (N in S314), the internal operation executing unit 168 calls an input operation to the test target page by the operation test program by calling a control code added to the test target page. Execute (S318). When provision of a new web page is requested by an operation on the test target page, for example, when a screen transition occurs due to a GET request, a POST request, or the like (Y in S320), the process returns to S304. If provision of a new web page is not requested (N in S320), the process returns to S310.
 参考技術3の動作検証装置100は、参考技術1および2に記載の動作検証装置100の構成を前提として、複数種のウェブブラウザにおけるウェブページの動作テストをサポートするための構成を追加したものである。したがって、参考技術3の動作検証装置100の構成は、参考技術1および2に記載の効果をそのまま奏するとともに、さらに以下の効果を奏するものである。 The operation verification apparatus 100 of the reference technique 3 is obtained by adding a configuration for supporting a web page operation test in a plurality of types of web browsers on the premise of the configuration of the operation verification apparatus 100 described in the reference techniques 1 and 2. is there. Therefore, the configuration of the operation verification apparatus 100 of the reference technique 3 has the effects described in the reference techniques 1 and 2 as they are, and further has the following effects.
 動作検証装置100では、ウェブブラウザの操作方式として、内部からの操作方式を実装することにより、ウェブブラウザにおける操作IFの公開有無によらず、複数種のウェブブラウザにおけるウェブページの動作テストを実行できる。また、動作検証装置100では、ウェブブラウザの操作方式として、外部からの操作方式も実装しており、ウェブブラウザが操作IFを公開する場合は、外部からの操作方式で動作テストを行うことにより、動作テストの信頼性を担保しやすくなる。 The operation verification apparatus 100 can execute an operation test of web pages in a plurality of types of web browsers regardless of whether or not the operation IF is disclosed in the web browser by implementing an internal operation method as the web browser operation method. . The operation verification apparatus 100 also implements an external operation method as a web browser operation method. When the web browser publishes an operation IF, an operation test is performed by an external operation method. It becomes easy to ensure the reliability of the operation test.
 以上、参考技術3の動作検証装置100を説明した。
 参考技術3では、プロキシサーバ410に対応するプロキシ処理部166は、動作検証装置100に内包されることとした。変形例では、プロキシ処理部166は、動作検証装置100とは異なる別の情報処理装置に備えられてもよい。
The operation verification device 100 of the reference technique 3 has been described above.
In the reference technique 3, the proxy processing unit 166 corresponding to the proxy server 410 is included in the operation verification apparatus 100. In the modification, the proxy processing unit 166 may be provided in another information processing apparatus different from the operation verification apparatus 100.
 一部既述したが、単一の動作検証装置100に複数種のウェブブラウザがインストールされてもよく、動作検証装置100は複数種のウェブブラウザに対応する複数のブラウザ処理部160を備えてもよい。この場合、プログラム実行部134は、それぞれのウェブブラウザにおいてテスト対象ページの動作テストを実行してもよい。すなわち、図23で示す処理をウェブブラウザごとに並行実行してもよい。複数種のウェブブラウザにおける動作テストを単一の動作検証装置100において実施できることで、効率的かつ低コストでの動作テストを実現できる。 As described above, a plurality of types of web browsers may be installed in the single operation verification device 100, and the operation verification device 100 may include a plurality of browser processing units 160 corresponding to the plurality of types of web browsers. Good. In this case, the program execution unit 134 may execute an operation test on the test target page in each web browser. That is, the processing shown in FIG. 23 may be executed in parallel for each web browser. Since an operation test in a plurality of types of web browsers can be performed in the single operation verification apparatus 100, an operation test can be realized efficiently and at low cost.
 参考技術3では、ウェブブラウザの種類ごとに内部からの操作方式と外部からの操作方式とのいずれかが選択された。変形例では、単一のウェブブラウザでの動作テストにおいて両方式が組み合わせられてもよい。例えば、テスト対象ページに対する操作のうち、公開された操作IFを使用して実行可能な操作は外部からの操作方式を適用し、すなわち外部操作実行部164が操作IFをコールする。その一方で、公開された操作IFでは実行不可な操作は内部からの操作方式を適用し、すなわち内部操作実行部168が制御コードをコールする。ウェブページ内に記述されたスクリプトコードには一般的に広範な操作が許容されるため、操作IFの仕様に依存して発生する外部からの操作方式での制約を、内部からの操作方式により補完することができる。 In Reference Technology 3, either the internal operation method or the external operation method was selected for each type of web browser. In a variant, both formulas may be combined in an operational test with a single web browser. For example, among operations on the test target page, an operation that can be executed using the published operation IF applies an external operation method, that is, the external operation execution unit 164 calls the operation IF. On the other hand, the operation method from the inside is applied to an operation that cannot be executed by the published operation IF, that is, the internal operation execution unit 168 calls a control code. Since script code written in a web page generally allows a wide range of operations, constraints from external operation methods that occur depending on the operation IF specifications are complemented by internal operation methods. can do.
 (参考技術4)
 参考技術4では、上記の参考技術3に関連し、様々な種類のウェブブラウザによるウェブページの動作テストをサポートする動作検証装置100を提案する。以下の説明における「Windows(ウィンドウズ)」、「Internet Explorer(インターネット・エクスプローラ)」、「Firefox(ファイアフォックス)」、「Mac(マック)」、「Mac OS(マック・オーエス)」、「Safari(サファリ)」、「JAVA」等の名称は、各社の商標または登録商標である。
(Reference technology 4)
The reference technique 4 is related to the reference technique 3 and proposes an operation verification apparatus 100 that supports a web page operation test by various types of web browsers. In the following description, “Windows”, “Internet Explorer”, “Firefox”, “Mac”, “Mac OS”, “Safari” (Safari) ) "," JAVA ", etc. are trademarks or registered trademarks of the respective companies.
 図24は、ウェブページの動作テストにおける機能間の呼び出し関係を模式的に示す。同図の動作検証エンジン500は、動作検証装置100におけるウェブページの動作テストのためのコア機能を示している。Windows環境540は、ウィンドウズOSにおける環境を示し、Mac環境560はMacOSにおける環境を示している。なお、OSにウィンドウズがインストールされた動作検証装置100は、動作検証エンジン500およびWindows環境540の組み合わせで構成されてもよい。また、OSにMacOSがインストールされた動作検証装置100は、動作検証エンジン500およびMac環境560の組み合わせで構成されてもよい。 FIG. 24 schematically shows a call relationship between functions in the web page operation test. The operation verification engine 500 in FIG. 5 shows a core function for an operation test of a web page in the operation verification apparatus 100. A Windows environment 540 indicates an environment in the Windows OS, and a Mac environment 560 indicates an environment in the MacOS. Note that the operation verification apparatus 100 in which Windows is installed in the OS may be configured by a combination of the operation verification engine 500 and the Windows environment 540. Further, the operation verification apparatus 100 in which MacOS is installed in the OS may be configured by a combination of the operation verification engine 500 and the Mac environment 560.
 図24のIE(インターネット・エクスプローラ)ブラウザ542は、外部のアプリケーションから呼び出し可能な操作IFであるCOM550を公開している。したがって、IEブラウザ542に表示されたウェブページの操作には、参考技術3における外部からの操作方式が採用される。その一方で、FF(ファイアフォックス)ブラウザ546およびSafariブラウザ562は、外部のアプリケーションから呼び出し可能な操作IFが公開されていない。したがって、これらのブラウザに表示されたウェブページに対する操作には、参考技術3における内部からの操作方式が採用される。 The IE (Internet Explorer) browser 542 in FIG. 24 discloses COM550, which is an operation IF that can be called from an external application. Therefore, the operation method from the outside in the reference technique 3 is adopted for the operation of the web page displayed on the IE browser 542. On the other hand, the FF (Firefox) browser 546 and the Safari browser 562 do not disclose an operation IF that can be called from an external application. Therefore, the operation method from the inside in the reference technique 3 is adopted for the operation on the web page displayed on these browsers.
 図24では、内部からの操作方式のためのセレニウムモジュール530を示している。セレニウムモジュール530は、図20の内部操作エンジン412およびプロキシサーバ410に対応し、テスト自動化ツールとして公開されているSelenium(http://seleniumhq.org/)のサーバプログラムである。セレニウムモジュール530は、ウェブページを表示するウェブブラウザのウィンドウ(以下、「ブラウザウィンドウ」とも呼ぶ。)に対して独自の識別子を割り当てる。そして、クライアントからその識別子が指定されることにより、操作対象とすべきブラウザウィンドウ(言い換えればウェブページ)を一意に識別する。 FIG. 24 shows a selenium module 530 for an operation method from the inside. The selenium module 530 is a server program of Selenium (http://seleniumhq.org/) that corresponds to the internal operation engine 412 and the proxy server 410 of FIG. 20 and is published as a test automation tool. The selenium module 530 assigns a unique identifier to a web browser window (hereinafter also referred to as “browser window”) that displays a web page. Then, by specifying the identifier from the client, the browser window (in other words, the web page) to be operated is uniquely identified.
 共通IF406は、図20の共通IF406に対応する。IEドライバ502は、図20の個別ブラウザ用エンジンドライバ408に対応する。IEドライバ502は、IEブラウザ542を使用したウェブページの動作テストにおいて、動作テスト用プログラム(以下、「テスト・プログラム」とも呼ぶ。)とIEブラウザ542のブリッジとして機能する。IEドライバ502は、IEウィンドウマネージャ504と、IEブラウザ操作部506と、IEダイアログ操作部508とを含む。 The common IF 406 corresponds to the common IF 406 in FIG. The IE driver 502 corresponds to the individual browser engine driver 408 of FIG. The IE driver 502 functions as a bridge between an operation test program (hereinafter also referred to as “test program”) and the IE browser 542 in a web page operation test using the IE browser 542. The IE driver 502 includes an IE window manager 504, an IE browser operation unit 506, and an IE dialog operation unit 508.
 IEウィンドウマネージャ504は、ウェブページを表示させたブラウザウィンドウに対して、ユーザがテスト・プログラムにおいて割り当てた識別子(以下、「ユーザ割当ID」とも呼ぶ。)と、OSが割り当てた識別子(以下、「OS割当ID」)との対応関係を管理する。 The IE window manager 504 has an identifier assigned by the user in the test program (hereinafter also referred to as “user assigned ID”) and an identifier assigned by the OS (hereinafter “ The correspondence relationship with the “OS allocation ID”) is managed.
 IEブラウザ操作部506は、ウェブページの操作を行うべきブラウザウィンドウ(以下、「操作対象ウィンドウ」とも呼ぶ。)について、テスト・プログラムで指定されたユーザ割当IDに対応するOS割当IDを特定する。それとともに、テスト・プログラムで指定された操作内容に対応するCOM550の関数を特定する。そして、OS割当IDを指定してCOM550の関数を呼び出すことにより、IEブラウザ542を外部から操作し、操作対象ウィンドウにおけるウェブページの操作をIEブラウザ542に実行させる。ウェブページの操作に応じて、IEブラウザ542は、ウィンドウズOSのリソースを直接使用してダイアログボックスを表示させる場合がある。このダイアログボックスを以下では「OSダイアログ」とも呼ぶ。 The IE browser operation unit 506 specifies an OS allocation ID corresponding to the user allocation ID specified by the test program for a browser window (hereinafter also referred to as “operation target window”) on which a web page should be operated. At the same time, the COM 550 function corresponding to the operation content specified by the test program is specified. Then, by calling the function of the COM 550 by specifying the OS allocation ID, the IE browser 542 is operated from the outside, and the IE browser 542 is caused to execute the web page operation in the operation target window. Depending on the operation of the web page, the IE browser 542 may display a dialog box by directly using the resources of the Windows OS. Hereinafter, this dialog box is also referred to as an “OS dialog”.
 IEダイアログ操作部508は、IEブラウザ542が表示させたOSダイアログ544を操作する。具体的には、OSダイアログ544が表示されたことを検出して、テスト・プログラムで指定されたダイアログ操作に対応するWin32API552の関数を呼び出すことにより、OSダイアログ544に対する操作を実行する。なお、OSダイアログ544に対する典型的な操作内容としては、文字列の入力や、表示項目の選択、ボタンの押下等が挙げられる。後述するFFダイアログ548やSafariダイアログ564に対する操作内容も同様である。 The IE dialog operation unit 508 operates the OS dialog 544 displayed by the IE browser 542. Specifically, when the OS dialog 544 is detected, an operation for the OS dialog 544 is executed by calling a Win32 API 552 function corresponding to the dialog operation specified by the test program. Note that typical operation contents for the OS dialog 544 include input of a character string, selection of a display item, and pressing of a button. The same applies to the operation contents for the FF dialog 548 and the Safari dialog 564 described later.
 FFドライバ510は、図20の内部操作エンジンドライバ414に対応し、FFブラウザ546を使用したウェブページの動作テストにおいて、テスト・プログラムとFFブラウザ546とのブリッジとして機能する。FFドライバ510は、FFウィンドウマネージャ512と、FFブラウザ操作部514と、FFダイアログ操作部516とを含む。 The FF driver 510 corresponds to the internal operation engine driver 414 in FIG. 20 and functions as a bridge between the test program and the FF browser 546 in the web page operation test using the FF browser 546. The FF driver 510 includes an FF window manager 512, an FF browser operation unit 514, and an FF dialog operation unit 516.
 FFウィンドウマネージャ512は、ウェブページを表示させたブラウザウィンドウに対して、セレニウムモジュール530が割り当てた識別子(以下、「セレニウム割当ID」とも呼ぶ。)と、当該ウィンドウに対するユーザ割当IDとOS割当IDとの対応関係を管理する。 The FF window manager 512 assigns an identifier (hereinafter also referred to as “selenium assignment ID”) assigned by the selenium module 530 to the browser window displaying the web page, and a user assignment ID and an OS assignment ID for the window. Manage the correspondence of.
 FFブラウザ操作部514は、操作対象ウィンドウについて、テスト・プログラムで指定されたユーザ割当IDに対応するセレニウム割当IDを特定する。それとともに、テスト・プログラムで指定された操作内容に対応するセレニウムモジュール530の関数を特定する。そして、セレニウム割当IDを指定してセレニウムモジュール530の関数を呼び出す。これに応じてセレニウムモジュール530は、セレニウム割当IDにもとづき操作対象ウィンドウを特定し、当該操作対象ウィンドウに表示されたウェブページの制御コードのうち、呼び出された関数に対応する制御コードを呼び出す。これにより、操作対象のウェブページにおいて特定のJAVAスクリプトが動作して、FFブラウザ546を内部から操作し、テスト・プログラムで指定されたウェブページの操作が実現される。 The FF browser operation unit 514 specifies a selenium assignment ID corresponding to the user assignment ID specified by the test program for the operation target window. At the same time, the function of the selenium module 530 corresponding to the operation content specified by the test program is specified. Then, the function of the selenium module 530 is called by specifying the selenium allocation ID. In response to this, the selenium module 530 specifies an operation target window based on the selenium assignment ID, and calls a control code corresponding to the called function among the control codes of the web page displayed in the operation target window. As a result, a specific JAVA script is operated on the operation target web page, and the FF browser 546 is operated from the inside, and the operation of the web page specified by the test program is realized.
 FFブラウザ操作部514は、セレニウムモジュール530を介さずに操作すべき所定の操作、典型的にはブラウザウィンドウのクローズ処理がテスト・プログラムで指定された場合は、セレニウムモジュール530の呼び出しを抑止する。その代わりに、IEダイアログ操作部508と同様に、Win32API552を呼び出すことにより当該操作を実行する。 The FF browser operation unit 514 suppresses calling of the selenium module 530 when a predetermined operation to be operated without going through the selenium module 530, typically, a browser window closing process is designated by the test program. Instead, similar to the IE dialog operation unit 508, the operation is executed by calling the Win32 API 552.
 ウェブページの操作に応じて、FFブラウザ546は、OSダイアログ544を表示させ、または、FFブラウザ546の独自のリソースを使用したダイアログボックス(以下、「FFダイアログ」とも呼ぶ。)を表示させる場合がある。典型的には、ファイルの保存等OSと連携する場合にはOSダイアログ544を表示させ、JAVAスクリプトによるアラートダイアログとしてはFFダイアログ548を表示させる。 Depending on the operation of the web page, the FF browser 546 may display the OS dialog 544 or a dialog box (hereinafter, also referred to as “FF dialog”) using a unique resource of the FF browser 546. is there. Typically, the OS dialog 544 is displayed in cooperation with the OS, such as saving a file, and the FF dialog 548 is displayed as an alert dialog by JAVA script.
 FFダイアログ操作部516は、OSダイアログ544およびFFダイアログ548を操作する。具体的には、OSダイアログ544の表示を検出すると、テスト・プログラムで指定されたダイアログ操作に対応するWin32API552の関数を呼び出すことにより、そのOSダイアログ544に対する操作を実行する。また、FFダイアログ548の表示を検出すると、FFブラウザ546に予め設定した拡張機能であるFFプラグイン554を呼び出してダイアログ操作を指示することにより、FFダイアログ548に対する操作を実行する。この詳細は図26に関連して後述する。 The FF dialog operation unit 516 operates the OS dialog 544 and the FF dialog 548. Specifically, when the display of the OS dialog 544 is detected, an operation for the OS dialog 544 is executed by calling a Win32 API 552 function corresponding to the dialog operation specified by the test program. When the display of the FF dialog 548 is detected, an operation for the FF dialog 548 is executed by calling the FF plug-in 554 which is an extension function set in advance in the FF browser 546 and instructing the dialog operation. Details of this will be described later with reference to FIG.
 Safariドライバ520は、図20の内部操作エンジンドライバ414に対応し、Safariブラウザ562を使用したウェブページの動作テストにおいて、テスト・プログラムとSafariブラウザ562とのブリッジとして機能する。Safariドライバ520は、Safariウィンドウマネージャ522と、Safariブラウザ操作部524と、Safariダイアログ操作部526とを含む。Safariウィンドウマネージャ522は、ウェブページが表示されたウィンドウに対するユーザ割当IDとOS割当IDとセレニウム割当IDとの対応関係を管理する。なお、MacOSでは、ブラウザウィンドウに対してIDを割り当てるのはSafariブラウザ562であるが、記載の簡明化のため、その名称はOS割当IDで統一する。 The Safari driver 520 corresponds to the internal operation engine driver 414 in FIG. 20 and functions as a bridge between the test program and the Safari browser 562 in the web page operation test using the Safari browser 562. The Safari driver 520 includes a Safari window manager 522, a Safari browser operation unit 524, and a Safari dialog operation unit 526. The Safari window manager 522 manages the correspondence between the user allocation ID, the OS allocation ID, and the selenium allocation ID for the window in which the web page is displayed. In MacOS, it is the Safari browser 562 that assigns an ID to a browser window, but for simplicity of description, the name is unified with the OS assignment ID.
 Safariブラウザ操作部524は、操作対象のウィンドウについて、テスト・プログラムで指定されたユーザ割当IDに対応するセレニウム割当IDを特定する。それとともに、テスト・プログラムで指定された操作内容に対応するセレニウムモジュール530の関数を特定する。そして、セレニウム割当IDを指定してセレニウムモジュール530の関数を呼び出す。これにより、FFブラウザ操作部514と同様に、操作対象のウェブページに対する操作を、セレニウムモジュール530を介して実行する。 The Safari browser operation unit 524 specifies a selenium allocation ID corresponding to the user allocation ID specified by the test program for the operation target window. At the same time, the function of the selenium module 530 corresponding to the operation content specified by the test program is specified. Then, the function of the selenium module 530 is called by specifying the selenium allocation ID. As a result, similar to the FF browser operation unit 514, an operation on the operation target web page is executed via the selenium module 530.
 Safariブラウザ操作部524は、セレニウムモジュール530を介さずに操作すべき所定の操作、典型的にはウィンドウのクローズ処理がテスト・プログラムで指定された場合は、セレニウムモジュール530の呼び出しを抑止する。その代わりに、MacOSが提供するAPIを呼び出すことにより当該操作を実行する。具体的には、障害者のためのアプリケーションによる利用のために供されたAPI群であるアクセシビリティAPI566を呼び出す。この詳細は図27に関連して後述する。 The Safari browser operation unit 524 suppresses calling of the selenium module 530 when a predetermined operation to be operated without going through the selenium module 530, typically, a window closing process is designated by the test program. Instead, the operation is executed by calling an API provided by MacOS. Specifically, an accessibility API 566 which is an API group provided for use by an application for a disabled person is called. Details of this will be described later with reference to FIG.
 ウェブページの操作に応じて、Safariブラウザ562はダイアログ(以下、「Safariダイアログ」とも呼ぶ。)を表示させる場合がある。Safariダイアログ操作部526は、Safariダイアログ564の表示を検出すると、テスト・プログラムで指定されたダイアログ操作に対応するMacOSのAPIを呼び出すことにより、Safariダイアログ564に対する操作を実行する。この際にも、上述のアクセシビリティAPI566を呼び出す。この詳細は図27に関連して後述する。 Depending on the operation of the web page, the Safari browser 562 may display a dialog (hereinafter also referred to as “Safari dialog”). When the Safari dialog operation unit 526 detects the display of the Safari dialog 564, the Safari dialog operation unit 526 calls the MacOS API corresponding to the dialog operation specified by the test program to execute the operation on the Safari dialog 564. Also at this time, the above-described accessibility API 566 is called. Details of this will be described later with reference to FIG.
 上記のFFウィンドウマネージャ512およびSafariウィンドウマネージャ522は、セレニウムウィンドウマネージャ532として総称される。図25は、セレニウムウィンドウマネージャ532に格納されるデータ例を示す。同図で示すように、セレニウムウィンドウマネージャ532は、ウェブページの動作テストにおいて各ブラウザウィンドウへ割り当てられたユーザ割当IDとセレニウム割当IDとOS割当IDとを対応づけて保持する。なお、IEブラウザ542の操作にはセレニウムモジュール530を介さない。そのため、IEウィンドウマネージャ504は、ユーザ割当IDとOS割当IDのみを対応づけて保持する。 The above FF window manager 512 and Safari window manager 522 are collectively referred to as a selenium window manager 532. FIG. 25 shows an example of data stored in the selenium window manager 532. As shown in the figure, the selenium window manager 532 holds the user assignment ID, selenium assignment ID, and OS assignment ID assigned to each browser window in the web page operation test in association with each other. The operation of the IE browser 542 is not performed through the selenium module 530. Therefore, the IE window manager 504 holds only the user allocation ID and the OS allocation ID in association with each other.
 また、上記のFFブラウザ操作部514およびSafariブラウザ操作部524は、セレニウムモジュール530を介してウェブブラウザを操作するセレニウムブラウザ操作部534として総称される。 The FF browser operation unit 514 and the Safari browser operation unit 524 are collectively referred to as a selenium browser operation unit 534 that operates a web browser via the selenium module 530.
 図26は、図24のFFダイアログ548に対する操作の仕組みを示す。セレニウムモジュール530において、FFブラウザ546の起動時に、FFブラウザ546によって読み込まれるFFプロファイル570に、JAVAスクリプトで実装されたウィンドウハンドラ572が予め設定される。FFブラウザ546は、新規のブラウザウィンドウを開く際に、FFプラグイン554の記憶領域にウィンドウハンドラ572を読み込むことにより、ウィンドウハンドラ572の機能が追加的に組み込まれる。 FIG. 26 shows an operation mechanism for the FF dialog 548 shown in FIG. In the selenium module 530, when the FF browser 546 is activated, a window handler 572 implemented by a JAVA script is preset in the FF profile 570 read by the FF browser 546. When the FF browser 546 opens a new browser window, the function of the window handler 572 is additionally incorporated by reading the window handler 572 into the storage area of the FF plug-in 554.
 ウィンドウハンドラ572は、FFプラグイン554として組み込まれた際、FFブラウザ546によるウィンドウ生成を検出するリスナオブジェクトを、XPConnect578およびXPCOM580を介してウィンドウウオッチャ(WindowWatcher)582へ登録する。ウィンドウハンドラ572は、登録したリスナオブジェクトを介して、FFダイアログ548が生成されたことを検出すると、FFダイアログ操作部516のソケットサーバ574とソケット通信を行い、FFダイアログ548が生成された旨を通知する。この通知情報には、FFダイアログ548における表示文字列や、ボタン等の表示オブジェクトを示す表示態様情報が含まれる。 When the window handler 572 is incorporated as the FF plug-in 554, the listener object for detecting window generation by the FF browser 546 is registered in the window watcher 582 via the XPConnect 578 and the XPCOM 580. When the window handler 572 detects that the FF dialog 548 has been generated via the registered listener object, the window handler 572 performs socket communication with the socket server 574 of the FF dialog operation unit 516 and notifies that the FF dialog 548 has been generated. To do. The notification information includes a display character string in the FF dialog 548 and display mode information indicating a display object such as a button.
 FFダイアログ操作部516は、FFダイアログ548が生成された旨が通知されると、テスト・プログラムで指定されたダイアログ操作に対応した関数であり、XPCOM580の関数の識別情報をウィンドウハンドラ572へ通知する。ウィンドウハンドラ572は、FFダイアログ操作部516により指定されたXPCOM580の関数を呼び出すことにより、FFダイアログ548を操作する。なお、FFダイアログ操作部516は、FFダイアログ548の表示態様に応じて、FFダイアログ548に対する操作内容を適宜調整してもよい。例えば、テスト・プログラムで指定されたボタン押下操作に対して、押下対象のボタンのIDを追加した上で、その操作指示をウィンドウハンドラ572へ通知してもよい。 When notified that the FF dialog 548 has been generated, the FF dialog operation unit 516 is a function corresponding to the dialog operation specified by the test program, and notifies the window handler 572 of the identification information of the XPCOM 580 function. . The window handler 572 operates the FF dialog 548 by calling the XPCOM 580 function designated by the FF dialog operation unit 516. Note that the FF dialog operation unit 516 may appropriately adjust the operation content for the FF dialog 548 in accordance with the display mode of the FF dialog 548. For example, for the button pressing operation specified by the test program, the ID of the button to be pressed may be added and the operation instruction may be notified to the window handler 572.
 既述したように、FFブラウザ546は、JAVAスクリプトのアラートダイアログとして、FFダイアログ548を表示させる。このFFダイアログ548は、FFブラウザ546独自のリソースを使用して表示されたものであるため、OS側からはダイアログの内容を判別できない。例えば、FFダイアログ548における表示文字列や、ボタン等の表示オブジェクトが判別できない。そのため、OSダイアログ544に対する操作のように、Win32API552を介しての操作ができない。例えば、FFダイアログ548に表示されたボタンに対する押下操作ができない。 As described above, the FF browser 546 displays the FF dialog 548 as an alert dialog of JAVA script. Since the FF dialog 548 is displayed using resources unique to the FF browser 546, the contents of the dialog cannot be determined from the OS side. For example, display character strings and display objects such as buttons in the FF dialog 548 cannot be determined. For this reason, an operation via the Win32 API 552 cannot be performed like an operation on the OS dialog 544. For example, the pressing operation on the button displayed in the FF dialog 548 cannot be performed.
 そこで参考技術4では、FFブラウザ546におけるFFダイアログ548表示の監視機能をプラグインとして追加することにより、FFダイアログ548の表示内容の取得を可能にし、また、FFダイアログ548に対する操作を実現する。 Therefore, in the reference technique 4, by adding the monitoring function of the FF dialog 548 display in the FF browser 546 as a plug-in, the display contents of the FF dialog 548 can be acquired, and an operation for the FF dialog 548 is realized.
 なお、FFブラウザ操作部514は、セレニウムモジュール530を介してFFブラウザ546を操作するため、ウェブページのプログラムコードにダイアログ操作のための関数(例えば、ウィンドウハンドラ572と同様のプログラムコード)を設定することもできる。しかし、FFダイアログ548がモーダルダイアログ(アプリケーションモーダルダイアログまたはシステムモーダルダイアログ)である場合、その表示元のウェブページのコードからはダイアログを操作できなくなる。その一方で、FFプラグイン554として組み込まれたウィンドウハンドラ572はモーダルダイアログへの操作を継続できる。この観点から、ウィンドウハンドラ572は、FFブラウザ546の拡張機能として設定されることが望ましいといえる。 Since the FF browser operation unit 514 operates the FF browser 546 via the selenium module 530, a function for dialog operation (for example, a program code similar to the window handler 572) is set in the program code of the web page. You can also However, when the FF dialog 548 is a modal dialog (an application modal dialog or a system modal dialog), the dialog cannot be operated from the code of the web page of the display source. On the other hand, the window handler 572 incorporated as the FF plug-in 554 can continue the operation to the modal dialog. From this viewpoint, it can be said that the window handler 572 is desirably set as an extended function of the FF browser 546.
 図27は、図24のSafariダイアログ564に対する操作の仕組みを示す。同図のAppleスクリプト584は、MacOSにおけるアプリケーション間通信技術であるAppleイベントを呼び出すスクリプトである。システムイベント586は、MacOSが提供するアプリケーションであり、Appleスクリプト584とアクセシビリティAPI566とを仲介して、Appleスクリプト584によるアクセシビリティAPI566の呼び出しを実現させる。 FIG. 27 shows an operation mechanism for the Safari dialog 564 shown in FIG. An Apple script 584 in the figure is a script for calling an Apple event, which is an inter-application communication technique in MacOS. A system event 586 is an application provided by MacOS, and implements the calling of the accessibility API 566 by the Apple script 584 through the Apple script 584 and the accessibility API 566.
 図27はMacOSを4階層で示しており、上位の階層は下位の階層よりも抽象度が高いAPI、言い換えれば、高レベルのAPIを提供する。同図で示すように、アクセシビリティAPI566は、最上位の階層「ユーザ・エクスペリエンス」に属する。既述したように、アクセシビリティAPI566は、障害者向けのユーザビリティを確保するためのUI自動化機能に関するAPI群である。自動化される操作内容には、ウィンドウを開く・ボタンを押下する等、各種のユーザインタフェース(画面)操作が含まれる。 FIG. 27 shows MacOS in four layers, and an upper layer provides an API having a higher abstraction level than a lower layer, in other words, provides a high level API. As shown in the figure, the accessibility API 566 belongs to the highest hierarchy “user experience”. As described above, the accessibility API 566 is an API group related to a UI automation function for ensuring usability for persons with disabilities. The operation contents to be automated include various user interface (screen) operations such as opening a window and pressing a button.
 Safariダイアログ操作部526は、テスト・プログラムで指定されたダイアログ操作に対応するアクセシビリティAPI566の関数を特定して、その関数を指定したAppleスクリプト584をシステムイベント586へ送信する。これにより、システムイベント586を介して、アクセシビリティAPI566として用意されたダイアログ操作の関数を呼び出す。 The Safari dialog operation unit 526 specifies the function of the accessibility API 566 corresponding to the dialog operation specified by the test program, and transmits the Apple script 584 specifying the function to the system event 586. Thus, a dialog operation function prepared as the accessibility API 566 is called through the system event 586.
 なお、Safariダイアログ564に対する操作は、MacOSにおけるより低レベルなAPI群を用いても実現可能である。例えば、Safariダイアログ操作部526がグラフィックス・アンド・メディア階層の「Quartz」APIを呼び出すことによっても、Safariダイアログ564に対する操作を実行できる。しかし、アクセシビリティAPI566は、ユーザによるUI操作に対応する高レベルな関数を提供するため、アクセシビリティAPI566を利用することで、Safariダイアログ操作部526のコード量を低減でき、また、その保守性を高めることができる。 Note that the operation on the Safari dialog 564 can be realized using a lower level API group in MacOS. For example, the Safari dialog operation unit 526 can execute the operation on the Safari dialog 564 by calling the “Quartz” API of the graphics and media hierarchy. However, since the accessibility API 566 provides a high-level function corresponding to the UI operation by the user, the accessibility API 566 can be used to reduce the code amount of the Safari dialog operation unit 526 and to improve the maintainability thereof. Can do.
 また図27では図示しないが、Safariブラウザ操作部524は、ウェブページに対する操作のうち、セレニウムモジュール530を介さず行うべき所定の操作については、Safariダイアログ操作部526と同様に、アクセシビリティAPI566を呼び出す。これにより、当該操作をMacOSやSafariブラウザ562に実行させる。 Although not shown in FIG. 27, the Safari browser operation unit 524 calls the accessibility API 566 for a predetermined operation to be performed without going through the selenium module 530 among the operations on the web page, as in the Safari dialog operation unit 526. This causes the MacOS or Safari browser 562 to execute the operation.
 図28は、参考技術4の動作検証装置100の機能構成を示すブロック図である。同図の機能ブロックのうち、参考技術1乃至3で示した動作検証装置100の機能ブロックと同一もしくは対応する機能ブロックには、同じ符号を付している。同じ符号を付した機能ブロックについては、その機能が参考技術1乃至3において既述した内容と異なる場合に記載しており、同様の機能については適宜その記載を省略する。 FIG. 28 is a block diagram illustrating a functional configuration of the operation verification apparatus 100 of the reference technique 4. Among the functional blocks in the figure, functional blocks that are the same as or correspond to the functional blocks of the operation verification apparatus 100 shown in the reference techniques 1 to 3 are denoted by the same reference numerals. Functional blocks with the same reference numerals are described when their functions are different from those already described in Reference Techniques 1 to 3, and descriptions of similar functions are omitted as appropriate.
 動作検証装置100は、ウィンドウID保持部154およびID取得部139をさらに備える。ウィンドウID保持部154およびID取得部139は、図24のIEウィンドウマネージャ504およびセレニウムウィンドウマネージャ532に対応する。すなわち、ウィンドウID保持部154は、ウェブページを表示するブラウザウィンドウに対して割り当てられたユーザ割当ID、セレニウム割当ID、OS割当IDとの対応関係を保持する。 The operation verification apparatus 100 further includes a window ID holding unit 154 and an ID acquisition unit 139. The window ID holding unit 154 and the ID acquisition unit 139 correspond to the IE window manager 504 and the selenium window manager 532 in FIG. That is, the window ID holding unit 154 holds the correspondence relationship between the user assignment ID, selenium assignment ID, and OS assignment ID assigned to the browser window that displays the web page.
 ID取得部139は、OS(ウィンドウズOSやMacOS)から、ブラウザウィンドウに対するOS割当IDを取得する。ウィンドウズOSの場合、ID取得部139は、Win32APIをコールすることにより得られるウィンドウハンドルを取得する。例えば、関数「FindWindow」が返すHWND値をlong型の整数として取得して、ウィンドウID保持部154のOS割当IDフィールドに格納する。関数「FindWindow」が返す複数種類のHWND値のうち、ウィンドウID保持部154に未格納のものについて、ウィンドウID保持部154の新たなレコードとして追加してもよい。 The ID acquisition unit 139 acquires an OS allocation ID for the browser window from the OS (Windows OS or MacOS). In the case of Windows OS, the ID acquisition unit 139 acquires a window handle obtained by calling Win32 API. For example, the HWND value returned by the function “FindWindow” is acquired as a long integer and stored in the OS allocation ID field of the window ID holding unit 154. Of the multiple types of HWND values returned by the function “FindWindow”, those not stored in the window ID holding unit 154 may be added as new records in the window ID holding unit 154.
 またMacOSの場合、ID取得部139は、AppleスクリプトによりSafariブラウザ562から得られるlong値を取得して、ウィンドウID保持部154のOS割当IDフィールドに格納する。例えば、以下のスクリプト、
 tell application ”Safari”
  return id of windows
 end tell
 を実行して、それぞれのブラウザウィンドウに対してSafariブラウザ562が割り当てたlong値の一覧を取得してもよい。
In the case of MacOS, the ID acquisition unit 139 acquires a long value obtained from the Safari browser 562 using the Apple script, and stores it in the OS allocation ID field of the window ID holding unit 154. For example, the following script:
tell application "Safari"
return id of windows
end tell
To obtain a list of long values assigned by the Safari browser 562 to each browser window.
 またID取得部139は、セレニウムモジュール530(Selenium-CORE)がブラウザウィンドウごとに割り当てたウィンドウ属性値である「seleniumWindowName」を取得する。そして、そのウィンドウ属性値をセレニウム割当IDとして、ウィンドウID保持部154のセレニウム割当IDフィールドに格納する。例えば、セレニウムモジュール530の関数「getAttributeFromAllWindows(”seleniumwindowName”)」を呼び出すことにより、セレニウムモジュール530で管理されるウィンドウ属性値の一覧を取得する。 Also, the ID acquisition unit 139 acquires “seleniumWindowName” which is a window attribute value assigned to each browser window by the selenium module 530 (Selenium-CORE). Then, the window attribute value is stored as a selenium allocation ID in the selenium allocation ID field of the window ID holding unit 154. For example, a list of window attribute values managed by the selenium module 530 is acquired by calling the function “getAttributeFromAllWindows (“ seleniumwindowName ”)” of the selenium module 530.
 またID取得部139は、後述するID割当部174およびID割当部180がブラウザウィンドウに対して割り当てたユーザ割当IDを取得して、ウィンドウID保持部154のユーザ割当IDフィールドに格納する。なおID取得部139は、ユーザ割当IDとセレニウム割当IDとOS割当IDとのそれぞれを、時間軸上での割当順(ID取得部139における取得順)にウィンドウID保持部154へ逐次格納してもよい。これにより、時間軸上で先に割り当てられたID(例えばセレニウム割当ID)は、同様に時間軸上で先に割り当てられた別のID(例えばユーザ割当ID)と対応づけられることになる。 Also, the ID acquisition unit 139 acquires a user allocation ID allocated to the browser window by an ID allocation unit 174 and an ID allocation unit 180, which will be described later, and stores them in the user allocation ID field of the window ID holding unit 154. The ID acquisition unit 139 sequentially stores the user allocation ID, the selenium allocation ID, and the OS allocation ID in the window ID holding unit 154 in the allocation order on the time axis (the acquisition order in the ID acquisition unit 139). Also good. As a result, the ID (for example, selenium allocation ID) previously allocated on the time axis is similarly associated with another ID (for example, user allocation ID) previously allocated on the time axis.
 図29は、図28のプログラム実行部134の詳細を示すブロック図である。プログラム実行部134は、テスト環境判定部171と、外部操作実行部164と、プロキシ処理部166と、内部操作実行部168と、証左物設定部170とを備える。同図の機能ブロックのうち、参考技術3で示したプログラム実行部134の機能ブロックと同一もしくは対応する機能ブロックには、同じ符号を付している。同じ符号を付した機能ブロックについては、その機能が参考技術3において既述した内容と異なる場合に記載しており、同様の機能については適宜その記載を省略する。 FIG. 29 is a block diagram showing details of the program execution unit 134 of FIG. The program execution unit 134 includes a test environment determination unit 171, an external operation execution unit 164, a proxy processing unit 166, an internal operation execution unit 168, and a witness setting unit 170. Of the functional blocks in the figure, functional blocks that are the same as or correspond to the functional blocks of the program execution unit 134 shown in the reference technique 3 are denoted by the same reference numerals. Functional blocks with the same reference numerals are described when their functions are different from those already described in Reference Technology 3, and descriptions of similar functions are omitted as appropriate.
 テスト環境判定部171は、参考技術3(図21)におけるテスト主体選択部162に対応し、ウェブページの動作テストのための環境、具体的にはOSとウェブブラウザの組み合わせにもとづいて、ウェブページの動作テストの方式を決定する。例えば、ウェブブラウザの操作方式およびダイアログの操作方式を決定する。 The test environment determination unit 171 corresponds to the test subject selection unit 162 in the reference technique 3 (FIG. 21), and is based on the environment for the operation test of the web page, specifically based on the combination of the OS and the web browser. Determine the operation test method. For example, a web browser operation method and a dialog operation method are determined.
 外部操作実行部164は、図24におけるIEブラウザ操作部506に対応する。外部操作実行部164は、ID割当部174とダイアログ操作部176を含む。ID割当部174は、テスト・プログラムの実行に際して、テスト・プログラムにおいて新規のブラウザウィンドウを生成させる関数(コマンド)が指定されたことを検出すると、そのコマンドの引数として指定されたIDをユーザ割当IDとして決定する。IDが未指定の場合は、外部操作実行部164および内部操作実行部168において一意となる新たなIDを、ユーザ割当IDとして採番してもよい。 The external operation execution unit 164 corresponds to the IE browser operation unit 506 in FIG. The external operation execution unit 164 includes an ID assignment unit 174 and a dialog operation unit 176. When the ID allocation unit 174 detects that a function (command) for generating a new browser window is specified in the test program during execution of the test program, the ID allocation unit 174 uses the ID specified as an argument of the command as the user allocation ID. Determine as. When the ID is not specified, a new ID that is unique in the external operation execution unit 164 and the internal operation execution unit 168 may be assigned as a user allocation ID.
 ダイアログ操作部176は、図24のIEダイアログ操作部508に対応し、IEブラウザ542によるダイアログの設定を定期的に監視する。例えば、Win32API552の上述したFindWindow関数を定期的にコールして、ダイアログウィンドウが生成されたことを検出してもよい。ダイアログ操作部176は、IEブラウザ542において表示されたOSダイアログ544を、Win32API552を介して操作する。 The dialog operation unit 176 corresponds to the IE dialog operation unit 508 in FIG. 24 and periodically monitors the dialog settings by the IE browser 542. For example, the above-described FindWindow function of Win32 API 552 may be periodically called to detect that a dialog window has been generated. The dialog operation unit 176 operates the OS dialog 544 displayed on the IE browser 542 via the Win32 API 552.
 なお、外部操作実行部164は、テスト・プログラムで指定されうる、ウェブページ操作用の関数と、ウェブブラウザの操作IFとして規定された関数、参考技術4ではCOM550やWin32API552にて規定された関数との対応関係を格納したテーブルを保持する。外部操作実行部164は、当該テーブルを参照して、テスト・プログラムで指定された関数に対応したCOM550やWin32API552の関数をコールする。 It should be noted that the external operation execution unit 164 includes a web page operation function that can be specified by the test program, a function defined as the web browser operation IF, a function defined in COM550 or Win32 API 552 in Reference Technique 4. Holds a table that stores the correspondence relationship. The external operation execution unit 164 refers to the table and calls a COM550 or Win32 API 552 function corresponding to the function specified by the test program.
 プロキシ処理部166は、図24におけるセレニウムモジュール530に対応する。参考技術3において既述したように、プロキシ処理部166は、操作対象のウェブページを代理取得する。そして、そのウェブページのプログラムコードに、JAVAスクリプトで実装されたプログラムコードであり、ウェブページに対する各種の操作を実行するための予め用意された関数群(参考技術3における「制御コード」)を追加する。そして、制御コード追加後のウェブページをブラウザ処理部160に表示させる。また、内部操作実行部168からの操作指示に応じて、その操作指示に対応する制御コードの関数を呼び出すことにより、ウェブページの操作を仲介して実行する。 The proxy processing unit 166 corresponds to the selenium module 530 in FIG. As already described in the reference technique 3, the proxy processing unit 166 acquires the operation target web page by proxy. The program code of the web page is a program code implemented by a JAVA script, and a function group ("control code" in Reference Technology 3) prepared in advance for executing various operations on the web page is added. To do. Then, the web page after the addition of the control code is displayed on the browser processing unit 160. Further, in response to an operation instruction from the internal operation execution unit 168, a function of a control code corresponding to the operation instruction is called to execute the web page operation in an intermediary manner.
 プロキシ処理部166は、ID発行部178とアドオン設定部179を含む。ID発行部178は、制御コード追加後のウェブページをブラウザ処理部160に表示させる際に、そのブラウザウィンドウをプロキシ処理部166において一意に識別するための識別情報を発行する。この識別情報は、ID取得部139によってセレニウム割当IDとして取得される。アドオン設定部179は、制御コード追加後のウェブページをブラウザ処理部160に表示させるためにFFブラウザ546を起動すべき際、図26のウィンドウハンドラ572を含むFFプロファイル570を指定してFFブラウザ546を起動する。これにより、FFブラウザ546の拡張機能としてウィンドウハンドラ572を組み込む。 The proxy processing unit 166 includes an ID issuing unit 178 and an add-on setting unit 179. The ID issuing unit 178 issues identification information for uniquely identifying the browser window in the proxy processing unit 166 when the browser processing unit 160 displays the web page after the addition of the control code. This identification information is acquired as a selenium allocation ID by the ID acquisition unit 139. The add-on setting unit 179 specifies the FF profile 570 including the window handler 572 in FIG. 26 when the FF browser 546 is to be activated in order to display the web page after the addition of the control code on the browser processing unit 160. Start up. As a result, the window handler 572 is incorporated as an extended function of the FF browser 546.
 内部操作実行部168は、図24におけるセレニウムブラウザ操作部534に対応する。内部操作実行部168は、ID割当部180とダイアログ操作部182を含む。ID割当部180は、外部操作実行部164のID割当部174と同様の構成である。なお、内部操作実行部168は、テスト・プログラムで指定されうるウェブページ操作用の関数と、セレニウムモジュール530において規定されたウェブページ操作用の関数との対応関係を格納したテーブルを保持する。外部操作実行部164は、当該テーブルを参照して、セレニウムモジュール530への操作指示として、テスト・プログラムで指定された関数に対応したセレニウムモジュール530の関数をコールする。 The internal operation execution unit 168 corresponds to the selenium browser operation unit 534 in FIG. The internal operation execution unit 168 includes an ID assignment unit 180 and a dialog operation unit 182. The ID allocation unit 180 has the same configuration as the ID allocation unit 174 of the external operation execution unit 164. The internal operation execution unit 168 holds a table that stores the correspondence between web page operation functions that can be specified by the test program and web page operation functions defined in the selenium module 530. The external operation execution unit 164 refers to the table and calls a function of the selenium module 530 corresponding to the function specified by the test program as an operation instruction to the selenium module 530.
 ダイアログ操作部182は、図24のFFダイアログ操作部516およびSafariダイアログ操作部526に対応する。テスト環境がウィンドウズOSおよびFFブラウザ546の場合、ダイアログ操作部182は、FFブラウザ546によるダイアログの設定を定期的に監視する。例えば、Win32API552の上述したFindWindow関数を定期的にコールして、ダイアログウィンドウが生成されたことを検出してもよい。ダイアログ操作部182は、FFブラウザ546において表示されたOSダイアログ544を、Win32API552を介して操作する。また、ダイアログ操作部182は、FFブラウザ546により表示されたFFダイアログ548を、FFプラグイン554を介して検出し、FFプラグイン554を介して操作する。 The dialog operation unit 182 corresponds to the FF dialog operation unit 516 and the Safari dialog operation unit 526 in FIG. When the test environment is the Windows OS and the FF browser 546, the dialog operation unit 182 periodically monitors the dialog settings by the FF browser 546. For example, the above-described FindWindow function of Win32 API 552 may be periodically called to detect that a dialog window has been generated. The dialog operation unit 182 operates the OS dialog 544 displayed on the FF browser 546 via the Win32 API 552. Further, the dialog operation unit 182 detects the FF dialog 548 displayed by the FF browser 546 via the FF plug-in 554 and operates it via the FF plug-in 554.
 またテスト環境がMacOSおよびSafariブラウザ562である場合、ダイアログ操作部182は、Safariブラウザ562によるダイアログの設定を定期的に監視する。例えば、上述のAppleスクリプトを定期的に実行して、Safariブラウザ562におけるダイアログウィンドウの設定を検出してもよい。ダイアログ操作部182は、Safariブラウザ562において表示されたSafariダイアログ564を、アクセシビリティAPI566を介して操作する。 Further, when the test environment is MacOS and the Safari browser 562, the dialog operation unit 182 periodically monitors the dialog settings by the Safari browser 562. For example, the above-mentioned Apple script may be periodically executed to detect a dialog window setting in the Safari browser 562. The dialog operation unit 182 operates the Safari dialog 564 displayed on the Safari browser 562 via the accessibility API 566.
 以上の構成による動作を以下説明する。
 図30は、動作検証装置100の動作を示すフローチャートである。同図は、動作検証装置100において動作テスト用プログラムが実行される際の動作を示すものである。例えば、図12におけるS218の詳細を示すものであり、図14におけるS228の詳細を示すものでもある。すなわち、図14で示したように、動作検証装置100は、ウェブページに対して事前にユーザが実施した一連の入力操作を再現することで、ウェブページの動作確認を支援する。なお、図30は、図23のフローチャートをより詳細化したものとも言える。
The operation of the above configuration will be described below.
FIG. 30 is a flowchart showing the operation of the operation verification apparatus 100. This figure shows an operation when an operation test program is executed in the operation verification apparatus 100. For example, it shows details of S218 in FIG. 12, and also shows details of S228 in FIG. That is, as illustrated in FIG. 14, the operation verification apparatus 100 supports the operation check of the web page by reproducing a series of input operations performed by the user in advance on the web page. 30 can be said to be a more detailed version of the flowchart of FIG.
 ウェブページの動作テストの開始指示をユーザから受け付けると、テスト環境判定部171は、動作テストの実行環境となるOSおよびウェブブラウザの種別を判定する。そして、その判定結果に応じて、ウェブページの操作主体として外部操作実行部164または内部操作実行部168を選択する(S400)。プログラム実行部134、言い換えれば操作主体として選択された外部操作実行部164または内部操作実行部168は、後述するテスト・プログラム読込処理を実行する(S402)。テスト・プログラムに記述されたウェブページに対する全操作(動作テストの全項目)が完了した場合(S404のY)、本図のフローを終了する。 When receiving an instruction to start a web page operation test from the user, the test environment determination unit 171 determines the type of the OS and web browser that are the execution environment of the operation test. Then, according to the determination result, the external operation execution unit 164 or the internal operation execution unit 168 is selected as the operation subject of the web page (S400). The program execution unit 134, in other words, the external operation execution unit 164 or the internal operation execution unit 168 selected as the operation subject executes a test program reading process to be described later (S402). When all the operations (all items of the operation test) for the web page described in the test program are completed (Y in S404), the flow of FIG.
 テスト・プログラムの一例として、ここでは、以下の操作1~操作10の操作コマンドが記述されたテスト・プログラムを想定する。
 (操作1)ブラウザウィンドウA(ID=1を指定)をオープン
 (操作2)ブラウザウィンドウB(ID=2を指定)をオープン
 (操作3)ブラウザウィンドウAを選択(ID=1を指定)
 (操作4)ブラウザウィンドウAに表示されたウェブページに対する操作
 (操作5)ブラウザウィンドウAに表示されたウェブページに対する操作
 (操作6)操作5により表示されたダイアログに対する操作
 (操作7)ブラウザウィンドウBを選択(ID=2を指定)
 (操作8)ブラウザウィンドウBに表示されたウェブページに対する操作
 (操作9)ブラウザウィンドウAをクローズ(ID=1を指定)
 (操作10)ブラウザウィンドウBをクローズ(ID=2を指定)
Here, as an example of the test program, a test program in which operation commands of the following operations 1 to 10 are described is assumed.
(Operation 1) Open browser window A (ID = 1) (Operation 2) Open browser window B (ID = 2) (Operation 3) Select browser window A (ID = 1)
(Operation 4) Operation on Web Page Displayed in Browser Window A (Operation 5) Operation on Web Page Displayed in Browser Window A (Operation 6) Operation on Dialog Displayed in Operation 5 (Operation 7) Browser Window B Select (Specify ID = 2)
(Operation 8) Operation on the web page displayed in the browser window B (Operation 9) Close the browser window A (specify ID = 1)
(Operation 10) Close browser window B (specify ID = 2)
 このテスト・プログラムは、図14で示した一連の処理で設定された動作テスト用プログラムである。この場合の操作内容ファイルには、操作1および操作2を指定する関数として「waitForNewWindow」が指定され、その引数としてウェブページのURLとユーザ指定のIDが設定される。また操作3および操作7を指定する関数として「selectWindow」が指定され、その引数としてユーザ指定のIDが設定される。また操作4、操作5、および操作8を指定する関数として、WebEditSetやWebElementClick等、各種の操作用の関数が指定される。また操作6を指定する関数として、ダイアログ操作用の所定の関数が指定される。 This test program is an operation test program set by the series of processes shown in FIG. In the operation content file in this case, “waitForNewWindow” is specified as a function for specifying operation 1 and operation 2, and the URL of the web page and the user-specified ID are set as arguments. Further, “selectWindow” is designated as a function for designating operations 3 and 7, and an ID designated by the user is set as an argument thereof. In addition, as functions for specifying the operation 4, the operation 5, and the operation 8, functions for various operations such as WebEditSet and WebElementClick are specified. Further, a predetermined function for dialog operation is designated as a function for designating the operation 6.
 テスト・プログラムの実行においては、テスト・プログラムに記述された操作コマンドが順次実行される。テスト・プログラムにおいて未実行の操作コマンドが残存しており(S404のN)、テスト・プログラムにおいて新たなウェブページの表示が要求された場合、すなわち上記の操作1および操作2を実行すべき場合(S406のY)、操作主体として選択された外部操作実行部164または内部操作実行部168のID割当部は、その操作コマンドで指定されたIDをユーザ割当IDとして割り当てる。ID取得部139は、そのユーザ割当IDを取得し、ウィンドウID保持部154へ格納する(S408)。 In the execution of the test program, the operation commands described in the test program are executed sequentially. When an unexecuted operation command remains in the test program (N in S404), and when the display of a new web page is requested in the test program, that is, when the above operation 1 and operation 2 are to be executed ( The external operation execution unit 164 or the ID assignment unit of the internal operation execution unit 168 selected as the operation subject assigns the ID specified by the operation command as the user assignment ID. The ID acquisition unit 139 acquires the user assignment ID and stores it in the window ID holding unit 154 (S408).
 ウェブブラウザの操作IFが公開されている場合(S410のY)、外部操作実行部164は、その操作IFを呼び出すことにより、操作対象のウェブページのデータをウェブブラウザに取得させる(S412)。そして、操作対象のウェブページを表示したブラウザウィンドウをディスプレイ上に表示させる(S420)。図24においてS410のYとなるのは、ウェブブラウザがIEブラウザ542の場合であり、このときの操作IFにはCOM550が対応する。 When the operation IF of the web browser is open (Y in S410), the external operation execution unit 164 causes the web browser to acquire the data of the operation target web page by calling the operation IF (S412). Then, the browser window displaying the operation target web page is displayed on the display (S420). In FIG. 24, Y in S410 is when the web browser is the IE browser 542, and the COM 550 corresponds to the operation IF at this time.
 ウェブブラウザの操作IFが非公開の場合(S410のN)、内部操作実行部168は、プロキシ処理部166に対して、操作対象のウェブページの取得を指示する。プロキシ処理部166のID発行部178は、セレニウム割当IDを発行する(S414)。プロキシ処理部166は、操作対象のウェブページのデータを取得し(S416)、当該ウェブページのデータに制御コードを追加する(S418)。プロキシ処理部166は、後述するウェブブラウザ起動処理を実行後(S419)、制御コードを追加したウェブページのデータをウェブブラウザに渡し、操作対象のウェブページを表示するブラウザウィンドウをディスプレイ上に表示させる(S420)。図24においてS410のNとなるのは、ウェブブラウザがFFブラウザ546またはSafariブラウザ562の場合である。 When the operation IF of the web browser is not disclosed (N in S410), the internal operation execution unit 168 instructs the proxy processing unit 166 to acquire the operation target web page. The ID issuing unit 178 of the proxy processing unit 166 issues a selenium allocation ID (S414). The proxy processing unit 166 acquires data of the operation target web page (S416), and adds a control code to the data of the web page (S418). The proxy processing unit 166, after executing a web browser activation process described later (S419), passes the web page data to which the control code is added to the web browser, and displays a browser window for displaying the operation target web page on the display. (S420). In FIG. 24, N in S410 is when the web browser is the FF browser 546 or the Safari browser 562.
 ID取得部139は、OSが提供するAPIをコールし、ブラウザウィンドウに対してOSが割り当てたOS割当IDを取得してウィンドウID保持部154へ格納する。また、ウェブブラウザの操作IFが非公開の場合は、セレニウムモジュール530が提供するAPIをコールし、ブラウザウィンドウに対してセレニウムモジュール530が割り当てたセレニウム割当IDを取得してウィンドウID保持部154へ格納する。これにより、ブラウザウィンドウAとブラウザウィンドウBのそれぞれに割り当てられたユーザ割当IDとOS割当IDとセレニウム割当IDとを対応づける(S422)。 The ID acquisition unit 139 calls an API provided by the OS, acquires the OS assignment ID assigned by the OS to the browser window, and stores the acquired OS assignment ID in the window ID holding unit 154. When the web browser operation IF is not disclosed, the API provided by the selenium module 530 is called to acquire the selenium assignment ID assigned by the selenium module 530 to the browser window and store it in the window ID holding unit 154. To do. As a result, the user allocation ID, the OS allocation ID, and the selenium allocation ID allocated to the browser window A and the browser window B are associated with each other (S422).
 テスト・プログラムにおいて新たなウェブページの表示が指定されなければ(S406のN)、S408~S422はスキップされる。テスト・プログラムにおいてウェブページの操作が指定された場合、すなわち上記の操作3~操作10を実行すべき場合(S424のY)、プログラム実行部134は後述するウェブページ操作処理を実行する(S426)。テスト・プログラムにおいてウェブページの操作が指定されなければ(S424のN)、S426はスキップされる。ウェブページに対する操作の後、証左物設定部170は、画面スナップショット等の証左物のデータを結果保持部152へ格納し(S428)、S404へ戻る。 If the display of a new web page is not specified in the test program (N in S406), S408 to S422 are skipped. When the operation of the web page is designated in the test program, that is, when the above operations 3 to 10 are to be executed (Y in S424), the program execution unit 134 executes a web page operation process described later (S426). . If no web page operation is specified in the test program (N in S424), S426 is skipped. After the operation on the web page, the proof object setting unit 170 stores the proof object data such as the screen snapshot in the result holding unit 152 (S428), and the process returns to S404.
 なお、証左物設定部170は、証左物としての、ブラウザウィンドウに関する画面スナップ等の証左物を、そのブラウザウィンドウに対して割り当てられたユーザ割当IDと対応づけて記録することが望ましい。これにより、ウェブページの動作テストの結果を確認するユーザに、自身が指定したIDと対応づけられた証左物を確認させることができ、証左物の確認におけるユーザの利便性を高めることができる。 Note that it is preferable that the proof object setting unit 170 records the proof object such as a screen snap related to the browser window as the proof object in association with the user assignment ID assigned to the browser window. Thereby, the user who confirms the result of the operation test on the web page can confirm the proof corresponding to the ID designated by the user, and the convenience of the user in the confirmation of the proof can be improved.
 図31は、図30のS402のテストプログラム読込処理を詳細に示すフローチャートである。プログラム実行部134は、動作テスト用プログラムを読み込む(S430)。そのプログラムにおいてダイアログ操作を示す所定関数が指定されている場合(S432のY)、プログラム実行部134は、そのダイアログ操作の内容(上記の操作6)を所定のダイアログ操作保持テーブルに格納する(S434)。ダイアログ操作の指定がなければ(S432のN)、S434はスキップされる。 FIG. 31 is a flowchart showing in detail the test program reading process in S402 of FIG. The program execution unit 134 reads an operation test program (S430). When a predetermined function indicating a dialog operation is specified in the program (Y in S432), the program execution unit 134 stores the content of the dialog operation (the above operation 6) in a predetermined dialog operation holding table (S434). ). If no dialog operation is specified (N in S432), S434 is skipped.
 図32は、図30のS419のウェブブラウザ起動処理を詳細に示すフローチャートである。プロキシ処理部166は、動作テストのためのウェブブラウザを起動する(S440)。動作テスト用のウェブブラウザがFFブラウザ546である場合(S442のY)、アドオン設定部179は、FFブラウザ546の拡張機能としてウィンドウハンドラ572をアドオンする(S444)。ウィンドウハンドラ572は、FFダイアログ548を検出するためのリスナをFFブラウザ546に登録する(S446)。動作テスト用のウェブブラウザがFFブラウザ546でなければ(S442のN)、S444およびS446はスキップされる。 FIG. 32 is a flowchart showing in detail the web browser activation process in S419 of FIG. The proxy processing unit 166 activates a web browser for the operation test (S440). When the web browser for the operation test is the FF browser 546 (Y in S442), the add-on setting unit 179 adds on the window handler 572 as an extended function of the FF browser 546 (S444). The window handler 572 registers a listener for detecting the FF dialog 548 in the FF browser 546 (S446). If the web browser for the operation test is not the FF browser 546 (N in S442), S444 and S446 are skipped.
 図33は、図30のS426のウェブページ操作処理を詳細に示すフローチャートである。テスト環境判定部171における判定結果においてOSがMacOSである場合(S450のY)、内部操作実行部168が後述のMac用操作処理を実行する(S452)。OSがMacOSでなければ(S450のN)、S452はスキップされる。OSがWindowsであり(S454のY)、ウェブブラウザがIEブラウザ542である場合(S456のY)、外部操作実行部164が後述のIE用操作処理を実行する(S458)。ウェブブラウザがIEブラウザ542でなく(S456のN)、FFブラウザ546である場合(S460のY)、内部操作実行部168が後述のFF用操作処理を実行する(S462)。ウェブブラウザがFFブラウザ546でもなければ(S460のN)、S462はスキップされ、OSがWindowsでもなければ(S454のN)、S456以降はスキップされる。 FIG. 33 is a flowchart showing in detail the web page operation process of S426 of FIG. When the OS is MacOS in the determination result in the test environment determination unit 171 (Y in S450), the internal operation execution unit 168 executes a Mac operation process described later (S452). If the OS is not MacOS (N in S450), S452 is skipped. When the OS is Windows (Y in S454) and the web browser is the IE browser 542 (Y in S456), the external operation execution unit 164 executes an IE operation process described later (S458). When the web browser is not the IE browser 542 (N in S456) and is the FF browser 546 (Y in S460), the internal operation execution unit 168 executes an FF operation process described later (S462). If the web browser is not the FF browser 546 (N in S460), S462 is skipped, and if the OS is not Windows (N in S454), S456 and subsequent steps are skipped.
 図34は、図33のS452のMac用操作処理を詳細に示すフローチャートである。テスト・プログラムにおいてウィンドウ選択操作(上記の操作3および7)が指定された場合(S470のY)、内部操作実行部168のID割当部180は、引数で受け付けたIDをユーザ割当IDとして特定する(S472)。ウィンドウ選択操作でなく(S470のN)、Safariブラウザ562を介して実行すべき所定の操作(上記の操作4、5および8、以下「ブラウザ操作」とも呼ぶ)が指定された場合(S474のY)、内部操作実行部168は、ユーザ割当IDと対応づけられたセレニウム割当IDを特定する(S476)。そして、そのセレニウム割当IDを指定した操作指示をセレニウムモジュール530へ通知することにより、ウェブページに追加された制御コードのうち操作指示に対応する関数をセレニウムモジュール530に呼び出させる(S478)。 FIG. 34 is a flowchart showing in detail the Mac operation process in S452 of FIG. When a window selection operation (the above operations 3 and 7) is specified in the test program (Y in S470), the ID allocation unit 180 of the internal operation execution unit 168 identifies the ID received as an argument as the user allocation ID. (S472). When a predetermined operation to be executed via the Safari browser 562 (the above-described operations 4, 5, and 8, hereinafter also referred to as “browser operation”) is designated instead of the window selection operation (N in S470) (Y in S474) ), The internal operation execution unit 168 specifies the selenium allocation ID associated with the user allocation ID (S476). Then, by notifying the selenium module 530 of an operation instruction designating the selenium allocation ID, the function corresponding to the operation instruction among the control codes added to the web page is called by the selenium module 530 (S478).
 ブラウザ操作でなく(S474のN)、MacOSを介して実行すべき所定の操作(上記の操作9および10、以下「OS操作」とも呼ぶ)が指定された場合(S480のY)、内部操作実行部168は、ユーザ割当IDと対応づけられたOS割当IDを特定する(S482)。そして、そのOS割当IDを指定して、操作内容に対応するアクセシビリティAPI566の関数を呼び出すことにより、ブラウザウィンドウに対するOS操作をMacOSに実行させる(S484)。OS操作でもなければ(S480のN)、S482およびS484はスキップされる。 When not a browser operation (N in S474) but a predetermined operation to be executed via MacOS (the above operations 9 and 10, hereinafter also referred to as “OS operation”) is designated (Y in S480), an internal operation is executed. The unit 168 identifies the OS assignment ID associated with the user assignment ID (S482). Then, by designating the OS allocation ID and calling a function of the accessibility API 566 corresponding to the operation content, Mac OS is caused to execute the OS operation on the browser window (S484). If it is not an OS operation (N in S480), S482 and S484 are skipped.
 内部操作実行部168のダイアログ操作部182は、Safariダイアログ564の表示を検出すると(S486のY)、そのダイアログに対する操作内容(上記の操作6)をダイアログ操作保持テーブルから取得する(S488)。そして、その操作内容に対応するアクセシビリティAPI566の関数をコールすることにより、Safariダイアログ564に対する操作を実行する(S490)。Safariダイアログ564の表示が未検出であれば(S486のN)、S488およびS490はスキップされる。 When the dialog operation unit 182 of the internal operation execution unit 168 detects the display of the Safari dialog 564 (Y in S486), the operation content for the dialog (the above operation 6) is acquired from the dialog operation holding table (S488). Then, an operation for the Safari dialog 564 is executed by calling a function of the accessibility API 566 corresponding to the operation content (S490). If the display of the Safari dialog 564 is not detected (N in S486), S488 and S490 are skipped.
 図35は、図33のS458のIE用操作処理を詳細に示すフローチャートである。テスト・プログラムにおいてウィンドウ選択操作(上記の操作3および7)が指定された場合(S500のY)、外部操作実行部164のID割当部174は、引数で受け付けたIDをユーザ割当IDとして特定する(S502)。ウィンドウ選択操作でなく(S500のN)、IEブラウザ542を介して実行すべき操作(上記の操作4、5および8、以下「ブラウザ操作」とも呼ぶ)が指定された場合(S504のY)、外部操作実行部164は、ユーザ割当IDと対応づけられたOS割当IDを特定する(S506)。そして、そのOS割当IDを指定して、ブラウザ操作の内容に対応するCOM550の関数を呼び出すことにより、当該操作をIEブラウザ542に実行させる(S508)。 FIG. 35 is a flowchart showing in detail the IE operation process in S458 of FIG. When a window selection operation (the above operations 3 and 7) is specified in the test program (Y in S500), the ID assignment unit 174 of the external operation execution unit 164 specifies the ID received as an argument as the user assignment ID. (S502). When an operation to be executed via the IE browser 542 (the above-described operations 4, 5, and 8, hereinafter also referred to as “browser operation”) is specified instead of the window selection operation (N in S500) (Y in S504), The external operation execution unit 164 identifies the OS assignment ID associated with the user assignment ID (S506). Then, by designating the OS allocation ID and calling a function of the COM 550 corresponding to the content of the browser operation, the IE browser 542 is caused to execute the operation (S508).
 ブラウザ操作でなく(S504のN)、WindowsOSを介して実行すべき操作(上記の操作9および10、以下「OS操作」とも呼ぶ)が指定された場合(S510のY)、外部操作実行部164は、ユーザ割当IDと対応づけられたOS割当IDを特定する(S512)。そして、そのOS割当IDを指定して、操作内容に対応するWin32API552の関数を呼び出すことにより、ブラウザウィンドウに対するOS操作をWindowsOSに実行させる(S514)。OS操作でもなければ(S510のN)、S512およびS514はスキップされる。 When not a browser operation (N in S504) but an operation to be executed via Windows OS (the above operations 9 and 10, hereinafter also referred to as “OS operation”) is specified (Y in S510), the external operation execution unit 164 Specifies the OS allocation ID associated with the user allocation ID (S512). Then, by designating the OS assignment ID and calling a function of the Win32 API 552 corresponding to the operation content, the OS operation on the browser window is executed by the Windows OS (S514). If it is not an OS operation (N in S510), S512 and S514 are skipped.
 外部操作実行部164のダイアログ操作部176は、OSダイアログ544の表示を検出すると(S516のY)、そのダイアログに対する操作内容(上記の操作6)をダイアログ操作保持テーブルから取得する(S518)。そして、その操作内容に対応するWin32API552の関数をコールすることにより、OSダイアログ544に対する操作を実行する(S520)。OSダイアログ544の表示が未検出であれば(S516のN)、S518およびS520はスキップされる。 When the dialog operation unit 176 of the external operation execution unit 164 detects the display of the OS dialog 544 (Y in S516), the operation content for the dialog (the above operation 6) is acquired from the dialog operation holding table (S518). Then, an operation for the OS dialog 544 is executed by calling a function of the Win32 API 552 corresponding to the operation content (S520). If the display of the OS dialog 544 is not detected (N in S516), S518 and S520 are skipped.
 図36は、図33のS462のFF用操作処理を詳細に示すフローチャートである。テスト・プログラムにおいてウィンドウ選択操作(上記の操作3および7)が指定された場合(S530のY)、内部操作実行部168のID割当部180は、引数で受け付けたIDをユーザ割当IDとして特定する(S532)。ウィンドウ選択操作でなく(S530のN)、FFブラウザ546を介して実行すべき所定の操作(上記の操作4、5および8、以下「ブラウザ操作」とも呼ぶ)が指定された場合(S534のY)、内部操作実行部168は、ユーザ割当IDと対応づけられたセレニウム割当IDを特定する(S536)。そして、そのセレニウム割当IDを指定した操作指示をセレニウムモジュール530に通知することにより、ウェブページに追加された制御コードのうち操作指示に対応する関数をセレニウムモジュール530に呼び出させる(S538)。 FIG. 36 is a flowchart showing in detail the FF operation process in S462 of FIG. When a window selection operation (the above operations 3 and 7) is specified in the test program (Y in S530), the ID allocation unit 180 of the internal operation execution unit 168 identifies the ID received as an argument as the user allocation ID. (S532). When a predetermined operation to be executed via the FF browser 546 (the above-described operations 4, 5, and 8, hereinafter also referred to as “browser operation”) is designated instead of the window selection operation (N in S530) (Y in S534) ), The internal operation execution unit 168 identifies the selenium allocation ID associated with the user allocation ID (S536). Then, by notifying the selenium module 530 of an operation instruction specifying the selenium allocation ID, the selenium module 530 is called a function corresponding to the operation instruction among the control codes added to the web page (S538).
 ブラウザ操作でなく(S534のN)、WindowsOSを介して実行すべき所定の操作(上記の操作9および10、以下「OS操作」とも呼ぶ)が指定された場合(S540のY)、内部操作実行部168は、ユーザ割当IDと対応づけられたOS割当IDを特定する(S542)。そして、そのOS割当IDを指定して、操作内容に対応するWin32API552の関数を呼び出すことにより、ブラウザウィンドウに対するOS操作をWindowsOSに実行させる(S544)。OS操作でもなければ(S540のN)、S542およびS544はスキップされる。 When not a browser operation (N in S534) but a predetermined operation to be executed via Windows OS (the above operations 9 and 10, hereinafter also referred to as "OS operation") is designated (Y in S540), an internal operation is executed. The unit 168 identifies the OS assignment ID associated with the user assignment ID (S542). Then, by designating the OS allocation ID and calling a function of the Win32 API 552 corresponding to the operation content, the OS operation on the browser window is executed by the Windows OS (S544). If it is not an OS operation (N in S540), S542 and S544 are skipped.
 当段落では、上記操作5により表示されたダイアログがFFダイアログ548であるとして説明する。内部操作実行部168のダイアログ操作部182は、ウィンドウハンドラ572からの通知により、FFダイアログ548の表示を検出すると(S546のY)、そのダイアログに対する操作内容(上記の操作6)をダイアログ操作保持テーブルから取得する(S548)。そして、その操作内容をウィンドウハンドラ572へ通知することにより、その操作内容に対応するFFブラウザ546の関数をウィンドウハンドラ572に呼び出させる(S550)。これにより、FFダイアログ548に対する、テスト・プログラムにしたがった操作を実行する。FFダイアログ548の表示が未検出であれば(S546のN)、S548およびS550はスキップされる。 In this paragraph, it is assumed that the dialog displayed by the operation 5 is the FF dialog 548. When the dialog operation unit 182 of the internal operation execution unit 168 detects the display of the FF dialog 548 based on the notification from the window handler 572 (Y in S546), the dialog operation holding table displays the operation content (the above operation 6) for the dialog. (S548). Then, by notifying the window handler 572 of the operation content, the window handler 572 is caused to call a function of the FF browser 546 corresponding to the operation content (S550). As a result, an operation according to the test program is executed for the FF dialog 548. If the display of the FF dialog 548 is not detected (N of S546), S548 and S550 are skipped.
 当段落では、上記操作5により表示されたダイアログがOSダイアログ544であるとして説明する。内部操作実行部168のダイアログ操作部182は、OSダイアログ544が表示されたことを検出すると(S552のY)、そのダイアログに対する操作内容(上記の操作6)をダイアログ操作保持テーブルから取得する(S554)。そして、その操作内容に対応するWin32API552の関数をコールすることにより、OSダイアログ544に対する操作を実行する(S556)。OSダイアログ544の表示が未検出であれば(S552のN)、S554およびS556はスキップされる。 In this paragraph, it is assumed that the dialog displayed by the operation 5 is the OS dialog 544. When the dialog operation unit 182 of the internal operation execution unit 168 detects that the OS dialog 544 is displayed (Y in S552), the operation content for the dialog (the above operation 6) is acquired from the dialog operation holding table (S554). ). Then, an operation on the OS dialog 544 is executed by calling a Win32 API 552 function corresponding to the operation content (S556). If the display of the OS dialog 544 is not detected (N in S552), S554 and S556 are skipped.
 参考技術4の動作検証装置100によれば、参考技術3において既述したように、セレニウムモジュール530を使用することで、操作IFの公開有無によらず、様々なウェブブラウザ上でのウェブページの動作確認が可能になる。また、テスト・プログラム、およびテストプログラムの生成元となる操作内容ファイルや関数設定画面において、ユーザは任意のIDをブラウザウィンドウに対して付与できる。すなわち、ユーザは、テストの都合に応じてブラウザウィンドウのIDを適宜設定できる一方で、セレニウムモジュール530がブラウザウィンドウを識別するために必要なセレニウム割当IDを意識する必要がなく、ユーザの利便性を向上できる。 According to the operation verification apparatus 100 of the reference technique 4, as already described in the reference technique 3, by using the selenium module 530, web pages on various web browsers can be displayed regardless of whether or not the operation IF is disclosed. Operation check is possible. Further, the user can assign an arbitrary ID to the browser window in the test program and the operation content file or function setting screen that is the generation source of the test program. In other words, the user can appropriately set the browser window ID according to the convenience of the test, while the selenium module 530 does not need to be aware of the selenium allocation ID necessary for identifying the browser window, thereby improving the user convenience. It can be improved.
 また動作検証装置100によれば、セレニウムモジュール530を介さずに行うべきブラウザウィンドウへの操作もサポートできる。この場合も、ユーザは、テストの都合に応じてブラウザウィンドウのIDを任意に設定できる一方で、OSやウェブブラウザがそのブラウザウィンドウに対して割り当てたIDを意識する必要がなく、ユーザの利便性を向上できる。 Also, the operation verification apparatus 100 can support an operation on a browser window that should be performed without using the selenium module 530. In this case as well, the user can arbitrarily set the ID of the browser window according to the convenience of the test, but the user does not need to be aware of the ID assigned to the browser window by the OS or the web browser. Can be improved.
 さらに動作検証装置100によれば、ウェブブラウザ(FFブラウザ546)の拡張機能として、ダイアログ検出機能をアドオンする。これにより、ウェブブラウザが独自のリソースを使用してダイアログを表示するためにOSの機能ではダイアログの内容を取得できない場合でも、アドオンしたダイアログ検出機能を介して、ダイアログの内容を取得し、当該ダイアログを操作できる。また、ウェブブラウザが独自のリソースを使用した第1ダイアログと、OSのネイティブリソースを使用した第2ダイアログの両方を生成しうる場合も、ダイアログ操作の方式を適宜切り替えることにより、いずれのダイアログに対する操作も可能にする。すなわち、第1ダイアログに対してはアドオンしたダイアログ検出機能を介して操作し、第2ダイアログに対してはOSのネイティブ機能を介して操作することで、ウェブページに対する一連の操作をサポートして、再現できる。 Furthermore, according to the operation verification apparatus 100, a dialog detection function is added on as an extended function of the web browser (FF browser 546). As a result, even if the function of the OS cannot acquire the contents of the dialog because the web browser uses its own resource to display the dialog, the contents of the dialog are acquired via the dialog detection function that is added, and the dialog Can be operated. In addition, even when the web browser can generate both the first dialog using its own resources and the second dialog using the OS's native resources, the operation for either dialog can be performed by appropriately switching the dialog operation method. Also make it possible. In other words, the first dialog is operated through the add-on dialog detection function, and the second dialog is operated through the OS native function, thereby supporting a series of operations on the web page. Can be reproduced.
 さらにまた動作検証装置100によれば、ブラウザウィンドウに対する多くの操作においてセレニウムモジュール530を利用しつつ、例外的な操作ではOSのAPIを直接呼び出し、または、ダイアログ操作用のモジュールを利用する。このように、参考技術4で説明した技術を適宜組み合わせることにより、参考技術4では言及しなかった様々なテスト環境(すなわちOSとウェブブラウザとの組み合わせ)もサポートでき、ウェブページの動作テストを支援できる。 Furthermore, according to the operation verification apparatus 100, the selenium module 530 is used in many operations on the browser window, and the OS API is directly called or a dialog operation module is used in exceptional operations. In this way, by combining the techniques described in Reference Technology 4 as appropriate, various test environments not mentioned in Reference Technology 4 (ie, combinations of OS and web browser) can be supported, and support for web page operation tests. it can.
 (第1の実施の形態)
 本発明の第1の実施の形態(以下、「第1実施形態」とも呼ぶ。)の動作検証装置100に関して、その概要を説明する。図37は、ブラウザウィンドウにおけるウェブコンテンツの表示例を示す。同図は、ウェブサーバから提供されたウェブページ(典型的にはテスト対象ページ)が、ディスプレイの画面630上でブラウザウィンドウ632に表示された状況を示している。第1実施形態では、ブラウザウィンドウにおいて起動されるウェブブラウザはSafariブラウザ562である。
(First embodiment)
An outline of the operation verification apparatus 100 according to the first embodiment of the present invention (hereinafter also referred to as “first embodiment”) will be described. FIG. 37 shows a display example of web content in the browser window. This figure shows a situation in which a web page (typically a test target page) provided from a web server is displayed on a browser window 632 on a display screen 630. In the first embodiment, the web browser activated in the browser window is the Safari browser 562.
 ブラウザウィンドウ632は、クライアント領域634とヘッダ領域636とを含む。ヘッダ領域636は、主に、Safariブラウザ562に関する情報が表示される領域であり、Safariブラウザ562を操作するための各種のメニューやアイコンが表示される。また、ウェブページの内容そのものではなく、URLやタイトル等、ウェブページのメタ情報が表示される。 The browser window 632 includes a client area 634 and a header area 636. The header area 636 is an area in which information related to the Safari browser 562 is mainly displayed, and various menus and icons for operating the Safari browser 562 are displayed. Also, meta information of the web page such as URL and title is displayed instead of the content of the web page itself.
 その一方で、クライアント領域634は、ウェブページの内容そのものが表示される領域である。クライアント領域634は、それぞれが異なるウェブページを表示する複数のフレームを含む。第1実施形態では、フレームa638、フレームb640およびフレームc642を含むこととする。また、ブラウザウィンドウ632において、ヘッダ領域636は、クライアント領域634の上部に配置されることとする。 On the other hand, the client area 634 is an area where the content of the web page itself is displayed. The client area 634 includes a plurality of frames each displaying a different web page. In the first embodiment, a frame a638, a frame b640, and a frame c642 are included. In the browser window 632, the header area 636 is arranged above the client area 634.
 フレームa638は、非表示部分を含む全体の縦の長さが、可視範囲の縦の長さを超過するため、縦スクロールバー646が配置される。またフレームa638は、エレメント644を含む。第1実施形態における「エレメント」は、フレーム内に配置されて、スクロールバーが設定されうるGUIコンポーネントであり、例えばテキストボックスやリストボックスを含む。同図のエレメント644は、非表示部分を含む全体の縦の長さが、可視範囲の縦の長さを超過するため、縦スクロールバー645が配置される。フレームb640は、非表示部分を含む全体の横の長さが、可視範囲の横の長さを超過するため、横スクロールバー650が配置される。またフレームb640は、テーブル648を含む。 The vertical scroll bar 646 is arranged in the frame a638 because the entire vertical length including the non-display portion exceeds the vertical length of the visible range. The frame a638 includes an element 644. The “element” in the first embodiment is a GUI component that is arranged in a frame and can be set with a scroll bar, and includes, for example, a text box and a list box. The vertical scroll bar 645 is disposed in the element 644 in the drawing because the entire vertical length including the non-display portion exceeds the vertical length of the visible range. In the frame b640, the horizontal width including the non-display portion exceeds the horizontal length of the visible range, so the horizontal scroll bar 650 is arranged. The frame b640 includes a table 648.
 第1実施形態の動作検証装置100は、ブラウザウィンドウ632の表示画像をキャプチャする際に、フレーム単位に1枚の画像データとして保存する。すなわち、複数のフレームにより構成されるウェブページ、言い換えれば、複数のウェブページをフレーム分割して表示するウェブページ(以下、便宜的に「トップページ」とも呼ぶ。)の画面キャプチャにおいては、フレームごとのキャプチャ画像を保存する。また、ブラウザウィンドウ632においてフレーム全体の内容を一時に表示できず、スクロールが必要な場合、フレームの一部分をそれぞれ含む複数の画像データを取得し、それらを連結させた画像データを最終的なキャプチャ画像として保存する。 The operation verification apparatus 100 according to the first embodiment stores a display image of the browser window 632 as one piece of image data for each frame. That is, in a screen capture of a web page composed of a plurality of frames, in other words, a web page that displays a plurality of web pages divided into frames (hereinafter also referred to as “top page” for convenience), for each frame. Save captured images. Further, when the contents of the entire frame cannot be displayed at a time in the browser window 632 and scrolling is necessary, a plurality of pieces of image data each including a part of the frame are acquired, and the image data obtained by connecting them is obtained as a final captured image. Save as.
 図38は、図37のブラウザウィンドウのキャプチャ画像を示す。図38の(a)は、フレームa638のキャプチャ画像を示している。第1実施形態の画像キャプチャ処理では、図37で非表示とされた領域を含むフレームa638の全体が1枚の画像として保存される。また図38の(b)は、フレームa638内のエレメント644のキャプチャ画像を示している。第1実施形態の画像キャプチャ処理では、図37で非表示とされた領域を含むエレメント644の全体が1枚の画像として保存される。また図38の(c)は、フレームb640のキャプチャ画像であり、図37では非表示とされた領域を含むフレームb640の全体が1枚の画像として保存される。また図38では図示しないが、フレームc642のキャプチャ画像も取得される。フレームc642にはスクロールバーが未配置であるため、図37での表示内容を示すキャプチャ画像が取得されることになる。 FIG. 38 shows a captured image of the browser window of FIG. FIG. 38A shows a captured image of the frame a638. In the image capture process of the first embodiment, the entire frame a638 including the area not displayed in FIG. 37 is stored as one image. FIG. 38B shows a captured image of the element 644 in the frame a638. In the image capture process of the first embodiment, the entire element 644 including the area not displayed in FIG. 37 is stored as one image. FIG. 38C shows a captured image of the frame b640. In FIG. 37, the entire frame b640 including the non-displayed area is stored as one image. Although not shown in FIG. 38, a captured image of the frame c642 is also acquired. Since no scroll bar is arranged in the frame c642, a captured image indicating the display content in FIG. 37 is acquired.
 以下では、表示画像をキャプチャすべきブラウザウィンドウを「キャプチャ対象ウィンドウ」、キャプチャ対象ウィンドウに含まれるフレームを「キャプチャ対象フレーム」、キャプチャ対象フレームに含まれるエレメントを「キャプチャ対象エレメント」と呼ぶ。また、トップページにおいて個々のフレーム内に表示されるウェブページを「フレームページ」と呼ぶ。 Hereinafter, a browser window that should capture a display image is called a “capture target window”, a frame included in the capture target window is referred to as a “capture target frame”, and an element included in the capture target frame is referred to as a “capture target element”. A web page displayed in each frame on the top page is referred to as a “frame page”.
 第1実施形態における動作検証装置100の主な機能構成は、図28および図29で示した参考技術4における動作検証装置100の機能構成と同様である。以下、参考技術1~4において説明済の構成はその説明を適宜省略し、ウェブコンテンツの画面キャプチャ処理のための構成を詳細に説明する。 The main functional configuration of the operation verification apparatus 100 in the first embodiment is the same as the functional configuration of the operation verification apparatus 100 in the reference technique 4 shown in FIGS. Hereinafter, the description of the configurations already described in the reference techniques 1 to 4 will be omitted as appropriate, and the configuration for screen capture processing of web content will be described in detail.
 図39は、第1実施形態における画面キャプチャ処理に関する機能構成を示すブロック図である。既述したように、動作検証装置100は、証左物設定部170とプロキシ処理部166とブラウザ処理部160を備える。証左物設定部170は、プロキシ処理部166が提供する後述の各種関数を呼び出す。プロキシ処理部166は、ウェブページのプログラムコードに追加した制御コードと適宜通信して、証左物設定部170により呼び出された関数に対応するJAVAスクリプトをブラウザ処理部160側で実行させる。すなわち、証左物設定部170はプロキシ処理部166が提供する各種関数を利用してウェブページを操作し、また、ウェブページの画像キャプチャに必要な情報をブラウザ処理部160やプロキシ処理部166から取得する。 FIG. 39 is a block diagram showing a functional configuration related to screen capture processing in the first embodiment. As described above, the operation verification apparatus 100 includes the evidence setting unit 170, the proxy processing unit 166, and the browser processing unit 160. The witness setting unit 170 calls various functions described later provided by the proxy processing unit 166. The proxy processing unit 166 appropriately communicates with the control code added to the program code of the web page, and causes the browser processing unit 160 to execute the JAVA script corresponding to the function called by the evidence setting unit 170. In other words, the witness setting unit 170 operates the web page using various functions provided by the proxy processing unit 166, and acquires information necessary for image capture of the web page from the browser processing unit 160 and the proxy processing unit 166. To do.
 図40は、プロキシ処理部166が証左物設定部170に提供する関数を示す。これらの関数は、言い換えれば、図24のセレニウムモジュール530が外部に公開する関数であるとも言える。なお同図の、「getOffsetPositionOfWindow」以外の関数は、プロキシ処理部166、すなわちセレニウムモジュール530が標準的に提供する関数であってもよい。 FIG. 40 shows functions provided by the proxy processing unit 166 to the witness setting unit 170. In other words, it can be said that these functions are functions that the selenium module 530 in FIG. 24 exposes to the outside. It should be noted that the functions other than “getOffsetPositionOfWindow” in the figure may be functions provided by the proxy processing unit 166, that is, the selenium module 530 as standard.
 第1実施形態のプロキシ処理部166は、Safariブラウザ562に表示させるべきトップページを代理取得し、トップページに制御コードを追加する。また、トップページのフレームに表示させるべきフレームページも代理取得して、各フレームページにも制御コードを追加する。その際に、ウェブページを表示したブラウザウィンドウに一意のIDを割り当てるとともに、そのウェブページで表示された各フレームにもIDを割り当てる。そして、ウィンドウに割り当てたIDと、フレームに割り当てたIDとを対応付けて管理する。 The proxy processing unit 166 of the first embodiment acquires the top page to be displayed on the Safari browser 562 as a proxy, and adds a control code to the top page. In addition, a frame page to be displayed in the frame of the top page is obtained by proxy, and a control code is added to each frame page. At that time, a unique ID is assigned to the browser window displaying the web page, and an ID is also assigned to each frame displayed on the web page. Then, the ID assigned to the window and the ID assigned to the frame are managed in association with each other.
 図39に戻り、プロキシ処理部166は、画像位置特定部600を含む。証左物設定部170は、対象特定部612と、フレーム処理部614と、エレメント処理部619と、画像取得部625と、画像合成部627とを含む。同図の各機能ブロックは、ウェブコンテンツの画面キャプチャ処理を実行するための機能ブロックとして、包括的に、画面キャプチャ処理部629とも呼ぶことができる。なお、画面キャプチャ処理部629の各機能ブロックは、プロキシ処理部166が証左物設定部170に提供する関数の機能に応じて、プロキシ処理部166に配置されてもよく、証左物設定部170に配置されてもよい。 39, the proxy processing unit 166 includes an image position specifying unit 600. The witness setting unit 170 includes an object specifying unit 612, a frame processing unit 614, an element processing unit 619, an image acquisition unit 625, and an image composition unit 627. Each function block in the figure can also be collectively referred to as a screen capture processing unit 629 as a function block for executing a screen capture process of web content. Each functional block of the screen capture processing unit 629 may be arranged in the proxy processing unit 166 according to the function of the function provided by the proxy processing unit 166 to the witness object setting unit 170. It may be arranged.
 プロキシ処理部166:
 画像位置特定部600は、図40の関数「getOffsetPositionOfWindow」の機能を実現する。すなわち、上記関数の引数で指定されたフレーム(キャプチャ対象フレーム)について、画面630上における表示位置を導出して、その表示位置を示す情報を証左物設定部170へ通知する。画像位置特定部600は、ウィンドウ表示位置取得部602と、ヘッダ領域特定部604と、クライアント領域特定部606と、フレーム相対位置取得部608と、フレーム表示位置特定部610とを含む。
Proxy processing unit 166:
The image position specifying unit 600 realizes the function of the function “getOffsetPositionOfWindow” in FIG. That is, the display position on the screen 630 is derived for the frame (capture target frame) specified by the argument of the function, and information indicating the display position is notified to the evidence object setting unit 170. The image position specifying unit 600 includes a window display position acquiring unit 602, a header area specifying unit 604, a client area specifying unit 606, a frame relative position acquiring unit 608, and a frame display position specifying unit 610.
 ウィンドウ表示位置取得部602は、キャプチャ対象フレームが表示されたブラウザウィンドウ632の、画面630上における表示位置を取得する。第1実施形態では、画面630の左上端を原点とする直交座標系における座標であり、ブラウザウィンドウの左上端(図37のポイント659)の座標を取得する。 The window display position acquisition unit 602 acquires the display position on the screen 630 of the browser window 632 in which the capture target frame is displayed. In the first embodiment, the coordinates in the Cartesian coordinate system with the upper left corner of the screen 630 as the origin and the coordinates of the upper left corner of the browser window (point 659 in FIG. 37) are acquired.
 具体的には、ウィンドウ表示位置取得部602は、キャプチャ対象フレームを含むトップページの制御コードと通信して、トップページにて「window.screenX」を実行させる。そして戻り値として、ポイント659の横座標値(図37の横座標652)を取得する。同様に、トップページにて「window.screenY」を実行させて、戻り値として、ポイント659の縦座標値(図37の縦座標654)を取得する。 Specifically, the window display position acquisition unit 602 communicates with the control code of the top page including the capture target frame, and causes “window.screenX” to be executed on the top page. Then, as a return value, the abscissa value of the point 659 (abscissa 652 in FIG. 37) is acquired. Similarly, “window.screenY” is executed on the top page, and the ordinate value of the point 659 (ordinate 654 in FIG. 37) is acquired as a return value.
 ヘッダ領域特定部604は、ブラウザウィンドウ632におけるヘッダ領域636のサイズを特定する。第1実施形態においては、ヘッダ領域636がクライアント領域634の上部に配置されるため、ヘッダ領域特定部604はヘッダ領域636の縦の長さを特定する。 The header area specifying unit 604 specifies the size of the header area 636 in the browser window 632. In the first embodiment, since the header area 636 is disposed above the client area 634, the header area specifying unit 604 specifies the vertical length of the header area 636.
 具体的には、ヘッダ領域特定部604は、キャプチャ対象フレームを含むトップページの制御コードと通信して、トップページにて「window.outerHeight」を実行させる。そして戻り値として、ブラウザウィンドウ632の縦の長さ(図37の縦幅656)を取得する。同様に、トップページにて「window.innerHeight」を実行させて、戻り値として、クライアント領域634の縦の長さ(図37の縦幅658)を取得する。ヘッダ領域特定部604は、ブラウザウィンドウ632の縦の長さから、クライアント領域634の縦の長さを減算することにより、ヘッダ領域636の縦の長さを導出する。 Specifically, the header area specifying unit 604 communicates with the control code of the top page including the capture target frame, and causes “window.outerHeight” to be executed on the top page. Then, the vertical length of the browser window 632 (vertical width 656 in FIG. 37) is acquired as a return value. Similarly, “window.innerHeight” is executed on the top page, and the vertical length of the client area 634 (vertical width 658 in FIG. 37) is acquired as a return value. The header area specifying unit 604 derives the vertical length of the header area 636 by subtracting the vertical length of the client area 634 from the vertical length of the browser window 632.
 クライアント領域特定部606は、画面630上におけるブラウザウィンドウ632の表示位置とヘッダ領域636のサイズとにしたがって、画面630上におけるクライアント領域634の表示位置を特定する。具体的には、ブラウザウィンドウ632の左上端(ポイント659)の座標の縦座標値に、ヘッダ領域636の縦の長さを加算する一方、ポイント659の座標の横座標値はそのまま用いて、クライアント領域634の左上端(ポイント660)の座標を導出する。 The client area specifying unit 606 specifies the display position of the client area 634 on the screen 630 according to the display position of the browser window 632 on the screen 630 and the size of the header area 636. Specifically, the vertical length of the header area 636 is added to the ordinate value of the coordinates of the upper left corner (point 659) of the browser window 632, while the abscissa value of the coordinates of the point 659 is used as it is. The coordinates of the upper left corner (point 660) of the area 634 are derived.
 フレーム相対位置取得部608は、クライアント領域634におけるキャプチャ対象フレームの位置を取得する。第1実施形態では、クライアント領域634の左上端(図37のポイント660)を原点とする直交座標系における座標であり、キャプチャ対象フレームの左上端の座標(以下、「クライアント領域内座標」とも呼ぶ。)を取得する。例えば、キャプチャ対象フレームがフレームb640である場合、図37のポイント662のクライアント領域内座標を取得する。 The frame relative position acquisition unit 608 acquires the position of the capture target frame in the client area 634. In the first embodiment, the coordinates are in an orthogonal coordinate system with the upper left corner of the client area 634 (point 660 in FIG. 37) as the origin, and the coordinates of the upper left corner of the capture target frame (hereinafter also referred to as “coordinate within the client area”). .) For example, when the capture target frame is the frame b640, the coordinates in the client area of the point 662 in FIG. 37 are acquired.
 具体的には、フレーム相対位置取得部608は、キャプチャ対象フレームを含むトップページの制御コードと通信して、トップページにて「フレーム名.frameElement.offsetLeft」を実行させる。そして戻り値として、キャプチャ対象フレームのクライアント領域内座標の横座標値を取得する。同様に、トップページにて「フレーム名.frameElement.offsetTop」を実行させ、戻り値として、キャプチャ対象フレームのクライアント領域内座標の縦座標値を取得する。 Specifically, the frame relative position acquisition unit 608 communicates with the control code of the top page including the capture target frame, and causes “frame name.frameElement.offsetLeft” to be executed on the top page. Then, as a return value, the abscissa value of the coordinates in the client area of the capture target frame is acquired. Similarly, “frame name.frameElement.offsetTop” is executed on the top page, and the ordinate value of the coordinates in the client area of the capture target frame is acquired as a return value.
 フレーム表示位置特定部610は、クライアント領域特定部606により導出された画面630上におけるクライアント領域634の表示位置と、クライアント領域634におけるキャプチャ対象フレームの位置とにしたがって、画面630上におけるキャプチャ対象フレームの表示位置を特定する。具体的には、クライアント領域634の左上端座標の縦座標値および横座標値に、キャプチャ対象フレームのクライアント領域内座標の縦座標値および横座標値を加算することにより、キャプチャ対象フレームの左上端の座標(画面630上における座標)を導出する。 The frame display position specifying unit 610 determines the capture target frame on the screen 630 according to the display position of the client area 634 on the screen 630 derived by the client area specifying unit 606 and the position of the capture target frame on the client area 634. Specify the display position. Specifically, by adding the ordinate value and the abscissa value of the coordinates in the client region of the capture target frame to the ordinate value and the abscissa value of the upper left coordinate of the client region 634, the upper left end of the capture target frame The coordinates (coordinates on the screen 630) are derived.
 証左物設定部170:
 対象特定部612は、画面630に表示されたウェブコンテンツのうち、画像キャプチャを行うべき対象コンテンツを決定する。具体的には、キャプチャ対象ウィンドウと、キャプチャ対象フレームと、キャプチャ対象エレメントとを順次特定する。
Evidence setting unit 170:
The target specifying unit 612 determines target content to be image-captured from the web content displayed on the screen 630. Specifically, the capture target window, the capture target frame, and the capture target element are sequentially specified.
 第1実施形態において、ユーザは、関数設定画面210において画面キャプチャ関数(例えば図7の「WebScreen Capture」)を設定し、その引数として、キャプチャすべきブラウザウィンドウのユーザ割当IDを設定する。対象特定部612は、画面キャプチャ関数の引数で指定されたユーザ割当IDに対応するブラウザウィンドウをキャプチャ対象ウィンドウとして識別する。 In the first embodiment, a user sets a screen capture function (for example, “WebScreen Capture” in FIG. 7) on the function setting screen 210, and sets a user allocation ID of a browser window to be captured as an argument thereof. The target specifying unit 612 identifies the browser window corresponding to the user assignment ID specified by the argument of the screen capture function as the capture target window.
 また対象特定部612は、画面キャプチャ関数の引数で指定されたユーザ割当IDに対応するセレニウム割当IDを指定して、関数「getAllFrame」を呼び出す。そして、キャプチャ対象ウィンドウに含まれるフレームの一覧情報(以下、「フレームリスト」とも呼ぶ。)をプロキシ処理部166から取得する。このフレームリストには、キャプチャ対象ウィンドウに含まれる各フレームに対してセレニウムモジュール530が割り当てた、各フレームのID(以下、「フレームID」とも呼ぶ。)が含まれる。対象特定部612は、フレームリストに含まれる各フレームをキャプチャ対象フレームとして識別する。 Also, the target specifying unit 612 calls the function “getAllFrame” by specifying the selenium allocation ID corresponding to the user allocation ID specified by the argument of the screen capture function. Then, the proxy processing unit 166 obtains frame list information (hereinafter also referred to as “frame list”) included in the capture target window. This frame list includes the ID of each frame (hereinafter also referred to as “frame ID”) assigned by the selenium module 530 to each frame included in the capture target window. The target specifying unit 612 identifies each frame included in the frame list as a capture target frame.
 また対象特定部612は、キャプチャ対象フレームのそれぞれのIDを指定して、関数「getScrollableElement」を呼び出す。そして、キャプチャ対象フレームに含まれるスクロール可能なエレメントの一覧情報(以下、「エレメントリスト」とも呼ぶ。)をプロキシ処理部166から取得する。このエレメントリストには、キャプチャ対象フレームに含まれるスクロール可能な各エレメントのID(以下、「エレメントID」とも呼ぶ。)が含まれる。対象特定部612は、エレメントリストに含まれる各エレメントをキャプチャ対象エレメントとして特定する。 Also, the target identifying unit 612 calls the function “getScrollableElement” by designating each ID of the capture target frame. Then, scrollable element list information (hereinafter also referred to as “element list”) included in the capture target frame is acquired from the proxy processing unit 166. This element list includes the ID of each scrollable element included in the capture target frame (hereinafter also referred to as “element ID”). The target specifying unit 612 specifies each element included in the element list as a capture target element.
 フレーム処理部614は、キャプチャ対象フレームをキャプチャするための準備処理を実行する。フレーム処理部614は、フレーム表示位置取得部615と、フレーム範囲取得部616と、フレームスクロール処理部617とを含む。 The frame processing unit 614 executes a preparation process for capturing a capture target frame. The frame processing unit 614 includes a frame display position acquisition unit 615, a frame range acquisition unit 616, and a frame scroll processing unit 617.
 フレーム表示位置取得部615は、キャプチャ対象フレームのフレームIDを指定して、関数「getOffsetPositionOfWindow」を呼び出す。これにより、プロキシ処理部166の画像位置特定部600に、画面630上におけるキャプチャ対象フレームの表示位置を示す座標を特定させ、その座標値をプロキシ処理部166から取得する。 The frame display position acquisition unit 615 calls the function “getOffsetPositionOfWindow” by specifying the frame ID of the capture target frame. As a result, the image position specifying unit 600 of the proxy processing unit 166 specifies the coordinates indicating the display position of the capture target frame on the screen 630, and the coordinate value is acquired from the proxy processing unit 166.
 フレーム範囲取得部616は、キャプチャ対象フレームのフレームIDを指定して、関数「getScrollRectangleOfElement」を呼び出す。そして、キャプチャ対象フレームの不可視部分、言い換えれば、スクロールをさせることにより初めて画面630上で表示される部分を含む全体サイズ、ここではキャプチャ対象フレーム全体の横の長さ(横幅)と縦の長さ(縦幅)をプロキシ処理部166から取得する。 The frame range acquisition unit 616 specifies the frame ID of the capture target frame and calls the function “getScrollRectangleOfElement”. Then, the invisible portion of the capture target frame, in other words, the entire size including the portion displayed on the screen 630 for the first time by scrolling, here the horizontal length (horizontal width) and the vertical length of the entire capture target frame. (Vertical width) is acquired from the proxy processing unit 166.
 なお、プロキシ処理部166は、関数「getScrollRectangleOfElement」の呼び出しを受け付けたとき、ブラウザ処理部160の種類に応じて異なるJAVAスクリプトをトップページで実行させてもよい。すなわち、第1実施形態のようにSafariブラウザ562の場合、「フレーム名.document.width」の実行結果を、キャプチャ対象フレーム全体の横幅として特定してもよい。同様に、「フレーム名.document.height」の実行結果を、キャプチャ対象フレーム全体の縦幅として特定してもよい。その一方で、ブラウザ処理部160がFFブラウザ546の場合、「フレーム名.window.innerWidth」の実行結果+「フレーム名.window.scrollMaxX」の実行結果を、キャプチャ対象フレーム全体の横幅として特定してもよい。同様に、「フレーム名.window.innerHeight」の実行結果+「フレーム名.window.scrollMaxY」の実行結果を、キャプチャ対象フレーム全体の縦幅として特定してもよい。 Note that when the proxy processing unit 166 receives a call to the function “getScrollRectangleOfElement”, the proxy processing unit 166 may execute different JAVA scripts on the top page depending on the type of the browser processing unit 160. That is, in the case of the Safari browser 562 as in the first embodiment, the execution result of “frame name. Document. Width” may be specified as the horizontal width of the entire capture target frame. Similarly, the execution result of “frame name. Document. Height” may be specified as the vertical width of the entire capture target frame. On the other hand, when the browser processing unit 160 is the FF browser 546, the execution result of “frame name.window.innerWidth” + the execution result of “frame name.window.scrollMaxX” is specified as the horizontal width of the entire capture target frame. Also good. Similarly, the execution result of “frame name.window.innerHeight” + the execution result of “frame name.window.scrollMaxY” may be specified as the vertical width of the entire capture target frame.
 また、フレーム範囲取得部616は、キャプチャ対象フレームのフレームIDを指定して、関数「getClientRectangle」を呼び出す。そして、キャプチャ対象フレームの可視部分、言い換えれば、スクロールすることなく画面630上で表示される部分のサイズ、ここではキャプチャ対象フレームにおける可視部分の横幅および縦幅をプロキシ処理部166から取得する。 Also, the frame range acquisition unit 616 specifies the frame ID of the capture target frame and calls the function “getClientRectangle”. The visible portion of the capture target frame, in other words, the size of the portion displayed on the screen 630 without scrolling, that is, the horizontal width and the vertical width of the visible portion in the capture target frame are acquired from the proxy processing unit 166.
 なお、プロキシ処理部166は、関数「getClientRectangle」の呼び出しを受け付けたとき、当該関数に対応するJAVAスクリプトをトップページで実行させる。例えば、「フレーム名.document.documentElement.clientWidth」の実行結果を、キャプチャ対象フレームにおける可視部分の横幅として特定してもよい。同様に、「フレーム名.document.documentElement.clientHeight」の実行結果を、キャプチャ対象フレームにおける可視部分の縦幅として特定してもよい。 When the proxy processing unit 166 receives a call to the function “getClientRectangle”, the proxy processing unit 166 executes a JAVA script corresponding to the function on the top page. For example, the execution result of “frame name. Document. DocumentElement. ClientWidth” may be specified as the horizontal width of the visible portion in the capture target frame. Similarly, the execution result of “frame name. Document. DocumentElement. ClientHeight” may be specified as the vertical width of the visible portion in the capture target frame.
 フレームスクロール処理部617は、キャプチャ対象フレーム全体の横幅をその可視部分の横幅で除算(余は切り上げ)し、その結果を横スクロール上限回数として決定する。また、キャプチャ対象フレーム全体の縦幅をその可視部分の縦幅で除算(余は切り上げ)し、その結果を縦スクロール上限回数として決定する。 The frame scroll processing unit 617 divides the horizontal width of the entire capture target frame by the horizontal width of the visible portion (the remainder is rounded up), and determines the result as the maximum number of horizontal scrolls. Further, the vertical width of the entire capture target frame is divided by the vertical width of the visible portion (the remainder is rounded up), and the result is determined as the upper limit number of vertical scrolls.
 また、フレームスクロール処理部617は、キャプチャ対象フレームの画像取得が行われると、次の画像取得の前に、フレームを縦スクロールさせ、もしくは縦スクロールおよび横スクロールさせる。具体的には、縦スクロールを実行させるために、キャプチャ対象フレームのフレームID、横スクロール量には0、縦スクロール量としてキャプチャ対象フレームの可視部分の縦幅を指定して、関数「doScrollFrameTo」を呼び出す。また横スクロールを実行させるために、キャプチャ対象フレームのフレームID、横スクロール量としてキャプチャ対象フレームの可視部分の横幅、縦スクロール量には0を指定して、関数「doScrollFrameTo」を呼び出す。 Further, when the image of the capture target frame is acquired, the frame scroll processing unit 617 vertically scrolls the frame or vertically scrolls and horizontally scrolls before acquiring the next image. Specifically, in order to execute vertical scrolling, the frame ID of the capture target frame, the horizontal scroll amount is 0, the vertical width of the visible portion of the capture target frame is specified as the vertical scroll amount, and the function “doScrollFrameTo” is set. call. Also, in order to execute horizontal scrolling, the function “doScrollFrameTo” is called by specifying the frame ID of the capture target frame, the horizontal width of the visible portion of the capture target frame as the horizontal scroll amount, and 0 as the vertical scroll amount.
 第1実施形態では、いわゆる逆N型にスクロールが実行される。すなわち、フレームスクロール処理部617は、画像取得処理ごとに、まず横位置を固定したまま縦スクロールをその上限回数まで1回ずつ繰り返す。次に、縦位置を初期位置に戻すとともに横スクロールを1回実行する。そして、再度横位置を固定したまま縦スクロールをその上限回数まで1回ずつ繰り返す。そして、縦スクロール回数および横スクロール回数のいずれもが上限回数に到達すると、キャプチャ対象フレームに対するスクロール処理を終了する。 In the first embodiment, scrolling is executed in a so-called inverted N type. That is, for each image acquisition process, the frame scroll processing unit 617 first repeats the vertical scroll once for the upper limit number of times while fixing the horizontal position. Next, the vertical position is returned to the initial position and horizontal scrolling is executed once. Then, the vertical scrolling is repeated once each up to the upper limit number while the horizontal position is fixed again. When both the vertical scroll count and horizontal scroll count reach the upper limit count, the scroll process for the capture target frame is terminated.
 エレメント処理部619は、キャプチャ対象エレメントをキャプチャするための準備処理を実行する。エレメント処理部619は、エレメント相対位置取得部620と、エレメント表示位置特定部621と、エレメント範囲取得部622と、エレメントスクロール処理部623とを含む。 The element processing unit 619 executes a preparation process for capturing the capture target element. The element processing unit 619 includes an element relative position acquisition unit 620, an element display position specification unit 621, an element range acquisition unit 622, and an element scroll processing unit 623.
 エレメント相対位置取得部620は、キャプチャ対象エレメントのエレメントIDを指定して、関数「getOffsetPositionOfElement」を呼び出す。そして、キャプチャ対象エレメントが含まれるフレームの左上端を原点とする直交座標系における座標であり、キャプチャ対象エレメントの左上端の座標(以下、「フレーム内座標」とも呼ぶ。)を取得する。例えば、フレームa638に含まれるエレメント644については、ポイント662を原点としたエレメント644の左上端座標を取得する。 The element relative position acquisition unit 620 calls the function “getOffsetPositionOfElement” by specifying the element ID of the capture target element. Then, the coordinates in the Cartesian coordinate system having the origin at the upper left corner of the frame including the capture target element and the coordinates of the upper left corner of the capture target element (hereinafter also referred to as “in-frame coordinates”) are acquired. For example, for the element 644 included in the frame a638, the upper left corner coordinate of the element 644 with the point 662 as the origin is acquired.
 なお、プロキシ処理部166は、関数「getOffsetPositionOfElement」の呼び出しを受け付けたとき、当該関数に対応するJAVAスクリプトをフレームページで実行させる。例えば、「エレメント名.getBoundingClientRect.left」を実行させ、その戻り値として、キャプチャ対象エレメントのフレーム内座標の横座標値を取得してもよい。同様に、「エレメント名.getBoundingClientRect.top」を実行させ、その戻り値として、キャプチャ対象エレメントのフレーム内座標の縦座標値を取得してもよい。 When the proxy processing unit 166 receives a call to the function “getOffsetPositionOfElement”, the proxy processing unit 166 causes the JAVA script corresponding to the function to be executed on the frame page. For example, “element name.getBoundingClientRect.left” may be executed, and the abscissa value of the in-frame coordinates of the capture target element may be acquired as the return value. Similarly, “element name.getBoundingClientRect.top” may be executed, and the ordinate value of the in-frame coordinates of the capture target element may be acquired as the return value.
 エレメント表示位置特定部621は、フレーム表示位置取得部615により取得された、画面630上におけるキャプチャ対象フレームの表示位置を示す座標と、エレメント相対位置取得部620により取得された、キャプチャ対象エレメントのフレーム内座標とにしたがって、画面630上におけるキャプチャ対象エレメントの表示位置を特定する。具体的には、キャプチャ対象フレームの左上端座標の縦座標値および横座標値に、キャプチャ対象エレメントのフレーム内座標の縦座標値および横座標値を加算することにより、キャプチャ対象エレメントの左上端の座標(画面630上での座標)を導出する。 The element display position specifying unit 621 acquires coordinates of the display position of the capture target frame on the screen 630 acquired by the frame display position acquisition unit 615, and the frame of the capture target element acquired by the element relative position acquisition unit 620. The display position of the capture target element on the screen 630 is specified according to the internal coordinates. Specifically, by adding the ordinate and abscissa values of the in-frame coordinates of the capture target element to the ordinate and abscissa values of the upper-left corner coordinates of the capture target frame, the upper-left corner of the capture target element Coordinates (coordinates on the screen 630) are derived.
 エレメント範囲取得部622は、キャプチャ対象エレメントのエレメントIDを指定して、関数「getScrollRectangleOfElement」を呼び出す。そして、キャプチャ対象フレームの不可視部分を含む全体サイズ、ここではキャプチャ対象フレーム全体の横幅と縦幅をプロキシ処理部166から取得する。 The element range acquisition unit 622 specifies the element ID of the capture target element and calls the function “getScrollRectangleOfElement”. Then, the entire size including the invisible part of the capture target frame, here, the horizontal width and the vertical width of the entire capture target frame are acquired from the proxy processing unit 166.
 なお、プロキシ処理部166は、関数「getScrollRectangleOfElement」の呼び出しを受け付けたとき、当該関数に対応するJAVAスクリプトをフレームページで実行させる。例えば、「エレメント名.scrollWidth」を実行させ、その戻り値として、キャプチャ対象エレメント全体の横幅を取得してもよい。同様に、「エレメント名.scrollHeight」を実行させ、その戻り値として、キャプチャ対象エレメントのフレーム内座標の縦幅を取得してもよい。 Note that when the proxy processing unit 166 receives a call to the function “getScrollRectangleOfElement”, the proxy processing unit 166 causes the JAVA script corresponding to the function to be executed on the frame page. For example, “element name. ScrollWidth” may be executed, and the horizontal width of the entire capture target element may be acquired as the return value. Similarly, “element name. ScrollHeight” may be executed, and the vertical width of the in-frame coordinates of the capture target element may be acquired as the return value.
 またエレメント範囲取得部622は、キャプチャ対象エレメントのエレメントIDを指定して、関数「getClientRectangleOfElement」を呼び出す。そして、キャプチャ対象エレメントの可視部分のサイズ、ここではキャプチャ対象フレームにおける可視部分の横幅および縦幅をプロキシ処理部166から取得する。 Also, the element range acquisition unit 622 calls the function “getClientRectangleOfElement” by specifying the element ID of the capture target element. Then, the size of the visible portion of the capture target element, here, the horizontal width and vertical width of the visible portion in the capture target frame is acquired from the proxy processing unit 166.
 なお、プロキシ処理部166は、関数「getClientRectangleOfElement」の呼び出しを受け付けたとき、当該関数に対応するJAVAスクリプトをフレームページで実行させる。例えば、「エレメント名.clientWidth」の実行結果を、キャプチャ対象エレメントにおける可視部分の横幅として取得してもよい。同様に、「エレメント名.clientHeight」の実行結果を、キャプチャ対象エレメントにおける可視部分の縦幅として取得してもよい。 When the proxy processing unit 166 receives a call to the function “getClientRectangleOfElement”, the proxy processing unit 166 executes a JAVA script corresponding to the function on the frame page. For example, the execution result of “element name. ClientWidth” may be acquired as the width of the visible portion of the capture target element. Similarly, the execution result of “element name. ClientHeight” may be acquired as the vertical width of the visible portion of the capture target element.
 エレメントスクロール処理部623は、キャプチャ対象エレメント全体の横幅をその可視部分の横幅で除算(余は切り上げ)し、その結果を横スクロール上限回数として決定する。また、キャプチャ対象エレメント全体の縦幅をその可視部分の縦幅で除算(余は切り上げ)し、その結果を縦スクロール上限回数として決定する。 The element scroll processing unit 623 divides the horizontal width of the entire capture target element by the horizontal width of the visible portion (rounds up the remainder), and determines the result as the maximum number of horizontal scrolls. Further, the vertical width of the entire capture target element is divided by the vertical width of the visible portion (the remainder is rounded up), and the result is determined as the upper limit number of vertical scrolls.
 またエレメントスクロール処理部623は、キャプチャ対象エレメントの画像取得が行われると、次の画像取得の前に、エレメントを縦スクロールさせ、もしくは縦スクロールおよび横スクロールさせる。具体的には、縦スクロールを実行させるために、キャプチャ対象エレメントのエレメントID、横スクロール量には0、縦スクロール量としてキャプチャ対象エレメントの可視部分の縦幅を指定して、関数「doScrollElementTo」を呼び出す。また横スクロールを実行させるために、キャプチャ対象エレメントのエレメントID、横スクロール量としてキャプチャ対象エレメントの可視部分の横幅、縦スクロール量には0を指定して、関数「doScrollElementTo」を呼び出す。エレメントのスクロール態様は、既述したフレームのスクロール態様と同様である。 In addition, when the image of the capture target element is acquired, the element scroll processing unit 623 vertically scrolls the element or vertically scrolls and horizontally scrolls before acquiring the next image. Specifically, in order to execute vertical scrolling, the element ID of the capture target element, the horizontal scroll amount is 0, the vertical width of the visible portion of the capture target element is specified as the vertical scroll amount, and the function “doScrollElementTo” is executed. call. In order to execute horizontal scrolling, the function “doScrollElementTo” is called by specifying 0 as the element ID of the capture target element, the horizontal width of the visible portion of the capture target element, and the vertical scroll amount as the horizontal scroll amount. The scroll mode of the element is the same as the scroll mode of the frame described above.
 画像取得部625は、画面630上におけるキャプチャ対象フレームの表示位置にしたがって、キャプチャ対象フレームの表示画像をキャプチャする。また、画面630上におけるキャプチャ対象エレメントの表示位置にしたがって、キャプチャ対象エレメントの表示画像をキャプチャする。第1実施形態の画像取得部625は、ブラウザウィンドウ632のヘッダ領域636をキャプチャ対象から除外する。すなわち、ヘッダ領域636の表示画像が除外された、純粋にキャプチャ対象フレームの表示画像を取得する。 The image acquisition unit 625 captures the display image of the capture target frame according to the display position of the capture target frame on the screen 630. Further, the display image of the capture target element is captured according to the display position of the capture target element on the screen 630. The image acquisition unit 625 of the first embodiment excludes the header area 636 of the browser window 632 from the capture target. In other words, the display image of the capture target frame is obtained purely from which the display image of the header area 636 is excluded.
 例えば、画像取得部625は、画面630上におけるキャプチャ対象フレームの左上端の座標値を始点として指定し、キャプチャ対象エレメントの可視部分の横幅および縦幅をキャプチャ範囲として指定して、OSの画面キャプチャ関数(API)を呼び出してもよい。そして、キャプチャ対象エレメントの可視部分の画像データをメモリ(クリップボード)内に保存させてもよい。 For example, the image acquisition unit 625 specifies the coordinate value of the upper left corner of the capture target frame on the screen 630 as the start point, specifies the horizontal width and vertical width of the visible portion of the capture target element as the capture range, and performs screen capture of the OS. A function (API) may be called. Then, the image data of the visible portion of the capture target element may be stored in the memory (clipboard).
 また画像取得部625は、フレームスクロール処理部617により決定された縦横のスクロール回数が上限に達するまで、キャプチャ対象フレームのキャプチャ処理を繰り返す。同様に、エレメントスクロール処理部623により決定された縦横のスクロール回数が上限に達するまで、キャプチャ対象エレメントのキャプチャ処理を繰り替えす。したがって、スクロールバーが設定されたフレームもしくはエレメントについては、複数のキャプチャ画像のデータをメモリ内に取り込む。 Further, the image acquisition unit 625 repeats the capture processing of the capture target frame until the number of vertical and horizontal scrolls determined by the frame scroll processing unit 617 reaches the upper limit. Similarly, the capture processing of the capture target element is repeated until the number of vertical and horizontal scrolls determined by the element scroll processing unit 623 reaches the upper limit. Therefore, for a frame or element in which a scroll bar is set, data of a plurality of captured images is taken into the memory.
 画像合成部627は、1つのキャプチャ対象フレームに対する複数回の画像取得処理により取得された、複数枚のキャプチャ画像のデータを1枚の画像データに合成する。そして、1つのキャプチャ対象フレームについては、1枚の画像データを動作テストの証左物として結果保持部152へ格納する。エレメントについても同様であり、1つのキャプチャ対象フレームについては、1枚の画像データを動作テストの証左物として結果保持部152へ格納する。なお、複数のキャプチャ画像間に重複部分が存在する場合は、一方のキャプチャ画像からその重複部分をトリミングした上で1枚の画像に合成する。 The image composition unit 627 synthesizes the data of a plurality of captured images acquired by a plurality of image acquisition processes for one capture target frame into one image data. For one capture target frame, one piece of image data is stored in the result holding unit 152 as a proof of the operation test. The same applies to the element. For one capture target frame, one piece of image data is stored in the result holding unit 152 as a proof of the operation test. If there is an overlapping portion between a plurality of captured images, the overlapping portion is trimmed from one captured image and then combined into a single image.
 以上の構成による動作を以下説明する。
 図41は、動作検証装置100における画像キャプチャ処理の動作を示すフローチャートである。動作テストの実行において、ウェブページの画像キャプチャ要求を受け付けた場合(S600のY)、対象特定部612は、その要求で指定されたキャプチャ対象ウィンドウに含まれるフレームのリストをプロキシ処理部166から取得する(S602)。対象特定部612は、フレームリストに含まれるフレームの1つをキャプチャ対象フレームとして特定する(S604)。フレーム表示位置取得部615は、キャプチャ対象フレームを指定して、後述するフレーム表示位置特定処理をプロキシ処理部166に実行させる(S606)。フレーム範囲取得部616は、キャプチャ対象フレーム全体のサイズおよびその可視部分のサイズを取得する(S608)。フレームスクロール処理部617は、キャプチャ対象フレーム全体のサイズおよびその可視部分のサイズにしたがって、キャプチャ対象フレームに対して実行すべき縦横のスクロール上限回数をそれぞれ決定する(S610)。
The operation of the above configuration will be described below.
FIG. 41 is a flowchart showing the operation of image capture processing in the operation verification apparatus 100. In the execution of the operation test, when a web page image capture request is received (Y in S600), the target specifying unit 612 acquires a list of frames included in the capture target window specified by the request from the proxy processing unit 166. (S602). The target specifying unit 612 specifies one of the frames included in the frame list as a capture target frame (S604). The frame display position acquisition unit 615 designates a capture target frame and causes the proxy processing unit 166 to execute a frame display position specifying process described later (S606). The frame range acquisition unit 616 acquires the size of the entire capture target frame and the size of the visible portion (S608). The frame scroll processing unit 617 determines the maximum number of horizontal and vertical scrolls to be performed on the capture target frame according to the size of the entire capture target frame and the size of the visible portion (S610).
 画像取得部625は、キャプチャ対象フレームの可視部分の画像を一時的にメモリへ格納する(S612)。スクロールの上限回数に達していなければ(S614のN)、フレームスクロール処理部617は、キャプチャ対象フレームを1単位分、スクロールさせることにより、キャプチャ対象フレームの表示内容(すなわち可視部分)を変化させて、S612に戻る(S616)。スクロールの上限回数に到達すると(S614のY)、画像合成部627は、キャプチャ対象フレームについて一時的に保存された複数のキャプチャ画像を取得し、それらを合成した1枚の画像データを設定する。そして、合成後の画像データを動作テストの証左物として結果保持部152へ格納する(S618)。なお、キャプチャ画像が1枚であれば、その画像をそのまま証左物として結果保持部152へ格納する。 The image acquisition unit 625 temporarily stores the image of the visible portion of the capture target frame in the memory (S612). If the upper limit number of scrolls has not been reached (N in S614), the frame scroll processing unit 617 changes the display content (that is, the visible portion) of the capture target frame by scrolling the capture target frame by one unit. , The process returns to S612 (S616). When the upper limit number of scrolls is reached (Y in S614), the image composition unit 627 acquires a plurality of capture images temporarily stored for the capture target frame, and sets one image data obtained by composing them. Then, the combined image data is stored in the result holding unit 152 as a proof of the operation test (S618). If there is one captured image, the image is stored in the result holding unit 152 as a proof as it is.
 対象特定部612は、キャプチャ対象フレームに含まれるエレメントのリストをプロキシ処理部166から取得する。未キャプチャのエレメント(すなわちキャプチャ対象エレメント)が残存する場合(S620のN)、エレメント相対位置取得部620は、キャプチャ対象フレーム内でのキャプチャ対象エレメントの位置を取得する(S622)。エレメント表示位置特定部621は、画面上でのキャプチャ対象フレームの表示位置と、キャプチャ対象フレーム内でのキャプチャ対象エレメントの位置とにしたがって、画面上でのキャプチャ対象エレメントの表示位置を導出する(S624)。そしてS608に戻る。 The target specifying unit 612 acquires a list of elements included in the capture target frame from the proxy processing unit 166. When an uncaptured element (that is, a capture target element) remains (N in S620), the element relative position acquisition unit 620 acquires the position of the capture target element in the capture target frame (S622). The element display position specifying unit 621 derives the display position of the capture target element on the screen according to the display position of the capture target frame on the screen and the position of the capture target element in the capture target frame (S624). ). Then, the process returns to S608.
 エレメントのキャプチャ処理において、エレメント範囲取得部622は、キャプチャ対象エレメント全体のサイズおよびその可視部分のサイズを取得する(S608)。エレメントスクロール処理部623は、キャプチャ対象エレメント全体のサイズおよびその可視部分のサイズにしたがって、キャプチャ対象エレメントに対して実行すべき縦横のスクロール上限回数をそれぞれ決定する(S610)。画像取得部625は、キャプチャ対象エレメントの可視部分の画像を一時的にメモリへ格納する(S612)。スクロールの上限回数に達していなければ(S614のN)、エレメントスクロール処理部623は、キャプチャ対象エレメントを1単位分、スクロールさせてS612に戻る(S616)。スクロールの上限回数に到達すると(S614のY)、画像合成部627は、キャプチャ対象エレメントについて一時的に保存された複数のキャプチャ画像を取得し、それらを合成した1枚の画像データを設定する(S618)。 In the element capture process, the element range acquisition unit 622 acquires the size of the entire capture target element and the size of the visible portion (S608). The element scroll processing unit 623 determines the maximum number of vertical and horizontal scrolls to be performed on the capture target element according to the size of the entire capture target element and the size of the visible portion (S610). The image acquisition unit 625 temporarily stores the image of the visible portion of the capture target element in the memory (S612). If the upper limit number of scrolls has not been reached (N in S614), the element scroll processing unit 623 scrolls the capture target element by one unit and returns to S612 (S616). When the upper limit number of scrolls is reached (Y in S614), the image composition unit 627 acquires a plurality of captured images temporarily stored for the capture target element, and sets one image data obtained by composing them. S618).
 全キャプチャ対象エレメントに対するキャプチャ処理が完了した場合(S620のY)、フレームリストの一部のフレームに対するキャプチャ処理が未完了であれば(S626のN)、S604に戻り、新たにキャプチャ対象フレームが決定されて処理が続行する。フレームリストの全フレームに対するキャプチャ処理が完了した場合(S626のY)、本図のフローを終了する。なお、ウェブページの画像キャプチャ要求を受け付けなければ(S600のN)、以降の処理はスキップされて本図のフローを終了する。 When the capture process for all the capture target elements is completed (Y in S620), if the capture process for some frames in the frame list is not completed (N in S626), the process returns to S604 and a new capture target frame is determined. And processing continues. When the capture processing for all the frames in the frame list is completed (Y in S626), the flow of FIG. If a web page image capture request is not accepted (N in S600), the subsequent processing is skipped and the flow of FIG.
 図42は、図41のS606のフレーム表示位置特定処理を詳細に示すフローチャートである。ウィンドウ表示位置取得部602は、キャプチャ対象フレームを含むキャプチャ対象ウィンドウについて、画面上におけるその表示位置を取得する(S630)。ヘッダ領域特定部604は、キャプチャ対象ウィンドウ全体のサイズとクライアント領域634のサイズとの差を計算することにより、ヘッダ領域636のサイズを導出する(S632)。クライアント領域特定部606は、画面上におけるキャプチャ対象ウィンドウの表示位置とヘッダ領域636のサイズとにしたがって、画面上におけるクライアント領域634の表示位置を導出する(S634)。フレーム相対位置取得部608は、クライアント領域634内でのキャプチャ対象フレームの位置を取得する(S636)。フレーム表示位置特定部610は、画面上におけるクライアント領域634の表示位置と、クライアント領域634におけるキャプチャ対象フレームの位置とにしたがって、画面上におけるキャプチャ対象フレームの表示位置を導出する(S638)。 FIG. 42 is a flowchart showing in detail the frame display position specifying process in S606 of FIG. The window display position acquisition unit 602 acquires the display position on the screen of the capture target window including the capture target frame (S630). The header area specifying unit 604 derives the size of the header area 636 by calculating the difference between the size of the entire capture target window and the size of the client area 634 (S632). The client area specifying unit 606 derives the display position of the client area 634 on the screen according to the display position of the capture target window on the screen and the size of the header area 636 (S634). The frame relative position acquisition unit 608 acquires the position of the capture target frame in the client area 634 (S636). The frame display position specifying unit 610 derives the display position of the capture target frame on the screen according to the display position of the client area 634 on the screen and the position of the capture target frame on the client area 634 (S638).
 第1実施形態の動作検証装置100によれば、動作テストの成否を確認するために必要なウェブページの表示画像だけを証左物として保存する。具体的には、フレームに表示されたウェブページの内容そのものであり、ヘッダ領域等の余分な部分、言い換えれば、動作テストの結果確認にはむしろ邪魔となる部分を排除したキャプチャ画像をユーザへ提示できる。これにより、効率のよい動作テストを支援できる。 According to the operation verification apparatus 100 of the first embodiment, only the display image of the web page necessary for confirming the success or failure of the operation test is stored as a proof. Specifically, it is the content of the web page displayed in the frame itself, and presents the captured image to the user, excluding the extra part such as the header area, in other words, the part that would rather get in the way of confirming the result of the operation test. it can. Thereby, an efficient operation test can be supported.
 (第2の実施の形態)
 本発明の第2の実施の形態(以下、「第2実施形態」とも呼ぶ。)は、ブラウザウィンドウ632において起動されるウェブブラウザがFFブラウザ546である点で第1実施形態とは異なる。
(Second Embodiment)
The second embodiment of the present invention (hereinafter also referred to as “second embodiment”) differs from the first embodiment in that the web browser activated in the browser window 632 is the FF browser 546.
 図43は、ブラウザウィンドウにおけるウェブコンテンツの表示例を示す。同図の要素のうち先に説明した図37の要素と同一もしくは対応する要素には図37と同じ符号を付しており、以下の説明は省略する。図43で示すように、第2実施形態のブラウザウィンドウ632は、第1実施形態のブラウザウィンドウ632と異なり、クライアント領域634の下部に固定長(例えば26ピクセル)のステータスバーを備える。また、第2実施形態のブラウザウィンドウ632は、ブラウザウィンドウ外部のオブジェクト(他のウィンドウや背景等)との境界として、ある程度の幅(例えば固定長の4ピクセル)が設定された枠線666を備える。 FIG. 43 shows a display example of web content in the browser window. Of the elements in the figure, elements that are the same as or correspond to the elements in FIG. 37 described above are denoted by the same reference numerals as in FIG. 37, and the following description is omitted. As shown in FIG. 43, unlike the browser window 632 of the first embodiment, the browser window 632 of the second embodiment includes a fixed-length (for example, 26 pixels) status bar at the bottom of the client area 634. Further, the browser window 632 of the second embodiment includes a frame line 666 in which a certain amount of width (for example, a fixed length of 4 pixels) is set as a boundary with an object outside the browser window (another window, background, etc.). .
 第2実施形態における動作検証装置100の主な機能構成は第1実施形態と同様であり、主な動作も第1実施形態と同様である。以下では、第2実施形態における動作検証装置100について、第1実施形態とは異なる点を説明する。 The main functional configuration of the operation verification apparatus 100 in the second embodiment is the same as that of the first embodiment, and the main operation is also the same as that of the first embodiment. Hereinafter, the operation verification device 100 according to the second embodiment will be described while referring to differences from the first embodiment.
 画像位置特定部600のヘッダ領域特定部604は、ステータスバー664のサイズ(幅)を加味して、ヘッダ領域636のサイズを特定する。具体的には、ブラウザウィンドウ632の縦幅から、クライアント領域634の縦幅を減算するとともに、ステータスバー664の縦の長さ、ここでは予め定められた26ピクセルを減算することにより、ヘッダ領域636の縦の長さを導出する。なお、固定値の26ピクセルは、厳密には、ステータスバー664の縦の長さおよび枠線666の幅の合計値であるとも言える。 The header area specifying unit 604 of the image position specifying unit 600 specifies the size of the header area 636 in consideration of the size (width) of the status bar 664. Specifically, by subtracting the vertical width of the client area 634 from the vertical width of the browser window 632 and subtracting the vertical length of the status bar 664, which is a predetermined 26 pixels in this case, the header area 636 is subtracted. The vertical length of is derived. Strictly speaking, the fixed value of 26 pixels can be said to be the total value of the vertical length of the status bar 664 and the width of the frame line 666.
 画像位置特定部600のクライアント領域特定部606は、枠線666のサイズ(幅)を加味して、画面630におけるクライアント領域634の表示位置を特定する。具体的には、ブラウザウィンドウ632の左上端の座標の縦座標値にヘッダ領域636の縦の長さを加算する一方で、当該座標の横座標値に枠線666の幅、ここでは予め定められた4ピクセルを加算することにより、クライアント領域634の左上端の座標を導出する。 The client area specifying unit 606 of the image position specifying unit 600 specifies the display position of the client area 634 on the screen 630 in consideration of the size (width) of the frame line 666. Specifically, the vertical length of the header area 636 is added to the ordinate value of the upper left coordinate of the browser window 632, while the width of the frame line 666, which is predetermined here, is added to the abscissa value of the coordinate. The coordinates of the upper left corner of the client area 634 are derived by adding the four pixels.
 第2実施形態の動作検証装置100によれば、ブラウザウィンドウ632においてステータスバー664およびある程度の幅を有する枠線666が配置されるウェブブラウザを用いた動作テストの場合も、第1実施形態と同様の効果を実現できる。すなわち、ヘッダ領域に加えて、ステータスバーや枠線等、動作テストの結果確認に邪魔となる部分を排除したキャプチャ画像をユーザへ提示できる。 According to the operation verification apparatus 100 of the second embodiment, the operation test using the web browser in which the status bar 664 and the frame line 666 having a certain width are arranged in the browser window 632 is the same as in the first embodiment. The effect of can be realized. In other words, in addition to the header area, a captured image that excludes a portion that hinders confirmation of the result of the operation test, such as a status bar and a frame line, can be presented to the user.
 以上、本発明を第1の実施の形態および第2の実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、変形例を示す。 The present invention has been described based on the first embodiment and the second embodiment. This embodiment is an exemplification, and it will be understood by those skilled in the art that various modifications can be made to combinations of the respective constituent elements and processing processes, and such modifications are also within the scope of the present invention. is there. Hereinafter, a modification is shown.
 第1の変形例を説明する。上記実施の形態においては、ヘッダ領域636はクライアント領域634の上部に配置されることとしたが、ブラウザウィンドウ632の態様はこれに限られない。例えば、ヘッダ領域636はクライアント領域634の左側に配置されてもよい。この場合、ヘッダ領域特定部604は、ブラウザウィンドウ632の横の長さとクライアント領域634の横の長さとを取得して、それらの差を計算することにより、ヘッダ領域636の横の長さを特定してもよい。そして、クライアント領域特定部606は、ブラウザウィンドウ632の左上端の横座標値に、ヘッダ領域636の横の長さを加算する一方、その縦座標値はそのまま用いて、クライアント領域634の左上端の座標を導出してもよい。 A first modification will be described. In the above embodiment, the header area 636 is arranged above the client area 634, but the mode of the browser window 632 is not limited to this. For example, the header area 636 may be disposed on the left side of the client area 634. In this case, the header area specifying unit 604 specifies the horizontal length of the header area 636 by acquiring the horizontal length of the browser window 632 and the horizontal length of the client area 634 and calculating the difference between them. May be. Then, the client area specifying unit 606 adds the horizontal length of the header area 636 to the abscissa value of the upper left corner of the browser window 632, while using the ordinate value as it is, the upper left corner of the client area 634. Coordinates may be derived.
 第2の変形例を説明する。上記実施の形態では特に言及していないが、第1実施形態と第2実施形態とは組み合わせられて、同一の動作検証装置100において実現されてもよい。例えば、プロキシ処理部166は、Safariブラウザ562を起動したブラウザウィンドウの表示画像をキャプチャする際に呼び出される第1の画像位置特定部と、FFブラウザ546を起動したブラウザウィンドウの表示画像をキャプチャする際に呼び出される第2の画像位置特定部を含んでもよい。そして、プロキシ処理部166は、キャプチャ対象となるブラウザウィンドウの種別に応じて、いずれかを動作させてもよい。 A second modification will be described. Although not particularly mentioned in the above embodiment, the first embodiment and the second embodiment may be combined and realized in the same operation verification apparatus 100. For example, when the proxy processing unit 166 captures the display image of the browser window in which the FF browser 546 is activated and the first image position specifying unit that is called when capturing the display image of the browser window in which the Safari browser 562 is activated. May include a second image position specifying unit to be called. Then, the proxy processing unit 166 may operate one of them depending on the type of browser window to be captured.
 別の構成として、画像位置特定部600のヘッダ領域特定部604およびクライアント領域特定部606は、キャプチャ対象となるブラウザウィンドウの種別に応じて、第1実施形態に記載の動作もしくは第2実施形態に記載の動作のいずれかを実行してもよい。なお、ブラウザウィンドウの種別は、動作テスト開始時の引数や、各種設定ファイルにおいてユーザが指定してもよく、OSやブラウザ処理部160から動的に読み込んでもよい。 As another configuration, the header area specifying unit 604 and the client area specifying unit 606 of the image position specifying unit 600 perform the operation described in the first embodiment or the second embodiment according to the type of browser window to be captured. Any of the operations described may be performed. Note that the browser window type may be specified by the user in an argument at the start of the operation test or in various setting files, or may be dynamically read from the OS or the browser processing unit 160.
 第3の変形例を説明する。上記実施の形態ではクライアント領域634が複数のフレームに分割された例を示したが、クライアント領域634は必ずしも複数のフレームに分割されなくてもよい。この場合、フレーム処理部614は、クライアント領域全体を1つのフレームととらえて、実施の形態と同様に動作すればよい。また、エレメント処理部619は、クライアント領域全体に含まれるエレメントを、1つのフレームに含まれるエレメントととらえて、実施の形態と同様に動作すればよい。 A third modification will be described. In the above embodiment, the client area 634 is divided into a plurality of frames. However, the client area 634 is not necessarily divided into a plurality of frames. In this case, the frame processing unit 614 may operate in the same manner as in the embodiment, regarding the entire client area as one frame. Further, the element processing unit 619 may operate in the same manner as in the embodiment, regarding elements included in the entire client area as elements included in one frame.
 第4の変形例を説明する。上記実施の形態ではウェブブラウザとしてSafariブラウザ562とFFブラウザ546を例示した。しかし、本発明の技術思想の適用範囲はこれらの種類のウェブブラウザには限られない。例えば、ブラウザウィンドウ632においてステータスバー664が未配置で、かつ、枠線666の幅が所定値未満のウェブブラウザについては、第1実施形態の技術を適用可能である。また、ステータスバー664が配置され、かつ、枠線666の幅が所定値以上のウェブブラウザについては、第2実施形態の技術を適用可能である。また、ステータスバー664が配置されるものの枠線666の幅が所定値未満である場合や、逆に、ステータスバー664が未配置であるものの枠線666の幅が所定値以上である場合、第1実施形態および第2実施形態の構成を適宜選択して組み合わせてよいことは当業者には理解されるところである。 A fourth modification will be described. In the above embodiment, the Safari browser 562 and the FF browser 546 are illustrated as web browsers. However, the scope of application of the technical idea of the present invention is not limited to these types of web browsers. For example, the technology of the first embodiment can be applied to a web browser in which the status bar 664 is not arranged in the browser window 632 and the width of the frame line 666 is less than a predetermined value. Further, the technology of the second embodiment can be applied to a web browser in which the status bar 664 is arranged and the width of the frame line 666 is a predetermined value or more. Further, when the width of the frame line 666 is less than a predetermined value when the status bar 664 is disposed, or conversely, when the width of the frame line 666 is not greater than the predetermined value when the status bar 664 is not disposed, Those skilled in the art will understand that the configurations of the first embodiment and the second embodiment may be appropriately selected and combined.
 第5の変形例を説明する。上記実施の形態では特に言及していないが、動作検証装置100は、動作テストにおいて取得されたキャプチャ画像が一致するか否かを照合するための照合画像を保持する照合画像保持部をさらに備えてもよい。この照合画像は、実施の形態のキャプチャ画像と同様に、フレーム単位・エレメント単位で設定された画像データである。 A fifth modification will be described. Although not particularly mentioned in the above embodiment, the operation verification apparatus 100 further includes a verification image holding unit that holds a verification image for verifying whether the captured images acquired in the operation test match. Also good. This collation image is image data set in units of frames and elements, as in the capture image of the embodiment.
 また動作検証装置100は、証左物としてのキャプチャ画像と照合画像とが一致するか否かを判定する照合部をさらに備えてもよい。証左物としてのキャプチャ画像は、動作テストにおけるキャプチャ画像であり、言い換えれば画像合成部627により合成された画像であり、さらに言い換えれば結果保持部152に格納されたキャプチャ画像である。照合部は、キャプチャ画像と照合画像とが一致するか否かの判定結果を、所定の記憶領域(ファイルやDB等)に格納してユーザへ通知してもよい。この変形例によれば、動作の正常性の判定を自動化して、効率的な動作テストを支援できる。また、上記実施の形態では、ヘッダ領域が除外された、純粋なウェブコンテンツの内容がキャプチャされるため、照合領域の除外設定(いわゆるマスク処理)が不要になり、キャプチャ画像と照合画像とが一致するか否かを容易に判定できる。 The operation verification apparatus 100 may further include a verification unit that determines whether the captured image as the evidence and the verification image match. The captured image as the evidence is a captured image in the operation test, in other words, an image synthesized by the image synthesizing unit 627, and in other words, a captured image stored in the result holding unit 152. The collation unit may store the determination result as to whether the captured image and the collation image match in a predetermined storage area (file, DB, etc.) and notify the user. According to this modification, it is possible to support the efficient operation test by automating the determination of the normality of the operation. Further, in the above embodiment, pure web content contents with the header area excluded are captured, so that the exclusion setting of the verification area (so-called mask processing) becomes unnecessary, and the captured image matches the verification image. It can be easily determined whether or not to do so.
 上述した参考技術、実施の形態、変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる参考技術、実施の形態、変形例それぞれの効果をあわせもつ。 Any combination of the above-described reference techniques, embodiments, and modifications is also useful as an embodiment of the present invention. The new embodiment resulting from the combination has the effects of the combined reference technology, embodiment, and modification.
 請求項に記載の各構成要件が果たすべき機能は、参考技術、実施の形態、および変形例において示された各構成要素の単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。 It is understood by those skilled in the art that the functions to be fulfilled by the constituent elements described in the claims are realized by a single element or a combination of the constituent elements shown in the reference technology, the embodiments, and the modifications. By the way.
 100 動作検証装置、 160 ブラウザ処理部、 166 プロキシ処理部、 170 証左物設定部、 600 画像位置特定部、 602 ウィンドウ表示位置取得部、 604 ヘッダ領域特定部、 606 クライアント領域特定部、 608 フレーム相対位置取得部、 610 フレーム表示位置特定部、 612 対象特定部、 625 画像取得部、 627 画像合成部、 630 画面、 632 ブラウザウィンドウ、 634 クライアント領域、 636 ヘッダ領域、 664 ステータスバー、 666 枠線。 100 operation verification device, 160 browser processing unit, 166 proxy processing unit, 170 evidence object setting unit, 600 image position specifying unit, 602 window display position acquisition unit, 604 header area specifying unit, 606 client area specifying unit, 608 frame relative position Acquisition unit, 610 frame display position specifying unit, 612 target specifying unit, 625 image acquiring unit, 627 image compositing unit, 630 screen, 632 browser window, 634 client area, 636 header area, 664 status bar, 666 frame line.
 この発明は、製品の動作をテストする装置に利用できる。 This invention can be used for an apparatus for testing the operation of a product.

Claims (8)

  1.  ウェブページが表示されるクライアント領域と、前記クライアント領域とは異なる付加領域とを含むブラウザウィンドウについて、画面上における前記ブラウザウィンドウの表示位置を取得するウィンドウ位置取得部と、
     前記画面上における前記ブラウザウィンドウの表示位置と、前記ブラウザウィンドウの付加領域のサイズと、前記ブラウザウィンドウのステータスバーのサイズとにしたがって、前記画面上における前記クライアント領域の表示位置を特定する画像位置特定部と、
     前記画像位置特定部により特定された前記画面上における表示位置にしたがって、前記クライアント領域の表示画像をキャプチャする画像取得部と、
     を備えることを特徴とする画像取得装置。
    A window position acquisition unit for acquiring a display position of the browser window on a screen for a browser window including a client area in which a web page is displayed and an additional area different from the client area;
    Image position specification for specifying the display position of the client area on the screen according to the display position of the browser window on the screen, the size of the additional area of the browser window, and the size of the status bar of the browser window And
    An image acquisition unit that captures a display image of the client area according to a display position on the screen specified by the image position specifying unit;
    An image acquisition apparatus comprising:
  2.  前記画像取得部は、前記ブラウザウィンドウの付加領域をキャプチャの対象から除外することを特徴とする請求項1に記載の画像取得装置。 The image acquisition apparatus according to claim 1, wherein the image acquisition unit excludes an additional area of the browser window from a target to be captured.
  3.  前記画像位置特定部は、
     前記ブラウザウィンドウの長さと前記クライアント領域の長さとを取得して、前記ブラウザウィンドウの長さから、前記クライアント領域の長さと、前記ステータスバーのサイズとして予め定められた長さとを減算することにより、前記付加領域の長さを導出する付加領域特定部と、
     前記画面上における前記ブラウザウィンドウの表示位置を前記付加領域の長さに応じてシフトした位置を、前記画面上における前記クライアント領域の表示位置として特定するクライアント領域特定部と、
     を含むことを特徴とする請求項1または2に記載の画像取得装置。
    The image position specifying unit includes:
    By obtaining the length of the browser window and the length of the client area, by subtracting the length of the client area and the length predetermined as the size of the status bar from the length of the browser window, An additional area specifying unit for deriving the length of the additional area;
    A client area specifying unit that specifies, as the display position of the client area on the screen, a position obtained by shifting the display position of the browser window on the screen according to the length of the additional area;
    The image acquisition apparatus according to claim 1, further comprising:
  4.  前記ブラウザウィンドウにおいて、前記付加領域は前記クライアント領域の上部に配置され、前記ステータスバーは前記クライアント領域の下部に配置されるものであり、
     前記ウィンドウ位置取得部は、前記画面上における前記ブラウザウィンドウの表示位置として、直交座標系における前記ブラウザウィンドウの左上座標を取得し、
     前記付加領域特定部は、前記付加領域の縦の長さを特定し、
     前記クライアント領域特定部は、前記ブラウザウィンドウの左上座標における縦座標値に前記付加領域の縦の長さを加算することにより、前記直交座標系における前記クライアント領域の左上座標を導出することを特徴とする請求項3に記載の画像取得装置。
    In the browser window, the additional area is arranged at the top of the client area, and the status bar is arranged at the bottom of the client area,
    The window position acquisition unit acquires the upper left coordinates of the browser window in an orthogonal coordinate system as the display position of the browser window on the screen,
    The additional area specifying unit specifies a vertical length of the additional area,
    The client area specifying unit derives the upper left coordinates of the client area in the orthogonal coordinate system by adding the vertical length of the additional area to the ordinate value in the upper left coordinates of the browser window. The image acquisition apparatus according to claim 3.
  5.  前記クライアント領域特定部は、前記ブラウザウィンドウの左上座標における縦座標値に前記付加領域の縦の長さを加算することにより、前記クライアント領域の左上座標における縦座標値を導出する一方、前記ブラウザウィンドウの左上座標における横座標値に、前記ブラウザウィンドウと外部との境界を示す枠線の幅として予め定められた長さを加算することにより、前記クライアント領域の左上座標における横座標値を導出することを特徴とする請求項4に記載の画像取得装置。 The client area specifying unit derives the ordinate value in the upper left coordinate of the client area by adding the vertical length of the additional area to the ordinate value in the upper left coordinate of the browser window, while the browser window Deriving the abscissa value in the upper left coordinate of the client area by adding a predetermined length as the width of the frame line indicating the boundary between the browser window and the outside to the abscissa value in the upper left coordinate of The image acquisition apparatus according to claim 4.
  6.  前記クライアント領域には複数のフレームが含まれ、
     本装置は、前記複数のフレームのうちキャプチャ対象のフレームについて、前記クライアント領域における前記キャプチャ対象のフレームの位置を取得するフレーム位置取得部をさらに備え、
     前記画像位置特定部は、前記画面上における前記クライアント領域の表示位置と、前記クライアント領域における前記キャプチャ対象のフレームの位置とにしたがって、前記画面上における前記キャプチャ対象のフレームの表示位置を特定し、
     前記画像取得部は、前記画面上における前記キャプチャ対象のフレームの表示位置にしたがって、前記キャプチャ対象のフレームの表示画像をキャプチャすることを特徴とする請求項1から5のいずれかに記載の画像取得装置。
    The client area includes a plurality of frames,
    The apparatus further includes a frame position acquisition unit that acquires a position of the capture target frame in the client area for the capture target frame among the plurality of frames.
    The image position specifying unit specifies the display position of the capture target frame on the screen according to the display position of the client area on the screen and the position of the capture target frame on the client area,
    The image acquisition unit according to claim 1, wherein the image acquisition unit captures a display image of the capture target frame according to a display position of the capture target frame on the screen. apparatus.
  7.  画像取得装置により実行される方法であって、
     ウェブページが表示されるクライアント領域と、前記クライアント領域とは異なる付加領域とを含むブラウザウィンドウについて、画面上における前記ブラウザウィンドウの表示位置を取得するステップと、
     前記画面上における前記ブラウザウィンドウの表示位置と、前記ブラウザウィンドウの付加領域のサイズと、前記ブラウザウィンドウのステータスバーのサイズとにしたがって、前記画面上における前記クライアント領域の表示位置を特定するステップと、
     前記特定するステップにおいて特定された前記画面上における表示位置にしたがって、前記クライアント領域の表示画像をキャプチャするステップと、
     を備えることを特徴とする画像取得方法。
    A method performed by an image acquisition device,
    Obtaining a display position of the browser window on a screen for a browser window including a client area in which a web page is displayed and an additional area different from the client area;
    Identifying the display position of the client area on the screen according to the display position of the browser window on the screen, the size of the additional area of the browser window, and the size of the status bar of the browser window;
    Capturing a display image of the client area according to a display position on the screen specified in the specifying step;
    An image acquisition method comprising:
  8.  画像取得装置に、
     ウェブページが表示されるクライアント領域と、前記クライアント領域とは異なる付加領域とを含むブラウザウィンドウについて、画面上における前記ブラウザウィンドウの表示位置を取得する機能と、
     前記画面上における前記ブラウザウィンドウの表示位置と、前記ブラウザウィンドウの付加領域のサイズと、前記ブラウザウィンドウのステータスバーのサイズとにしたがって、前記画面上における前記クライアント領域の表示位置を特定する機能と、
     前記特定する機能により特定された前記画面上における表示位置にしたがって、前記クライアント領域の表示画像をキャプチャする機能と、
     を実現させるためのコンピュータプログラム。
    In the image acquisition device,
    A browser window including a client area in which a web page is displayed and an additional area different from the client area, a function of acquiring a display position of the browser window on a screen;
    A function for specifying the display position of the client area on the screen according to the display position of the browser window on the screen, the size of the additional area of the browser window, and the size of the status bar of the browser window;
    A function of capturing a display image of the client area according to a display position on the screen specified by the specifying function;
    Computer program for realizing.
PCT/JP2010/005827 2010-09-28 2010-09-28 Image acquisition device, image acquisition method, and computer program WO2012042560A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2010/005827 WO2012042560A1 (en) 2010-09-28 2010-09-28 Image acquisition device, image acquisition method, and computer program
JP2012506253A JP5303680B2 (en) 2010-09-28 2010-09-28 Image acquisition apparatus, image acquisition method, and computer program
CN201080043089.XA CN102549556B (en) 2010-09-28 2010-09-28 Image capturing device, image acquisition method and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/005827 WO2012042560A1 (en) 2010-09-28 2010-09-28 Image acquisition device, image acquisition method, and computer program

Publications (1)

Publication Number Publication Date
WO2012042560A1 true WO2012042560A1 (en) 2012-04-05

Family

ID=45892071

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/005827 WO2012042560A1 (en) 2010-09-28 2010-09-28 Image acquisition device, image acquisition method, and computer program

Country Status (3)

Country Link
JP (1) JP5303680B2 (en)
CN (1) CN102549556B (en)
WO (1) WO2012042560A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015138479A (en) * 2014-01-24 2015-07-30 レノボ・シンガポール・プライベート・リミテッド Method for sharing web site, electronic equipment, and computer program
JP2016066227A (en) * 2014-09-24 2016-04-28 富士通株式会社 Incompatibility detecting device, incompatibility detecting method and program

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110909739B (en) * 2019-11-19 2021-01-08 广东润联信息技术有限公司 Picture identification and operation method and device, computer equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005266954A (en) * 2004-03-16 2005-09-29 Hitachi Software Eng Co Ltd Operation information recording/reproduction apparatus
JP2010039901A (en) * 2008-08-07 2010-02-18 Nomura Research Institute Ltd Operation verification device and operation verification program

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6456305B1 (en) * 1999-03-18 2002-09-24 Microsoft Corporation Method and system for automatically fitting a graphical display of objects to the dimensions of a display window
CN100517332C (en) * 2007-01-11 2009-07-22 深圳市光芒科技有限公司 Web page content block intelligent intercepting method
CN100592292C (en) * 2007-04-09 2010-02-24 腾讯科技(深圳)有限公司 Web page screen-cutting system and implementation method
JP5324375B2 (en) * 2009-09-29 2013-10-23 株式会社日立ソリューションズ Capture system
CN101727495B (en) * 2009-12-31 2012-03-28 优视科技有限公司 Web page zoom-in and zoom-out management system for mobile communication device terminal and application method thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005266954A (en) * 2004-03-16 2005-09-29 Hitachi Software Eng Co Ltd Operation information recording/reproduction apparatus
JP2010039901A (en) * 2008-08-07 2010-02-18 Nomura Research Institute Ltd Operation verification device and operation verification program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Window Capture", 27 August 2007 (2007-08-27), Retrieved from the Internet <URL:http://yokohama.cool.ne.jp/chokuto/advanced/capturewindow.html> [retrieved on 20101209] *
MICROSOFT CORP.: "CWnd::RedrawWindow", November 2007 (2007-11-01), Retrieved from the Internet <URL:http://msdn.microsoft.com/ja-jp/library/Ofdz8ey6(VS.90).aspx> [retrieved on 20101209] *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015138479A (en) * 2014-01-24 2015-07-30 レノボ・シンガポール・プライベート・リミテッド Method for sharing web site, electronic equipment, and computer program
JP2016066227A (en) * 2014-09-24 2016-04-28 富士通株式会社 Incompatibility detecting device, incompatibility detecting method and program

Also Published As

Publication number Publication date
CN102549556B (en) 2016-09-28
CN102549556A (en) 2012-07-04
JP5303680B2 (en) 2013-10-02
JPWO2012042560A1 (en) 2014-02-03

Similar Documents

Publication Publication Date Title
US7421683B2 (en) Method for the use of information in an auxiliary data system in relation to automated testing of graphical user interface based applications
WO2010116586A1 (en) Operation verification device, operation verification method, and operation verification system
US20090031227A1 (en) Intelligent screen capture and interactive display tool
US20130097484A1 (en) Method and system of operation retrieval for web application
US20170147480A1 (en) Test script generation
JP7248067B2 (en) Information processing device and program
JP2012103786A (en) Test support device, control method, and program
JP2015219890A (en) Management device, and control method and program for the same
JP2010061334A (en) File management system, file management method, and program
JP5303680B2 (en) Image acquisition apparatus, image acquisition method, and computer program
WO2012042561A1 (en) Image acquisition device, image acquisition method, and computer program
CN114489625A (en) Method and device for converting JSON format text into visual configuration tool
JP5379911B2 (en) Operation verification apparatus, operation verification method, and operation verification program
JP2010237841A (en) Device and program for operation verification
JP4681673B1 (en) Operation verification apparatus, operation verification method, and operation verification program
US10884711B2 (en) Code management system and code management method using a visual programming tool
JP4846029B2 (en) Operation verification apparatus, operation verification method, and operation verification program
JP4846030B2 (en) Operation verification apparatus, operation verification method, and operation verification program
CN105739717B (en) Data inputting method and device
JP4795404B2 (en) Operation verification apparatus and operation verification program
JP2009025977A (en) Operation history function in middle-ware
JP2009223568A (en) Scenario-generating device and program
JP5379910B2 (en) Operation verification apparatus, operation verification method, and operation verification program
JP4903279B2 (en) Operation verification apparatus, operation verification method, and operation verification program
US20050122336A1 (en) Information processing system, information processor for information registration, information processor for information retrieval, information processing method for information registration, and information processing method for information retrieval, program, and recording medium

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080043089.X

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2012506253

Country of ref document: JP

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10857778

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10857778

Country of ref document: EP

Kind code of ref document: A1