WO2012104991A1 - Program test method, program test system, and program - Google Patents

Program test method, program test system, and program Download PDF

Info

Publication number
WO2012104991A1
WO2012104991A1 PCT/JP2011/052009 JP2011052009W WO2012104991A1 WO 2012104991 A1 WO2012104991 A1 WO 2012104991A1 JP 2011052009 W JP2011052009 W JP 2011052009W WO 2012104991 A1 WO2012104991 A1 WO 2012104991A1
Authority
WO
WIPO (PCT)
Prior art keywords
test
data
program
executed
read
Prior art date
Application number
PCT/JP2011/052009
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/JP2011/052009 priority Critical patent/WO2012104991A1/en
Publication of WO2012104991A1 publication Critical patent/WO2012104991A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Definitions

  • the present invention relates to a program test method, a program test system, and a program.
  • program When developing a computer program (hereinafter simply referred to as “program”), various tests are executed for the purpose of verifying the operation of the program. In addition to new development, it was created in the past for the program at the time of function expansion (enhancement) that is executed in a timely manner from the viewpoint of preventing function degradation (degradation) after starting program operation.
  • the test is run as a regression test.
  • new test items are added to the test to be executed as the program is updated after the operation is started, so that the execution time of the regression test keeps increasing. For this reason, for example, even if the regression test is executed by batch processing at night when the program is stopped, there are cases where the test does not end by the next morning when the operation should be resumed.
  • test-specific requirement in the testing of a program that it is necessary to ensure the independence between the components constituting the target program. For this reason, in testing different components, even if the same test data is used, the test data must be reloaded every time the test of each component is executed, and the load time of the same content test data However, inefficiencies that occur redundantly are particularly problematic.
  • Patent Document 1 discloses a configuration that reduces the time required for program test and automates it for the purpose of providing a program test system and a program test method that can efficiently test a program. Yes. Specifically, the test data used for the test is once loaded into the database to create a real table. Thereafter, a test is executed, and a virtual table is created when the test target program tries to access the real table. The test target program accesses only the virtual table and does not access the test data of the real table. As a result, when the test data is returned to the initial state, it is only necessary to create and delete the virtual table, and it is not necessary to load the test data from the database, thereby reducing the test time.
  • the present invention has been made to solve the above-mentioned and other problems.
  • the test is performed by reducing the time required for loading test data for each program as much as possible.
  • the purpose is to reduce the execution time itself and execute the test efficiently.
  • One aspect of the present invention for solving the above-mentioned and other problems is to make test data used for each test available for each program in order to test a plurality of programs, and for each test First data that is a part of the test data changed by the test among the test data used by the test of the program executed immediately before by the computer that causes each program to execute data processing Second data which is a part of the test data to be accessed by the test among the test data to be read for the other program to be subjected to the test to be recorded and to be subsequently executed The other portion in which the difference between the first data portion and the second data portion is minimized.
  • Serial continue is a method of testing a program to be selected as a target to run the test program.
  • the time required for loading test data for each program is reduced as much as possible, thereby reducing the test execution time itself and efficiently executing the test. Can do.
  • FIG. 1 is a schematic diagram showing a general execution procedure of a program test.
  • FIG. 2 is a schematic diagram showing an outline of processing executed by the program test system according to the embodiment of the present invention.
  • FIG. 3 is a schematic configuration diagram of the program test system 1 according to the embodiment of the present invention.
  • FIG. 4 is a diagram illustrating an example of a hardware configuration of the computer 10.
  • FIG. 5 is a diagram showing an example of the software configuration of the client computer 100 included in the program test system 1.
  • FIG. 6 is a diagram showing an example of the software configuration of the server computer 200 included in the program test system 1.
  • FIG. 7 is a diagram showing a configuration example of the test script 141 used in the program test system 1.
  • FIG. 8 is a diagram illustrating a configuration example of the test group information storage table 142.
  • FIG. 9 is a diagram illustrating a configuration example of the test script information storage table 143.
  • FIG. 10 is a diagram showing an example of the test result 144 obtained by the program test system 1.
  • FIG. 11 is a diagram illustrating a configuration example of the business application table 241.
  • FIG. 12 is a diagram showing a configuration example of the test data 242 used in the program test system 1.
  • FIG. 13 is a diagram illustrating a configuration example of the load time information storage table 243.
  • FIG. 14 is a diagram showing a configuration example of the database operation information storage table 244.
  • FIG. 15 is a diagram showing a configuration example of the database update information storage table 245.
  • FIG. 16 is a diagram illustrating a configuration example of the update location table 1500.
  • FIG. 17 is a diagram illustrating a configuration example of the restoration location table 1550.
  • FIG. 18 is a flowchart illustrating an example of the test execution order changing process.
  • FIG. 19 is a flowchart showing an example of the runtime information recording process.
  • FIG. 20 is a flowchart illustrating an example of the test group selection process.
  • FIG. 21 is a flowchart showing an example of the data loading process.
  • FIG. 1 is a schematic diagram showing a general execution procedure of a program test
  • FIG. 2 is a schematic diagram showing an outline of a program test executed by the program test system of the present embodiment.
  • test data used for testing each of the components A, B, and C
  • the conventional target program is tested.
  • test data a is loaded onto a computer on which the target program is running and then component A is operated to perform a test.
  • test data b is loaded and component B is loaded.
  • a procedure was taken in which the test was executed and then the test of component C was executed by loading test data c. This procedure is the same even if the data a, b, and c are the same test data.
  • component means a functional module that realizes a single function in the target program.
  • a form in which each component itself is an application that constitutes higher-order system software is also included.
  • Load of test data means the time required for the test data stored in any storage medium to be used by the target program after being loaded into the computer on which the target program operates. It has a broad concept including the user's operation as a trigger for the above.
  • the program test system reduces the time required for test execution as much as possible by reducing the time required for loading test data a, b, and c as much as possible by changing the test execution order for components A, B, and C. It is what.
  • the execution order of tests may be constrained in order to maintain the consistency of test results. In this embodiment, such an execution order is guaranteed for each component.
  • the order of execution can be freely changed.
  • FIG. 2 schematically shows an outline of a program test executed by the program test system of the present embodiment.
  • this program test system for a plurality of components (components A to C in FIG. 2) included in the target program, it is determined that the load time of the test data is reduced when the component test execution order is changed.
  • the program test system manages the test execution order so that the test execution order for the components is changed.
  • test tool is a set of test scripts necessary for executing the test of the target program, and a commercially available test tool or the like can be used.
  • test group is a set of test scripts that are executed when testing the components A to C of the target program.
  • the execution order changing unit is one of the functional units that realize the main functions of the present embodiment, and the execution order of the test groups A, B, and C so that the load time of the test data related to each test group is shortened as much as possible. Manage.
  • the execution order changing unit that has received the information on the first test group specified by the user via the test tool first loads the test data A, and after the loading of the test data A, the test script included in the test group A Are executed sequentially.
  • the business application that is the target program is executed.
  • the business application runs on the program execution platform set in the computer on which the business application is installed.
  • the program execution platform is, for example, a Java (registered trademark) virtual machine that operates on a server computer on which an appropriately selected operating system is mounted.
  • the business application When the business application is executed by the test script included in the test group A, the business application accesses the test data a loaded in the test database. After the test by the test group A is completed, the tests by the test groups B and C are sequentially executed following the loading of the test data b and c.
  • the program execution platform stores the status when the business application accesses the database by the test groups A, B, and C as runtime information.
  • the execution order changing unit reads the execution time information stored in the program execution base during the initial test.
  • the execution order changing unit determines, based on the execution time information, which test group performs the next test efficiently based on the execution time information on the basis of the effect of reducing the load time of the test data.
  • the execution order switching unit needs to load a new test data or only a part of the test data that needs to be loaded. Test whether the test data that needs to be loaded or the entire test data that needs to be loaded should be loaded, and which should be executed Load data and run tests.
  • the test data loading method is determined each time a test for one test group is completed.
  • the program execution platform records the access status to the database when the business application operates according to each test group as runtime information.
  • the reason for recording the runtime information in this way is that the access status to the business application database may change due to program updates, modifications, and the like.
  • the test execution order is changed to the test groups A, C, and B in accordance with the determination result of the execution order changing unit based on the runtime information.
  • FIG. 3 shows a configuration example of the program test system 1 according to the present embodiment.
  • the program test system 1 includes one or more clients 100, a server 200, and a communication network 300.
  • the client 100 is a computer in which a test program (test tool) is installed and operating in the program test system 1.
  • the server 200 is a computer on which various business applications are installed and operated. This business application is a test target (target program) of the program test system 1.
  • the communication network 300 is a communication line that connects the client 100 and the server 200 so that they can communicate with each other.
  • the communication network 300 is appropriately selected from various wired or wireless networks including a LAN (Local Area Network), the Internet, and a dedicated line. be able to.
  • FIG. 4 shows a hardware configuration example of the computer 10 that can be used as the client 100 or the server 200.
  • a computer 10 illustrated in FIG. 4 includes a central processing unit 11, a main storage device 12, an auxiliary storage device 13, an input device 14, an output device 15, and a communication interface (hereinafter “communication I / F”) 16.
  • communication I / F a communication interface
  • the central processing unit 11 includes, for example, a CPU (Central Processing Unit), an MPU (Micro-Processing Unit), and the like (hereinafter simply referred to as “CPU”).
  • the main storage device 12 is, for example, a RAM (Random Access Memory) or a ROM (Read Only Memory), and provides various programs executed by the CPU 11 and storage areas for various data processed by these programs.
  • the auxiliary storage device 13 is a storage device such as a hard disk drive (Hard Disk Drive, HDD), a semiconductor storage drive (Solid State Drive, SSD), and various programs and tests that implement the functions of the program test system 1 of the present embodiment. Stores data, business application programs and processing data thereof.
  • HDD Hard Disk Drive
  • SSD Solid State Drive
  • the input device 14 is an input device used when executing a data input / output operation according to a function provided by a program described later, and includes, for example, a keyboard or a mouse. As the input device 14, other types of input devices such as a touch panel, a pen tablet, and a voice input device may be provided.
  • the output device 15 is an output device for outputting data processed by the program, and includes an output device of an appropriate format such as a liquid crystal display, a printer, and an audio output device.
  • the input device 14 is used to select the type of test executed by the user, items, a test target program, and the like.
  • the output device 15 is used to output a test result (success or failure) of the executed test so that the user can confirm it.
  • the communication I / F 16 is an interface circuit for connecting the computer 10 used as the client 100 or the server 200 to the communication network 300 in FIG. 1, and includes, for example, a NIC (Network Interface Card).
  • the CPU 11, the memory 12, the auxiliary storage device 13, the input device 14, the output device 15, and the communication I / F 16 are communicably connected by an internal bus 17 adopting an appropriate communication standard.
  • FIG. 5 shows an example of the software configuration of the client 100.
  • OS Operaation System
  • data I / O unit 120 data I / O unit 120
  • execution order changing unit 130 is installed in the client 100 of the present embodiment.
  • the execution order switching unit 130 further includes functional modules of a test group selection unit 131, a load method selection unit 132, and a test execution unit 133.
  • the client 100 also includes a test script 141, a test group information storage table 142, a test script information storage table 143, and test results as data used by the execution order changing unit 130 or data processed by the execution order changing unit 130. 144 are stored respectively. Each functional module of the execution order changing unit 130 is read by the CPU 11 into the memory 12 and executed.
  • the test script 141, the test group information storage table 142, the test script information storage table 143, and the test result 144 are stored in the auxiliary storage device 13, and are read out by the execution order changing unit 130 in a timely manner and used for processing.
  • the data I / O unit 120 has a function of managing data input / output processing between various software operating on the client 100 and the input device 14 and the output device 15. Includes compatible device drivers.
  • the execution order changing unit 130 reduces the test execution time as much as possible for a test executed on a business application operating on the server 200 described later.
  • the function modules of the test group selection unit 131, the load method selection unit 132, and the test execution unit 133 are included as described above.
  • the test group selection unit 131 selects a test group to be executed next from a test group that is a set of test scripts that execute a test using the same test data according to a predetermined processing flow described later. It is.
  • the test group selection unit 131 executes processing based on runtime information held on the server 200 side to be described later, that is, database operation information and database update information.
  • the load method selection unit 132 loads a test data used by each test group into a database management system (DataBase Management System, hereinafter referred to as “DBMS”) stored in the server 200 described later. Is a functional module that executes a process of reading test data into the DBMS by the selected loading method.
  • the load method selection unit 132 uses the processing result of the test group selection unit 131 and the later-described load time information held in the server 200 to read the entire test data used for the test group to be executed next. A selection is made as to whether to execute an entire load process, which is a process, or a partial load process, which is a process for reading only necessary portions of test data.
  • loading test data refers to test data (in this embodiment, an auxiliary storage device 13 such as an HDD, etc.) stored in the server 200 by a data load unit 234 that operates on the server 200 described later.
  • auxiliary storage device 13 such as an HDD, etc.
  • the test execution unit 133 is a functional block having a function of sequentially executing test scripts belonging to the test group selected by the processing result of the test group selection unit 131 and verifying the execution result.
  • the test execution unit 133 executes the test script
  • the test execution unit 133 notifies the program execution unit 232 of the server 200 described later of information on which test script is being executed.
  • a Web application operates as a business application to be described later on the server 200. Therefore, for example, a test script is specified in an HttpRequest statement transmitted from the client 100 to the server 200 using a cookie.
  • the test script ID information is embedded and transmitted to the server 200. In the server 200, the test script ID is read by the program execution unit 232 or the runtime information recording unit 233 described later.
  • the test execution unit 133 confirms that the response from the business application of the server 200 is the same as the expected result (whether a normal result is obtained as a test result). To verify. The verified result is stored as a test result 144 described later.
  • the test script 141 is a file for automatically executing the test of this embodiment, and an example thereof is shown in FIG. In the example of FIG. 7, what input parameter is passed to which page of the Web application is held in an XML (eXtensible Markup Language) format.
  • the format of the test script 141 depends on the test tool employed by the program test system 1.
  • the example of FIG. 7 illustrates a test script with a test script ID of 1001.
  • the business application accesses the Web page specified by “http://management.book/stock/” and enters “title”. A process for searching for an item by the value “ ⁇ ” is executed.
  • the test group information storage table 142 is a table that holds in correspondence with which test data each test group uses to execute a test.
  • FIG. 8 shows an example of the test group information storage table 142.
  • items of a test group 1421, test data 1422, and an executed flag 1423 are recorded.
  • an identification code for mutually identifying the test groups included in the program test system 1 is recorded. For example, for the test group A, “TestGroup_A” is recorded.
  • test data 1422 an identification code for mutually identifying the test data included in the program test system 1 is recorded.
  • a new record is added to the test group information storage table 142.
  • the executed flag 1423 records an executed flag that is information indicating whether a test by a corresponding test group has been executed in the past, and 1 is recorded when it has been executed. If the test by the corresponding test group 1421 has not been executed, 0 is recorded. Therefore, before execution of the first test and when a record related to the new test group 1421 is added, 0 is recorded in the executed flag 1423.
  • the test script information storage table 143 is a table for storing information regarding which test group each test script for executing the test of the target program belongs and where the test script is stored.
  • FIG. 9 shows an example of the test script information storage table 143.
  • the test script information storage table 143 items of a test script ID 1431, a test group 1432, and a file name 1433 are recorded in association with each other.
  • the test script ID 1431 is an identification code assigned to identify the test scripts 141 from each other.
  • the test group 1432 has the same identification code as the test group 1421 recorded in the test group information storage table 142.
  • the file name 1433 records the storage location where the test script 141 specified by the corresponding test script ID 1431 is stored, using the file name including the data path. When test scripts 141 belonging to the same test group 1432 are executed, the test scripts ID 1431 is executed in ascending order.
  • FIG. 10 shows an example of the test result 144.
  • the test result 144 indicates whether or not the test script 141 is executed for the target program, the execution result matches the normal execution result, and whether or not the correct test result is obtained by the test script execution.
  • a test script 141 that causes a business application as a book management system described later to search for a book whose title (title) is “ ⁇ ” is illustrated in FIG.
  • the search result of the search processing executed by the business application by the test script 141 in FIG. 7 is automatically confirmed by another test script 141 for determining whether the search result is appropriate, and is output as the test result 144.
  • FIG. 10 shows an example of the test result 144.
  • test result 144 indicates that a normal execution result was obtained as a result of executing the test script 141 of FIG. 7 (success).
  • the information of the test result 144 can be output from the output device 15 of the client 100, for example, and browsed by the user.
  • FIG. 6 shows a software configuration example of the server 200.
  • the server 200 is loaded with programs for realizing the functions of the OS 210, the data I / O unit 220, the business application 231, the program execution unit 232, the runtime information recording unit 233, and the data load unit 234.
  • the server 200 includes a DBMS 240, business application data 241, test data 242, load time information table 243, database operation information storage table (hereinafter “DB operation information storage table”) 244, and database update information storage table (hereinafter referred to as “database operation information storage table”).
  • DB update information storage table is stored in the auxiliary storage device 13, for example, and is read out by the business application 231, the program execution unit 232, the runtime information recording unit 233 and the data loading unit 234 in a timely manner. To be used.
  • the data I / O unit 220 has a function of managing data input / output processing between various software running on the server 200 and the input device 14 and the output device 15. Includes compatible device drivers.
  • the business application 231 is a target program to be tested by the program test system 1 of the present embodiment.
  • the business application 231 is a Web application that manages book inventory information, but the business application 231 may be an application program for any application.
  • the business application 231 calls and processes business application data 241 (to be described later) via the DBMS 240 (to be described later). Further, the business application 231 executes processing described in the test script 141 according to an instruction from the test execution unit 133 of the client 100 at the time of test execution.
  • the program execution unit 232 provides a program execution base necessary for executing the business application 231.
  • a Java virtual machine operating on an application server is assumed, but the present invention is not particularly limited to this configuration.
  • the program execution unit 232 receives from the business application 231 a SQL statement instructing processing to the DBMS 240 described later, the test script ID 1431 corresponding to the content of the SQL statement is notified to the runtime information recording unit 233 described later. Let me record. If a predetermined process to be executed before executing the SQL statement is defined, the program execution unit 232 performs the process. After the predetermined processing is completed, an SQL statement is issued to the DBMS 240. Thereafter, the SQL statement and the corresponding test script ID 1431 are notified again to the runtime information recording unit 233, and if a predetermined process after execution of the SQL statement is defined, the process is performed.
  • the runtime information recording unit 233 records the content of the issued SQL statement and the analysis result thereof in the DB operation information storage table 244 described later as database operation information.
  • the runtime information recording unit 233 records predetermined information before and after the SQL statement issued from the business application 231 is executed by the DBMS 240 as DB update information in the DB update information storage table 245 described later. .
  • the data load unit 234 reads later-described test data 242 used by each test group 1421 for testing the business application 231 that is the target program from a storage location in the auxiliary storage device 13, and is accessed later by the business application 231. Is stored in the business application data table 241. Further, the data load unit 234 measures the time required for loading the test data 242 and records it as load time information in a load time information storage table 243 described later.
  • the DBMS 240 receives a SQL statement including a database operation command from the business application 231 and performs data input / output processing on a business application table 241 described later.
  • the business application table 241 is a table storing data that is accessed and used by the business application 231 running on the server 200.
  • FIG. 11 shows a configuration example of the business application table 241.
  • the business application 231 of the present embodiment assumes an application program for performing book inventory management as described above. Therefore, the business application table 241 in FIG. 11 stores the items of id 2411, title 2412, publisher 2413, price 2414, and stock 2415 necessary for managing the inventory of the books in association with each other, and the “Books” table Name is given.
  • “Id” 2411 is an identification code for specifying each record recorded in the business application table 241.
  • “Title” 2412 operates the book application
  • “publisher” 2413 operates the publisher of the corresponding book
  • “price” 2414 operates the price of the corresponding book
  • “stock” 2415 operates the business application 231 for the corresponding book. The number of stocks held by each organization is recorded.
  • the type of data stored in the business application table 241 differs depending on the use and purpose of the business application 231, and a configuration in which two or more business application tables 241 are provided is also possible. It is.
  • the test data 242 is data used when the program test system 1 of the present embodiment executes a test of the business application 231, and is read into the business application data table 241 by the data load unit 234 during the test execution.
  • FIG. 12 shows an example of the test data 242.
  • Test data 242 illustrated in FIG. 12 is held in the auxiliary storage device 13 as a csv format file.
  • the test data 242 may be prepared and held in a dedicated storage table.
  • the load time information storage table 243 is a table that records the time required for the data load unit 234 to read the test data 242 into the business application table 241 together with related information.
  • An example of the load time information storage table 243 is shown in FIG.
  • items of test data 2431, load type 2432, row information 2433, column information 2434, and load time 2435 are recorded in association with each other.
  • an identification code of the test data 242 loaded by the data loading unit 234 is recorded.
  • the mode of the load process executed for the corresponding test data 242 is an entire load that is a process for loading the entire test data 242, or a process for loading only a part of the test data 242.
  • the type of partial load is recorded.
  • the line information 2433 the line information of the loaded part of the test data 242 in the partial load process is recorded using the ID of the test data 242.
  • column information 2434 column information of a portion loaded in the test data 242 in the partial load processing is recorded by a column label (title 2412, publisher 2413, price 2414, or stock 2415) of the business application table 241.
  • the load time 2435 the time required for the load process is recorded.
  • the time required to load the csv file as the test data 242 into the DBMS 240 is recorded.
  • a total value of a time for generating an SQL statement for changing (restoring) only a necessary portion of the business application table 241 and a time for executing the SQL statement is recorded.
  • the DB operation information storage table 244 is a table that records information regarding what SQL statements the business application 231 issued to the DBMS 240 and what operations were performed on the business application table 241. The data is recorded by the runtime information recording unit 233.
  • FIG. 14 shows an example of the DB operation information storage table 244.
  • items of a test script ID 2441, an SQL statement 2442, an access pattern 2443, an access table 2444, an access condition 2445, row information 2446, and column information 2447 are recorded in association with each other.
  • the test script ID 2441 is an identification code assigned to identify the test scripts 141 from each other.
  • the SQL statement 2442 an SQL statement issued from the business application 231 to the DBMS 240 during the test execution is recorded.
  • the SQL statement 2442 is detected by the program execution unit 232 and notified to the runtime information recording unit 233.
  • the access pattern 2443 records the contents of the operation executed by the corresponding SQL statement 2442. In the example of FIG. 14, any of select (selection), update (update), delete (deletion), and insert (insertion) may be recorded, but other operations defined in SQL may be recorded.
  • the access table 2444 records the table name of the table that is the target of the operation of the corresponding SQL sentence 2442. In the present embodiment, “Books” which is the name of the business application table 241 is recorded.
  • a condition for specifying a target of an operation executed by the corresponding SQL sentence 2442 is recorded as contents described by a where clause of the corresponding SQL sentence 2442.
  • the row information 2446 and the column information 2447 positions in the table “Books” where data acquired by executing the corresponding SQL statement 2442 exists are recorded.
  • the row information 2446 primary key information is recorded, and in the column information 2447, the corresponding column name is recorded.
  • an operation for acquiring a title of a book whose “stock (stock) is less than 5” from the table “Books” is recorded.
  • three IDs of 15, 165, and 210 are recorded in the row information 2446 as ids of the corresponding records, and “title” is recorded in the column information 2447 as the column name.
  • the access pattern 2443, the access table 2444, and the access condition 2445 can be acquired by analyzing the corresponding SQL sentence 2442. Further, the row information 2446 and the column information 2447 can be acquired by executing the corresponding SQL statement 2442 using the access table 2444 and the access condition 2445.
  • the DB update information storage table 245 indicates that when the status of the business application table 241 to be operated is changed by the SQL statement issued from the business application 231, in other words, the operation content included in the SQL statement is updated / updated. This is a table for recording changes in data related to the business application table 241 in the case of delete / insert. The data recorded in the DB update information storage table 245 is used when the data load unit 234 performs a partial load process on the test data 242.
  • FIG. 15 shows an example of the DB update information storage table 245.
  • test script ID 2451 In the DB update information storage table 245, test script ID 2451, access timing 2452, id 2453, title 2454, publisher 2455, price 2456, and stock 2457 are recorded in association with each other.
  • the test script ID 2451 corresponds to the test script ID 2441 recorded in the DB operation information storage table 244.
  • the access timing 2452 records whether the update information is recorded in the storage table 245 before or after the execution of the test script 141 specified by the corresponding test script ID 2451.
  • the items id 2453, title 2454, publisher 2455, price 2456, and stock 2457 correspond to id 2411, title 2412, publisher 2413, price 2414, and stock 2415 recorded in the business application data table 241, respectively.
  • the SQL statement issued from the business application 231 is update, data before and after the execution of update is recorded in units of rows.
  • the SQL statement issued from the business application 231 is “delete”, data before execution of “delete” is recorded in units of rows.
  • the SQL statement issued from the business application 231 is insert, data after execution of insert is recorded in units of rows.
  • the numerical value 0 changes to 30 for stock 2457.
  • the update location table 1500 and the restoration location table 1550 are temporary variables stored in a part of the memory area allocated to the test execution order changing unit 130 of the client 100.
  • the update location table 1500 and the restoration location table 1550 are tables as in the example of this embodiment. It can also be held in the form.
  • the update location table 1500 and the restoration location table 1550 are the operation results of the business application table 241 by the other test group 1421 executed immediately before the test data 1422 to be loaded for the test group 1421 to be executed next. Based on the above, it is determined whether to perform the entire load that is the process of loading the entire test data for the test group 1421 to be executed next or the partial load that is the process of partially loading the test data. Used to determine.
  • FIGS. 16 and 17 show examples of the update location table 1500 and the restoration location table 1550, respectively.
  • the update location table 1500 and the restoration location table 1550 both record the same data items with the same configuration as the business application table 241. Specifically, items of id 2411, title 2412, publisher 2413, price 2414, and stock 2415 in FIG. 11 are assigned to the rows of the update location table 1500 and the restoration location table 1550, respectively. In the updated location table 1500 and the restored location table 1550, all recorded data are 0 in the initial state.
  • the update location table 1500 is recorded by the test group selection unit 131 in the execution order changing unit 130 of the client 100.
  • test group selection unit 131 refers to the DB update information storage table 245 for the test group candidate to be executed next for the target program, and the SQL statement issued according to the test script 141 included in each test group candidate Examine the data part that will be accessed by. If it is determined that the data in which the update location table 1500 is recorded and the access location (data location determined by the row information / column information) by the test script 141 included in the test group candidate are duplicated, the duplicate location is It is necessary to restore the test script 141 before executing the next test group 1421. Therefore, 1 is recorded in the restoration location table 1550 as the data of the portion determined as the overlapping location.
  • the restoration location is defined as a location that may be used by the test script 141 included in the test group 1421 to be executed next, so the SQL statement for determining the duplicate location is substantially included in the SQL statement.
  • a select operation that does not rewrite data is also included.
  • FIG. 18 shows an example of a data processing flow for realizing the test execution order changing process of the present embodiment.
  • the test execution order changing process is executed by the test execution order changing unit 130 executed in the client 100.
  • testGroup_A, TestGroup_C, TestGroup_D, and TestGroup_F that are Test Groups 1421 that use TestData_1, and TestGroup_B and TestGroup_E that are Test Groups 1421 that use TestData_2, based on the test data 1422 used. are classified into two sets.
  • test by the test group 1421 included in each classified set is repeated until all the test groups 1421 are completed (S1620 loop).
  • the execution order changing unit 130 determines whether there is a test group 1421 that has not been executed in the selected set (S1621). Whether or not a test has been executed for a specific test group 1421 can be determined by referring to the test group information storage table 142 and determining whether or not the executed flag 1423 recorded therein is 1. Now, considering a set including TestGroup_A, TestGroup_C, TestGroup_D, and TestGroup_F, it is determined that TestGroup_F has not been executed.
  • test is repeatedly executed until the test is executed for all the test groups 1421 included in the same set (S1630). loop).
  • an unexecuted test group 1421 is extracted from the test group information storage table 142. If there are a plurality of unexecuted test groups 1421, one of them is selected. In the example of FIG. 8, since the unexecuted test group 1421 related to TestData_1 is only TestGroup_F, the test is executed for this (S1630).
  • the data load unit 234 executes a data load process for reading the test data 1422 (TestData_1 in this embodiment) corresponding to the test group 1421 into the DBMS 240. (S1631). The details of the data loading process will be described later.
  • test execution unit 133 in the client 100 sequentially executes the test scripts 141 included in the selected test group 1421 and records execution time information in the DB operation information storage table 244 and the DB update information storage table 245.
  • a time information recording process is executed (S1632). The details of the runtime information recording process will be described later.
  • the test script 141 included in the test group 1421 and its storage location are acquired from the test script information storage table 143 illustrated in FIG.
  • the test execution unit 133 records, for example, in the auxiliary storage device 13 as a test result 144 whether an appropriate result is obtained as a result of executing the test script.
  • test execution unit 133 records 1 in the executed flag 1423 corresponding to the test group 1421 that executed the test in the test group information storage table 142 (S1633). The above process is repeated until there is no unexecuted test group 1421.
  • the execution order changing unit 130 performs all executed tests included in the set.
  • the group 1421 the test group in which 1 is recorded as the executed flag 1423 in the test group information storage table 142 of FIG. 8
  • the following processing is repeatedly executed (loop of S1640).
  • 1 is recorded in the executed flag 1423 for TestGroup_A, TestGroup_C, and TestGroup_D among TestGroup_A, TestGroup_C, TestGroup_D, and TestGroup_F corresponding to the test data TestData_1
  • these three test groups 1421 are loops of S1640. It becomes the object of processing.
  • the execution order changing unit 130 executes a test group selection process, which is a process for determining which test group 1421 the test is executed next for the selected executed test group 1421 ( S1641).
  • the test group selection process is a process of selecting the test group 1421 so that the load time for reading the test data 1422 for the test group 1421 to be executed next is minimized.
  • a restoration location table 1550 used for executing a test by the group 1421 is generated and notified to the data load unit 234 of the server 200. Specific processing contents of the test group selection processing will be described later.
  • the data load unit 234 of the server 200 executes the data load process similar to S1631 according to the content notified from the execution order changing unit 130 (S1642).
  • the test execution unit 133 of the client 100 sequentially executes the test scripts 141 included in the selected test group 1421, and the execution time information is stored in the DB operation information storage table 244 and the DB update information storage table 245.
  • a runtime information recording process for recording is executed (S1643).
  • the test execution unit 133 records whether or not an appropriate result is obtained as a result of executing the test script as the test result 144 in, for example, the auxiliary storage device 13 and ends the process.
  • the test group 1421 having the shortest load time of the test data 1422 can be selected as the subsequent test group 1421 based on the test execution result by each test group 1421.
  • the test execution time for H.231 can be shortened as much as possible.
  • FIG. 19 shows an example of a data processing flow for realizing the runtime information recording process of the present embodiment.
  • the execution time information recording process database operation information and update information via the DBMS 240 by the business application 231 are selected in order to select the load time of the corresponding test data 1422 in the test group determination in the test group selection process described later. It is a process to acquire.
  • the runtime information recording process is executed by the program execution unit 232 of the server 200 in which the business application 231 is running.
  • the program execution unit 232 corresponds to the program execution base in FIG.
  • the program execution unit 232 acquires the SQL statement issued by the business application 231 to the DBMS 240 from the business application 231, and sets the test script ID 1431 attached to the test script 141 that generated the SQL statement to the test script information storage table 143. (S1705).
  • the program execution unit 232 analyzes the acquired SQL sentence and records the analysis result in the DB operation information storage table 244 (S1710).
  • the analysis of the SQL sentence can be performed using the technique of an SQL parser implemented in a general DBMS.
  • the DB operation information storage table 244 includes an access pattern 2443, an access table 2444, an access condition 2445, row information 2446 as an access location, and column information 2447 as described with reference to FIG.
  • the operation content included in the SQL statement to be analyzed is “insert” or “delete”
  • the corresponding column information 2447 is always all the columns set in the business application table 241.
  • the line information 2446 is a primary key of the business application table 241
  • the item of the access condition 2445 does not always include the line information 2446. Therefore, if it is determined that the line information 2446 is not included in the item of the access condition 2445, a select statement using the access condition 2445 is issued once to check the line information 2446.
  • the program execution unit 232 determines the operation content recorded in the access pattern 2443, and performs the following processing according to the determination result (S1720).
  • the program execution unit 232 issues the SQL statement issued from the business application 231 as it is to the DBMS 240 and ends the processing (S1730). Since no change is caused in the business application table 241 by executing the select statement, recording in the DB update information storage table 245 as described later is not performed.
  • the program execution unit 232 issues an SQL statement using the access table 2444 and the access condition 2445, and the business application 231 that is actually the target program is issued. It is checked which part of the business application table 241 is to be deleted, and information related to the deleted line is recorded in the DB update information storage table 245 as a state before execution (S1750). Then, the program execution unit 232 issues the SQL statement issued from the business application 231 as it is to the DBMS 240 and ends the processing (S1751).
  • the SQL statement issued from the business application 231 is issued to the DBMS 240 and executed (S1760).
  • the program execution unit 232 issues an SQL statement using the access table 2444 and the access condition 2445, examines what rows are actually inserted into the business application table 241, and obtains information on the inserted rows.
  • the post-execution state is recorded in the DB update information storage table 245, and the process ends (S1761).
  • the location where the business application 231 actually accesses the business application table 241 can be specified based on the test script 141, and the test data 1421 can be specified in the test group selection process described later.
  • a determination material for determining whether to load the whole can be obtained.
  • FIG. 20 shows an example of a data processing flow for realizing the test group selection process in the present embodiment.
  • the test group selection process is a data process executed by the test group selection unit 131 installed in the execution order changing unit 130 of the client 100, where the test group 1421 to be executed next by the client 100 is selected. Is done.
  • the test group selection unit 131 initializes a test group candidate to be used for a test to be executed next, a restoration capacity, and an update location table 1500 (S1810).
  • the restoration capacity is a place changed by the test group 1421 executed previously in the business application table 241 and restored as a place that should be restored at the minimum when the next test data 1422 is read.
  • the number of locations recorded in the location table 1550 (cells where 1 is recorded in the restored location table 1550).
  • test group selection unit 131 records the location of the business application table 241 accessed by the executed test group 1421 in the update location table 1500 with reference to the DB update information storage table 245 (S1820). Thus, basic data for comparison with a location on the business application table 241 that may be accessed by a subsequent test group candidate is prepared.
  • test group selection unit 131 repeatedly executes the following processing for all the unexecuted test groups 1421 (S1830 loop).
  • the test group selection unit 131 selects an arbitrary one from the unexecuted test groups 1421 (S1831), and initializes the restoration location table 1550 by clearing it to zero (S1832).
  • the test group selection unit 131 may be referred to or updated by the update location (location where 1 is recorded as data) recorded in the update location table 1500 and the selected unexecuted test group 1421. Compared with a certain place, an overlapping place is recorded in the restoration place table 1550 (S1833).
  • the restoration location table 1550 locations that require such data restoration, in other words, locations that must be newly loaded before executing a test by the next test group are recorded.
  • the restoration capacity represents the number of restoration points that need to be restored on the restoration point table 1550.
  • a portion that may be referred to or updated by the unexecuted test group 1421 is acquired by referring to the DB update information storage table 245.
  • the test group selection unit 131 determines whether or not the access condition 2445 defined by the SQL statement issued by the selected unexecuted test group 1421 includes “range specification” or “subquery” (S1834).
  • Range specification means that a certain numerical range is specified for the data to be operated in the where clause included in the SQL statement.
  • “Stock ⁇ 5 (the number of stock is less than 5)” corresponding to the test script ID 2441 101 corresponds.
  • sub-query means that another SQL command is included for the data to be operated in the where clause included in the SQL statement.
  • the test group selection unit 131 displays the entire column on the business application table 241 specified by the access condition 2445. Is recorded in the restoration location table 1550 (S1835). On the other hand, when it is determined that the access condition 2445 does not include both “range specification” and “sub-query” (S1834, No), the test group selection unit 131 restores only a part that matches the access condition 2445 to the restoration part table. It is recorded in 1550 (S1836). When it is determined that “range specification” or “sub-query” is included, the entire column specified in the access condition 2445 is recorded in order to specify the overlapping portion included in the corresponding column. This is because an SQL statement including “or a sub-query” is executed, which may cause a problem that the time required for the test group selection process is prolonged.
  • test group selection unit 131 counts the locations where 1 is recorded as data in the restoration location table 1550 as duplicate locations, and records the count as the restoration capacity, for example, in the main storage device 12 (S1837).
  • the test group selection unit 131 compares the restoration capacity for the test group 1421 for which the restoration capacity is acquired this time with the restoration capacity recorded for other test group candidates for which the restoration capacity has been obtained before ( S1838). When it is determined that the restoration capacity for the test group 1421 that has acquired the restoration capacity this time is smaller than the restoration capacity recorded for another test group candidate that has obtained the restoration capacity before (S1838, Yes) The group selection unit 131 records the current test group 1421 as a new test group candidate (S1839). When it is determined that the restoration capacity for the test group 1421 that has acquired the restoration capacity this time is greater than or equal to the restoration capacity recorded for another test group candidate that has obtained the restoration capacity before (S1838, No). The test group selection unit 131 does nothing. The above process is repeated until there is no unexecuted test group 1421.
  • test group selection unit 131 selects the test group candidate that is finally recorded as the test group 1421 to be executed next, and performs processing Is finished (S1840).
  • test group selection process it is possible to select the test group 1421 that is expected to have the shortest load time of the corresponding test data 1422 as the test group 1421 to be executed next. It is possible to reduce the time required for the test execution of the program as much as possible.
  • FIG. 20 shows an example of a data processing flow for realizing the data load processing of this embodiment.
  • the data load process is a process executed by the load method selection unit 132 installed in the client 100, and the load method selection unit 132 loads test data 1422 used when executing a test by a test group 1421. In this case, it is determined whether the entire test data 1422 is loaded or only a part of the test data 1422 is loaded, and the data loading process according to the determination result is executed by the data loading unit 234 of the server 200.
  • the loading method selection unit 132 determines whether the test group 1421 to be processed is not executed (S1900), and if it is determined that the test group 1421 is not executed (S1900, Yes), refer to the test group information storage table 142. Thus, the corresponding test data 1422 is specified. Then, the loading method selection unit 132 loads the entire test data 1422 on the data loading unit 234, records the actual measurement value of the time required for the loading in the loading time information storage table 243, and ends the processing (S1910). When the target is an unexecuted test group 1421, the first test is executed for the test group 1421, so it is necessary to load the corresponding test data 1422 as a whole.
  • the load method selection unit 132 refers to the load time information storage table 243, and the test data 1422 part for the test group 1421 It is determined whether or not an actual measurement value of the load time 2435 when a specific load (hereinafter referred to as “partial load”) is executed is recorded (S1920). Whether or not the actual measurement value is recorded at the load time 2435 for the partial load is determined if the load information 2433 and the column information 2434 match the data to be loaded by the partial load, and the load time 2435 has a value. Suppose that actual measurement values are recorded. If it is determined that the actual load value 2435 for the partial load is recorded (S1920, Yes), the load method selection unit 132 acquires the actual value and sets it as the partial load time for the test group 1421 ( S1921).
  • the load method selection unit 132 calculates the restoration capacity for the test group 1421 to be processed (S1922), A predicted value of the time required for partial loading of the corresponding test data 1422 is calculated using the calculated restoration capacity (S1923).
  • the predicted value of the partial load time can be calculated by, for example, Equation 1 below.
  • (Partial load time predicted value) (Partial load capacity) ⁇ ⁇ (seconds) Equation 1
  • “partial load capacity” is the capacity of data to be partially loaded in the test data 1422
  • is a conversion coefficient empirically determined for the partial load data capacity of a unit in order to obtain the partial load required time.
  • the actual load time value for loading the entire test data 1422 and the total test data capacity indicating the capacity of the entire test data 1422 may be used to calculate the following formula 2.
  • (Partial load time predicted value) (Total load time) ⁇ [(Partial load capacity) / (Test data total capacity)] ⁇ ⁇ (second)
  • the load method selection unit 132 uses the partial load time acquired in S1921 or S1923 to refer to the load time information storage table 243 and measure the actual load time 2435 recorded for the corresponding test group 1421. (S1930). If it is determined that the total load time is shorter than the partial load time (S1930, Yes), the load method selection unit 132 performs partial load processing according to the recorded contents of the restoration location table 1550 for the corresponding test data 1421. The load unit 234 executes the measurement, records the actual measurement value in the load time information storage table 243, and ends the processing (S1931).
  • the load method selection unit 132 causes the data load unit 234 to execute the corresponding load processing of the entire test data 1421 and the actual measurement value thereof. Is stored in the load time information storage table 243, and the process is terminated (S1910).
  • the entire load time which is the time required to load the entire test data 1422 used for all the test groups 1421. Since it is possible to determine whether or not the test data 1422 can be shortened compared to the entire load time when the test data 1422 is partially loaded, it is possible to more reliably reduce the time required for data loading and increase the effect of reducing the test execution time. it can.
  • test execution time itself is reduced by reducing the time required for loading test data for each component constituting the program as much as possible. And test can be executed efficiently.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The present invention is a program test method in which a computer for causing a plurality of programs to execute processing of test data used for testing each of the programs records a first data portion that is a portion of the test data that is changed by the test from the test data used by the test of the program executed immediately prior, calculates a second data portion that is a portion of the test data to be accessed by the test among the test data that is read for another program that is next to be tested, and selecting the other program in which the difference between the first data portion and the second data portion is at a minimum as the program next to be tested.

Description

プログラムテスト方法、プログラムテストシステム及びプログラムProgram test method, program test system, and program
 本発明は、プログラムテスト方法、プログラムテストシステム及びプログラムに関する。 The present invention relates to a program test method, a program test system, and a program.
 コンピュータプログラム(以下、単に「プログラム」と呼ぶ。)の開発に際しては、当該プログラムの動作検証を目的として種々のテストが実行される。また、新規開発時だけでなく、プログラム運用開始後も、機能低下(デグレード、degradation)防止の観点から適時に実行される機能拡張(エンハンス、enhancement)時にも、当該プログラムのために過去に作成したテストを回帰テストとして実行している。一般に運用開始後プログラムの更新に伴って、実行されるテストに新たなテスト項目が追加されていくため、回帰テストの実行時間は増加の一途を辿る。このため、例えばプログラムが停止される夜間にバッチ処理で回帰テストを実行させても、運用再開されるべき翌朝までにテストが終わらないような事例もでてきている。 When developing a computer program (hereinafter simply referred to as “program”), various tests are executed for the purpose of verifying the operation of the program. In addition to new development, it was created in the past for the program at the time of function expansion (enhancement) that is executed in a timely manner from the viewpoint of preventing function degradation (degradation) after starting program operation. The test is run as a regression test. Generally, new test items are added to the test to be executed as the program is updated after the operation is started, so that the execution time of the regression test keeps increasing. For this reason, for example, even if the regression test is executed by batch processing at night when the program is stopped, there are cases where the test does not end by the next morning when the operation should be resumed.
 プログラムの品質確保の観点から回帰テストは全テスト項目実施が必須とされているため、実施するテスト項目数を削減することはできない。このため、テスト実行時間の長大化が開発コストの増加を招いており、テスト実行時間を短縮することが強く求められている。 ∙ From the viewpoint of ensuring the quality of the program, all test items must be implemented in the regression test, so the number of test items to be implemented cannot be reduced. For this reason, an increase in test execution time has led to an increase in development cost, and there is a strong demand for shortening the test execution time.
 更に、プログラムのテストでは、対象となるプログラムを構成している各コンポーネント間の独立性を確保しなければならないというテスト特有の要請がある。このため異なるコンポーネントのテストにおいては、たとえ同内容のテストデータを使用する場合であってもテストデータを各コンポーネントのテストを実行する毎にロードし直さなければならず、同内容テストデータのロード時間もその分重複して発生するという非効率性が特に問題となる。 Furthermore, there is a test-specific requirement in the testing of a program that it is necessary to ensure the independence between the components constituting the target program. For this reason, in testing different components, even if the same test data is used, the test data must be reloaded every time the test of each component is executed, and the load time of the same content test data However, inefficiencies that occur redundantly are particularly problematic.
 特許文献1では、効率的にプログラムのテストを行うことができるようにしたプログラムテストシステム及びプログラムテスト方法を提供することを目的として、プログラムテストの所要時間を短縮し、自動化する構成が開示されている。具体的には、テストに使用するテストデータを一度データベースにロードして実テーブルを作成する。その後テストを実行し、テスト対象プログラムが実テーブルにアクセスしようとする際に、仮想テーブルを作成する。テスト対象プログラムは、この仮想テーブルにのみアクセスし、実テーブルのテストデータにはアクセスしないようにする。これにより、テストデータを初期状態に戻す際には、仮想テーブルの作成・削除のみを行えばよく、データベースからテストデータをロードする必要がないため、テスト時間の短縮になるとしている。 Patent Document 1 discloses a configuration that reduces the time required for program test and automates it for the purpose of providing a program test system and a program test method that can efficiently test a program. Yes. Specifically, the test data used for the test is once loaded into the database to create a real table. Thereafter, a test is executed, and a virtual table is created when the test target program tries to access the real table. The test target program accesses only the virtual table and does not access the test data of the real table. As a result, when the test data is returned to the initial state, it is only necessary to create and delete the virtual table, and it is not necessary to load the test data from the database, thereby reducing the test time.
特開2006-227820号公報JP 2006-227820 A
 しかし、特許文献1の構成は、テストデータをロードする代わりに、直前のテストで作成した仮想テーブルの削除と、新たな仮想テーブルの作成とを毎回行う。これにより、直前に作成した仮想テーブルの内容に変化がなく、削除する必要がない場合でも、直前の仮想テーブルを削除することになる。そのため、効率的な解決策となっていないという問題があった。 However, in the configuration of Patent Document 1, instead of loading test data, the virtual table created in the immediately preceding test is deleted and a new virtual table is created each time. As a result, even if there is no change in the contents of the virtual table created immediately before and there is no need to delete it, the virtual table immediately before is deleted. Therefore, there was a problem that it was not an efficient solution.
 本発明は、上述の及び他の課題を解決するためになされたものであり、プログラムのテストを実行する際に、プログラム毎のテストデータのロードに要する時間を可及的に短縮することによりテスト実行時間自体を短縮して、効率的にテストを実行することを目的としている。 The present invention has been made to solve the above-mentioned and other problems. When executing a test of a program, the test is performed by reducing the time required for loading test data for each program as much as possible. The purpose is to reduce the execution time itself and execute the test efficiently.
 上記の及び他の課題を解決するための本発明の1つの態様は、複数のプログラムをテストするために各前記プログラムがそれぞれのテストに用いるテスト用データを利用可能な状態とし、各前記テスト用データの処理を前記各プログラムに実行させるコンピュータが、直前に実行された前記プログラムのテストによって使用された前記テスト用データのうち前記テストによって変更された前記テスト用データの部分である第1のデータ部分を記録し、引き続き実行されるテストの対象となる他の前記プログラムのために読み込まれる前記テスト用データのうち前記テストによってアクセスされることとなる前記テスト用データの部分である第2のデータ部分を求め、前記第1のデータ部分と前記第2のデータ部分との差分が最小となる他の前記プログラムを引き続きテストを実行する対象として選択するプログラムのテスト方法である。 One aspect of the present invention for solving the above-mentioned and other problems is to make test data used for each test available for each program in order to test a plurality of programs, and for each test First data that is a part of the test data changed by the test among the test data used by the test of the program executed immediately before by the computer that causes each program to execute data processing Second data which is a part of the test data to be accessed by the test among the test data to be read for the other program to be subjected to the test to be recorded and to be subsequently executed The other portion in which the difference between the first data portion and the second data portion is minimized. Serial continue is a method of testing a program to be selected as a target to run the test program.
 本発明によれば、プログラムのテストを実行する際に、プログラム毎のテストデータのロードに要する時間を可及的に短縮することによりテスト実行時間自体を短縮して効率的にテストを実行することができる。 According to the present invention, when executing a test of a program, the time required for loading test data for each program is reduced as much as possible, thereby reducing the test execution time itself and efficiently executing the test. Can do.
図1はプログラムテストの一般的な実行手順を示す模式図である。FIG. 1 is a schematic diagram showing a general execution procedure of a program test. 図2は本発明の一実施形態であるプログラムテストシステムによって実行される処理の概要を示す模式図である。FIG. 2 is a schematic diagram showing an outline of processing executed by the program test system according to the embodiment of the present invention. 図3は本発明の一実施形態によるプログラムテストシステム1の概略構成図である。FIG. 3 is a schematic configuration diagram of the program test system 1 according to the embodiment of the present invention. 図4はコンピュータ10のハードウェア構成の一例を示す図である。FIG. 4 is a diagram illustrating an example of a hardware configuration of the computer 10. 図5はプログラムテストシステム1に含まれるクライアントコンピュータ100のソフトウェア構成の一例を示す図である。FIG. 5 is a diagram showing an example of the software configuration of the client computer 100 included in the program test system 1. 図6はプログラムテストシステム1に含まれるサーバコンピュータ200のソフトウェア構成の一例を示す図である。FIG. 6 is a diagram showing an example of the software configuration of the server computer 200 included in the program test system 1. 図7はプログラムテストシステム1で使用されるテストスクリプト141の構成例を示す図である。FIG. 7 is a diagram showing a configuration example of the test script 141 used in the program test system 1. 図8はテストグループ情報格納テーブル142の構成例を示す図である。FIG. 8 is a diagram illustrating a configuration example of the test group information storage table 142. 図9はテストスクリプト情報格納テーブル143の構成例を示す図である。FIG. 9 is a diagram illustrating a configuration example of the test script information storage table 143. 図10はプログラムテストシステム1で得られるテスト結果144の一例を示す図である。FIG. 10 is a diagram showing an example of the test result 144 obtained by the program test system 1. 図11は業務アプリケーション用テーブル241の構成例を示す図である。FIG. 11 is a diagram illustrating a configuration example of the business application table 241. 図12はプログラムテストシステム1で使用されるテストデータ242の構成例を示す図である。FIG. 12 is a diagram showing a configuration example of the test data 242 used in the program test system 1. 図13はロード時間情報格納テーブル243の構成例を示す図である。FIG. 13 is a diagram illustrating a configuration example of the load time information storage table 243. 図14はデータベース操作情報格納テーブル244の構成例を示す図である。FIG. 14 is a diagram showing a configuration example of the database operation information storage table 244. 図15はデータベース更新情報格納テーブル245の構成例を示す図である。FIG. 15 is a diagram showing a configuration example of the database update information storage table 245. 図16は更新箇所テーブル1500の構成例を示す図である。FIG. 16 is a diagram illustrating a configuration example of the update location table 1500. 図17は復元箇所テーブル1550の構成例を示す図である。FIG. 17 is a diagram illustrating a configuration example of the restoration location table 1550. 図18はテスト実行順序入れ替え処理の一例を示すフローチャートである。FIG. 18 is a flowchart illustrating an example of the test execution order changing process. 図19は実行時情報記録処理の一例を示すフローチャートである。FIG. 19 is a flowchart showing an example of the runtime information recording process. 図20はテストグループ選択処理の一例を示すフローチャートである。FIG. 20 is a flowchart illustrating an example of the test group selection process. 図21はデータロード処理の一例を示すフローチャートである。FIG. 21 is a flowchart showing an example of the data loading process.
 以下、本発明を実施するための形態につき、添付図面を参照しながら説明する。
 まず、本実施形態によるプログラムテストシステムによって実施されるプログラムテストの概要について、図1、図2を参照して説明する。図1はプログラムテストの一般的な実施手順を示す模式図、図2は本実施形態のプログラムテストシステムによって実行されるプログラムテストの概要を示す模式図である。
DESCRIPTION OF EMBODIMENTS Hereinafter, embodiments for carrying out the present invention will be described with reference to the accompanying drawings.
First, an overview of a program test performed by the program test system according to the present embodiment will be described with reference to FIGS. FIG. 1 is a schematic diagram showing a general execution procedure of a program test, and FIG. 2 is a schematic diagram showing an outline of a program test executed by the program test system of the present embodiment.
 図1において、本実施形態により実行されるプログラムテストの対象となるプログラム(以下、「対象プログラム」と呼ぶ。)は、コンポーネントA、B、Cの3つのコンポーネントを有するものとする。各コンポーネントA、B、Cのテストを行うために使用されるテスト用データ(以下、「テストデータ」と呼ぶ。)がデータa、b、cである場合、従来対象プログラムのテストを実施する際には、まずテストデータaを対象プログラムが稼働しているコンピュータにロードしてからコンポーネントAを動作させてテストを実施し、コンポーネントAに関するテストが終了後、テストデータbをロードしてコンポーネントBを動作させてテストを実行し、その後テストデータcをロードしてコンポーネントCのテストを実行するという手順がとられていた。この手順は、たとえデータa、b、cが同一のテストデータであっても同じである。 In FIG. 1, it is assumed that a program to be subjected to a program test executed by the present embodiment (hereinafter referred to as “target program”) has three components A, B, and C. When the test data (hereinafter referred to as “test data”) used for testing each of the components A, B, and C is data a, b, and c, the conventional target program is tested. First, test data a is loaded onto a computer on which the target program is running and then component A is operated to perform a test. After the test on component A is completed, test data b is loaded and component B is loaded. A procedure was taken in which the test was executed and then the test of component C was executed by loading test data c. This procedure is the same even if the data a, b, and c are the same test data.
 なお、ここで「コンポーネント」とは、対象プログラムにおいて一つのまとまった機能を実現する機能モジュールを意味している。各コンポーネント自体がより上位のシステムソフトウェアを構成するアプリケーションである形態も含まれる。また、テストデータの「ロード」とは、いずれかの記憶媒体に格納されているテストデータを対象プログラムが動作するコンピュータに読み込んで対象プログラムによって使用可能となるまでに要する時間を意味し、ロード処理のトリガとなるユーザの操作をも含む広い概念を有するものとする。 Here, “component” means a functional module that realizes a single function in the target program. A form in which each component itself is an application that constitutes higher-order system software is also included. “Load” of test data means the time required for the test data stored in any storage medium to be used by the target program after being loaded into the computer on which the target program operates. It has a broad concept including the user's operation as a trigger for the above.
 本実施形態のプログラムテストシステムは、コンポーネントA、B、Cに関するテスト実行順序を入れ替えることによってテストデータa、b、cのロードに要する時間を極力低減させることによってテスト実行に要する時間を極力短縮しようとするものである。プログラムのテストを実行する場合、テスト結果の整合性を保つためにテストの実行順序が拘束される場合もあるが、本実施形態ではそのような実行順序はコンポーネント毎に保証されており、コンポーネント相互については自由に実行順序を入れ替えることができるものとしている。 The program test system according to the present embodiment reduces the time required for test execution as much as possible by reducing the time required for loading test data a, b, and c as much as possible by changing the test execution order for components A, B, and C. It is what. When executing a test of a program, the execution order of tests may be constrained in order to maintain the consistency of test results. In this embodiment, such an execution order is guaranteed for each component. The order of execution can be freely changed.
 図2に本実施形態のプログラムテストシステムによって実行されるプログラムテストの概要を模式的に示している。前記のように、このプログラムテストシステムでは、対象プログラムに含まれる複数のコンポーネント(図2ではコンポーネントA~C)について、コンポーネントのテスト実行順序を入れ替えた場合にテストデータのロード時間が減少すると判定された場合にはコンポーネントに関するテスト実行順序を入れ替えて実行するようにプログラムテストシステム側でテスト実行順序を管理する仕組みを採用している。 FIG. 2 schematically shows an outline of a program test executed by the program test system of the present embodiment. As described above, in this program test system, for a plurality of components (components A to C in FIG. 2) included in the target program, it is determined that the load time of the test data is reduced when the component test execution order is changed. In such a case, the program test system manages the test execution order so that the test execution order for the components is changed.
 いま、対象プログラムに対して初めてテストを実行する、初回テスト時を考える。このとき図2に示すように、テスト実施者であるユーザは、本実施形態のプログラムテストシステムに実装されているテスト実行用プログラムであるテストツールによってどのテストグループに関するテストを実行するか指定する。テストツールは対象プログラムのテストを実行するために必要なテストスクリプトの集合であり、市販のテストツールなどを使用することができる。「テストグループ」は、対象プログラムのコンポーネントA~Cについてそれぞれテストを行う際に実行されるテストスクリプトの集合である。 Now, consider the first test when the target program is run for the first time. At this time, as shown in FIG. 2, the user who is the tester specifies which test group the test is to be executed by using the test tool which is a test execution program installed in the program test system of the present embodiment. The test tool is a set of test scripts necessary for executing the test of the target program, and a commercially available test tool or the like can be used. The “test group” is a set of test scripts that are executed when testing the components A to C of the target program.
 実行順序入れ替え部は、本実施形態の主要な機能を実現する機能部の一つであり、各テストグループに関するテストデータのロード時間が極力短縮されるようにテストグループA、B、Cの実行順序を管理する。 The execution order changing unit is one of the functional units that realize the main functions of the present embodiment, and the execution order of the test groups A, B, and C so that the load time of the test data related to each test group is shortened as much as possible. Manage.
 ユーザがテストツールを介して指定した最初のテストグループに関する情報を受領した実行順序入れ替え部は、まずテストデータAのロードを行い、テストデータAのロード完了後、当該テストグループAに含まれるテストスクリプトを順次実行していく。これらのテストスクリプトが実行されることにより、対象プログラムである業務アプリケーションが実行される。業務アプリケーションは、自身が実装されているコンピュータに設定されているプログラム実行基盤上で動作する。このプログラム実行基盤は、適宜選択されるオペレーティングシステムが実装されたサーバコンピュータ上で動作する、例えばJava(登録商標)仮想マシンである。 The execution order changing unit that has received the information on the first test group specified by the user via the test tool first loads the test data A, and after the loading of the test data A, the test script included in the test group A Are executed sequentially. By executing these test scripts, the business application that is the target program is executed. The business application runs on the program execution platform set in the computer on which the business application is installed. The program execution platform is, for example, a Java (registered trademark) virtual machine that operates on a server computer on which an appropriately selected operating system is mounted.
 テストグループAに含まれるテストスクリプトにより業務アプリケーションが実行されるときに、業務アプリケーションはテスト用データベースにロードされているテストデータaにアクセスする。テストグループAによるテストが終了した後、テストグループB、Cによるテストがテストデータb、cのロードに引き続いて順次実行される。プログラム実行基盤は、テストグループA、B、Cによって業務アプリケーションがデータベースにアクセスする際の状況を実行時情報として保存する。 When the business application is executed by the test script included in the test group A, the business application accesses the test data a loaded in the test database. After the test by the test group A is completed, the tests by the test groups B and C are sequentially executed following the loading of the test data b and c. The program execution platform stores the status when the business application accesses the database by the test groups A, B, and C as runtime information.
 次に、2回目以降のテスト実行について説明する。まず、初回テスト時と同様に、ユーザはテストグループA~Cのうちのどのテストグループによってテストを実行するかを、テストツールを介して指定する。この際、実行順序入れ替え部は、初回テスト時にプログラム実行基盤が保存していた実行時情報を読み込む。実行順序入れ替え部は、実行時情報に基づいて、次にどのテストグループによるテストを実行するのが効率的かを、テストデータのロード時間短縮効果を基準として実行時情報に基づき判定する。 Next, the second and subsequent test executions will be described. First, as in the initial test, the user designates which test group of the test groups A to C is used for the test via the test tool. At this time, the execution order changing unit reads the execution time information stored in the program execution base during the initial test. The execution order changing unit determines, based on the execution time information, which test group performs the next test efficiently based on the execution time information on the basis of the effect of reducing the load time of the test data.
 より具体的には、実行順序入れ替え部は、いずれのテストグループによるテストを実行するか判定する場合、新たにテストデータのロードが必要であるか、ロードする必要があるテストデータの一部のみをロードすればよいか、あるいはロードする必要があるテストデータ全体をロードすればよいか、いずれを実行すべきであるかの判定を行い、判定結果として得られた最もロード時間が少ないテストグループについてテストデータをロードし、テストを実行する。テストデータロード方法の判定は一つのテストグループについてのテストが終了する毎に行われる。 More specifically, when determining which test group the test is to be executed, the execution order switching unit needs to load a new test data or only a part of the test data that needs to be loaded. Test whether the test data that needs to be loaded or the entire test data that needs to be loaded should be loaded, and which should be executed Load data and run tests. The test data loading method is determined each time a test for one test group is completed.
 初回テスト時と同様に、プログラム実行基盤は、各テストグループにしたがって業務アプリケーションが動作する際のデータベースへのアクセス状況を実行時情報として記録する。このように毎回実行時情報を記録するのは、プログラムの更新、改修等により業務アプリケーションのデータベースへのアクセス状況が変化することがあるためである。図2の例では、実行時情報に基づく実行順序入れ替え部の判定結果に応じて、テストの実行順序がテストグループA、C、Bの順に変更されている。 As with the initial test, the program execution platform records the access status to the database when the business application operates according to each test group as runtime information. The reason for recording the runtime information in this way is that the access status to the business application database may change due to program updates, modifications, and the like. In the example of FIG. 2, the test execution order is changed to the test groups A, C, and B in accordance with the determination result of the execution order changing unit based on the runtime information.
 次に、以上で概要を説明した本実施形態のプログラムテストシステムについて、具体的な構成例に従って詳細に説明する。図3に本実施形態にかかるプログラムテストシステム1の構成例を示している。プログラムテストシステム1は、1以上のクライアント100、サーバ200及び通信ネットワーク300を含んでいる。 Next, the program test system of the present embodiment whose outline has been described above will be described in detail according to a specific configuration example. FIG. 3 shows a configuration example of the program test system 1 according to the present embodiment. The program test system 1 includes one or more clients 100, a server 200, and a communication network 300.
 クライアント100は、プログラムテストシステム1において、テストプログラム(テストツール)がインストールされ、動作しているコンピュータである。サーバ200は、種々の業務アプリケーションがインストールされ動作するコンピュータであり、この業務アプリケーションがプログラムテストシステム1のテスト対象(対象プログラム)である。通信ネットワーク300は、クライアント100とサーバ200とを通信可能に接続する通信回線であり、LAN(Local Area Network)、インターネット、専用線等を含む有線又は無線による種々のネットワークから適宜選定して利用することができる。 The client 100 is a computer in which a test program (test tool) is installed and operating in the program test system 1. The server 200 is a computer on which various business applications are installed and operated. This business application is a test target (target program) of the program test system 1. The communication network 300 is a communication line that connects the client 100 and the server 200 so that they can communicate with each other. The communication network 300 is appropriately selected from various wired or wireless networks including a LAN (Local Area Network), the Internet, and a dedicated line. be able to.
 図4に、クライアント100、あるいはサーバ200として使用することができるコンピュータ10のハードウェア構成例を示している。図4に示すコンピュータ10は、中央処理装置11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15及び通信インタフェース(以下、「通信I/F」)16を備えている。 FIG. 4 shows a hardware configuration example of the computer 10 that can be used as the client 100 or the server 200. A computer 10 illustrated in FIG. 4 includes a central processing unit 11, a main storage device 12, an auxiliary storage device 13, an input device 14, an output device 15, and a communication interface (hereinafter “communication I / F”) 16.
 中央処理装置11は、例えばCPU(Central Processing Unit)、MPU(Micro-Processing Unit)等で構成される(以下、単に「CPU」と呼ぶ。)。主記憶装置12は、例えばRAM(Random Access Memory)あるいはROM(Read Only Memory)であり、CPU11が実行する各種のプログラム及びそれらプログラムによって処理される各種データの記憶領域を提供する。 The central processing unit 11 includes, for example, a CPU (Central Processing Unit), an MPU (Micro-Processing Unit), and the like (hereinafter simply referred to as “CPU”). The main storage device 12 is, for example, a RAM (Random Access Memory) or a ROM (Read Only Memory), and provides various programs executed by the CPU 11 and storage areas for various data processed by these programs.
 補助記憶装置13は、ハードディスクドライブ(Hard Disk Drive、HDD)、半導体記憶ドライブ(Solid State Drive、SSD)等の記憶装置であり、本実施形態のプログラムテストシステム1の機能を実現する各種プログラム、テストデータ、業務アプリケーションプログラム及びその処理データ等を格納している。 The auxiliary storage device 13 is a storage device such as a hard disk drive (Hard Disk Drive, HDD), a semiconductor storage drive (Solid State Drive, SSD), and various programs and tests that implement the functions of the program test system 1 of the present embodiment. Stores data, business application programs and processing data thereof.
 入力装置14は、後述するプログラムが提供する機能に従ってデータ入出力操作を実行する際に用いる入力デバイスであり、例えばキーボード又はマウスが含まれる。入力装置14としては、これ以外にタッチパネル、ペンタブレット、音声入力装置等の他の形式の入力デバイスを設けてもよい。出力装置15は、プログラムによって処理されたデータ等を出力するための出力デバイスであり、液晶ディスプレイ、プリンタ、音声出力装置等の適宜の形式の出力デバイスが含まれる。特に入力装置14は、ユーザが実行するテストの種類、項目、テスト対象のプログラム等を選択するために用いられる。また、出力装置15は、ユーザが確認することができるように実行したテストのテスト結果(成功又は失敗等)を出力するために用いられる。 The input device 14 is an input device used when executing a data input / output operation according to a function provided by a program described later, and includes, for example, a keyboard or a mouse. As the input device 14, other types of input devices such as a touch panel, a pen tablet, and a voice input device may be provided. The output device 15 is an output device for outputting data processed by the program, and includes an output device of an appropriate format such as a liquid crystal display, a printer, and an audio output device. In particular, the input device 14 is used to select the type of test executed by the user, items, a test target program, and the like. The output device 15 is used to output a test result (success or failure) of the executed test so that the user can confirm it.
 通信I/F16は、クライアント100あるいはサーバ200として使用されるコンピュータ10を図1の通信ネットワーク300に接続するためのインタフェース回路であり、例えばNIC(Network Interface Card)等を含む。CPU11、メモリ12、補助記憶装置13、入力装置14、出力装置15及び通信I/F16の間は、適宜の通信規格を採用した内部バス17によって通信可能に接続されている。 The communication I / F 16 is an interface circuit for connecting the computer 10 used as the client 100 or the server 200 to the communication network 300 in FIG. 1, and includes, for example, a NIC (Network Interface Card). The CPU 11, the memory 12, the auxiliary storage device 13, the input device 14, the output device 15, and the communication I / F 16 are communicably connected by an internal bus 17 adopting an appropriate communication standard.
 次に、クライアント100のソフトウェア構成例について説明する。図5に、クライアント100のソフトウェア構成の一例を示している。図5に示すように、本実施形態のクライアント100には、オペレーションシステム(Operation System、以下「OS」)110、データI/O部120及び実行順序入れ替え部130の各プログラムが実装されている。実行順序入れ替え部130はさらに、テストグループ選択部131、ロード方法選択部132及びテスト実行部133の各機能モジュールを含んで構成されている。 Next, a software configuration example of the client 100 will be described. FIG. 5 shows an example of the software configuration of the client 100. As shown in FIG. 5, each program of an operation system (Operation System) (hereinafter referred to as “OS”) 110, a data I / O unit 120, and an execution order changing unit 130 is installed in the client 100 of the present embodiment. The execution order switching unit 130 further includes functional modules of a test group selection unit 131, a load method selection unit 132, and a test execution unit 133.
 また、クライアント100には、実行順序入れ替え部130が使用するデータあるいは実行順序入れ替え部130によって処理されたデータとしての、テストスクリプト141、テストグループ情報格納テーブル142、テストスクリプト情報格納テーブル143及びテスト結果144がそれぞれ格納されている。実行順序入れ替え部130の各機能モジュールはCPU11によってメモリ12に読み出されて実行される。テストスクリプト141、テストグループ情報格納テーブル142、テストスクリプト情報格納テーブル143及びテスト結果144は補助記憶装置13に格納されており、実行順序入れ替え部130によって適時に読み出されて処理に使用される。 The client 100 also includes a test script 141, a test group information storage table 142, a test script information storage table 143, and test results as data used by the execution order changing unit 130 or data processed by the execution order changing unit 130. 144 are stored respectively. Each functional module of the execution order changing unit 130 is read by the CPU 11 into the memory 12 and executed. The test script 141, the test group information storage table 142, the test script information storage table 143, and the test result 144 are stored in the auxiliary storage device 13, and are read out by the execution order changing unit 130 in a timely manner and used for processing.
 データI/O部120はクライアント100で動作する各種ソフトウェアと入力装置14、出力装置15との間でのデータ入出力処理を管理する機能を有し、接続先の入力装置14、出力装置15に適合するデバイスドライバ等を含む。 The data I / O unit 120 has a function of managing data input / output processing between various software operating on the client 100 and the input device 14 and the output device 15. Includes compatible device drivers.
 実行順序入れ替え部130は、図2に関して説明したように、後述するサーバ200で動作している業務アプリケーションに対して実行されるテストについて、テスト実行時間を可及的に短縮するという本発明の課題解決に要する主要な機能を実現するために、前記のように、テストグループ選択部131、ロード方法選択部132及びテスト実行部133の各機能モジュールを含んで構成されている。 As described with reference to FIG. 2, the execution order changing unit 130 reduces the test execution time as much as possible for a test executed on a business application operating on the server 200 described later. In order to realize the main functions required for the solution, the function modules of the test group selection unit 131, the load method selection unit 132, and the test execution unit 133 are included as described above.
 テストグループ選択部131は、同一テストデータを使用してテストを実行するテストスクリプトの集合であるテストグループの中から、次に実行するテストグループを後述する所定の処理フローに従って1つ選択する機能モジュールである。テストグループ選択部131は、後述するサーバ200側に保持されている実行時情報、すなわちデータベース操作情報とデータベース更新情報とを基に処理を実行する。 The test group selection unit 131 selects a test group to be executed next from a test group that is a set of test scripts that execute a test using the same test data according to a predetermined processing flow described later. It is. The test group selection unit 131 executes processing based on runtime information held on the server 200 side to be described later, that is, database operation information and database update information.
 ロード方法選択部132は、各テストグループが使用するテストデータを、後述するサーバ200に格納されているデータベース管理システム(DataBase Management System、以下、「DBMS」)に読み込ませる処理であるロード処理の方法を選択し、選択したロード方法によってテストデータをDBMSに読み込ませる処理を実行する機能モジュールである。ロード方法選択部132は、テストグループ選択部131の処理結果と、サーバ200に保持されている後述のロード時間情報とを用いて、次に実行されるテストグループについて使用するテストデータ全体を読み込ませる処理である全体ロード処理、テストデータのうちの必要な箇所だけを読み込ませる処理である部分ロード処理のいずれを実行させるかの選択を行う。なお、前記のように「テストデータのロード」とは、後述するサーバ200で動作するデータロード部234がサーバ200に格納されているテストデータ(本実施形態ではHDD等の補助記憶装置13を想定しているが、格納場所に特に制約はない。)の読み出しを開始してからDBMSに読み込んで業務アプリケーションにより使用可能な状態となるまでに要する時間を意味している。 The load method selection unit 132 loads a test data used by each test group into a database management system (DataBase Management System, hereinafter referred to as “DBMS”) stored in the server 200 described later. Is a functional module that executes a process of reading test data into the DBMS by the selected loading method. The load method selection unit 132 uses the processing result of the test group selection unit 131 and the later-described load time information held in the server 200 to read the entire test data used for the test group to be executed next. A selection is made as to whether to execute an entire load process, which is a process, or a partial load process, which is a process for reading only necessary portions of test data. As described above, “loading test data” refers to test data (in this embodiment, an auxiliary storage device 13 such as an HDD, etc.) stored in the server 200 by a data load unit 234 that operates on the server 200 described later. However, there is no particular restriction on the storage location.) This means the time required to start reading from the DBMS and become usable by the business application.
 テスト実行部133は、テストグループ選択部131の処理結果によって選択されたテストグループに属するテストスクリプトを順に実行し、その実行結果を検証する機能を有する機能ブロックである。テスト実行部133がテストスクリプトを実行する際には、どのテストスクリプトが実行されているかの情報を後述するサーバ200のプログラム実行部232に通知する。本実施例では、サーバ200で後述する業務アプリケーションとしてWebアプリケーションが動作することを想定しているため、例えばCookieを用いてクライアント100からサーバ200へ送信されるHttpRequest文にテストスクリプトを特定するためのテストスクリプトIDの情報を埋め込んでサーバ200に伝達する。サーバ200では、後述するプログラム実行部232あるいは実行時情報記録部233で、このテストスクリプトIDを読みとる。 The test execution unit 133 is a functional block having a function of sequentially executing test scripts belonging to the test group selected by the processing result of the test group selection unit 131 and verifying the execution result. When the test execution unit 133 executes the test script, the test execution unit 133 notifies the program execution unit 232 of the server 200 described later of information on which test script is being executed. In the present embodiment, it is assumed that a Web application operates as a business application to be described later on the server 200. Therefore, for example, a test script is specified in an HttpRequest statement transmitted from the client 100 to the server 200 using a cookie. The test script ID information is embedded and transmitted to the server 200. In the server 200, the test script ID is read by the program execution unit 232 or the runtime information recording unit 233 described later.
 また、テスト実行部133は、後述するテストスクリプト141を実行した結果、サーバ200の業務アプリケーションからの応答が予想していた結果と同じであるか(テスト結果として正常な結果か得られたかどうか)を検証する。検証した結果は、後述のテスト結果144として保存される。 Further, as a result of executing the test script 141 described later, the test execution unit 133 confirms that the response from the business application of the server 200 is the same as the expected result (whether a normal result is obtained as a test result). To verify. The verified result is stored as a test result 144 described later.
 テストスクリプト141は、本実施形態のテストを自動実行するためのファイルであり、図7にその一例を示している。図7の例では、Webアプリケーションのどのページにどのような入力パラメータを渡すかが、XML(eXtensible Markup Language)形式で保持されている。テストスクリプト141のフォーマットは、プログラムテストシステム1が採用するテストツールに依存する。図7の例はテストスクリプトIDが1001であるテストスクリプトを例示しており、業務アプリケーションに、「http://management.book/stock/」で特定されるWebページにアクセスして「title」の項目を値「△△△」によって検索する処理を実行させる。 The test script 141 is a file for automatically executing the test of this embodiment, and an example thereof is shown in FIG. In the example of FIG. 7, what input parameter is passed to which page of the Web application is held in an XML (eXtensible Markup Language) format. The format of the test script 141 depends on the test tool employed by the program test system 1. The example of FIG. 7 illustrates a test script with a test script ID of 1001. The business application accesses the Web page specified by “http://management.book/stock/” and enters “title”. A process for searching for an item by the value “ΔΔΔ” is executed.
 テストグループ情報格納テーブル142は、各テストグループがどのテストデータを用いてテストを実行するかを対応させて保持しているテーブルである。図8にテストグループ情報格納テーブル142の一例を示している。図8のテストグループ情報格納テーブル142には、テストグループ1421、テストデータ1422及び実行済みフラグ1423の各項目が記録されている。テストグループ1421の項目には、プログラムテストシステム1に含まれているテストグループを相互に識別するための識別符号を記録しており、例えばテストグループAについては「TestGroup_A」が記録される。 The test group information storage table 142 is a table that holds in correspondence with which test data each test group uses to execute a test. FIG. 8 shows an example of the test group information storage table 142. In the test group information storage table 142 of FIG. 8, items of a test group 1421, test data 1422, and an executed flag 1423 are recorded. In the item of the test group 1421, an identification code for mutually identifying the test groups included in the program test system 1 is recorded. For example, for the test group A, “TestGroup_A” is recorded.
 テストデータ1422の項目には、プログラムテストシステム1に含まれるテストデータを相互に識別するための識別符号が記録される。本実施形態では2種類のテストデータが設けられることが想定されており、テストデータ1422には「TestData_1」、「TestData_2」がそのテストデータを使用するテストグループに対応して記録されている。プログラムテストシステム1に新たにテストグループが追加された場合には、テストグループ情報格納テーブル142に新規のレコードが追加される。 In the item of test data 1422, an identification code for mutually identifying the test data included in the program test system 1 is recorded. In this embodiment, it is assumed that two types of test data are provided, and “TestData_1” and “TestData_2” are recorded in the test data 1422 corresponding to the test group using the test data. When a new test group is added to the program test system 1, a new record is added to the test group information storage table 142.
 実行済みフラグ1423は、過去に対応するテストグループによるテストが実行されたかを示す情報である実行済みフラグを記録しており、実行済みである場合には1が記録される。対応するテストグループ1421によるテストが未実行であれば0が記録される。したがって、初回テストの実行前及び新規のテストグループ1421に関するレコードが追加された際には、実行済みフラグ1423には0が記録されている。 The executed flag 1423 records an executed flag that is information indicating whether a test by a corresponding test group has been executed in the past, and 1 is recorded when it has been executed. If the test by the corresponding test group 1421 has not been executed, 0 is recorded. Therefore, before execution of the first test and when a record related to the new test group 1421 is added, 0 is recorded in the executed flag 1423.
 テストスクリプト情報格納テーブル143は、対象プログラムのテストを実行させるための各テストスクリプトがどのテストグループに属し当該テストスクリプトがどこに保存されているかに関する情報を保存するテーブルである。図9にテストスクリプト情報格納テーブル143の一例を示している。テストスクリプト情報格納テーブル143には、テストスクリプトID1431、テストグループ1432及びファイル名1433の項目が対応付けられて記録されている。テストスクリプトID1431は、各テストスクリプト141を相互に識別するために付与されている識別符号である。テストグループ1432は、テストグループ情報格納テーブル142に記録されているテストグループ1421と同じ識別符号である。ファイル名1433は、対応するテストスクリプトID1431で特定されるテストスクリプト141が格納されている格納場所を、データパスを含めたファイル名によって記録している。同じテストグループ1432に属するテストスクリプト141が実行される場合、テストスクリプトID1431が小さいものから順に実行される。 The test script information storage table 143 is a table for storing information regarding which test group each test script for executing the test of the target program belongs and where the test script is stored. FIG. 9 shows an example of the test script information storage table 143. In the test script information storage table 143, items of a test script ID 1431, a test group 1432, and a file name 1433 are recorded in association with each other. The test script ID 1431 is an identification code assigned to identify the test scripts 141 from each other. The test group 1432 has the same identification code as the test group 1421 recorded in the test group information storage table 142. The file name 1433 records the storage location where the test script 141 specified by the corresponding test script ID 1431 is stored, using the file name including the data path. When test scripts 141 belonging to the same test group 1432 are executed, the test scripts ID 1431 is executed in ascending order.
 図10に、テスト結果144の一例を示している。テスト結果144には、対象プログラムに対してテストスクリプト141を実行し、その実行結果が正常な実行結果と一致するかどうか、テストスクリプト実行により正しいテスト結果が得られたかを示している。本実施形態では、テストスクリプト141の例として、後述する書籍管理システムとしての業務アプリケーションに書籍名(title)が「△△△」である書籍を検索させるテストスクリプト141を図7に挙げている。図7のテストスクリプト141によって業務アプリケーションが実行した検索処理の検索結果は、その検索結果が適正であるかを判定するための他のテストスクリプト141によって自動的に確認されテスト結果144として出力される。図10の例では、図7のテストスクリプト141を実行した結果、正常な実行結果が得られたこと(success)を示している。テスト結果144の情報は、例えばクライアント100の出力装置15から出力させてユーザの閲覧に供することができる。 FIG. 10 shows an example of the test result 144. The test result 144 indicates whether or not the test script 141 is executed for the target program, the execution result matches the normal execution result, and whether or not the correct test result is obtained by the test script execution. In the present embodiment, as an example of the test script 141, a test script 141 that causes a business application as a book management system described later to search for a book whose title (title) is “ΔΔΔ” is illustrated in FIG. The search result of the search processing executed by the business application by the test script 141 in FIG. 7 is automatically confirmed by another test script 141 for determining whether the search result is appropriate, and is output as the test result 144. . The example of FIG. 10 indicates that a normal execution result was obtained as a result of executing the test script 141 of FIG. 7 (success). The information of the test result 144 can be output from the output device 15 of the client 100, for example, and browsed by the user.
 次に、図6を参照して、本実施形態におけるサーバ200の構成について説明する。図6に、サーバ200のソフトウェア構成例を示している。サーバ200には、OS210、データI/O部220、業務アプリケーション231、プログラム実行部232、実行時情報記録部233及びデータロード部234の各機能を実現するためのプログラムが実装されている。また、サーバ200には、DBMS240、業務アプリケーション用データ241、テストデータ242、ロード時間情報テーブル243、データベース操作情報格納テーブル(以下、「DB操作情報格納テーブル」)244及びデータベース更新情報格納テーブル(以下、「DB更新情報格納テーブル」)245が、例えば補助記憶装置13に格納されており、前記の業務アプリケーション231、プログラム実行部232、実行時情報記録部233及びデータロード部234によって適時に読み出されて利用される。 Next, the configuration of the server 200 in this embodiment will be described with reference to FIG. FIG. 6 shows a software configuration example of the server 200. The server 200 is loaded with programs for realizing the functions of the OS 210, the data I / O unit 220, the business application 231, the program execution unit 232, the runtime information recording unit 233, and the data load unit 234. The server 200 includes a DBMS 240, business application data 241, test data 242, load time information table 243, database operation information storage table (hereinafter “DB operation information storage table”) 244, and database update information storage table (hereinafter referred to as “database operation information storage table”). , “DB update information storage table”) 245 is stored in the auxiliary storage device 13, for example, and is read out by the business application 231, the program execution unit 232, the runtime information recording unit 233 and the data loading unit 234 in a timely manner. To be used.
データI/O部220はサーバ200で動作する各種ソフトウェアと入力装置14、出力装置15との間でのデータ入出力処理を管理する機能を有し、接続先の入力装置14、出力装置15に適合するデバイスドライバ等を含む。 The data I / O unit 220 has a function of managing data input / output processing between various software running on the server 200 and the input device 14 and the output device 15. Includes compatible device drivers.
 業務アプリケーション231は、本実施形態のプログラムテストシステム1によるテストの対象となる対象プログラムである。本実施形態では、業務アプリケーション231は、書籍の在庫情報を管理するWebアプリケーションであると想定しているが、業務アプリケーション231はどのような用途のアプリケーションプログラムであってもよい。業務アプリケーション231は、後述のDBMS240を介して後述する業務アプリケーション用データ241を呼び出して処理する。また、業務アプリケーション231は、テスト実行時にはクライアント100のテスト実行部133からの指示によりテストスクリプト141に記述されている処理を実行する。 The business application 231 is a target program to be tested by the program test system 1 of the present embodiment. In this embodiment, it is assumed that the business application 231 is a Web application that manages book inventory information, but the business application 231 may be an application program for any application. The business application 231 calls and processes business application data 241 (to be described later) via the DBMS 240 (to be described later). Further, the business application 231 executes processing described in the test script 141 according to an instruction from the test execution unit 133 of the client 100 at the time of test execution.
 プログラム実行部232は、業務アプリケーション231を実行するために必要なプログラム実行基盤を提供している。本実施形態では、アプリケーションサーバ上で動作するJava仮想マシンを想定しているが、特にこの構成に限定されるものではない。プログラム実行部232が業務アプリケーション231から後述のDBMS240に対する処理を指示するSQL文を受け取った際には、そのSQL文の内容と対応するテストスクリプトID1431を後述の実行時情報記録部233に通知して記録させる。プログラム実行部232は、SQL文実行前にすべき所定の処理が規定されていれば、当該処理を行う。所定の処理が完了した後はDBMS240へSQL文を発行する。さらにその後、再び実行時情報記録部233へSQL文及び対応するテストスクリプトID1431を通知しSQL文実行後の所定の処理が規定されていれば当該処理を行う。 The program execution unit 232 provides a program execution base necessary for executing the business application 231. In the present embodiment, a Java virtual machine operating on an application server is assumed, but the present invention is not particularly limited to this configuration. When the program execution unit 232 receives from the business application 231 a SQL statement instructing processing to the DBMS 240 described later, the test script ID 1431 corresponding to the content of the SQL statement is notified to the runtime information recording unit 233 described later. Let me record. If a predetermined process to be executed before executing the SQL statement is defined, the program execution unit 232 performs the process. After the predetermined processing is completed, an SQL statement is issued to the DBMS 240. Thereafter, the SQL statement and the corresponding test script ID 1431 are notified again to the runtime information recording unit 233, and if a predetermined process after execution of the SQL statement is defined, the process is performed.
 実行時情報記録部233は、業務アプリケーション231からSQL文が発行された際に、発行されたSQL文の内容とその解析結果をデータベース操作情報として後述のDB操作情報格納テーブル244に記録する。また、実行時情報記録部233は、業務アプリケーション231から発行されたSQL文がDBMS240によって実行される前後の所定の情報を、後述するDB更新情報格納テーブル245にDB更新情報として記録する処理を行う。 When the SQL statement is issued from the business application 231, the runtime information recording unit 233 records the content of the issued SQL statement and the analysis result thereof in the DB operation information storage table 244 described later as database operation information. The runtime information recording unit 233 records predetermined information before and after the SQL statement issued from the business application 231 is executed by the DBMS 240 as DB update information in the DB update information storage table 245 described later. .
 データロード部234は、対象プログラムである業務アプリケーション231のテストのために各テストグループ1421が使用する後述のテストデータ242を補助記憶装置13内の格納場所から読み出して、業務アプリケーション231がアクセスする後述の業務アプリケーション用データテーブル241に格納する処理を行う。また、データロード部234は、テストデータ242のロードに要した時間を計測して後述のロード時間情報格納テーブル243にロード時間情報として記録する。 The data load unit 234 reads later-described test data 242 used by each test group 1421 for testing the business application 231 that is the target program from a storage location in the auxiliary storage device 13, and is accessed later by the business application 231. Is stored in the business application data table 241. Further, the data load unit 234 measures the time required for loading the test data 242 and records it as load time information in a load time information storage table 243 described later.
 DBMS240は、業務アプリケーション231からデータベースの操作命令を含むSQL文を受領して後述の業務アプリケーション用テーブル241に対するデータ入出力処理を行う。業務アプリケーション用テーブル241は、サーバ200で稼働している業務アプリケーション231がアクセスして使用するデータを格納しているテーブルである。図11に業務アプリケーション用テーブル241の構成例を示している。本実施形態の業務アプリケーション231は、前記のように書籍の在庫管理を実施するためのアプリケーションプログラムを想定している。このため、図11の業務アプリケーション用テーブル241には、書籍の在庫管理を行うために必要な、id2411、title2412、publisher2413、price2414、stock2415の各項目が対応付けられて格納され、「Books」のテーブル名が付与されている。「id」2411は業務アプリケーション用テーブル241に記録されている各レコードを特定するための識別符号である。「title」2412は書籍名を、「publisher」2413は対応する書籍の出版社を、「price」2414は対応する書籍の価格を、「stock」2415は対応する書籍について本業務アプリケーション231を運用している組織が保有している在庫数をそれぞれ記録している。なお、業務アプリケーション用テーブル241に格納されるデータの種類は、業務アプリケーション231の用途、目的等に応じて異なり、また、2以上の業務アプリケーション用テーブル241が備えられている構成をとることも可能である。 The DBMS 240 receives a SQL statement including a database operation command from the business application 231 and performs data input / output processing on a business application table 241 described later. The business application table 241 is a table storing data that is accessed and used by the business application 231 running on the server 200. FIG. 11 shows a configuration example of the business application table 241. The business application 231 of the present embodiment assumes an application program for performing book inventory management as described above. Therefore, the business application table 241 in FIG. 11 stores the items of id 2411, title 2412, publisher 2413, price 2414, and stock 2415 necessary for managing the inventory of the books in association with each other, and the “Books” table Name is given. “Id” 2411 is an identification code for specifying each record recorded in the business application table 241. “Title” 2412 operates the book application, “publisher” 2413 operates the publisher of the corresponding book, “price” 2414 operates the price of the corresponding book, and “stock” 2415 operates the business application 231 for the corresponding book. The number of stocks held by each organization is recorded. Note that the type of data stored in the business application table 241 differs depending on the use and purpose of the business application 231, and a configuration in which two or more business application tables 241 are provided is also possible. It is.
 テストデータ242は、本実施形態のプログラムテストシステム1が業務アプリケーション231のテストを実行する際に使用するデータであり、テスト実行に際してデータロード部234によって業務アプリケーション用データテーブル241に読み込まれる。図12にテストデータ242の一例を示している。図12に例示するテストデータ242は、csv形式のファイルとして補助記憶装置13に保持されている。なお、テストデータ242は、専用の格納テーブルを用意して保持するようにしてもよい。 The test data 242 is data used when the program test system 1 of the present embodiment executes a test of the business application 231, and is read into the business application data table 241 by the data load unit 234 during the test execution. FIG. 12 shows an example of the test data 242. Test data 242 illustrated in FIG. 12 is held in the auxiliary storage device 13 as a csv format file. The test data 242 may be prepared and held in a dedicated storage table.
 ロード時間情報格納テーブル243は、データロード部234がテストデータ242を業務アプリケーション用テーブル241に読み込むのに要した時間を関連情報とともに記録するテーブルである。ロード時間情報格納テーブル243の一例を図13に示している。ロード時間情報格納テーブル243には、テストデータ2431、ロード種別2432、行情報2433、列情報2434及びロード時間2435の各項目が対応付けて記録される。テストデータ2431には、データロード部234がロードしたテストデータ242の識別符号が記録される。ロード種別2432には、対応するテストデータ242について実行されたロード処理の態様が、テストデータ242全体をロードする処理である全体ロードであるか、テストデータ242の一部だけをロードする処理である部分ロードであるかの種別が記録される。行情報2433には部分ロード処理においてテストデータ242のうちロードされた部分の行情報が、テストデータ242のIDを用いて記録される。列情報2434には、部分ロード処理においてテストデータ242のうちロードされた部分の列情報が、業務アプリケーション用テーブル241の列ラベル(title2412、publisher2413、price2414あるいはstock2415)によって記録される。ロード時間2435には、ロード処理に要した時間が記録される。全体ロードの場合には、テストデータ242としてのcsvファイルなどをDBMS240へ取り込むのに要した時間が記録される。部分ロードの場合には、業務アプリケーション用テーブル241のうち必要な箇所だけを変更(復元)するためのSQL文を生成する時間と、そのSQL文を実行する時間との合算値が記録される。 The load time information storage table 243 is a table that records the time required for the data load unit 234 to read the test data 242 into the business application table 241 together with related information. An example of the load time information storage table 243 is shown in FIG. In the load time information storage table 243, items of test data 2431, load type 2432, row information 2433, column information 2434, and load time 2435 are recorded in association with each other. In the test data 2431, an identification code of the test data 242 loaded by the data loading unit 234 is recorded. In the load type 2432, the mode of the load process executed for the corresponding test data 242 is an entire load that is a process for loading the entire test data 242, or a process for loading only a part of the test data 242. The type of partial load is recorded. In the line information 2433, the line information of the loaded part of the test data 242 in the partial load process is recorded using the ID of the test data 242. In the column information 2434, column information of a portion loaded in the test data 242 in the partial load processing is recorded by a column label (title 2412, publisher 2413, price 2414, or stock 2415) of the business application table 241. In the load time 2435, the time required for the load process is recorded. In the case of the entire load, the time required to load the csv file as the test data 242 into the DBMS 240 is recorded. In the case of partial load, a total value of a time for generating an SQL statement for changing (restoring) only a necessary portion of the business application table 241 and a time for executing the SQL statement is recorded.
 DB操作情報格納テーブル244は、業務アプリケーション231がDBMS240に対してどのようなSQL文を発行し、業務アプリケーション用テーブル241に対してどのような操作を行ったかに関する情報を記録しているテーブルであり、実行時情報記録部233によってデータが記録される。図14にDB操作情報格納テーブル244の一例を示している。図14のDB操作情報格納テーブル244には、テストスクリプトID2441、SQL文2442、アクセスパターン2443、アクセステーブル2444、アクセス条件2445、行情報2446及び列情報2447の各項目が対応付けて記録される。 The DB operation information storage table 244 is a table that records information regarding what SQL statements the business application 231 issued to the DBMS 240 and what operations were performed on the business application table 241. The data is recorded by the runtime information recording unit 233. FIG. 14 shows an example of the DB operation information storage table 244. In the DB operation information storage table 244 of FIG. 14, items of a test script ID 2441, an SQL statement 2442, an access pattern 2443, an access table 2444, an access condition 2445, row information 2446, and column information 2447 are recorded in association with each other.
 テストスクリプトID2441は、各テストスクリプト141を相互に識別するために付与されている識別符号である。SQL文2442には、テスト実行時に業務アプリケーション231からDBMS240に対して発行されたSQL文が記録される。SQL文2442はプログラム実行部232によって検知され実行時情報記録部233へ通知される。アクセスパターン2443には対応するSQL文2442によって実行される操作の内容が記録される。図14の例では、select(選択)、update(更新)、delete(削除)、insert(挿入)のいずれかであるが、SQLで定義されている他の操作について記録するようにしてもよい。アクセステーブル2444には、対応するSQL文2442の操作の対象となるテーブルのテーブル名が記録される。本実施形態では業務アプリケーション用テーブル241の名称である「Books」が記録される。 The test script ID 2441 is an identification code assigned to identify the test scripts 141 from each other. In the SQL statement 2442, an SQL statement issued from the business application 231 to the DBMS 240 during the test execution is recorded. The SQL statement 2442 is detected by the program execution unit 232 and notified to the runtime information recording unit 233. The access pattern 2443 records the contents of the operation executed by the corresponding SQL statement 2442. In the example of FIG. 14, any of select (selection), update (update), delete (deletion), and insert (insertion) may be recorded, but other operations defined in SQL may be recorded. The access table 2444 records the table name of the table that is the target of the operation of the corresponding SQL sentence 2442. In the present embodiment, “Books” which is the name of the business application table 241 is recorded.
 アクセス条件2445には、対応するSQL文2442によって実行される操作の対象を指定する条件が、対応するSQL文2442のwhere句によって記述されている内容として記録される。行情報2446及び列情報2447には、対応するSQL文2442を実行することにより取得されるデータが存在するテーブル「Books」内の位置がそれぞれ記録される。行情報2446には、プライマリーキーの情報が、列情報2447には、対応する列名が記録される。図14のテストスクリプトID2441=101のレコードを参照すると、テーブル「Books」から「stock(在庫)が5未満」である書籍のtitle(書名)を取得する操作が記録されている。この場合、行情報2446には、該当するレコードのidとして15、165、210の3つのIDが記録され、列情報2447には列名として「title」が記録される。 In the access condition 2445, a condition for specifying a target of an operation executed by the corresponding SQL sentence 2442 is recorded as contents described by a where clause of the corresponding SQL sentence 2442. In the row information 2446 and the column information 2447, positions in the table “Books” where data acquired by executing the corresponding SQL statement 2442 exists are recorded. In the row information 2446, primary key information is recorded, and in the column information 2447, the corresponding column name is recorded. Referring to the record of test script ID 2441 = 101 in FIG. 14, an operation for acquiring a title of a book whose “stock (stock) is less than 5” from the table “Books” is recorded. In this case, three IDs of 15, 165, and 210 are recorded in the row information 2446 as ids of the corresponding records, and “title” is recorded in the column information 2447 as the column name.
 アクセスパターン2443、アクセステーブル2444及びアクセス条件2445は、対応するSQL文2442を解析することで取得することができる。また、行情報2446及び列情報2447は、アクセステーブル2444とアクセス条件2445とにより、対応するSQL文2442を実行することで取得することができる。 The access pattern 2443, the access table 2444, and the access condition 2445 can be acquired by analyzing the corresponding SQL sentence 2442. Further, the row information 2446 and the column information 2447 can be acquired by executing the corresponding SQL statement 2442 using the access table 2444 and the access condition 2445.
 DB更新情報格納テーブル245は、業務アプリケーション231から発行されたSQL文により操作対象である業務アプリケーション用テーブル241の状態が変更される場合、言い換えればSQL文に含まれる操作内容がupdate(更新)/delete(削除)/insert(挿入)である場合に、業務アプリケーション用テーブル241に関するデータの変化を記録しておくためのテーブルである。DB更新情報格納テーブル245に記録されたデータは、データロード部234がテストデータ242について部分ロード処理を行う際に使用される。 The DB update information storage table 245 indicates that when the status of the business application table 241 to be operated is changed by the SQL statement issued from the business application 231, in other words, the operation content included in the SQL statement is updated / updated. This is a table for recording changes in data related to the business application table 241 in the case of delete / insert. The data recorded in the DB update information storage table 245 is used when the data load unit 234 performs a partial load process on the test data 242.
 図15にDB更新情報格納テーブル245の一例を示している。DB更新情報格納テーブル245には、テストスクリプトID2451、アクセスタイミング2452、id2453、title2454、publisher2455、price2456及びstock2457の各項目が対応付けて記録されている。テストスクリプトID2451は、DB操作情報格納テーブル244に記録されているテストスクリプトID2441に対応している。アクセスタイミング2452には、更新情報を格納テーブル245に記録したタイミングが対応するテストスクリプトID2451で特定されているテストスクリプト141の実行前か実行後かが記録される。 FIG. 15 shows an example of the DB update information storage table 245. In the DB update information storage table 245, test script ID 2451, access timing 2452, id 2453, title 2454, publisher 2455, price 2456, and stock 2457 are recorded in association with each other. The test script ID 2451 corresponds to the test script ID 2441 recorded in the DB operation information storage table 244. The access timing 2452 records whether the update information is recorded in the storage table 245 before or after the execution of the test script 141 specified by the corresponding test script ID 2451.
 id2453、title2454、publisher2455、price2456及びstock2457の各項目は、業務アプリケーション用データテーブル241に記録されているid2411、title2412、publisher2413、price2414及びstock2415にそれぞれ対応している。業務アプリケーション231から発行されたSQL文がupdateの場合は、updateの実行前後のデータが行単位で記録される。業務アプリケーション231から発行されたSQL文がdeleteの場合には、deleteの実行前のデータが行単位で記録される。業務アプリケーション231から発行されたSQL文がinsertの場合には、insertの実行後のデータが行単位で記録される。例えばテストスクリプトID2451=2のレコードについては、図14のSQL文2442からupdateの操作が実行されることが分かるためupdate実行前後のデータが記録される。この結果、図15に示すように、stock2457について、数値0が30に変化している。 The items id 2453, title 2454, publisher 2455, price 2456, and stock 2457 correspond to id 2411, title 2412, publisher 2413, price 2414, and stock 2415 recorded in the business application data table 241, respectively. When the SQL statement issued from the business application 231 is update, data before and after the execution of update is recorded in units of rows. When the SQL statement issued from the business application 231 is “delete”, data before execution of “delete” is recorded in units of rows. When the SQL statement issued from the business application 231 is insert, data after execution of insert is recorded in units of rows. For example, for the record with the test script ID 2451 = 2, since it can be seen from the SQL statement 2442 in FIG. 14 that the update operation is executed, data before and after the update execution is recorded. As a result, as shown in FIG. 15, the numerical value 0 changes to 30 for stock 2457.
 次に、更新箇所テーブル1500及び復元箇所テーブル1550について説明する。更新箇所テーブル1500、復元箇所テーブル1550は、クライアント100のテスト実行順序入れ替え部130に割り当てられているメモリ領域の一部に格納されている一時変数であるが、本実施形態の例のようにテーブル形式で保持させることもできる。更新箇所テーブル1500、復元箇所テーブル1550は、次に実行しようとするテストグループ1421のためにロードすべきテストデータ1422について、直前に実行された他のテストグループ1421による業務アプリケーション用テーブル241の操作結果に基づいて、次に実行しようとするテストグループ1421についてテストデータ全体をロードする処理である全体ロードと、テストデータを部分的にロードする処理である部分ロードのいずれの処理を行えばよいかを判定するために使用される。 Next, the update location table 1500 and the restoration location table 1550 will be described. The update location table 1500 and the restoration location table 1550 are temporary variables stored in a part of the memory area allocated to the test execution order changing unit 130 of the client 100. However, the update location table 1500 and the restoration location table 1550 are tables as in the example of this embodiment. It can also be held in the form. The update location table 1500 and the restoration location table 1550 are the operation results of the business application table 241 by the other test group 1421 executed immediately before the test data 1422 to be loaded for the test group 1421 to be executed next. Based on the above, it is determined whether to perform the entire load that is the process of loading the entire test data for the test group 1421 to be executed next or the partial load that is the process of partially loading the test data. Used to determine.
 図16、図17に、更新箇所テーブル1500、復元箇所テーブル1550の一例をそれぞれ示している。更新箇所テーブル1500、復元箇所テーブル1550は、いずれも業務アプリケーション用テーブル241と同一の構成で同じデータ項目を記録している。具体的には、更新箇所テーブル1500、復元箇所テーブル1550の各行には図11のid2411、title2412、publisher2413、price2414及びstock2415の各項目が割り当てられている。更新箇所テーブル1500、復元箇所テーブル1550はともに、初期状態では記録されているすべてのデータが0である。 FIGS. 16 and 17 show examples of the update location table 1500 and the restoration location table 1550, respectively. The update location table 1500 and the restoration location table 1550 both record the same data items with the same configuration as the business application table 241. Specifically, items of id 2411, title 2412, publisher 2413, price 2414, and stock 2415 in FIG. 11 are assigned to the rows of the update location table 1500 and the restoration location table 1550, respectively. In the updated location table 1500 and the restored location table 1550, all recorded data are 0 in the initial state.
 更新箇所テーブル1500ではデータとして1が記録されている場合、直前に実行されたテストグループ1421のためにロードされたテストデータ242について、当該テストグループ1421に含まれるテストスクリプト141によって発行されたSQL文に含まれている操作命令、update(更新)、delete(削除)、insert(挿入)により、それら1が記録されているデータには変更が加えられたことを示している。更新箇所テーブル1500の記録は、クライアント100の実行順序入れ替え部130にあるテストグループ選択部131によって行われる。 When 1 is recorded as data in the update location table 1500, the SQL statement issued by the test script 141 included in the test group 1421 for the test data 242 loaded for the test group 1421 executed immediately before It is shown that the data recorded with 1 is changed by the operation instruction, update (update), delete (delete), and insert (insertion) included in. The update location table 1500 is recorded by the test group selection unit 131 in the execution order changing unit 130 of the client 100.
 また、テストグループ選択部131は、次に対象プログラムに対して実行されるテストグループ候補について、DB更新情報格納テーブル245を参照して各テストグループ候補に含まれるテストスクリプト141に従って発行されるSQL文によりアクセスされることとなるデータ部位を調べる。更新箇所テーブル1500の1が記録されているデータと、テストグループ候補に含まれるテストスクリプト141によるアクセス箇所(行情報・列情報により決まるデータ部位)とが重複すると判定された場合、当該重複箇所を次のテストグループ1421のテストスクリプト141実行前に復元しておく必要がある。そのため、復元箇所テーブル1550において、前記重複箇所と判定された部位のデータとして1を記録する。なお、復元箇所は、次に実行しようとしているテストグループ1421に含まれるテストスクリプト141によって利用される可能性がある箇所と規定されるため、重複箇所を判定するためのSQL文には実質的にデータの書き換え等を行わないselect操作も含まれる。 In addition, the test group selection unit 131 refers to the DB update information storage table 245 for the test group candidate to be executed next for the target program, and the SQL statement issued according to the test script 141 included in each test group candidate Examine the data part that will be accessed by. If it is determined that the data in which the update location table 1500 is recorded and the access location (data location determined by the row information / column information) by the test script 141 included in the test group candidate are duplicated, the duplicate location is It is necessary to restore the test script 141 before executing the next test group 1421. Therefore, 1 is recorded in the restoration location table 1550 as the data of the portion determined as the overlapping location. Note that the restoration location is defined as a location that may be used by the test script 141 included in the test group 1421 to be executed next, so the SQL statement for determining the duplicate location is substantially included in the SQL statement. A select operation that does not rewrite data is also included.
 次に、以上の構成を有する本実施形態のプログラムテストシステム1によるデータ処理の内容について説明する。まず、図18を参照して、本システム1の主要な機能であるテスト実行順序入れ替え処理について説明する。図18は、本実施形態のテスト実行順序入れ替え処理を実現するデータ処理フローの一例を示している。テスト実行順序入れ替え処理は、クライアント100に実行されているテスト実行順序入れ替え部130によって実行される。 Next, the contents of data processing by the program test system 1 of the present embodiment having the above configuration will be described. First, with reference to FIG. 18, the test execution order changing process, which is the main function of the system 1, will be described. FIG. 18 shows an example of a data processing flow for realizing the test execution order changing process of the present embodiment. The test execution order changing process is executed by the test execution order changing unit 130 executed in the client 100.
 まず、図8のテストグループ情報格納テーブル142から今回テストする各テストグループ1421の情報を取得する。次に、それらのテストグループ1421を使用するテストデータ1422毎に分類する(S1610)。本実施形態の場合、図8に示すように、使用するテストデータ1422により、TestData_1を使用するテストグループ1421であるTestGroup_A、TestGroup_C、TestGroup_D及びTestGroup_Fと、TestData_2を使用するテストグループ1421であるTestGroup_B、TestGroup_Eの2つのセットに分類される。 First, information on each test group 1421 to be tested this time is acquired from the test group information storage table 142 in FIG. Next, it classifies for each test data 1422 which uses those test groups 1421 (S1610). In the case of the present embodiment, as shown in FIG. 8, TestGroup_A, TestGroup_C, TestGroup_D, and TestGroup_F that are Test Groups 1421 that use TestData_1, and TestGroup_B and TestGroup_E that are Test Groups 1421 that use TestData_2, based on the test data 1422 used. Are classified into two sets.
 次に、分類した各セットに含まれているテストグループ1421によるテストをすべてのテストグループ1421について完了するまで反復する(S1620のループ)。 Next, the test by the test group 1421 included in each classified set is repeated until all the test groups 1421 are completed (S1620 loop).
 実行順序入れ替え部130は、選択されたセットの中にテスト未実行のテストグループ1421があるか判定する(S1621)。特定のテストグループ1421についてテストを実行済みであるかは、テストグループ情報格納テーブル142を参照し、これに記録されている実行済みフラグ1423が1であるかによって判定することができる。いまTestGroup_A、TestGroup_C、TestGroup_D及びTestGroup_Fを含むセットについて考えると、TestGroup_Fが未実行であると判定される。 The execution order changing unit 130 determines whether there is a test group 1421 that has not been executed in the selected set (S1621). Whether or not a test has been executed for a specific test group 1421 can be determined by referring to the test group information storage table 142 and determining whether or not the executed flag 1423 recorded therein is 1. Now, considering a set including TestGroup_A, TestGroup_C, TestGroup_D, and TestGroup_F, it is determined that TestGroup_F has not been executed.
 S1621で未実行のテストグループ1421があると判定された場合(S1621、Yes)、同一のセットに含まれるすべてのテストグループ1421についてテストが実行されるまで、テストを反復して実行する(S1630のループ)。まず、未実行のテストグループ1421をテストグループ情報格納テーブル142から抽出し、未実行のテストグループ1421が複数ある場合には、その中から任意の一つを選択する。図8の例では、TestData_1に関する未実行テストグループ1421はTestGroup_Fのみであるのでこれについてテストを実行することになる(S1630)。 When it is determined in S1621 that there is an unexecuted test group 1421 (S1621, Yes), the test is repeatedly executed until the test is executed for all the test groups 1421 included in the same set (S1630). loop). First, an unexecuted test group 1421 is extracted from the test group information storage table 142. If there are a plurality of unexecuted test groups 1421, one of them is selected. In the example of FIG. 8, since the unexecuted test group 1421 related to TestData_1 is only TestGroup_F, the test is executed for this (S1630).
 次に、選択された未実行テストグループ1421についてテストを実行する前に、当該テストグループ1421に対応するテストデータ1422(本実施形態ではTestData_1)をDBMS240に読み込むデータロード処理がデータロード部234によって実行される(S1631)。データロード処理の処理内容については後述する。 Next, before executing a test on the selected unexecuted test group 1421, the data load unit 234 executes a data load process for reading the test data 1422 (TestData_1 in this embodiment) corresponding to the test group 1421 into the DBMS 240. (S1631). The details of the data loading process will be described later.
 次いで、クライアント100にあるテスト実行部133が、選択されたテストグループ1421に含まれるテストスクリプト141を順に実行し、実行時情報をDB操作情報格納テーブル244及びDB更新情報格納テーブル245に記録する実行時情報記録処理を実行する(S1632)。実行時情報記録処理の処理内容については、後述する。テストグループ1421に含まれるテストスクリプト141とその保存場所は、図9に例示するテストスクリプト情報格納テーブル143から取得する。テスト実行部133は、テストスクリプトを実行した結果として適切な結果が得られたかをテスト結果144として例えば補助記憶装置13に記録する。 Next, the test execution unit 133 in the client 100 sequentially executes the test scripts 141 included in the selected test group 1421 and records execution time information in the DB operation information storage table 244 and the DB update information storage table 245. A time information recording process is executed (S1632). The details of the runtime information recording process will be described later. The test script 141 included in the test group 1421 and its storage location are acquired from the test script information storage table 143 illustrated in FIG. The test execution unit 133 records, for example, in the auxiliary storage device 13 as a test result 144 whether an appropriate result is obtained as a result of executing the test script.
 次いでテスト実行部133は、テストグループ情報格納テーブル142において、テストを実行したテストグループ1421に対応する実行済みフラグ1423に1を記録する(S1633)。以上の処理は、未実行のテストグループ1421がなくなるまで反復される。 Next, the test execution unit 133 records 1 in the executed flag 1423 corresponding to the test group 1421 that executed the test in the test group information storage table 142 (S1633). The above process is repeated until there is no unexecuted test group 1421.
 一方、S1621で同一のテストデータ1422に対するセット内にテスト未実行のテストグループ1421がないと判定された場合(S1621、No)、実行順序入れ替え部130は、当該セットに含まれるすべての実行済みテストグループ1421(図8のテストグループ情報格納テーブル142において実行済みフラグ1423として1が記録されているテストグループ)について、以下の処理を反復して実行する(S1640のループ)。図8の例ではテストデータTestData_1に対応するTestGroup_A、TestGroup_C、TestGroup_D、TestGroup_Fのうち、TestGroup_A、TestGroup_C、TestGroup_Dについて実行済みフラグ1423に1が記録されているため、これら3つのテストグループ1421がS1640のループ処理の対象となる。 On the other hand, if it is determined in S1621 that there is no test group 1421 that has not been executed in the set for the same test data 1422 (S1621, No), the execution order changing unit 130 performs all executed tests included in the set. For the group 1421 (the test group in which 1 is recorded as the executed flag 1423 in the test group information storage table 142 of FIG. 8), the following processing is repeatedly executed (loop of S1640). In the example of FIG. 8, since 1 is recorded in the executed flag 1423 for TestGroup_A, TestGroup_C, and TestGroup_D among TestGroup_A, TestGroup_C, TestGroup_D, and TestGroup_F corresponding to the test data TestData_1, these three test groups 1421 are loops of S1640. It becomes the object of processing.
 まず、実行順序入れ替え部130は、前記の選択された実行済みテストグループ1421について、次にいずれのテストグループ1421についてテストを実行するかを決定するための処理であるテストグループ選択処理を実行する(S1641)。テストグループ選択処理は、次に実行されるテストグループ1421のためにテストデータ1422を読み込むロード時間が最小となるようにテストグループ1421の選択を行う処理であり、選択されたテストグループ1421及び当該テストグループ1421によるテストを実行するために使用する復元箇所テーブル1550が生成されてサーバ200のデータロード部234に通知される。テストグループ選択処理の具体的な処理内容については後述する。 First, the execution order changing unit 130 executes a test group selection process, which is a process for determining which test group 1421 the test is executed next for the selected executed test group 1421 ( S1641). The test group selection process is a process of selecting the test group 1421 so that the load time for reading the test data 1422 for the test group 1421 to be executed next is minimized. A restoration location table 1550 used for executing a test by the group 1421 is generated and notified to the data load unit 234 of the server 200. Specific processing contents of the test group selection processing will be described later.
 次いでサーバ200のデータロード部234は、実行順序入れ替え部130から通知された内容に従って、S1631と同様のデータロード処理を実行する(S1642)。テストデータのロード完了後、クライアント100のテスト実行部133が選択されたテストグループ1421に含まれるテストスクリプト141を順に実行し、実行時情報をDB操作情報格納テーブル244及びDB更新情報格納テーブル245に記録する実行時情報記録処理を実行する(S1643)。テスト実行部133は、テストスクリプトを実行した結果として適切な結果が得られたかをテスト結果144として、例えば補助記憶装置13に記録して処理を終了する。 Next, the data load unit 234 of the server 200 executes the data load process similar to S1631 according to the content notified from the execution order changing unit 130 (S1642). After the loading of the test data is completed, the test execution unit 133 of the client 100 sequentially executes the test scripts 141 included in the selected test group 1421, and the execution time information is stored in the DB operation information storage table 244 and the DB update information storage table 245. A runtime information recording process for recording is executed (S1643). The test execution unit 133 records whether or not an appropriate result is obtained as a result of executing the test script as the test result 144 in, for example, the auxiliary storage device 13 and ends the process.
 以上のテスト実行順序入れ替え処理によれば、各テストグループ1421によるテスト実行結果に基づいて後続のテストグループ1421としてテストデータ1422のロード時間が最も短いテストグループ1421を選択することができるので、業務アプリケーション231に対するテスト実行時間を可及的に短縮することができる。 According to the above test execution order changing process, the test group 1421 having the shortest load time of the test data 1422 can be selected as the subsequent test group 1421 based on the test execution result by each test group 1421. The test execution time for H.231 can be shortened as much as possible.
 次に、本実施形態のテスト実行順序入れ替え処理において実行される実行時情報記録処理、テストグループ選択処理及びデータロード処理について順次説明する。 Next, the runtime information recording process, the test group selection process, and the data load process executed in the test execution order changing process of the present embodiment will be described sequentially.
 まず、実行時情報記録処理について図19を参照して説明する。図19は、本実施形態の実行時情報記録処理を実現するデータ処理フローの一例を示している。実行時情報記録処理は、後述するテストグループ選択処理におけるテストグループ判定において、対応するテストデータ1422のロード時間を基準として選択するために業務アプリケーション231によるDBMS240を介したデータベースの操作情報及び更新情報を取得する処理である。実行時情報記録処理は、業務アプリケーション231が稼働しているサーバ200のプログラム実行部232が実行する。プログラム実行部232は、図2におけるプログラム実行基盤に相当する。 First, the runtime information recording process will be described with reference to FIG. FIG. 19 shows an example of a data processing flow for realizing the runtime information recording process of the present embodiment. In the execution time information recording process, database operation information and update information via the DBMS 240 by the business application 231 are selected in order to select the load time of the corresponding test data 1422 in the test group determination in the test group selection process described later. It is a process to acquire. The runtime information recording process is executed by the program execution unit 232 of the server 200 in which the business application 231 is running. The program execution unit 232 corresponds to the program execution base in FIG.
 プログラム実行部232は、業務アプリケーション231がDBMS240へ発行したSQL文を業務アプリケーション231から取得し、又当該SQL文を生成させたテストスクリプト141に付帯しているテストスクリプトID1431をテストスクリプト情報格納テーブル143から取得する(S1705)。 The program execution unit 232 acquires the SQL statement issued by the business application 231 to the DBMS 240 from the business application 231, and sets the test script ID 1431 attached to the test script 141 that generated the SQL statement to the test script information storage table 143. (S1705).
 次にプログラム実行部232は、取得したSQL文を解析してその解析結果をDB操作情報格納テーブル244に記録する(S1710)。SQL文の解析は、一般のDBMSに実装されているSQLパーサの技術を利用して行うことができる。SQL文の解析により、DB操作情報格納テーブル244には、図14に関して説明したように、アクセスパターン2443、アクセステーブル2444、アクセス条件2445及びアクセス箇所としての行情報2446、列情報2447である。解析対象のSQL文に含まれる操作内容がinsert(挿入)、又はdelete(削除)の場合には、対応する列情報2447は常に業務アプリケーション用テーブル241に設定されているすべての列となる。また、行情報2446は業務アプリケーション用テーブル241のプライマリーキーとなるため、アクセス条件2445の項目に常に行情報2446が含まれるとは限らない。そこで、アクセス条件2445の項目に行情報2446が含まれないと判定した場合には、アクセス条件2445を用いたselect文を一度発行して行情報2446を調べることになる。 Next, the program execution unit 232 analyzes the acquired SQL sentence and records the analysis result in the DB operation information storage table 244 (S1710). The analysis of the SQL sentence can be performed using the technique of an SQL parser implemented in a general DBMS. By analyzing the SQL statement, the DB operation information storage table 244 includes an access pattern 2443, an access table 2444, an access condition 2445, row information 2446 as an access location, and column information 2447 as described with reference to FIG. When the operation content included in the SQL statement to be analyzed is “insert” or “delete”, the corresponding column information 2447 is always all the columns set in the business application table 241. Further, since the line information 2446 is a primary key of the business application table 241, the item of the access condition 2445 does not always include the line information 2446. Therefore, if it is determined that the line information 2446 is not included in the item of the access condition 2445, a select statement using the access condition 2445 is issued once to check the line information 2446.
 次に、プログラム実行部232は、アクセスパターン2443に記録されている操作内容を判定し、その判定結果に従って以下の処理を行う(S1720)。アクセスパターン2443がselectであると判定した場合(S1720=select)、プログラム実行部232はそのまま業務アプリケーション231から発行されたSQL文をDBMS240へ発行して処理を終了する(S1730)。select文を実行したことによって業務アプリケーション用テーブル241にはなにも変化は引き起こされないため、後述するようなDB更新情報格納テーブル245への記録は行われない。 Next, the program execution unit 232 determines the operation content recorded in the access pattern 2443, and performs the following processing according to the determination result (S1720). When it is determined that the access pattern 2443 is select (S1720 = select), the program execution unit 232 issues the SQL statement issued from the business application 231 as it is to the DBMS 240 and ends the processing (S1730). Since no change is caused in the business application table 241 by executing the select statement, recording in the DB update information storage table 245 as described later is not performed.
 アクセスパターン2443がupdateであると判定された場合(S1720=update)、プログラム実行部232は、アクセステーブル名2444及びアクセス条件2445を用いてSQL文を発行し、実際に対象プログラムである業務アプリケーション231が業務アプリケーション用テーブル241のどの箇所を更新するのかを調べる。プログラム実行部232は、得られたアクセス箇所に関する行情報2446及び列情報2447をDB更新情報格納テーブル245に記録する(S1740)。次いで、プログラム実行部232は、業務アプリケーション231から発行されたSQL文をDBMS240へ発行して実行させる(S1741)。次に、プログラム実行部232は、アクセステーブル2444とアクセス条件2445を用いてSQL文を発行し、更新された箇所を含む行に関する情報を実行後の状態としてDB更新情報格納テーブル245に記録する(S1742)。 When it is determined that the access pattern 2443 is update (S1720 = update), the program execution unit 232 issues an SQL statement using the access table name 2444 and the access condition 2445, and the business application 231 that is actually the target program. Examines which part of the business application table 241 is to be updated. The program execution unit 232 records the row information 2446 and the column information 2447 regarding the obtained access location in the DB update information storage table 245 (S1740). Next, the program execution unit 232 issues the SQL statement issued from the business application 231 to the DBMS 240 for execution (S1741). Next, the program execution unit 232 issues an SQL statement using the access table 2444 and the access condition 2445, and records information on the line including the updated portion in the DB update information storage table 245 as a state after execution ( S1742).
 アクセスパターン2443がdeleteであると判定された場合(S1720=delete)、プログラム実行部232は、アクセステーブル2444及びアクセス条件2445を用いてSQL文を発行し、実際に対象プログラムである業務アプリケーション231が業務アプリケーション用テーブル241のどの箇所を削除するのかを調べ、削除する行に関する情報を実行前の状態としてDB更新情報格納テーブル245に記録する(S1750)。そして、プログラム実行部232はそのまま業務アプリケーション231から発行されたSQL文をDBMS240へ発行して処理を終了する(S1751)。 If it is determined that the access pattern 2443 is delete (S1720 = delete), the program execution unit 232 issues an SQL statement using the access table 2444 and the access condition 2445, and the business application 231 that is actually the target program is issued. It is checked which part of the business application table 241 is to be deleted, and information related to the deleted line is recorded in the DB update information storage table 245 as a state before execution (S1750). Then, the program execution unit 232 issues the SQL statement issued from the business application 231 as it is to the DBMS 240 and ends the processing (S1751).
 アクセスパターン2443がinsertであると判定された場合(S1720=insert)、業務アプリケーション231から発行されたSQL文をDBMS240へ発行して実行させる(S1760)。次いでプログラム実行部232は、アクセステーブル2444とアクセス条件2445を用いてSQL文を発行し、実際に業務アプリケーション用テーブル241にどのような行が挿入されたのかを調べ、挿入された行に関する情報を実行後の状態としてDB更新情報格納テーブル245に記録して処理を終了する(S1761)。 When it is determined that the access pattern 2443 is insert (S1720 = insert), the SQL statement issued from the business application 231 is issued to the DBMS 240 and executed (S1760). Next, the program execution unit 232 issues an SQL statement using the access table 2444 and the access condition 2445, examines what rows are actually inserted into the business application table 241, and obtains information on the inserted rows. The post-execution state is recorded in the DB update information storage table 245, and the process ends (S1761).
 S1720において、アクセスパターン2443がselect、update、delete、insertのいずれでもないと判定された場合(S1720=その他)、プログラム実行部232はそのまま業務アプリケーション231から発行されたSQL文をDBMS240へ発行して処理を終了する(S1770)。なお、DB操作情報格納テーブル244又はDB更新情報格納テーブル245に記録しようとする情報と同一の情報がすでに記録されている場合には、重複を避けるために後に記録しようとする情報を記録しないこととしてもよい。 In S1720, when it is determined that the access pattern 2443 is neither select, update, delete, or insert (S1720 = others), the program execution unit 232 issues the SQL statement issued from the business application 231 as it is to the DBMS 240. The process ends (S1770). If the same information as the information to be recorded in the DB operation information storage table 244 or the DB update information storage table 245 has already been recorded, the information to be recorded later is not recorded in order to avoid duplication. It is good.
 以上の実行時情報記録処理によれば、業務アプリケーション231がテストスクリプト141に基づいて実際に業務アプリケーション用テーブル241上でアクセスする箇所を特定することができ、後述のテストグループ選択処理においてテストデータ1421全体をロードすべきかを判定する際の判定材料を得ることができる。 According to the above-described runtime information recording process, the location where the business application 231 actually accesses the business application table 241 can be specified based on the test script 141, and the test data 1421 can be specified in the test group selection process described later. A determination material for determining whether to load the whole can be obtained.
 次に、テストグループ選択処理について説明する。図20に、本実施形態におけるテストグループ選択処理を実現するためのデータ処理フローの一例を示している。テストグループ選択処理は、クライアント100の実行順序入れ替え部130に実装されているテストグループ選択部131によって実行されるデータ処理であり、ここでクライアント100によって次にテストが実行されるテストグループ1421が選択される。 Next, the test group selection process will be described. FIG. 20 shows an example of a data processing flow for realizing the test group selection process in the present embodiment. The test group selection process is a data process executed by the test group selection unit 131 installed in the execution order changing unit 130 of the client 100, where the test group 1421 to be executed next by the client 100 is selected. Is done.
 まずテストグループ選択部131は、次に実行されるテストに使用すべきテストグループ候補、復元容量及び更新箇所テーブル1500を初期化する(S1810)。本実施形態で、復元容量は、業務アプリケーション用テーブル241のうち前に実行されたテストグループ1421によって変更された箇所で、次のテストデータ1422を読み込む際に最低限復旧しておくべき箇所として復元箇所テーブル1550に記録されている箇所(復元箇所テーブル1550に1が記録されているセル)の数である。 First, the test group selection unit 131 initializes a test group candidate to be used for a test to be executed next, a restoration capacity, and an update location table 1500 (S1810). In this embodiment, the restoration capacity is a place changed by the test group 1421 executed previously in the business application table 241 and restored as a place that should be restored at the minimum when the next test data 1422 is read. The number of locations recorded in the location table 1550 (cells where 1 is recorded in the restored location table 1550).
 次に、テストグループ選択部131は、DB更新情報格納テーブル245を参照して実行済みテストグループ1421がアクセスした業務アプリケーション用テーブル241の箇所を更新箇所テーブル1500に記録する(S1820)。これで、後続のテストグループ候補がアクセスする可能性がある業務アプリケーション用テーブル241上の箇所と比較するための基礎データが準備されたことになる。 Next, the test group selection unit 131 records the location of the business application table 241 accessed by the executed test group 1421 in the update location table 1500 with reference to the DB update information storage table 245 (S1820). Thus, basic data for comparison with a location on the business application table 241 that may be accessed by a subsequent test group candidate is prepared.
 次いで、テストグループ選択部131は以下に示す処理をすべての未実行テストグループ1421について繰り返し実行する(S1830のループ)。まずテストグループ選択部131は、未実行テストグループ1421から任意の1つを選択し(S1831)、復元箇所テーブル1550をゼロクリアすることにより初期化する(S1832)。次にテ、ストグループ選択部131は、更新箇所テーブル1500に記録されている更新箇所(データとして1が記録されている箇所)と、選択した未実行テストグループ1421によって参照又は更新される可能性がある箇所とを比較して重複する箇所を復元箇所テーブル1550に記録する(S1833)。更新箇所テーブル1500に記録されている更新箇所であって次の未実行テストグループ1421によって参照あるいは更新される箇所については、テスト結果の信頼性を保持するために更新前の値に復旧する必要がある。復元箇所テーブル1550には、このようなデータ復元を要する箇所、言い換えれば次のテストグループによるテストを実行する前に最低限新たにロードしておかなければならない箇所が記録されている。前記の復元容量はこのような復元箇所テーブル1550上の要復元箇所の数を表す。なお、未実行テストグループ1421によって参照あるいは更新される可能性がある箇所は、DB更新情報格納テーブル245を参照することによって取得される。 Next, the test group selection unit 131 repeatedly executes the following processing for all the unexecuted test groups 1421 (S1830 loop). First, the test group selection unit 131 selects an arbitrary one from the unexecuted test groups 1421 (S1831), and initializes the restoration location table 1550 by clearing it to zero (S1832). Next, the test group selection unit 131 may be referred to or updated by the update location (location where 1 is recorded as data) recorded in the update location table 1500 and the selected unexecuted test group 1421. Compared with a certain place, an overlapping place is recorded in the restoration place table 1550 (S1833). For the update location recorded in the update location table 1500 and referenced or updated by the next unexecuted test group 1421, it is necessary to restore the value before the update in order to maintain the reliability of the test result. is there. In the restoration location table 1550, locations that require such data restoration, in other words, locations that must be newly loaded before executing a test by the next test group are recorded. The restoration capacity represents the number of restoration points that need to be restored on the restoration point table 1550. A portion that may be referred to or updated by the unexecuted test group 1421 is acquired by referring to the DB update information storage table 245.
 次にテストグループ選択部131は、選択した未実行テストグループ1421によって発行されるSQL文によって規定されるアクセス条件2445が「範囲指定」又は「副問い合わせ」を含むか判定する(S1834)。「範囲指定」とは、SQL文に含まれるwhere句の中で操作対象となるデータについてある数値範囲が指定されていることを意味しており、図14のDB操作情報格納テーブル244の例ではテストスクリプトID2441=101に対応する「stock<5(在庫数が5未満)」が該当する。また、「副問い合わせ」とは、SQL文に含まれるwhere句の中で操作対象となるデータについてさらに別のSQL命令が含まれていることを意味している。 Next, the test group selection unit 131 determines whether or not the access condition 2445 defined by the SQL statement issued by the selected unexecuted test group 1421 includes “range specification” or “subquery” (S1834). “Range specification” means that a certain numerical range is specified for the data to be operated in the where clause included in the SQL statement. In the example of the DB operation information storage table 244 in FIG. “Stock <5 (the number of stock is less than 5)” corresponding to the test script ID 2441 = 101 corresponds. Further, “sub-query” means that another SQL command is included for the data to be operated in the where clause included in the SQL statement.
 アクセス条件2445が「範囲指定」又は「副問い合わせ」を含むと判定された場合(S1834、Yes)、テストグループ選択部131は、アクセス条件2445で指定されている業務アプリケーション用テーブル241上の列全体を復元箇所テーブル1550に記録する(S1835)。一方、アクセス条件2445が「範囲指定」及び「副問い合わせ」をいずれも含まないと判定された場合(S1834、No)、テストグループ選択部131は、アクセス条件2445と一致する箇所のみを復元箇所テーブル1550に記録する(S1836)。「範囲指定」又は「副問い合わせ」を含むと判定された場合にアクセス条件2445で指定されている列全体を記録するのは、該当する列に含まれる重複箇所を特定するために、「範囲指定」又は「副問い合わせ」を含むSQL文を実行させることとなり、かえってテストグループ選択処理に要する時間が長引くという不具合が生じることが考えられるためである。 When it is determined that the access condition 2445 includes “range specification” or “subquery” (S1834, Yes), the test group selection unit 131 displays the entire column on the business application table 241 specified by the access condition 2445. Is recorded in the restoration location table 1550 (S1835). On the other hand, when it is determined that the access condition 2445 does not include both “range specification” and “sub-query” (S1834, No), the test group selection unit 131 restores only a part that matches the access condition 2445 to the restoration part table. It is recorded in 1550 (S1836). When it is determined that “range specification” or “sub-query” is included, the entire column specified in the access condition 2445 is recorded in order to specify the overlapping portion included in the corresponding column. This is because an SQL statement including “or a sub-query” is executed, which may cause a problem that the time required for the test group selection process is prolonged.
 次にテストグループ選択部131は、復元箇所テーブル1550にデータとして1が記録された箇所を重複箇所としてカウントし、そのカウント数を復元容量として例えば主記憶装置12に記録する(S1837)。 Next, the test group selection unit 131 counts the locations where 1 is recorded as data in the restoration location table 1550 as duplicate locations, and records the count as the restoration capacity, for example, in the main storage device 12 (S1837).
 次に、テストグループ選択部131は、今回復元容量を取得したテストグループ1421についての復元容量と、それ以前に復元容量を取得済みの他のテストグループ候補について記録されている復元容量を比較する(S1838)。今回復元容量を取得したテストグループ1421についての復元容量が、それ以前に復元容量を取得済みの他のテストグループ候補について記録されている復元容量より小さいと判定された場合(S1838、Yes)、テストグループ選択部131は今回のテストグループ1421を新たなテストグループ候補として記録する(S1839)。今回復元容量を取得したテストグループ1421についての復元容量が、それ以前に復元容量を取得済みの他のテストグループ候補について記録されている復元容量以上であると判定された場合(S1838、No)、テストグループ選択部131は何もしない。以上の処理は、未実行のテストグループ1421がなくなるまで反復される。 Next, the test group selection unit 131 compares the restoration capacity for the test group 1421 for which the restoration capacity is acquired this time with the restoration capacity recorded for other test group candidates for which the restoration capacity has been obtained before ( S1838). When it is determined that the restoration capacity for the test group 1421 that has acquired the restoration capacity this time is smaller than the restoration capacity recorded for another test group candidate that has obtained the restoration capacity before (S1838, Yes) The group selection unit 131 records the current test group 1421 as a new test group candidate (S1839). When it is determined that the restoration capacity for the test group 1421 that has acquired the restoration capacity this time is greater than or equal to the restoration capacity recorded for another test group candidate that has obtained the restoration capacity before (S1838, No). The test group selection unit 131 does nothing. The above process is repeated until there is no unexecuted test group 1421.
 すべての未実行テストグループ1421についてS1830のループに含まれる処理が終了した場合、テストグループ選択部131は最終的に記録されているテストグループ候補を次に実行すべきテストグループ1421に選定して処理を終了する(S1840)。 When the processing included in the loop of S1830 is completed for all the unexecuted test groups 1421, the test group selection unit 131 selects the test group candidate that is finally recorded as the test group 1421 to be executed next, and performs processing Is finished (S1840).
 以上説明したテストグループ選択処理によれば、次にテストを実行すべきテストグループ1421として、対応するテストデータ1422のロード時間が最も短いと予想されるテストグループ1421を選択することが可能となり、対象プログラムのテスト実行に要する時間を可及的に短縮することが可能となる。 According to the test group selection process described above, it is possible to select the test group 1421 that is expected to have the shortest load time of the corresponding test data 1422 as the test group 1421 to be executed next. It is possible to reduce the time required for the test execution of the program as much as possible.
 次に、データロード処理について説明する。図20は本実施形態のデータロード処理を実現するためのデータ処理フローの一例を示している。データロード処理はクライアント100に実装されているロード方法選択部132によって実行される処理であり、ロード方法選択部132はあるテストグループ1421によるテストを実行する際に使用されるテストデータ1422をロードする場合に、テストデータ1422全体をロードするか、テストデータ1422の一部のみをロードするかを判定して判定結果に従ったデータロード処理をサーバ200のデータロード部234に実行させる。 Next, the data loading process will be described. FIG. 20 shows an example of a data processing flow for realizing the data load processing of this embodiment. The data load process is a process executed by the load method selection unit 132 installed in the client 100, and the load method selection unit 132 loads test data 1422 used when executing a test by a test group 1421. In this case, it is determined whether the entire test data 1422 is loaded or only a part of the test data 1422 is loaded, and the data loading process according to the determination result is executed by the data loading unit 234 of the server 200.
 まずロード方法選択部132は、処理対象であるテストグループ1421が未実行であるかを判定し(S1900)、未実行であると判定した場合(S1900、Yes)、テストグループ情報格納テーブル142を参照して対応するテストデータ1422を特定する。そしてロード方法選択部132は、当該テストデータ1422全体をデータロード部234にロードさせてそのロードに要した時間の実測値をロード時間情報格納テーブル243に記録し、処理を終了する(S1910)。対象が未実行のテストグループ1421である場合、当該テストグループ1421については初回テストが実行されることになるため、対応するテストデータ1422全体をロードさせる必要がある。 First, the loading method selection unit 132 determines whether the test group 1421 to be processed is not executed (S1900), and if it is determined that the test group 1421 is not executed (S1900, Yes), refer to the test group information storage table 142. Thus, the corresponding test data 1422 is specified. Then, the loading method selection unit 132 loads the entire test data 1422 on the data loading unit 234, records the actual measurement value of the time required for the loading in the loading time information storage table 243, and ends the processing (S1910). When the target is an unexecuted test group 1421, the first test is executed for the test group 1421, so it is necessary to load the corresponding test data 1422 as a whole.
 一方、処理対象となるテストグループ1421が未実行でないと判定された場合(S1900、No)、ロード方法選択部132はロード時間情報格納テーブル243を参照し、当該テストグループ1421についてテストデータ1422の部分的なロード(以下「部分ロード」と呼ぶ。)を実行した場合のロード時間2435の実測値が記録されているか判定する(S1920)。部分ロードについてのロード時間2435に実測値が記録されているかの判定は、当該部分ロードによりロードしようとしているデータについて、行情報2433と列情報2434と一致する場合、ロード時間2435に値があれば、実測値が記録されているとする。部分ロードについてのロード時間2435実測値が記録されていると判定した場合(S1920、Yes)、ロード方法選択部132は、その実測値を取得して当該テストグループ1421についての部分ロード時間とする(S1921)。 On the other hand, when it is determined that the test group 1421 to be processed is not unexecuted (S1900, No), the load method selection unit 132 refers to the load time information storage table 243, and the test data 1422 part for the test group 1421 It is determined whether or not an actual measurement value of the load time 2435 when a specific load (hereinafter referred to as “partial load”) is executed is recorded (S1920). Whether or not the actual measurement value is recorded at the load time 2435 for the partial load is determined if the load information 2433 and the column information 2434 match the data to be loaded by the partial load, and the load time 2435 has a value. Suppose that actual measurement values are recorded. If it is determined that the actual load value 2435 for the partial load is recorded (S1920, Yes), the load method selection unit 132 acquires the actual value and sets it as the partial load time for the test group 1421 ( S1921).
 一方、部分ロードについてのロード時間2435実測値が記録されていないと判定した場合(S1920、No)、ロード方法選択部132は、処理対象であるテストグループ1421について復元容量を計算し(S1922)、算出された復元容量を用いて対応するテストデータ1422の部分ロードに要する時間の予測値を算出する(S1923)。部分ロード時間の予測値は、例えば下記の数式1によって算出することができる。
(部分ロード時間予測値)=(部分ロード容量)×α(秒)  …数式1
 ここで、「部分ロード容量」はテストデータ1422のうち部分ロードするデータの容量を、αは部分ロード所要時間を求めるために単位の部分ロードデータ容量について経験的に決定された換算係数である。なお、テストデータ1422全体をロードするためのロード時間実測値とテストデータ1422全体の容量を示すテストデータ全容量を用いて下記の数式2によって算出してもよい。
(部分ロード時間予測値)=(全体ロード時間)×〔(部分ロード容量)/(テストデータ全容量)〕×α(秒)  …数式2
On the other hand, when it is determined that the load time 2435 actual measurement value for the partial load is not recorded (S1920, No), the load method selection unit 132 calculates the restoration capacity for the test group 1421 to be processed (S1922), A predicted value of the time required for partial loading of the corresponding test data 1422 is calculated using the calculated restoration capacity (S1923). The predicted value of the partial load time can be calculated by, for example, Equation 1 below.
(Partial load time predicted value) = (Partial load capacity) × α (seconds) Equation 1
Here, “partial load capacity” is the capacity of data to be partially loaded in the test data 1422, and α is a conversion coefficient empirically determined for the partial load data capacity of a unit in order to obtain the partial load required time. The actual load time value for loading the entire test data 1422 and the total test data capacity indicating the capacity of the entire test data 1422 may be used to calculate the following formula 2.
(Partial load time predicted value) = (Total load time) × [(Partial load capacity) / (Test data total capacity)] × α (second)
 次に、ロード方法選択部132は、S1921又はS1923で取得した部分ロード時間を用いて、ロード時間情報格納テーブル243を参照して対応するテストグループ1421について記録されている全体ロード時間2435の実測値と比較する(S1930)。部分ロード時間よりも全体ロード時間の方が短いと判定された場合(S1930、Yes)、ロード方法選択部132は対応するテストデータ1421について復元箇所テーブル1550の記録内容に従った部分ロード処理をデータロード部234に実行させ、その実測値をロード時間情報格納テーブル243に記録して処理を終了する(S1931)。一方、部分ロード時間が全体ロード時間以上であると判定された場合(S1930、No)、ロード方法選択部132は対応するテストデータ1421全体のロード処理をデータロード部234に実行させ、その実測値をロード時間情報格納テーブル243に記録し処理を終了する(S1910)。 Next, the load method selection unit 132 uses the partial load time acquired in S1921 or S1923 to refer to the load time information storage table 243 and measure the actual load time 2435 recorded for the corresponding test group 1421. (S1930). If it is determined that the total load time is shorter than the partial load time (S1930, Yes), the load method selection unit 132 performs partial load processing according to the recorded contents of the restoration location table 1550 for the corresponding test data 1421. The load unit 234 executes the measurement, records the actual measurement value in the load time information storage table 243, and ends the processing (S1931). On the other hand, when it is determined that the partial load time is equal to or greater than the total load time (S1930, No), the load method selection unit 132 causes the data load unit 234 to execute the corresponding load processing of the entire test data 1421 and the actual measurement value thereof. Is stored in the load time information storage table 243, and the process is terminated (S1910).
 以上説明したデータロード処理によれば、すべてのテストグループ1421について使用するテストデータ1422全体をロードするのに要する時間である全体ロード時間が計測されて記録されており、また、当該テストグループ1421についてテストデータ1422を部分的にロードした場合に全体ロード時間より短縮することができるかを判定することができるので、データロードに要する時間をより確実に短縮させてテスト実行時間短縮効果を高めることができる。 According to the data load process described above, the entire load time, which is the time required to load the entire test data 1422 used for all the test groups 1421, is measured and recorded. Since it is possible to determine whether or not the test data 1422 can be shortened compared to the entire load time when the test data 1422 is partially loaded, it is possible to more reliably reduce the time required for data loading and increase the effect of reducing the test execution time. it can.
 以上のように、本実施形態によれば、プログラムのテストを実行する際に、プログラムを構成するコンポーネント毎のテストデータのロードに要する時間を可及的に短縮することによりテスト実行時間自体を短縮して効率的にテストを実行することができる。 As described above, according to the present embodiment, when executing a test of a program, the test execution time itself is reduced by reducing the time required for loading test data for each component constituting the program as much as possible. And test can be executed efficiently.
 なお、以上説明した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良することができると共に、本発明にはその等価物も含まれる。 Note that the embodiment of the invention described above is for facilitating understanding of the present invention, and does not limit the present invention. The present invention can be changed and improved without departing from the gist thereof, and equivalents thereof are also included in the present invention.

Claims (15)

  1.  複数のプログラムについて各前記プログラムのテストに用いるテスト用データの処理を前記各プログラムに実行させるコンピュータが、
     直前に実行された前記プログラムのテストによって使用された前記テスト用データのうち前記テストによって変更された前記テスト用データの部分である第1のデータ部分を記録し、
     引き続き実行されるテストの対象となる他の前記プログラムのために読み込まれる前記テスト用データのうち前記テストによってアクセスされることとなる前記テスト用データの部分である第2のデータ部分を求め、
     前記第1のデータ部分と前記第2のデータ部分との差分が最小となる他の前記プログラムを引き続きテストを実行する対象として選択する、
    プログラムのテスト方法。
    A computer for causing each program to execute processing of test data used for testing each of the plurality of programs,
    Recording a first data portion which is a portion of the test data changed by the test among the test data used by the test of the program executed immediately before,
    Obtaining a second data portion which is a portion of the test data to be accessed by the test among the test data read for the other program to be subsequently executed;
    Selecting the other program for which the difference between the first data portion and the second data portion is minimized to be subjected to the subsequent test,
    How to test the program.
  2.  前記プログラムが前記テスト用データをデータベースに読み込み、
     前記コンピュータは、
     前記データベースに格納されている前記テスト用データを用いて前記プログラムをテストするときに前記データベースに対して実行された操作命令に基づいて前記第1又は第2のデータ部分を求める、
    請求項1に記載のプログラムのテスト方法。
    The program reads the test data into a database,
    The computer
    Obtaining the first or second data portion based on an operation instruction executed on the database when the program is tested using the test data stored in the database;
    The program test method according to claim 1.
  3.  前記コンピュータが、
     前記第1のデータ部分を記録する際に前記テストにより前記テスト用データが参照されたのみであると判定した場合、当該参照された前記テスト用データの部分を前記第1のデータ部分として記録しない、
    請求項1に記載のプログラムのテスト方法。
    The computer is
    When it is determined that the test data is only referred to by the test when the first data portion is recorded, the referenced test data portion is not recorded as the first data portion. ,
    The program test method according to claim 1.
  4.  前記コンピュータが、
     前記プログラムをテストするときに前記データベースに対して実行された操作命令に操作対象となるデータの範囲指定又は操作対象となるデータに関する副次的な操作命令が含まれていると判定した場合、操作対象となるデータと同一の属性を有するデータを含めて前記第1又は第2のデータ部分とする、
    請求項2に記載のプログラムのテスト方法。
    The computer is
    When it is determined that the operation instruction executed on the database when the program is tested includes a secondary operation instruction related to data range specification or operation target data. Including the data having the same attribute as the target data as the first or second data portion,
    The method for testing a program according to claim 2.
  5.  前記コンピュータが、
     前記プログラムのいずれかについて求めた前記第1のデータ部分と前記第2のデータ部分との差分について読み込むデータ量と引き続き実行されるテストの対象となる他の前記プログラムのために読み込まれる前記テスト用データのデータ量とを比較し、前記差分について読み込むデータ量が前記テスト用データを読み込むデータ量よりも小さいと判定した場合、前記差分に対応するデータを読み込む、
    請求項1に記載のプログラムのテスト方法。
    The computer is
    The amount of data to be read for the difference between the first data portion and the second data portion obtained for any of the programs and the test read for another program to be subsequently executed When comparing the data amount of data and determining that the amount of data read for the difference is smaller than the amount of data for reading the test data, read the data corresponding to the difference,
    The program test method according to claim 1.
  6.  前記コンピュータが、
     前記プログラムのいずれかについて求めた前記第1のデータ部分と前記第2のデータ部分との差分について読み込むデータ量をその読み込み時間に換算し、引き続き実行されるテストの対象となる他の前記プログラムのために読み込まれる前記テスト用データの読み込み時間実測値と比較して、前記差分についての読み込み時間が前記テスト用データの読み込み時間実測値よりも短いと判定した場合、前記差分に対応するデータを読み込む、
    請求項1に記載のプログラムのテスト方法。
    The computer is
    The amount of data to be read for the difference between the first data portion and the second data portion obtained for any of the programs is converted into the reading time, and the other programs to be subsequently executed are converted. When it is determined that the reading time for the difference is shorter than the actual reading time of the test data, compared to the actual reading time value of the test data that is read for the purpose, the data corresponding to the difference is read. ,
    The program test method according to claim 1.
  7.  前記コンピュータが、
     各前記プログラムについて前記テスト用データの読み込みに要する時間を実測しその実測値を記録する、
    請求項6に記載のプログラムのテスト方法。
    The computer is
    Measure the time required for reading the test data for each program and record the measured value.
    The method for testing a program according to claim 6.
  8.  複数のプログラムについて各前記プログラムのテストに用いるテスト用データの処理を前記各プログラムに実行させるプログラムテストシステムであって、
     直前に実行された前記プログラムのテストによって使用された前記テスト用データのうち前記テストによって変更された前記テスト用データの部分である第1のデータ部分を記録し、
     引き続き実行されるテストの対象となる他の前記プログラムのために読み込まれる前記テスト用データのうち前記テストによってアクセスされることとなる前記テスト用データの部分である第2のデータ部分を求め、
     前記第1のデータ部分と前記第2のデータ部分との差分が最小となる他の前記プログラムを引き続きテストを実行する対象として選択するテスト実行順序入れ替え部を有する、
    プログラムテストシステム。
    A program test system for causing each program to execute processing of test data used for testing each program for a plurality of programs,
    Recording a first data portion which is a portion of the test data changed by the test among the test data used by the test of the program executed immediately before,
    Obtaining a second data portion which is a portion of the test data to be accessed by the test among the test data read for the other program to be subsequently executed;
    A test execution order changing unit that selects another program that is the smallest difference between the first data portion and the second data portion as a target to be continuously tested;
    Program test system.
  9.  前記プログラムが前記テスト用データをデータベースに読み込み、
     前記テスト実行順序入れ替え部は、
     前記データベースに格納されている前記テスト用データを用いて前記プログラムをテストするときに前記データベースに対して実行された操作命令に基づいて前記第1又は第2のデータ部分を求める、
    請求項8に記載のプログラムテストシステム。
    The program reads the test data into a database,
    The test execution order changing unit
    Obtaining the first or second data portion based on an operation instruction executed on the database when the program is tested using the test data stored in the database;
    The program test system according to claim 8.
  10.  前記テスト実行順序入れ替え部が、
     前記第1のデータ部分を記録する際に前記テストにより前記テスト用データが参照されたのみであると判定した場合、当該参照された前記テスト用データの部分を前記第1のデータ部分として記録しない、
    請求項8に記載のプログラムテストシステム。
    The test execution order changing unit
    When it is determined that the test data is only referred to by the test when the first data portion is recorded, the referenced test data portion is not recorded as the first data portion. ,
    The program test system according to claim 8.
  11.  前記テスト実行順序入れ替え部が、
     前記プログラムをテストするときに前記データベースに対して実行された操作命令に操作対象となるデータの範囲指定又は操作対象となるデータに関する副次的な操作命令が含まれていると判定した場合、操作対象となるデータと同一の属性を有するデータを含めて前記第1又は第2のデータ部分とする、
    請求項9に記載のプログラムテストシステム。
    The test execution order changing unit
    When it is determined that the operation instruction executed on the database when the program is tested includes a secondary operation instruction related to data range specification or operation target data. Including the data having the same attribute as the target data as the first or second data portion,
    The program test system according to claim 9.
  12.  前記テスト実行順序入れ替え部が、
     前記プログラムのいずれかについて求めた前記第1のデータ部分と前記第2のデータ部分との差分について読み込むデータ量と引き続き実行されるテストの対象となる他の前記プログラムのために読み込まれる前記テスト用データのデータ量とを比較し、前記差分について読み込むデータ量が前記テスト用データを読み込むデータ量よりも小さいと判定した場合、前記差分に対応するデータを読み込む、
    請求項8に記載のプログラムテストシステム。
    The test execution order changing unit
    The amount of data to be read for the difference between the first data portion and the second data portion obtained for any of the programs and the test read for another program to be subsequently executed When comparing the data amount of data and determining that the amount of data read for the difference is smaller than the amount of data for reading the test data, read the data corresponding to the difference,
    The program test system according to claim 8.
  13.  前記テスト実行順序入れ替え部が、
     前記プログラムのいずれかについて求めた前記第1のデータ部分と前記第2のデータ部分との差分について読み込むデータ量をその読み込み時間に換算し、引き続き実行されるテストの対象となる他の前記プログラムのために読み込まれる前記テスト用データの読み込み時間実測値と比較して、前記差分についての読み込み時間が前記テスト用データの読み込み時間実測値よりも短いと判定した場合、前記差分に対応するデータを読み込む、
    請求項8に記載のプログラムテストシステム。
    The test execution order changing unit
    The amount of data to be read for the difference between the first data portion and the second data portion obtained for any of the programs is converted into the reading time, and the other programs to be subsequently executed are converted. When it is determined that the reading time for the difference is shorter than the actual reading time of the test data, compared to the actual reading time value of the test data that is read for the purpose, the data corresponding to the difference is read. ,
    The program test system according to claim 8.
  14.  前記テスト実行順序入れ替え部が、
     各前記プログラムについて前記テスト用データの読み込みに要する時間を実測しその実測値を記録する、
    請求項13に記載のプログラムテストシステム。
    The test execution order changing unit
    Measure the time required for reading the test data for each program and record the measured value.
    The program test system according to claim 13.
  15.  複数のプログラムについて各前記プログラムのテストに用いるテスト用データの処理を前記各プログラムに実行させるコンピュータに、
     直前に実行された前記プログラムのテストによって使用された前記テスト用データのうち前記テストによって変更された前記テスト用データの部分である第1のデータ部分を記録し、
     引き続き実行されるテストの対象となる他の前記プログラムのために読み込まれる前記テスト用データのうち前記テストによってアクセスされることとなる前記テスト用データの部分である第2のデータ部分を求め、
     前記第1のデータ部分と前記第2のデータ部分との差分が最小となる他の前記プログラムを引き続きテストを実行する対象として選択する処理を実行させる、
    プログラム。
    A computer that causes each program to execute processing of test data used for testing each of the plurality of programs,
    Recording a first data portion which is a portion of the test data changed by the test among the test data used by the test of the program executed immediately before,
    Obtaining a second data portion which is a portion of the test data to be accessed by the test among the test data read for the other program to be subsequently executed;
    Causing the other data program having the smallest difference between the first data portion and the second data portion to be selected as a target to be continuously tested.
    program.
PCT/JP2011/052009 2011-02-01 2011-02-01 Program test method, program test system, and program WO2012104991A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/052009 WO2012104991A1 (en) 2011-02-01 2011-02-01 Program test method, program test system, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/052009 WO2012104991A1 (en) 2011-02-01 2011-02-01 Program test method, program test system, and program

Publications (1)

Publication Number Publication Date
WO2012104991A1 true WO2012104991A1 (en) 2012-08-09

Family

ID=46602235

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/052009 WO2012104991A1 (en) 2011-02-01 2011-02-01 Program test method, program test system, and program

Country Status (1)

Country Link
WO (1) WO2012104991A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016184194A (en) * 2015-03-25 2016-10-20 ビッグローブ株式会社 Security diagnosis device, system, method, and program
JP2017016469A (en) * 2015-07-02 2017-01-19 日本電気株式会社 Test execution device, method, and program
CN115328811A (en) * 2022-10-11 2022-11-11 北京安帝科技有限公司 Program statement testing method and device for industrial control network simulation and electronic equipment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249209A (en) * 1995-03-10 1996-09-27 Hitachi Ltd Method for testing application program in on-line transaction system
JP2011013792A (en) * 2009-06-30 2011-01-20 Fujitsu Ltd Device, method and program for control of database in program model inspection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249209A (en) * 1995-03-10 1996-09-27 Hitachi Ltd Method for testing application program in on-line transaction system
JP2011013792A (en) * 2009-06-30 2011-01-20 Fujitsu Ltd Device, method and program for control of database in program model inspection

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016184194A (en) * 2015-03-25 2016-10-20 ビッグローブ株式会社 Security diagnosis device, system, method, and program
JP2017016469A (en) * 2015-07-02 2017-01-19 日本電気株式会社 Test execution device, method, and program
CN115328811A (en) * 2022-10-11 2022-11-11 北京安帝科技有限公司 Program statement testing method and device for industrial control network simulation and electronic equipment
CN115328811B (en) * 2022-10-11 2022-12-16 北京安帝科技有限公司 Program statement testing method and device for industrial control network simulation and electronic equipment

Similar Documents

Publication Publication Date Title
US9703692B2 (en) Development supporting system
US8296734B2 (en) System and method for testing a software product
KR100655124B1 (en) Software installation and testing system for a built-to-order computer system
EP3616066B1 (en) Human-readable, language-independent stack trace summary generation
US8676809B1 (en) Method and apparatus for mapping virtual machine incremental images
US9864793B2 (en) Language tag management on international data storage
CN106095501B (en) A kind of application dispositions method and device
US9715440B2 (en) Test scope determination based on code change(s)
US20120036497A1 (en) Integrity check while committing changes from an integrated development environment to a source code control system
JP2017201470A (en) Setting support program, setting support method, and setting support device
US10963438B1 (en) Systems and methods for database query efficiency improvement
CN107169000A (en) Static resource dissemination method and device
CN111274117B (en) Recommended service experiment and management method, device and system thereof
WO2012104991A1 (en) Program test method, program test system, and program
US10678864B2 (en) Analysis model preparing system, programming apparatus, and analysis model preparing method
AU2015265599B2 (en) System and method for the production of job level pre-processed backup of critical data and/or datasets in a mainframe computing environment
CN114116505A (en) Code testing method and device
KR102360061B1 (en) Systems and methods for improving database query efficiency.
JP2009252167A (en) Test item creation device, test item creation system, test item creation method and test item creation program
US20130006936A1 (en) Capturing an archiving snapshot
US20120159247A1 (en) Automatically changing parts in response to tests
CN108959604B (en) Method, apparatus and computer readable storage medium for maintaining database cluster
CN111767222A (en) Data model verification method and device, electronic equipment and storage medium
US6782523B2 (en) Parallel configurable IP design methodology
US20220207438A1 (en) Automatic creation and execution of a test harness for workflows

Legal Events

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

Ref document number: 11857549

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP