WO2019207743A1 - 試験装置、試験方法および試験プログラム - Google Patents

試験装置、試験方法および試験プログラム Download PDF

Info

Publication number
WO2019207743A1
WO2019207743A1 PCT/JP2018/017100 JP2018017100W WO2019207743A1 WO 2019207743 A1 WO2019207743 A1 WO 2019207743A1 JP 2018017100 W JP2018017100 W JP 2018017100W WO 2019207743 A1 WO2019207743 A1 WO 2019207743A1
Authority
WO
WIPO (PCT)
Prior art keywords
test
scenario
test step
output
input
Prior art date
Application number
PCT/JP2018/017100
Other languages
English (en)
French (fr)
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/JP2018/017100 priority Critical patent/WO2019207743A1/ja
Publication of WO2019207743A1 publication Critical patent/WO2019207743A1/ja

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

Definitions

  • the present invention relates to a test apparatus, a test method, and a test program.
  • Patent Document 1 discloses a test apparatus that supports a test of a new server when the system is transferred from the current server of the current system to the new server of the new system.
  • the test apparatus of Patent Literature 1 creates a test scenario and test data from an input / output log in the current server. And the test apparatus of patent document 1 reads the created test data, and tests a new server.
  • Patent Document 2 discloses a test apparatus that simulates a host that communicates with ATM using ATM (Automatic Teller Machine) as a test target.
  • ATM Automatic Teller Machine
  • a tester prepares data and a command pattern for answering an input from the ATM to the test apparatus in advance. At this time, the tester prepares these data and command patterns with reference to the user specifications. In the test, the test apparatus answers the input transmitted from the ATM with reference to data and command patterns prepared in advance.
  • the test apparatus of Patent Document 1 requires more input / output logs in the current server in order to improve the quality of the test.
  • the more I / O logs are collected the larger the size of the file that stores the I / O logs. Therefore, when carrying an input / output log which is actual data, there are problems that portability deteriorates and security is lowered.
  • communication in the test environment is unrelated to communication in the real environment, and there is a problem that the quality of the test is low.
  • the present invention creates a test scenario from a communication log in a real environment, creates input data at the time of testing, and verifies output data. This aims to accurately reproduce the behavior of the real environment while reducing the actual data required for the test scenario.
  • the test apparatus comprises: In a test apparatus that tests the next server of the current server by simulating the client device based on communication data that is actual data communicated between the client device and the current server, An analysis unit that extracts scenario information used to generate a test step constituting the test scenario from the communication data; A scenario generation unit that generates the test step based on the scenario information and stores the test step in a scenario storage file; A scenario execution unit that reads the test step from the scenario storage file and performs the test using the test step.
  • the analysis unit extracts scenario information used for generating test steps constituting a test scenario from communication data.
  • the scenario generation unit generates a test step based on the scenario information and stores the test step in a scenario storage file.
  • the scenario execution unit reads a test step from the scenario storage file and performs a test using the test step. Therefore, according to the test apparatus according to the present invention, it is possible to accurately reproduce the behavior of the real environment while reducing the communication data necessary for the test scenario.
  • FIG. 1 is a configuration diagram of a test system and a test apparatus according to Embodiment 1.
  • FIG. 4 is an example of a result management table according to the first embodiment. 4 is an example of a parameter management table according to the first embodiment.
  • FIG. 3 is a flowchart showing the operation of the data collection unit according to the first embodiment.
  • FIG. 6 is a flowchart showing the operation of the analysis unit according to the first embodiment when the communication data is HTTP.
  • FIG. 4 is a flowchart showing the operation of the analysis unit according to the first embodiment when the communication data is a system-specific application.
  • FIG. 6 is a flowchart illustrating an operation of the scenario generation unit according to the first embodiment when the communication data is HTTP.
  • FIG. 6 is a flowchart showing the operation of the scenario generation unit according to the first embodiment when the communication data is a system-specific application.
  • FIG. 4 is a flowchart showing the operation of a scenario reading unit according to the first embodiment.
  • FIG. 3 is a flowchart showing the operation of a scenario execution unit according to the first embodiment.
  • FIG. 4 is a flowchart showing the operation of the input generation unit according to the first embodiment when the communication data is HTTP.
  • FIG. 4 is a flowchart showing the operation of the input generation unit according to the first embodiment when the communication data is a system-specific application.
  • FIG. 3 is a flowchart showing the operation of the output generation unit according to the first embodiment.
  • FIG. 6 is a flowchart showing the operation of the verification unit according to the first embodiment when the communication data is HTTP.
  • FIG. 4 is a flowchart showing the operation of the verification unit according to the first embodiment when the communication data is a system-specific application.
  • FIG. 3 is a flowchart illustrating an operation of a transmission / reception unit according to Embodiment 1.
  • FIG. 3 is a configuration diagram of a test system and a test apparatus according to a modification of the first embodiment.
  • Embodiment 1 FIG. *** Explanation of configuration *** The configuration of the test system 500 and the test apparatus 100 according to the present embodiment will be described with reference to FIG.
  • the test system 500 according to the present embodiment includes a test apparatus 100 that operates in a real environment 510 and a test environment 520, a client device 110, a switch 120, a current server 130, a switch 210, and a next server 220. Have.
  • the test apparatus 100 tests the next server 220 of the current server 130 by simulating the client device 110 based on the communication data 11 that is actual data communicated between the client device 110 and the current server 130.
  • the test apparatus 100 includes a test apparatus A that operates in the real environment 510 and a test apparatus B that operates in the test environment 520. That is, the real environment 510 includes the test apparatus A, the client device 110, the switch 120, and the server 130.
  • the test environment 520 includes a test apparatus B, a switch 210, a next server 220, and a test specification 230.
  • the test apparatus A includes a data collection unit 101, an analysis unit 102, and a scenario generation unit 103 as functional elements.
  • the test apparatus B includes a scenario reading unit 201, a scenario execution unit 202, an input generation unit 203, an output generation unit 204, a verification unit 205, a transmission / reception unit 206, a parameter management table 207, and a result management table 208 as functional elements.
  • server specific information 31 communication data specifications 32, client specific information 33, and a scenario storage file 34 are provided.
  • test apparatus A and the test apparatus B are mounted on one computer.
  • the test apparatus 100 has functions of the test apparatus A and the test apparatus B.
  • the test apparatus 100 is a computer.
  • the test apparatus 100 includes a processor 910 and other hardware such as a memory 921, an input interface 930, and an output interface 940.
  • the test apparatus 100 also includes an auxiliary storage device and a communication device.
  • the processor 910 is connected to other hardware via a signal line, and controls these other hardware.
  • the test apparatus 100 includes, as functional elements, a data collection unit 101, an analysis unit 102, a scenario generation unit 103, a scenario reading unit 201, a scenario execution unit 202, an input generation unit 203, an output generation unit 204, a verification unit 205, and a transmission / reception unit 206.
  • a parameter management table 207 and a result management table 208 are included in the test apparatus 100.
  • the functions of the data collection unit 101, the analysis unit 102, the scenario generation unit 103, the scenario reading unit 201, the scenario execution unit 202, the input generation unit 203, the output generation unit 204, the verification unit 205, and the transmission / reception unit 206 are realized by software. .
  • the data collection unit 101, the analysis unit 102, the scenario generation unit 103, the scenario reading unit 201, the scenario execution unit 202, the input generation unit 203, the output generation unit 204, the verification unit 205, and the transmission / reception unit 206 will be described. Sometimes referred to as each part.
  • the parameter management table 207 and the result management table 208 are provided in the memory 921 or the auxiliary storage device.
  • the server specific information 31, the communication data specification 32, the client specific information 33, the scenario storage file 34, and the test specification 230 are also provided in the memory 921 or the auxiliary storage device.
  • the processor 910 is a device that executes a test program.
  • the test program is a program that realizes the functions of each unit of the test apparatus 100.
  • the processor 910 is an IC (Integrated Circuit) that performs arithmetic processing. Specific examples of the processor 910 are a CPU (Central Processing Unit), a DSP (Digital Signal Processor), and a GPU (Graphics Processing Unit).
  • the memory 921 is a storage device that temporarily stores data.
  • a specific example of the memory 921 is an SRAM (Static Random Access Memory) or a DRAM (Dynamic Random Access Memory).
  • the auxiliary storage device is a storage device that stores data.
  • a specific example of the auxiliary storage device is an HDD.
  • the auxiliary storage device may be a portable storage medium such as an SD (registered trademark) memory card, CF, NAND flash, flexible disk, optical disk, compact disk, Blu-ray (registered trademark) disk, or DVD.
  • HDD is an abbreviation for Hard Disk Drive.
  • SD (registered trademark) is an abbreviation for Secure Digital.
  • CF is an abbreviation for CompactFlash (registered trademark).
  • DVD is an abbreviation for Digital Versatile Disk.
  • the input interface 930 is a port connected to an input device such as a mouse, a keyboard, or a touch panel. Specifically, the input interface 930 is a USB (Universal Serial Bus) terminal. The input interface 930 may be a port connected to a LAN (Local Area Network).
  • the output interface 940 is a port to which a cable of an output device such as a display is connected. Specifically, the output interface 940 is a USB terminal or a HDMI (registered trademark) (High Definition Multimedia Interface) terminal.
  • the display is specifically an LCD (Liquid Crystal Display).
  • the communication device has a receiver and a transmitter.
  • the communication device is wirelessly connected to a communication network such as a LAN, the Internet, or a telephone line.
  • the communication device is a communication chip or a NIC (Network Interface Card).
  • the test program is read into the processor 910 and executed by the processor 910.
  • the memory 921 stores not only the test program but also an OS (Operating System).
  • the processor 910 executes the test program while executing the OS.
  • the test program and the OS may be stored in the auxiliary storage device.
  • the test program and OS stored in the auxiliary storage device are loaded into the memory 921 and executed by the processor 910. Part or all of the test program may be incorporated in the OS.
  • the test apparatus 100 may include a plurality of processors that replace the processor 910.
  • the plurality of processors share the execution of the test program.
  • Each processor like the processor 910, is a device that executes a test program.
  • Data, information, signal values, and variable values used, processed, or output by the test program are stored in the memory 921, the auxiliary storage device, or a register or cache memory in the processor 910.
  • Part of each part of the test apparatus 100 may be read as “processing”, “procedure”, or “process”. Also, the “process” of each process obtained by replacing “part” of each part of the test apparatus 100 with “process” may be replaced with “program”, “program product”, or “computer-readable storage medium storing the program”. Good.
  • the test program causes the computer to execute each process, each procedure, or each process in which the “part” of each part described above is read as “process”, “procedure”, or “process”.
  • the test method is a method performed by the test apparatus 100 executing a test program.
  • the test program may be provided by being stored in a computer-readable recording medium.
  • the test program may be provided as a program product.
  • the server specific information 31 includes an IP (Internet Protocol) address and a standby port number in the current server 130, and an IP address and a standby port number in the next server 220.
  • IP Internet Protocol
  • the communication data specification 32 includes information representing actual data, that is, the specification of the communication data 11.
  • HTTP request information such as a URL (Uniform Resource Locator) and a data length is included in the HTTP header.
  • HTTP response information such as a response code and a data length is included.
  • the HTTP response may include a symbol that determines the end of data instead of the data length.
  • both the HTTP request and the HTTP response may include parameters issued by the server to identify the client or access. This parameter is specifically a parameter such as Cookie, and is hereinafter referred to as a dynamic parameter.
  • the communication data specification 32 includes information regarding various HTTP specifications or dynamic parameters.
  • B System-specific application on TCP (Transmission Control Protocol) / IP or UDP (User Datagram Protocol) / IP.
  • a data structure is defined in the communication data specification 32. Specifically, in the communication data specification 32, information such as data type, data length or data end, and sizes of various parameters are determined. A specific example of the end of data is a special character string.
  • communication parameters include dynamic parameters.
  • the communication data includes input communication data input to the current server 130 and output communication data output from the current server 130.
  • the client specific information 33 includes an IP address of the client device 110, and an IP address and a MAC (Media Access Control) address that simulate the client device 110.
  • the test specification 230 is a file that defines various restrictions at the time of test execution. Various constraints at the time of test execution include information such as retransmission time and number of retransmissions at the time of transmission error, and additional reception waiting time at the time of reception error.
  • FIG. 2 is an example of the result management table 208 according to the present embodiment.
  • the result management table 208 stores transmission source information 82, destination information 83, data type 84, input / output classification 85, test execution time 86, and test step result 87 using the test step number 81 as a key. It is a table.
  • FIG. 3 shows an example of the parameter management table 207 according to the present embodiment.
  • the parameter management table 207 is a table that stores dynamic parameter_test environment using dynamic parameter_real environment as a key.
  • step S101 the data collection unit 101 collects communication data packets in a pcap (packet capture) format using the mirror port of the switch 120, which is a network device in the real environment 510. Note that it is assumed that the communication data is not encrypted. When encrypted, the test apparatus A does not have a decryption key, so it cannot decrypt and cannot cope.
  • step S102 the data collection unit 101 notifies the analysis unit 102 of the collected packets. The data collection unit 101 repeats step S101 and step S102.
  • the analysis unit 102 extracts scenario information used for generating the test step 12 constituting the test scenario from the communication data.
  • scenario information used for generating the test step 12 constituting the test scenario from the communication data.
  • the analysis unit 102 since the analysis unit 102 is communication data as scenario information, the analysis unit 102 includes a destination IP address and port number, a transmission source IP address and port number, an input / output classification, a communication data length, a dynamic parameter, and communication data contents. Extract information. Specifically, it is as follows.
  • step S201 the analysis unit 102 reads the server unique information 31, the client unique information 33, and the communication data specification 32.
  • the analysis unit 102 repeats the following steps S202 to S210.
  • step S ⁇ b> 202 the analysis unit 102 receives a packet from the data collection unit 101.
  • step S203 the analysis unit 102 acquires the destination IP address and port number, and the source IP address and port number from the packet.
  • step S204 the analysis unit 102 manages packets for each network ID.
  • the network ID includes a combination of the same destination and a source IP address and a port number. If there is an unprocessed packet for each network ID, the analysis unit 102 adds the packet to the unprocessed packet.
  • step S205 the analysis unit 102 determines the input / output classification of the packet.
  • the input / output classification is a classification indicating whether the packet is a packet from the client to the server or a packet from the server to the client.
  • the analysis unit 102 determines the input / output classification from the destination IP address and the source IP address. If it is a packet from the client to the server, this packet is an HTTP request, and the input / output classification is determined as input. If it is a packet from the server to the client, this packet is an HTTP response, and the input / output classification is determined to be output.
  • step S206 when the input / output classification is input, the analysis unit 102 proceeds to step S207. If the input / output classification is output, the analysis unit 102 proceeds to step S209.
  • step S207 the analysis unit 102 assembles an HTTP request from the unprocessed packet.
  • the analysis unit 102 analyzes the HTTP header part that is the head of the packet. Then, the analysis unit 102 acquires the URL, the length (content length) of the HTTP body, and the dynamic parameters. There may be no dynamic parameters.
  • the analysis unit 102 assembles an HTTP request using the packets of the network ID in order until the content length is reached.
  • the analysis unit 102 extracts scenario information used for generating the test step 12 constituting the test scenario from the HTTP request.
  • the analysis unit 102 notifies the scenario generation unit 103 of the scenario information.
  • the scenario information is various information related to the packet.
  • the analysis unit 102 extracts the following information as scenario information.
  • the scenario information includes a destination IP address and port number, a transmission source IP address and port number, an input / output classification, a URL, a dynamic parameter, an HTTP body, and a collection time acquired from the packet.
  • the HTTP request is the first HTTP request in the network ID
  • the HTTP header is also notified. In the second and subsequent cases, the HTTP header is not notified.
  • step S209 the analysis unit 102 assembles an HTTP response from the unprocessed packet.
  • the analysis unit 102 analyzes the HTTP header part that is the head of the packet. Then, the analysis unit 102 acquires, for example, a response code such as “200 OK”, an HTTP body length (content length), and a dynamic parameter. There may be no dynamic parameters. When there is no content length, the analysis unit 102 considers the length of the HTTP body according to information such as a body end symbol such as Multi-part or chunk size.
  • the analysis unit 102 assembles an HTTP response using the network ID packets in order.
  • step S210 the analysis unit 102 extracts scenario information used for generating the test step 12 constituting the test scenario from the HTTP response.
  • the analysis unit 102 notifies the scenario generation unit 103 of the scenario information.
  • the scenario information is various information related to the packet.
  • the analysis unit 102 extracts the following information as scenario information.
  • the scenario information includes a destination IP address and port number, a source IP address and port number, an input / output classification, an HTTP body length, a dynamic parameter, a response code, and a collection time acquired from the packet.
  • step S215 the analysis unit 102 determines the input / output classification of the packet, similar to step S205 in FIG. If the packet is from the client to the server, this packet is input specific data, and the input / output classification is determined to be input. If the packet is from the server to the client, this packet is output specific data, and the input / output classification is determined to be output. In step S216, when the input / output classification is input, the analysis unit 102 proceeds to step S217. If the input / output classification is output, the analysis unit 102 proceeds to step S219.
  • the analysis unit 102 analyzes a packet and acquires a data type, not limited to input specific data or output specific data.
  • the analysis unit 102 assembles input specific data or output specific data by sequentially using packets of the network ID according to a method defined by communication data.
  • the data length is defined by the communication data specification 32.
  • the data end point is defined by the communication data specification 32.
  • step S218 the analysis unit 102 notifies the scenario generation unit 103 of various types of information regarding the input unique data.
  • Various types of information related to input specific data are examples of scenario information.
  • Various information related to input specific data includes destination IP address and port number, source IP address and port number, input / output classification, data type, dynamic parameter, body part of communication data, and collection time acquired from packet It is.
  • the body part of the communication data is a part of communication data excluding parameters for setting the data type and data length and dynamic parameters.
  • the analysis unit 102 notifies the scenario generation unit 103 of various types of information related to the output unique data.
  • Various types of information related to output specific data are examples of scenario information.
  • the various information related to the output unique data includes the destination IP address and port number, the transmission source IP address and port number, the input / output classification, the data type, the data length, the dynamic parameter, and the collection time acquired from the packet. If the data length is not defined in the communication data specification 32, the data length is calculated from the assembled data.
  • FIG. 7 shows the operation of the scenario generation unit 103 when the communication data is HTTP.
  • FIG. 8 shows the operation of the scenario generation unit 103 when the communication data is a system-specific application.
  • the scenario generation unit 103 generates the test step 12 based on the scenario information, and stores the test step 12 in the scenario storage file 34.
  • the scenario generation unit 103 repeats the following steps S301 to S308. Further, the scenario generation unit 103 repeats the following steps S311 to S318 in FIG.
  • step S301 and step S311 the scenario generation unit 103 receives various types of information related to packets that are scenario information from the analysis unit 102.
  • step S302 the scenario generation unit 103 proceeds to step S303 if the input / output classification is input, that is, if the packet is an HTTP request. If the input / output classification is output, that is, if the packet is an HTTP response, the scenario generation unit 103 proceeds to step S304.
  • step S312 the scenario generation unit 103 proceeds to step S313 if the input / output classification is input, that is, if the packet is input data. If the input / output classification is output, that is, if the packet is output data, the scenario generation unit 103 proceeds to step S314.
  • step S303 the scenario generation unit 103 creates a test step from various information of the HTTP request that is scenario information.
  • Various information of the HTTP request includes a destination IP address and port number, a transmission source IP address and port number, an input / output classification, a URL, a dynamic parameter, an HTTP body, and an HTTP header.
  • the scenario generation unit 103 creates a test step from various information of the HTTP response that is scenario information.
  • Various information of the HTTP response includes a destination IP address and port number, a source IP address and port number, an input / output classification, an HTTP body length, a dynamic parameter, and a response code.
  • step S313 the scenario generation unit 103 creates a test step from various pieces of information of the input unique data that is scenario information.
  • Various information of the input unique data includes a destination IP address and port number, a transmission source IP address and port number, an input / output classification, a data type, a dynamic parameter, and a body portion of communication data.
  • step S314 the scenario generation unit 103 creates a test step from various pieces of information of the output specific data that is scenario information.
  • the various information of the output unique data includes a destination IP address and port number, a source IP address and port number, an input / output classification, a data type, a data length, and a dynamic parameter.
  • step S305 and step S315 the scenario generation unit 103 sets the number next to the step number of the previously created test step as the step number, and sets the created test step.
  • step S306 and step S316 the scenario generation unit 103 sets the time difference between the collection time associated with the previous step number and the collection time notified from the analysis unit 102 as a step interval in the created test step.
  • step S307 and step S317 the scenario generation unit 103 stores the test step step number and the collection time in association with each other.
  • the scenario reading unit 201 repeats the following steps S401 to S402.
  • step S401 the scenario reading unit 201 reads the scenario storage file 34.
  • the scenario reading unit 201 reads test steps one by one in order from the top of the scenario storage file 34.
  • step S402 the scenario reading unit 201 notifies the read test steps to the scenario execution unit 202 one by one.
  • the operation of the scenario execution unit 202 according to the present embodiment will be described using FIG.
  • the scenario execution unit 202 reads a test step from the scenario storage file 34 and performs a test using the test step.
  • the scenario execution unit 202 repeats the following steps S502 to S515.
  • step S501 the scenario execution unit 202 reads the test specification 230.
  • step S ⁇ b> 502 the scenario execution unit 202 receives a test step from the scenario reading unit 201.
  • step S503 the scenario execution unit 202 determines an input / output classification indicating whether the test step is an input from the client device 110 to the current server 130 or an output from the current server 130 to the client device 110. If the input / output classification of the test step is input, the scenario execution unit 202 proceeds to step S504. If the input / output classification of the test step is output, the scenario execution unit 202 proceeds to step S510.
  • step S504 the scenario execution unit 202 notifies the input generation unit 203 of the test step.
  • step S ⁇ b> 505 the scenario execution unit 202 receives a test step from the input generation unit 203.
  • step S506 the scenario execution unit 202 refers to the result of the previous test step from the result management table 208, and waits until the step interval elapses after the completion of the execution of the previous test step. Thereafter, the scenario execution unit 202 notifies the transmission / reception unit 206 of the test step and receives the transmission result.
  • step S507 the scenario execution unit 202 proceeds to step S508 if the transmission result is successful. If the transmission result is a transmission error, the scenario execution unit 202 proceeds to step S509.
  • step S508 the scenario execution unit 202 records the transmission source information, destination information, data type, input / output classification, test execution time, and test result “successful transmission” in the result management table 208 using the step number as a key. To do.
  • the scenario execution unit 202 notifies the transmission / reception unit 206 of the test step according to the retransmission time and the number of retransmissions specified in the test specification 230.
  • the scenario execution unit 202 records the transmission error in the result management table 208 when the transmission result is a transmission error even when the retransmission time and the number of retransmissions specified in the test specification 230 are reached. That is, the scenario execution unit 202 records source information, destination information, data type, input / output classification, test execution time, and test result “transmission error” in the result management table 208 using the step number as a key. Except for “transmission error”, the scenario execution unit 202 uses the step number as a key in the result management table 208 to transmit source information, destination information, data type, input / output classification, test execution time, and test result “successful transmission”. Is recorded.
  • step S510 the scenario execution unit 202 notifies the output generation unit 204 of the test step.
  • step S 511 the scenario execution unit 202 receives a test step from the output generation unit 204.
  • step S512 the scenario execution unit 202 refers to the result of the previous test step from the result management table 208, and waits until the step interval elapses after the completion of the execution of the previous test step. Thereafter, the scenario execution unit 202 receives output data from the transmission / reception unit 206.
  • the output data is HTTP response or output specific data which is a system specific application.
  • step S513 the scenario execution unit 202 determines success or failure of reception. If the reception result is a successful reception, the scenario execution unit 202 proceeds to step S514. If the reception result is a reception error, the scenario execution unit 202 proceeds to step S515.
  • step S ⁇ b> 514 the scenario execution unit 202 executes a test using a test step that represents an output from the next server 220, and acquires output data from the next server 220.
  • the scenario execution unit 202 notifies the verification unit 205 of the output data.
  • the scenario execution unit 202 sets the test step result 87 of the result management table 208 based on the verification result by the verification unit 205. This will be specifically described below.
  • the scenario execution unit 202 notifies the verification unit 205 of the received output data and the test step, and receives the verification result from the verification unit 205.
  • the verification result is a verification success or a received content error.
  • the scenario execution unit 202 records the transmission source information, destination information, data type, input / output classification, test execution time, and verification result in the result management table 208 using the step number as a key.
  • step S515 the scenario execution unit 202 waits until output data can be received.
  • the maximum time to wait is described in test specification 230.
  • the scenario execution unit 202 records a reception error in the result management table 208 when the output communication data cannot be received even after the maximum time has elapsed. That is, the scenario execution unit 202 records the source information, destination information, data type, input / output classification, test execution time, and test result “reception error” in the result management table 208 using the step number as a key.
  • FIG. 11 shows the operation of the input generation unit 203 when the communication data is HTTP.
  • FIG. 12 shows the operation of the input generation unit 203 when the communication data is a system-specific application.
  • step S601 and step S611 the input generation unit 203 receives a test step from the scenario execution unit 202.
  • the input generation unit 203 refers to the client specific information 33 using the transmission source IP address of the test step as a key. Then, the input generation unit 203 acquires the IP address and MAC address of the client device that is simulated in the test environment.
  • step S603 and step S613 the input generation unit 203 overwrites the value of the transmission source IP address in the test step with the acquired IP address. Then, the input generation unit 203 sets the transmission source MAC address in the test step.
  • step S604 and step S614 the input generation unit 203 refers to the server specific information 31 using the destination IP address and port number of the test step as keys.
  • the input generation unit 203 acquires the IP address and port number of the next server in the test environment.
  • step S605 and step S615 the input generation unit 203 overwrites the destination IP address and port number values of the test step with the acquired IP address and port number values.
  • step S606 of FIG. 11 the input generation unit 203 determines whether an HTTP header is included in the test step. If the HTTP header is included in the test step, the input generation unit 203 proceeds to step S607. If the HTTP header is not included in the test step, the input generation unit 203 proceeds to step S608. In step S607, the input generation unit 203 records this HTTP header in the internally managed table using the transmission source IP address of the test step as a key. In step S608, the input generation unit 203 acquires an HTTP header associated with the transmission source IP address of the test step from an internally managed table.
  • step S609 the input generation unit 203 acquires dynamic parameter_test environment from the parameter management table 207 using the dynamic parameter of the test step as a key. Then, the input generation unit 203 overwrites the HTTP header and HTTP body dynamic parameters using the acquired dynamic parameter_test environment. In step S610, the input generation unit 203 notifies the scenario execution unit 202 of the test step.
  • the HTTP header may not have a dynamic parameter. Whether there is a dynamic parameter in the HTTP header is determined by referring to the communication data specification 32. There may also be no HTTP body.
  • the input generation unit 203 acquires the dynamic parameter_test environment from the parameter management table 207 using the dynamic parameter of the test step as a key.
  • the input generation unit 203 overwrites the dynamic parameter of the communication data body part with the acquired dynamic parameter_test environment. There may be no dynamic parameters for the test step. There may also be no communication data body part.
  • the input generation unit 203 refers to the communication data specification 32.
  • the input generation unit 203 creates input data from the data type, data length, dynamic parameter_test environment, and communication data body part of the test step according to the data structure of the data type of the test step. Then, the input generation unit 203 sets the input data to the test step.
  • step S620 the input generation unit 203 notifies the scenario execution unit 202 of the test step.
  • the output generation unit 204 When the input / output classification of the test step is output, the output generation unit 204 overwrites the test step so that the test step represents the output from the next server. Based on the server specific information 31 and the client specific information 33, the output generation unit 204 overwrites the test step so that the test step represents the output from the next server.
  • step S ⁇ b> 701 the output generation unit 204 receives a test step from the scenario execution unit 202.
  • the output generation unit 204 refers to the client specific information 33 using the destination IP address of the test step as a key.
  • the output generation unit 204 acquires an IP address that simulates the client device 110 in the test environment.
  • the output generation unit 204 overwrites the value of the destination IP address of the test step with the acquired IP address of the test environment.
  • step S704 refers to the server specific information 31 using the transmission source IP address and port number of the test step as keys.
  • the output generation unit 204 acquires the IP address and port number of the next server 220 in the test environment.
  • step S705 the output generation unit 204 overwrites the value of the source IP address and port number of the test step with the value of the acquired IP address and port number of the next server 220.
  • step S706 the output generation unit 204 notifies the scenario execution unit 202 of the test step.
  • FIG. 14 shows the operation of the verification unit 205 when the communication data is HTTP.
  • FIG. 15 shows the operation of the verification unit 205 when the communication data is a system-specific application.
  • the verification unit 205 verifies the output data based on the server specific information 31, the client specific information 33, and the communication data specification 32.
  • step S801 and step S811 the verification unit 205 receives a test step and output data from the scenario execution unit 202.
  • the verification unit 205 refers to the communication data specification 32, acquires dynamic parameters, response codes, and HTTP bodies from the output data, and calculates the length of the HTTP body.
  • the dynamic parameter is a dynamic parameter in the test environment.
  • the dynamic parameter_test environment may not be present in the output data.
  • the verification unit 205 acquires a dynamic parameter of the test step.
  • the dynamic parameter is a dynamic parameter in the real environment, it is expressed as dynamic parameter_real environment.
  • the dynamic parameter_real environment may not be in the test step.
  • the verification unit 205 records the dynamic parameter_test environment in the parameter management table 207 using the dynamic parameter_real environment as a key.
  • step S804 the verification unit 205 compares the length of the HTTP body in the test step, that is, the length of the HTTP body in the actual environment, and the length of the HTTP body in the output data, that is, the length of the HTTP body in the test environment. Further, the verification unit 205 compares the response code of the test step, that is, the response code of the real environment with the response code of the output data, that is, the response code of the test environment. In step S805, when all the comparison results match, the verification unit 205 notifies the scenario execution unit 202 of the verification result “successful reception”. If at least one comparison result does not match, the verification unit 205 notifies the scenario execution unit 202 of the verification result “reception content error”.
  • the verification unit 205 refers to the communication data specification 32, acquires the dynamic parameter_test environment and data type from the output communication data, and calculates the data length.
  • the verification unit 205 acquires the dynamic parameter_real environment of the test step.
  • the verification unit 205 records the dynamic parameter_test environment in the parameter management table 207 using the dynamic parameter_real environment as a key.
  • the verification unit 205 compares the data length of the test step_actual environment with the data length of the output communication data_test environment. Further, the verification unit 205 compares the data type of the test step_real environment with the data type of the output communication data_test environment.
  • step S815 if all the comparison results match, the verification unit 205 notifies the scenario execution unit 202 of the verification result “successful reception”. If at least one comparison result does not match, the verification unit 205 notifies the scenario execution unit 202 of the verification result “reception content error”.
  • step S901 the transmission / reception unit 206 determines whether the network card is receivable. If the network card is receivable, the transmission / reception unit 206 proceeds to step S902. If the network card is not receivable, the transmission / reception unit 206 proceeds to step S904. In step S902, the transmission / reception unit 206 receives output communication data from the switch 210 in the test environment. In step S903, the transmission / reception unit 206 notifies the scenario execution unit 202 of the output communication data. In step S ⁇ b> 904, the transmission / reception unit 206 receives a test step from the scenario execution unit 202.
  • step S905 the transmission / reception unit 206 simulates the transmission source MAC address and IP address of the test step.
  • step S906 when the communication data is HTTP, the transmission / reception unit 206 transmits the HTTP header and HTTP body of the test step to the destination IP address and port number of the test step.
  • the transmission / reception unit 206 transmits the communication data of the test step to the destination IP address and port number of the test step.
  • step S907 the transmission / reception unit 206 notifies the scenario execution unit 202 of the transmission result (transmission OK, transmission error).
  • the test apparatus 100 includes an electronic circuit 909, a memory 921, an input interface 930, and an output interface 940.
  • the electronic circuit 909 is a dedicated electronic circuit that implements the functions of each unit of the test apparatus 100.
  • the electronic circuit 909 is a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA, an ASIC, or an FPGA.
  • GA is an abbreviation for Gate Array.
  • ASIC is an abbreviation for Application Specific Integrated Circuit.
  • FPGA is an abbreviation for Field-Programmable Gate Array.
  • the function of each part of the test apparatus 100 may be realized by a single electronic circuit, or may be realized by being distributed to a plurality of electronic circuits.
  • a part of functions of each unit of the test apparatus 100 may be realized by an electronic circuit, and the remaining functions may be realized by software.
  • Each of the processor and the electronic circuit is also called a processing circuit. That is, in the test apparatus 100, the function of each part of the test apparatus 100 is realized by a processing circuit.
  • a test apparatus that collects communication data and stores it in a communication data storage file.
  • the communication data storage file is read to create a test scenario.
  • the created test scenario is stored in a test scenario file. That is, in the test apparatus of the comparative example, both the communication data storage file and the test scenario file include input data and output data as they are. Therefore, in the test apparatus of the comparative example, both files become enormous in size.
  • test apparatus in which a test scenario is created by a tester based on server-specific information and communication data specifications.
  • This test apparatus of another comparative example performs a test according to a test scenario created by a tester.
  • this test apparatus of another comparative example cannot reproduce the actual client behavior.
  • test apparatus 100 In the test apparatus 100 according to the present embodiment, communication data is collected from a network device of a system composed of a client device, a current server, and a network device that connects them. Then, the test apparatus 100 creates a test scenario that maintains the behavior of the client device while deleting unnecessary information from the communication data. Further, the test apparatus 100 reproduces the behavior of the client while restoring the communication data according to the test scenario. Therefore, according to the test apparatus according to the present invention, it is possible to accurately reproduce the behavior of the real environment while reducing the communication data necessary for the test scenario.
  • the test scenario file is reduced as follows, compared to the communication data storage file stored in the libpcap format used in the above-described comparative example.
  • Libcapcap header (16 bytes ⁇ 8 bytes (only the collection time is recorded in the test scenario file). Header that records the collection status given to each collected packet) ⁇ ETHER header: 14 bytes ⁇ 0 bytes ⁇ IP header: 20 bytes ⁇ 8 bytes (only destination IP address and source IP address are recorded in the test scenario file)), TCP header (20 bytes ⁇ 4 bytes ((only destination port number, source port number is recorded in test scenario file)) or UDP header (8 bytes ⁇ 4 bytes destination port number, source port number only test scenario file Recorded))).
  • the second and subsequent HTTP requests transmitted from the same client device can be deleted with respect to information excluding the URL, dynamic parameters, and content length values. Therefore, a reduction of several hundred bytes or more is possible. Further, since the HTTP response is compared only with the response code and the length of the body at the time of the test, the body itself is deleted. Therefore, in many WEB (World Wide Web) systems, a reduction of several hundred bytes or more can be achieved.
  • each part of the test apparatus has been described as an independent functional block.
  • the configuration of the test apparatus may not be the configuration as in the above-described embodiment.
  • the functional block of the test apparatus may have any configuration as long as the function described in the above-described embodiment can be realized.
  • the test apparatus may be a system composed of a plurality of apparatuses instead of a single apparatus.
  • you may implement combining several parts among Embodiment 1.
  • FIG. Alternatively, one part of this embodiment may be implemented.
  • this embodiment may be implemented in any combination as a whole or in part. That is, in Embodiment 1, any combination of the embodiments, a modification of any component in each embodiment, or omission of any component in each embodiment is possible.

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

試験装置(100)は、クライアント機器(110)と現行サーバ(130)とにより通信される実データである通信データに基づいて、クライアント機器(110)を模擬することにより次期サーバ(220)の試験を行う。解析部(102)は、通信データから、試験シナリオを構成する試験ステップの生成に用いるシナリオ情報を抽出する。シナリオ生成部(103)は、シナリオ情報に基づいて試験ステップを生成し、試験ステップをシナリオ保存ファイル(34)に保存する。シナリオ実行部(202)は、シナリオ保存ファイル(34)から試験ステップを読み込み、試験ステップを用いて試験を行う。

Description

試験装置、試験方法および試験プログラム
 本発明は、試験装置、試験方法および試験プログラムに関する。
 特許文献1には、現行システムの現サーバから新システムの新サーバへシステム移行する際に、新サーバの試験を支援する試験装置が開示されている。特許文献1の試験装置は、現サーバにおける入出力ログから試験シナリオと試験データを作成する。そして、特許文献1の試験装置は、作成された試験データを読み込んで、新サーバを試験する。
 特許文献2には、ATM(Automatic Teller Machine)を試験対象とし、ATMと通信するホストを模擬する試験装置が開示されている。特許文献2では、試験実施者が、予め、ATMから試験装置への入力に対して回答するデータとコマンドパターンを用意する。このとき、試験実施者は、ユーザ仕様書を参照して、これらのデータとコマンドパターンを用意する。そして、試験の際に、試験装置は、ATMから送信される入力に対して、予め用意されたデータとコマンドパターンを参照して回答する。
特開2012-203580号公報 特開2011-113542号公報
 特許文献1の試験装置では、試験の品質を上げるために、現サーバにおける入出力ログがより多く必要となる。一方、入出力ログを多く収集すればするほど、入出力ログを保管するファイルのサイズが大きくなる。よって、実データである入出力ログを持ち運ぶ際、可搬性が悪くなるとともに、セキュリティ性が低下するという課題がある。
 また、特許文献2の試験装置では、試験環境の通信は実環境の通信とは無関係であり、試験の品質が低いという課題がある。
 本発明は、実環境の通信ログから試験シナリオを作成し、試験時に入力データを作成するとともに出力データを検証する。これにより、試験シナリオに必要な実データを少なくしつつ、的確に実環境の振る舞いを再現することを目的とする。
 本発明に係る試験装置は、
 クライアント機器と現行サーバとにより通信される実データである通信データに基づいて、前記クライアント機器を模擬することにより前記現行サーバの次期サーバの試験を行う試験装置において、
 前記通信データから、前記試験のシナリオを構成する試験ステップの生成に用いるシナリオ情報を抽出する解析部と、
 前記シナリオ情報に基づいて前記試験ステップを生成し、前記試験ステップをシナリオ保存ファイルに保存するシナリオ生成部と、
 前記シナリオ保存ファイルから前記試験ステップを読み込み、前記試験ステップを用いて前記試験を行うシナリオ実行部とを備えた。
 本発明に係る試験装置では、解析部が、通信データから、試験のシナリオを構成する試験ステップの生成に用いるシナリオ情報を抽出する。また、シナリオ生成部が、シナリオ情報に基づいて試験ステップを生成し、試験ステップをシナリオ保存ファイルに保存する。シナリオ実行部が、シナリオ保存ファイルから試験ステップを読み込み、試験ステップを用いて試験を行う。よって、本発明に係る試験装置によれば、試験シナリオに必要な通信データを少なくしつつ、的確に実環境の振る舞いを再現することができる。
実施の形態1に係る試験システムおよび試験装置の構成図。 実施の形態1に係る結果管理テーブルの例。 実施の形態1に係るパラメータ管理テーブルの例。 実施の形態1に係るデータ収集部の動作を表すフロー図。 実施の形態1に係る解析部の動作であって、通信データがHTTPの場合の動作を表すフロー図。 実施の形態1に係る解析部の動作であって、通信データがシステム固有のアプリケーションの場合の動作を表すフロー図。 実施の形態1に係るシナリオ生成部の動作であって、通信データがHTTPの場合の動作を表すフロー図。 実施の形態1に係るシナリオ生成部の動作であって、通信データがシステム固有のアプリケーションの場合の動作を表すフロー図。 実施の形態1に係るシナリオ読込部の動作を表すフロー図。 実施の形態1に係るシナリオ実行部の動作を表すフロー図。 実施の形態1に係る入力生成部の動作であって、通信データがHTTPの場合の動作を表すフロー図。 実施の形態1に係る入力生成部の動作であって、通信データがシステム固有のアプリケーションの場合の動作を表すフロー図。 実施の形態1に係る出力生成部の動作を表すフロー図。 実施の形態1に係る検証部の動作であって、通信データがHTTPの場合の動作を表すフロー図。 実施の形態1に係る検証部の動作であって、通信データがシステム固有のアプリケーションの場合の動作を表すフロー図。 実施の形態1に係る送受信部の動作を表すフロー図。 実施の形態1の変形例に係る試験システムおよび試験装置の構成図。
 以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
 実施の形態1.
***構成の説明***
 図1を用いて、本実施の形態に係る試験システム500および試験装置100の構成を説明する。
 本実施の形態に係る試験システム500は、実環境510と試験環境520とで稼働する試験装置100と、クライアント機器110と、スイッチ120と、現行サーバ130と、スイッチ210と、次期サーバ220とを有する。
 試験装置100は、クライアント機器110と現行サーバ130とにより通信される実データである通信データ11に基づいて、クライアント機器110を模擬することにより現行サーバ130の次期サーバ220の試験を行う。
 試験装置100は、実環境510で稼働する試験装置Aと、試験環境520で稼働する試験装置Bとを備える。すなわち、実環境510は、試験装置Aとクライアント機器110とスイッチ120とサーバ130を有する。また、試験環境520は、試験装置Bとスイッチ210と次期サーバ220と試験仕様230を有する。
 試験装置Aは、機能要素として、データ収集部101と解析部102とシナリオ生成部103を備える。
 試験装置Bは、機能要素として、シナリオ読込部201とシナリオ実行部202と入力生成部203と出力生成部204と検証部205と送受信部206とパラメータ管理テーブル207と結果管理テーブル208を備える。
 また、試験装置Aおよび試験装置Bに共通な情報として、サーバ固有情報31と通信データ仕様32とクライアント固有情報33とシナリオ保存ファイル34を備える。
 なお、試験装置Aと試験装置Bとは、1つのコンピュータに搭載されている。試験装置100は、試験装置Aと試験装置Bとの機能を有する。
 試験装置100は、コンピュータである。試験装置100は、プロセッサ910を備えるとともに、メモリ921、入力インタフェース930、および、出力インタフェース940といった他のハードウェアを備える。なお、図示はないが、試験装置100は、補助記憶装置および通信装置も備えている。プロセッサ910は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 試験装置100は、機能要素として、データ収集部101と解析部102とシナリオ生成部103とシナリオ読込部201とシナリオ実行部202と入力生成部203と出力生成部204と検証部205と送受信部206とパラメータ管理テーブル207と結果管理テーブル208を備える。
 データ収集部101と解析部102とシナリオ生成部103とシナリオ読込部201とシナリオ実行部202と入力生成部203と出力生成部204と検証部205と送受信部206の機能は、ソフトウェアにより実現される。以下において、データ収集部101と解析部102とシナリオ生成部103とシナリオ読込部201とシナリオ実行部202と入力生成部203と出力生成部204と検証部205と送受信部206を、試験装置100の各部と呼称する場合がある。
 パラメータ管理テーブル207と結果管理テーブル208は、メモリ921あるいは補助記憶装置に備えられる。また、サーバ固有情報31と通信データ仕様32とクライアント固有情報33とシナリオ保存ファイル34と試験仕様230も、メモリ921あるいは補助記憶装置に備えられる。
 プロセッサ910は、試験プログラムを実行する装置である。試験プログラムは、試験装置100の各部の機能を実現するプログラムである。
 プロセッサ910は、演算処理を行うIC(Integrated Circuit)である。プロセッサ910の具体例は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
 メモリ921は、データを一時的に記憶する記憶装置である。メモリ921の具体例は、SRAM(Static Random Access Memory)、あるいはDRAM(Dynamic Random Access Memory)である。
 補助記憶装置は、データを保管する記憶装置である。補助記憶装置の具体例は、HDDである。また、補助記憶装置は、SD(登録商標)メモリカード、CF、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体であってもよい。なお、HDDは、Hard Disk Driveの略語である。SD(登録商標)は、Secure Digitalの略語である。CFは、CompactFlash(登録商標)の略語である。DVDは、Digital Versatile Diskの略語である。
 入力インタフェース930は、マウス、キーボード、あるいはタッチパネルといった入力装置と接続されるポートである。入力インタフェース930は、具体的には、USB(Universal Serial Bus)端子である。なお、入力インタフェース930は、LAN(Local Area Network)と接続されるポートであってもよい。
 出力インタフェース940は、ディスプレイといった出力機器のケーブルが接続されるポートである。出力インタフェース940は、具体的には、USB端子またはHDMI(登録商標)(High Definition Multimedia Interface)端子である。ディスプレイは、具体的には、LCD(Liquid Crystal Display)である。
 通信装置は、レシーバとトランスミッタを有する。通信装置は、無線で、LAN、インターネット、あるいは電話回線といった通信網に接続している。通信装置は、具体的には、通信チップまたはNIC(Network Interface Card)である。
 試験プログラムは、プロセッサ910に読み込まれ、プロセッサ910によって実行される。メモリ921には、試験プログラムだけでなく、OS(Operating System)も記憶されている。プロセッサ910は、OSを実行しながら、試験プログラムを実行する。試験プログラムおよびOSは、補助記憶装置に記憶されていてもよい。補助記憶装置に記憶されている試験プログラムおよびOSは、メモリ921にロードされ、プロセッサ910によって実行される。なお、試験プログラムの一部または全部がOSに組み込まれていてもよい。
 試験装置100は、プロセッサ910を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、試験プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ910と同じように、試験プログラムを実行する装置である。
 試験プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ921、補助記憶装置、または、プロセッサ910内のレジスタあるいはキャッシュメモリに記憶される。
 試験装置100の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えてもよい。また、試験装置100の各部の「部」を「処理」に読み替えた各処理の「処理」を「プログラム」、「プログラムプロダクト」または「プログラムを記録したコンピュータ読取可能な記憶媒体」に読み替えてもよい。
 試験プログラムは、上述の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程を、コンピュータに実行させる。また、試験方法は、試験装置100が試験プログラムを実行することにより行われる方法である。
 試験プログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよい。また、試験プログラムは、プログラムプロダクトとして提供されてもよい。
 サーバ固有情報31は、現行サーバ130におけるIP(Internet Protocol)アドレスおよび待ち受けポート番号と、次期サーバ220におけるIPアドレスおよび待ち受けポート番号とを含む。
 通信データ仕様32は、実データ、すなわち通信データ11の仕様を表す情報を含む。
 試験システム500における通信プロトコルは以下の2つである。それぞれ通信データ仕様32に記載される内容が異なる。
(ア)HTTP(Hypertext Transfer Protocol)。HTTPリクエストではHTTPヘッダにURL(uniform resource locator)およびデータ長といった情報が含まれる。HTTPレスポンスでは、レスポンス・コードおよびデータ長といった情報が含まれる。なお、HTTPレスポンスには、データ長ではなくデータ終端を決める記号が記載されている場合もある。また、HTTPリクエストおよびHTTPレスポンスともに、サーバがクライアントあるいはアクセスを識別するために払い出したパラメータを含む場合がある。このパラメータは、具体的には、Cookieといったパラメータであり、以下、動的パラメータと呼称する。通信データ仕様32には、各種HTTPの仕様あるいは動的パラメータに関する情報が含まれる。
(イ)TCP(Transmission Control Protocol)/IP上またはUDP(User Datagram Protocol)/IP上のシステム固有のアプリケーション。通信データ仕様32にデータ構造が定義されている。具体的には、通信データ仕様32には、データ種別、データ長またはデータ終端、各種パラメータのサイズといった情報が決められている。データ終端の具体例は、特別な文字列といったものである。また、HTTPと同様に通信データに動的パラメータを含む場合がある。なお、通信データには、現行サーバ130に入力される入力通信データと、現行サーバ130から出力される出力通信データがある。
 クライアント固有情報33は、クライアント機器110のIPアドレスと、クライアント機器110を模擬するIPアドレスおよびMAC(Media Access Control)アドレスとを含む。
 試験仕様230は、試験実行時の各種制約を定義するファイルである。試験実行時の各種制約には、送信エラー時の再送時間と再送回数、および、受信エラー時の追加受信待機時間といった情報が含まれる。
 図2は、本実施の形態に係る結果管理テーブル208の例である。
 結果管理テーブル208には、試験ステップと、試験ステップを用いて試験を実行した際の試験ステップ結果とが設定される。具体的には、結果管理テーブル208は、試験ステップ番号81をキーに、送信元情報82、宛先情報83、データ種別84、入出力区分85、試験実施時間86、および試験ステップ結果87を記憶するテーブルである。
 図3は、本実施の形態に係るパラメータ管理テーブル207の例である。
 パラメータ管理テーブル207は、動的パラメータ_実環境をキーにして、動的パラメータ_試験環境を記憶するテーブルである。
***動作の説明***
 次に、本実施の形態に係る試験装置100の動作について説明する。
 図4を用いて、本実施の形態に係るデータ収集部101の動作について説明する。
 ステップS101において、データ収集部101は、実環境510のネットワーク機器であるスイッチ120のミラーポートを使って、pcap(packet capture)形式で通信データのパケットを収集する。なお、通信データは暗号化されていないことを前提とする。暗号化されている場合、試験装置Aは復号鍵を持たないので復号できず、対応できない。
 ステップS102において、データ収集部101は、収集したパケットを解析部102に通知する。
 データ収集部101は、ステップS101とステップS102を繰り返す。
 図5を用いて、本実施の形態に係る解析部102の動作であって、通信データがHTTPの場合の動作について説明する。
 解析部102は、通信データから、試験のシナリオを構成する試験ステップ12の生成に用いるシナリオ情報を抽出する。例えば、解析部102は、シナリオ情報として、通信データであるから、宛先IPアドレスおよびポート番号、送信元IPアドレスおよびポート番号、入出力区分、通信データ長、動的パラメータ、および通信データ内容を含む情報を抽出する。
 具体的には、以下の通りである。
 ステップS201において、解析部102は、サーバ固有情報31、クライアント固有情報33、および通信データ仕様32を読み込む。
 解析部102は、以下のステップS202からステップS210を繰り返す。
 ステップS202において、解析部102は、データ収集部101からパケットを受け取る。
 ステップS203において、解析部102は、パケットから、宛先のIPアドレスとポート番号、および、送信元のIPアドレスとポート番号を取得する。
 ステップS204において、解析部102は、ネットワークID毎にパケットを管理する。ネットワークIDは、同一宛先、および、送信元のIPアドレスとポート番号との組み合わせから構成される。解析部102は、ネットワークID毎に未処理のパケットがあれば、その未処理のパケットに当該パケットを追加する。
 ステップS205において、解析部102は、パケットの入出力区分を判定する。入出力区分とは、パケットがクライアントからサーバへのパケットなのか、サーバからクライアントへのパケットなのかを表す区分である。解析部102は、宛先のIPアドレスと送信元のIPアドレスから入出力区分を判定する。クライアントからサーバへのパケットであれば、このパケットはHTTPリクエストであり、入出力区分は入力と判定する。サーバからクライアントへのパケットであれば、このパケットはHTTPレスポンスであり、入出力区分は出力と判定する。
 ステップS206において、解析部102は、入出力区分が入力の場合、ステップS207に進む。また、解析部102は、入出力区分が出力の場合、ステップS209に進む。
 ステップS207において、解析部102は、未処理パケットからHTTPリクエストを組上げる。解析部102は、パケットの先頭であるHTTPヘッダ部分を解析する。そして、解析部102は、URL、HTTPボディの長さ(コンテント・レングス)、および動的パラメータを取得する。動的パラメータはない場合もある。解析部102は、このコンテント・レングスになるまで当該ネットワークIDのパケットを順に使用してHTTPリクエストを組み上げる。
 ステップS208において、解析部102は、HTTPリクエストから、試験のシナリオを構成する試験ステップ12の生成に用いるシナリオ情報を抽出する。解析部102は、シナリオ情報を、シナリオ生成部103に通知する。シナリオ情報は、パケットに関する各種情報である。解析部102は、1つまたは複数のパケットからこのコンテント・レングスの長さまでHTTPボディを組み上げられたら、以下の情報をシナリオ情報として抽出する。シナリオ情報には、宛先IPアドレスとポート番号、送信元IPアドレスとポート番号、入出力区分、URL、動的パラメータ、HTTPボディ、および、パケットから取得した収集時刻が含まれる。この際、このHTTPリクエストが当該ネットワークIDにおいて1つめのHTTPリクエストの場合はHTTPヘッダも併せて通知する。2つ目以降の場合はHTTPヘッダを通知しない。
 ステップS209において、解析部102は、未処理パケットからHTTPレスポンスを組上げる。解析部102は、パケットの先頭であるHTTPヘッダ部分を解析する。そして、解析部102は、例えば「200 OK」といったレスポンス・コード、HTTPボディの長さ(コンテント・レングス)、および動的パラメータを取得する。動的パラメータはない場合もある。コンテント・レングスが無い場合は、解析部102は、例えばMulti-partといったボディ終端記号、あるいはチャンク・サイズといった情報に応じて、HTTPボディの長さを考慮する。解析部102は、当該ネットワークIDのパケットを順に使用してHTTPレスポンスを組み上げる。
 ステップS210において、解析部102は、HTTPレスポンスから、試験のシナリオを構成する試験ステップ12の生成に用いるシナリオ情報を抽出する。解析部102は、シナリオ情報を、シナリオ生成部103に通知する。シナリオ情報は、パケットに関する各種情報である。解析部102は、1つまたは複数のパケットからHTTPレスポンスを組み上げられたら、以下の情報をシナリオ情報として抽出する。シナリオ情報には、宛先IPアドレスとポート番号、送信元IPアドレスとポート番号、入出力区分、HTTPボディの長さ、動的パラメータ、レスポンス・コード、および、パケットから取得した収集時刻が含まれる。
 図6を用いて、本実施の形態に係る解析部102の動作であって、通信データがシステム固有のアプリケーションの場合の動作について説明する。
 解析部102は、図5と同様に、以下のステップS212からステップS220を繰り返す。図6において、ステップS211からステップS214までは、図5のステップS201からステップS204までの動作と同様である。
 ステップS215において、解析部102は、図5のステップS205と同等に、パケットの入出力区分を判定する。クライアントからサーバへのパケットであれば、このパケットは入力固有データであり、入出力区分は入力と判定する。サーバからクライアントへのパケットであれば、このパケットは出力固有データであり、入出力区分は出力と判定する。
 ステップS216において、解析部102は、入出力区分が入力の場合、ステップS217に進む。また、解析部102は、入出力区分が出力の場合、ステップS219に進む。
 ステップS217およびステップS219において、解析部102は、入力固有データあるいは出力固有データに限らず、パケットを解析して、データ種別を取得する。解析部102は、通信データで規定された方式に応じて、当該ネットワークIDのパケットを順に使用して入力固有データ、または、出力固有データを組み上げる。通信データで規定された方式として、データ長が通信データ仕様32で規定されている。あるいは、データ終端が通信データ仕様32で規定されている。
 ステップS218において、解析部102は、入力固有データに関する各種情報をシナリオ生成部103に通知する。入力固有データに関する各種情報はシナリオ情報の例である。入力固有データに関する各種情報には、宛先IPアドレスとポート番号、送信元IPアドレスとポート番号、入出力区分、データ種別、動的パラメータ、通信データのボディ部分、およびパケットから取得した収集時刻が含まれる。また、通信データのボディ部分とは、データ種別とデータ長を設定するパラメータ、および、動的パラメータを除く通信データの部分である。
 ステップS219において、解析部102は、出力固有データに関する各種情報をシナリオ生成部103に通知する。出力固有データに関する各種情報はシナリオ情報の例である。出力固有データに関する各種情報には、宛先IPアドレスとポート番号、送信元IPアドレスとポート番号、入出力区分、データ種別、データ長、動的パラメータ、および、パケットから取得した収集時刻が含まれる。データ長は、通信データ仕様32で規定されていない場合は組み上がったデータから計算される。
 図7および図8を用いて、本実施の形態に係るシナリオ生成部103の動作について説明する。図7は、通信データがHTTPの場合のシナリオ生成部103の動作である。図8は、通信データがシステム固有のアプリケーションの場合のシナリオ生成部103の動作である。シナリオ生成部103は、シナリオ情報に基づいて試験ステップ12を生成し、試験ステップ12をシナリオ保存ファイル34に保存する。シナリオ生成部103は、図7において、以下のステップS301からステップS308を繰り返す。また、シナリオ生成部103は、図8において、以下のステップS311からステップS318を繰り返す。
 ステップS301およびステップS311において、シナリオ生成部103は、シナリオ情報であるパケットに関する各種情報を解析部102から受け取る。
 ステップS302において、シナリオ生成部103は、入出力区分が入力の場合、すなわちパケットがHTTPリクエストであれば、ステップS303に進む。また、シナリオ生成部103は、入出力区分が出力の場合、すなわちパケットがHTTPレスポンスであれば、ステップS304に進む。
 また、ステップS312において、シナリオ生成部103は、入出力区分が入力の場合、すなわちパケットが入力データであれば、ステップS313に進む。また、シナリオ生成部103は、入出力区分が出力の場合、すなわちパケットが出力データであれば、ステップS314に進む。
 ステップS303において、シナリオ生成部103は、シナリオ情報であるHTTPリクエストの各種情報から、試験ステップを作成する。HTTPリクエストの各種情報には、宛先IPアドレスとポート番号、送信元IPアドレスとポート番号、入出力区分、URL、動的パラメータ、HTTPボディ、およびHTTPヘッダが含まれる。ただし、HTTPヘッダはない場合もある。
 ステップS304において、シナリオ生成部103は、シナリオ情報であるHTTPレスポンスの各種情報から、試験ステップを作成する。HTTPレスポンスの各種情報には、宛先IPアドレスとポート番号、送信元IPアドレスとポート番号、入出力区分、HTTPボディの長さ、動的パラメータ、およびレスポンス・コードが含まれる。
 また、ステップS313において、シナリオ生成部103は、シナリオ情報である入力固有データの各種情報から、試験ステップを作成する。入力固有データの各種情報には、宛先IPアドレスとポート番号、送信元IPアドレスとポート番号、入出力区分、データ種別、動的パラメータ、および通信データのボディ部分が含まれる。
 ステップS314において、シナリオ生成部103は、シナリオ情報である出力固有データの各種情報から、試験ステップを作成する。出力固有データの各種情報には、宛先IPアドレスとポート番号、送信元IPアドレスとポート番号、入出力区分、データ種別、データ長、および動的パラメータが含まれる。
 ステップS305およびステップS315において、シナリオ生成部103は、ひとつ前に作成した試験ステップのステップ番号の次の番号をステップ番号として、作成した試験ステップに設定する。
 ステップS306およびステップS316において、シナリオ生成部103は、ひとつ前のステップ番号に紐づく収集時刻と、解析部102から通知された収集時刻との時間差をステップ間隔として、作成した試験ステップに設定する。
 ステップS307およびステップS317において、シナリオ生成部103は、試験ステップのステップ番号と収集時刻を紐づけて記憶しておく。
 ステップS308およびステップS318において、シナリオ生成部103は、作成した試験ステップを順にシナリオ保存ファイル34に保存する。
 図9を用いて、本実施の形態に係るシナリオ読込部201の動作について説明する。シナリオ読込部201は、以下のステップS401からステップS402を繰り返す。
 ステップS401において、シナリオ読込部201は、シナリオ保存ファイル34を読み込む。シナリオ読込部201は、シナリオ保存ファイル34の先頭から順に、試験ステップを一つずつ読み込む。
 ステップS402において、シナリオ読込部201は、読み込んだ試験ステップをシナリオ実行部202に一つずつ通知する。
 図10を用いて、本実施の形態に係るシナリオ実行部202の動作について説明する。
 シナリオ実行部202は、シナリオ保存ファイル34から試験ステップを読み込み、試験ステップを用いて試験を行う。シナリオ実行部202は、以下のステップS502からステップS515を繰り返す。
 まず、ステップS501において、シナリオ実行部202は、試験仕様230を読み込む。
 ステップS502において、シナリオ実行部202は、シナリオ読込部201から試験ステップを受け取る。
 ステップS503において、シナリオ実行部202は、試験ステップが、クライアント機器110から現行サーバ130への入力か、クライアント機器110に対する現行サーバ130からの出力かを表す入出力区分を判定する。シナリオ実行部202は、試験ステップの入出力区分が入力の場合、ステップS504に進む。また、シナリオ実行部202は、試験ステップの入出力区分が出力の場合、ステップS510に進む。
 ステップS504において、シナリオ実行部202は、入力生成部203に試験ステップを通知する。
 ステップS505において、シナリオ実行部202は、入力生成部203から試験ステップを受領する。
 ステップS506において、シナリオ実行部202は、結果管理テーブル208から前試験ステップの結果を参照し、前試験ステップの実行完了後からステップ間隔を経過するまで待機する。その後、シナリオ実行部202は、送受信部206に試験ステップを通知し、送信結果を受領する。
 ステップS507において、シナリオ実行部202は、送信結果が送信成功の場合、ステップS508に進む。また、シナリオ実行部202は、送信結果が送信エラーの場合、ステップS509に進む。
 ステップS508において、シナリオ実行部202は、結果管理テーブル208に、ステップ番号をキーとして、送信元情報、宛先情報、データ種別、入出力区分、試験実施時間、および、試験結果「送信成功」を記録する。
 ステップS509において、シナリオ実行部202は、試験仕様230に規定された再送時間と再送回数に従って、送受信部206に試験ステップを通知する。シナリオ実行部202は、試験仕様230に規定された再送時間と再送回数に達しても送信結果が送信エラーの場合、結果管理テーブル208に送信エラーを記録する。すなわち、シナリオ実行部202は、結果管理テーブル208に、ステップ番号をキーとして、送信元情報、宛先情報、データ種別、入出力区分、試験実施時間、および、試験結果「送信エラー」を記録する。「送信エラー」以外は、シナリオ実行部202は、結果管理テーブル208に、ステップ番号をキーとして、送信元情報、宛先情報、データ種別、入出力区分、試験実施時間、および、試験結果「送信成功」を記録する。
 ステップS510において、シナリオ実行部202は、出力生成部204に試験ステップを通知する。
 ステップS511において、シナリオ実行部202は、出力生成部204から試験ステップを受領する。
 ステップS512において、シナリオ実行部202は、結果管理テーブル208から前試験ステップの結果を参照し、前試験ステップの実行完了後からステップ間隔を経過するまで待機する。その後、シナリオ実行部202は、送受信部206から出力データを受領する。ここで、出力データは、HTTPレスポンス、あるいは、システム固有のアプリケーションである出力固有データである。
 ステップS513において、シナリオ実行部202は、受領の成否を判定する。シナリオ実行部202は受領結果が受信成功の場合、ステップS514に進む。また、シナリオ実行部202は、受領結果が受信エラーの場合、ステップS515に進む。
 ステップS514において、シナリオ実行部202は、次期サーバ220からの出力を表す試験ステップを用いて試験を実行し、次期サーバ220からの出力データを取得する。シナリオ実行部202は、出力データを検証部205に通知する。シナリオ実行部202は、検証部205による検証結果に基づいて、結果管理テーブル208の試験ステップ結果87を設定する。以下に、具体的に説明する。
 シナリオ実行部202は、受信した出力データと試験ステップを検証部205に通知し、検証部205から検証結果を受領する。検証結果は、具体的には、検証成功、あるいは、受信内容エラーである。シナリオ実行部202は、結果管理テーブル208に、ステップ番号をキーとして、送信元情報、宛先情報、データ種別、入出力区分、試験実施時間、および、検証結果を記録する。
 ステップS515において、シナリオ実行部202は、出力データを受信できるまで待機する。待機する最大時間は試験仕様230に記載されている。シナリオ実行部202は、最大時間を経過しても出力通信データを受領できなかった場合、結果管理テーブル208に受信エラーを記録する。すなわち、シナリオ実行部202は、結果管理テーブル208に、ステップ番号をキーとして、送信元情報、宛先情報、データ種別、入出力区分、試験実施時間、および、試験結果「受信エラー」を記録する。
 図11および図12を用いて、本実施の形態に係る入力生成部203の動作について説明する。図11は、通信データがHTTPの場合の入力生成部203の動作である。図12は、通信データがシステム固有のアプリケーションの場合の入力生成部203の動作である。
 入力生成部203は、試験ステップの入出力区分が入力の場合に、試験ステップが次期サーバ220への入力を表すように試験ステップを上書きする。入力生成部203は、サーバ固有情報31とクライアント固有情報33と通信データ仕様32とに基づいて、試験ステップが次期サーバ220への入力を表すように試験ステップを上書きする。
 ステップS601およびステップS611において、入力生成部203は、シナリオ実行部202から試験ステップを受領する。
 ステップS602およびステップS612において、入力生成部203は、試験ステップの送信元IPアドレスをキーにクライアント固有情報33を参照する。そして、入力生成部203は、試験環境で模擬するクライアント機器のIPアドレスとMACアドレスを取得する。
 ステップS603およびステップS613において、入力生成部203は、試験ステップの送信元IPアドレスの値を、取得したIPアドレスで上書きする。そして、入力生成部203は、試験ステップに送信元MACアドレスを設定する。
 ステップS604およびステップS614において、入力生成部203は、試験ステップの宛先IPアドレスとポート番号をキーにサーバ固有情報31を参照する。入力生成部203は、試験環境の次期サーバのIPアドレスとポート番号を取得する。
 ステップS605およびステップS615において、入力生成部203は、試験ステップの宛先IPアドレスとポート番号の値を、取得したIPアドレスとポート番号の値で上書きする。
 以上の処理は、図11および図12で共通である。
 図11のステップS606において、入力生成部203は、試験ステップにHTTPヘッダが含まれるかを判定する。入力生成部203は、試験ステップにHTTPヘッダが含まれる場合、ステップS607に進む。入力生成部203は、試験ステップにHTTPヘッダが含まれない場合、ステップS608に進む。
 ステップS607において、入力生成部203は、内部で管理するテーブルに、試験ステップの送信元IPアドレスをキーとして、このHTTPヘッダを記録する。
 ステップS608において、入力生成部203は、内部で管理するテーブルから、試験ステップの送信元IPアドレスに紐づくHTTPヘッダを取得する。
 ステップS609において、入力生成部203は、試験ステップの動的パラメータをキーに、パラメータ管理テーブル207から動的パラメータ_試験環境を取得する。そして、入力生成部203は、取得した動的パラメータ_試験環境を用いて、HTTPヘッダとHTTPボディの動的パラメータを上書きする。
 ステップS610において、入力生成部203は、試験ステップをシナリオ実行部202に通知する。
 なお、試験ステップの動的パラメータがない場合もある。また、HTTPヘッダには動的パラメータがない場合もある。HTTPヘッダに動的パラメータがあるか否かは通信データ仕様32を参照することにより判定される。また、HTTPボディについてもない場合がある。
 図12のステップS616において、入力生成部203は、試験ステップの動的パラメータをキーに、パラメータ管理テーブル207から動的パラメータ_試験環境を取得する。入力生成部203は、取得した動的パラメータ_試験環境で通信データボディ部分の動的パラメータを上書きする。なお、試験ステップの動的パラメータがない場合もある。また、通信データボディ部分についてもない場合がある。入力生成部203は、通信データ仕様32を参照する。入力生成部203は、試験ステップのデータ種別のデータ構造に従って、試験ステップのデータ種別、データ長、動的パラメータ_試験環境、および、通信データボディ部分から、入力データを作成する。そして、入力生成部203は、入力データを試験ステップに設定する。
 ステップS620において、入力生成部203は、試験ステップをシナリオ実行部202に通知する。
 図13を用いて、本実施の形態に係る出力生成部204の動作について説明する。
 出力生成部204は、試験ステップの入出力区分が出力の場合に、試験ステップが次期サーバからの出力を表すように試験ステップを上書きする。出力生成部204は、サーバ固有情報31とクライアント固有情報33とに基づいて、試験ステップが次期サーバからの出力を表すように試験ステップを上書きする。
 ステップS701において、出力生成部204は、シナリオ実行部202から試験ステップを受領する。
 ステップS702において、出力生成部204は、試験ステップの宛先IPアドレスをキーに、クライアント固有情報33を参照する。出力生成部204は、試験環境でクライアント機器110を模擬するIPアドレスを取得する。
 ステップS703において、出力生成部204は、試験ステップの宛先IPアドレスの値を、取得した試験環境のIPアドレスで上書きする。
 ステップS704において、出力生成部204は、試験ステップの送信元IPアドレスとポート番号をキーに、サーバ固有情報31を参照する。出力生成部204は、試験環境の次期サーバ220のIPアドレスとポート番号を取得する。
 ステップS705において、出力生成部204は、試験ステップの送信元IPアドレスとポート番号の値を、取得した次期サーバ220のIPアドレスとポート番号の値で上書きする。
 ステップS706において、出力生成部204は、試験ステップをシナリオ実行部202に通知する。
 図14および図15を用いて、本実施の形態に係る検証部205の動作について説明する。図14は、通信データがHTTPの場合の検証部205の動作である。図15は、通信データがシステム固有のアプリケーションの場合の検証部205の動作である。検証部205は、サーバ固有情報31とクライアント固有情報33と通信データ仕様32とに基づいて、出力データを検証する。
 ステップS801およびステップS811において、検証部205は、シナリオ実行部202から、試験ステップと出力データを受領する。
 図14のステップS802において検証部205は、通信データ仕様32を参照し、出力データから動的パラメータ、レスポンス・コード、HTTPボディを取得し、HTTPボディの長さを計算する。ここで、動的パラメータは、試験環境における動的パラメータであるため、動的パラメータ_試験環境と表す。また、動的パラメータ_試験環境は、出力データにない場合もある。
 ステップS803において検証部205は、試験ステップの動的パラメータを取得する。ここで、動的パラメータは、実環境における動的パラメータであるため、動的パラメータ_実環境と表す。また、動的パラメータ_実環境は、試験ステップにない場合もある。検証部205は、動的パラメータ_実環境をキーに、動的パラメータ_試験環境をパラメータ管理テーブル207に記録する。
 ステップS804において検証部205は、試験ステップのHTTPボディの長さ、すなわち実環境のHTTPボディの長さと、出力データのHTTPボディの長さ、すなわち試験環境のHTTPボディの長さを比較する。また、検証部205は、試験ステップのレスポンス・コード、すなわち実環境のレスポンス・コードと、出力データのレスポンス・コード、すなわち試験環境のレスポンス・コードとを比較する。
 ステップS805において検証部205は、比較した結果が全て一致した場合、シナリオ実行部202に検証結果「受信成功」を通知する。比較した結果が少なくとも一つ一致しなかった場合、検証部205は、シナリオ実行部202に検証結果「受信内容エラー」を通知する。
 図15のステップS812において検証部205は、通信データ仕様32を参照し、出力通信データから動的パラメータ_試験環境、および、データ種別を取得し、データ長を計算する。
 ステップS813において検証部205は、試験ステップの動的パラメータ_実環境を取得する。検証部205は、動的パラメータ_実環境をキーに、動的パラメータ_試験環境をパラメータ管理テーブル207に記録する。
 ステップS814において検証部205は、試験ステップのデータ長_実環境と出力通信データのデータ長_試験環境を比較する。また、検証部205は、試験ステップのデータ種別_実環境と出力通信データのデータ種別_試験環境を比較する。
 ステップS815において検証部205は、比較した結果が全て一致した場合、シナリオ実行部202に検証結果「受信成功」を通知する。比較した結果が少なくとも一つ一致しなかった場合、検証部205は、シナリオ実行部202に検証結果「受信内容エラー」を通知する。
 図16を用いて、本実施の形態に係る送受信部206の動作について説明する。
 ステップS901において、送受信部206は、ネットワークカードが受信可能か否かを判定する。送受信部206は、ネットワークカードが受信可能な場合、ステップS902に進む。送受信部206は、ネットワークカードが受信可能でない場合、ステップS904に進む。
 ステップS902において、送受信部206は、試験環境のスイッチ210から出力通信データを受信する。
 ステップS903において、送受信部206は、出力通信データをシナリオ実行部202に通知する。
 ステップS904において、送受信部206は、シナリオ実行部202から試験ステップを受領する。
 ステップS905において、送受信部206は、試験ステップの送信元MACアドレスとIPアドレスを模擬する。
 ステップS906において、通信データがHTTPの場合、送受信部206は、試験ステップの宛先IPアドレスとポート番号に対して、試験ステップのHTTPヘッダとHTTPボディを送信する。また、通信データがシステム固有のアプリケーションの場合、送受信部206は、試験ステップの宛先IPアドレスとポート番号に対して、試験ステップの通信データを送信する。
 ステップS907において、送受信部206は、送信結果(送信OK、送信エラー)をシナリオ実行部202に通知する。
***他の構成***
<変形例1>
 本実施の形態では、データ収集部101と解析部102とシナリオ生成部103とシナリオ読込部201とシナリオ実行部202と入力生成部203と出力生成部204と検証部205と送受信部206の機能がソフトウェアで実現される。変形例として、上述の試験装置100の各部の機能がハードウェアで実現されてもよい。
 図17を用いて、本実施の形態の変形例に係る試験システム500および試験装置100の構成を説明する。
 試験装置100は、電子回路909、メモリ921、入力インタフェース930、および出力インタフェース940を備える。
 電子回路909は、試験装置100の各部の機能を実現する専用の電子回路である。
 電子回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。ASICは、Application Specific Integrated Circuitの略語である。FPGAは、Field-Programmable Gate Arrayの略語である。
 試験装置100の各部の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
 別の変形例として、試験装置100の各部の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
 プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、試験装置100において、試験装置100の各部の機能は、プロセッシングサーキットリにより実現される。
***本実施の形態の効果の説明***
 本実施の形態に係る試験装置100の比較例として、通信データを収集して通信データ保存ファイルに保存しておく試験装置がある。この比較例の試験装置では、その後、試験を実施する際にこの通信データ保存ファイルを読込んで試験シナリオを作成する。そして、比較例の試験装置では、作成した試験シナリオを試験シナリオファイル保存していた。つまり、比較例の試験装置では、通信データ保存ファイル、および、試験シナリオファイルともに入力データおよび出力データがそのまま含まれる。よって、比較例の試験装置では、両ファイルともサイズが膨大になる。また、別の比較例には、試験シナリオが、試験実施者により、サーバ固有情報と通信データ仕様を基に作成される試験装置がある。この別の比較例の試験装置は、試験実施者により作成された試験シナリオに従って、試験を実施する。しかし、この別の比較例の試験装置では、実際のクライアントの振る舞いを再現できない。
 本実施の形態に係る試験装置100では、クライアント機器と現行サーバとこれらを繋ぐネットワーク機器とで構成されたシステムのネットワーク機器から、通信データを収集する。そして、試験装置100は、通信データから不要と判断した情報を削除しながら、クライアント機器の振る舞いを維持した試験シナリオを作成する。また、試験装置100は、試験シナリオに従って通信データを復元しながらクライアントの振る舞いを再現する。よって、本発明に係る試験装置によれば、試験シナリオに必要な通信データを少なくしつつ、的確に実環境の振る舞いを再現することができる。
 本実施の形態に係る試験装置100によれば、上述の比較例で用いられているlibpcap形式で保存されている通信データ保存ファイルに比べ、試験シナリオファイルは以下のように削減される。
・libpcapヘッダ(16バイト→8バイト(収集時刻のみ試験シナリオファイルに記録される)。収集パケット毎に付与される収集状況を記録するヘッダ)
・ETHERヘッダ:14バイト→0バイト
・IPヘッダ:20バイト→8バイト(宛先IPアドレス、送信元IPアドレスのみ試験シナリオファイルに記録される))、
・TCPヘッダ(20バイト→4バイト((宛先ポート番号、送信元ポート番号のみ試験シナリオファイルに記録される))またはUDPヘッダ(8バイト→4バイト宛先ポート番号、送信元ポート番号のみ試験シナリオファイルに記録される))。
 また、通信データがHTTPの場合は、同一クライアント機器から送信される2つ目以降のHTTPリクエストについてはURLと動的パラメータ、コンテント・レングスの値を除いた情報について削除可能である。よって、数100バイト以上の削減が可能である。また、HTTPレスポンスは、試験時にレスポンス・コードとボディの長さのみ比較するため、ボディそのものを削除するため、多くのWEB(World Wide Web)システムでは、数100バイト以上の削減ができる。
 以上の実施の形態1では、試験装置の各部を独立した機能ブロックとして説明した。しかし、試験装置の構成は、上述した実施の形態のような構成でなくてもよい。試験装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。また、試験装置は、1つの装置でなく、複数の装置から構成されたシステムでもよい。
 また、実施の形態1のうち、複数の部分を組み合わせて実施しても構わない。あるいは、この実施の形態のうち、1つの部分を実施しても構わない。その他、この実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
 すなわち、実施の形態1では、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
 なお、上述した実施の形態は、本質的に好ましい例示であって、本発明の範囲、本発明の適用物の範囲、および本発明の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。
 11 通信データ、12 試験ステップ、31 サーバ固有情報、32 通信データ仕様、33 クライアント固有情報、34 シナリオ保存ファイル、81 試験ステップ番号、82 送信元情報、83 宛先情報、84 データ種別、85 入出力区分、86 試験実施時間、87 試験ステップ結果、100,A,B 試験装置、101 データ収集部、102 解析部、103 シナリオ生成部、110 クライアント機器、120 スイッチ、130 サーバ、201 シナリオ読込部、202 シナリオ実行部、203 入力生成部、204 出力生成部、205 検証部、206 送受信部、207 パラメータ管理テーブル、208 結果管理テーブル、210 スイッチ、220 次期サーバ、230 試験仕様、500 試験システム、510 実環境、520 試験環境、909 電子回路、910 プロセッサ、921 メモリ、930 入力インタフェース、940 出力インタフェース。

Claims (8)

  1.  クライアント機器と現行サーバとにより通信される実データである通信データに基づいて、前記クライアント機器を模擬することにより前記現行サーバの次期サーバの試験を行う試験装置において、
     前記通信データから、前記試験のシナリオを構成する試験ステップの生成に用いるシナリオ情報を抽出する解析部と、
     前記シナリオ情報に基づいて前記試験ステップを生成し、前記試験ステップをシナリオ保存ファイルに保存するシナリオ生成部と、
     前記シナリオ保存ファイルから前記試験ステップを読み込み、前記試験ステップを用いて前記試験を行うシナリオ実行部と
    を備えた試験装置。
  2.  前記シナリオ実行部は、
     前記試験ステップが、前記クライアント機器から前記現行サーバへの入力か、前記クライアント機器に対する前記現行サーバからの出力かを表す入出力区分を判定し、
     前記試験装置は、
     前記試験ステップの前記入出力区分が入力の場合に、前記試験ステップが前記次期サーバへの入力を表すように前記試験ステップを上書きする入力生成部と、
     前記試験ステップの前記入出力区分が出力の場合に、前記試験ステップが前記次期サーバからの出力を表すように前記試験ステップを上書きする出力生成部と
    を備えた請求項1に記載の試験装置。
  3.  前記試験装置は、
     前記現行サーバにおけるIPアドレスおよび待ち受けポート番号と、前記次期サーバにおけるIPアドレスおよび待ち受けポート番号とを含むサーバ固有情報と、
     前記クライアント機器のIPアドレスと、前記クライアント機器を模擬するIPアドレスおよびMACアドレスとを含むクライアント固有情報と、
     前記通信データの仕様を表す通信データ仕様と
    を備え、
     前記入力生成部は、
     前記サーバ固有情報と前記クライアント固有情報と前記通信データ仕様とに基づいて、前記試験ステップが前記次期サーバへの入力を表すように前記試験ステップを上書きし、
     前記出力生成部は、
     前記サーバ固有情報と前記クライアント固有情報とに基づいて、前記試験ステップが前記次期サーバからの出力を表すように前記試験ステップを上書きする請求項2に記載の試験装置。
  4.  前記シナリオ実行部は、
     前記次期サーバからの出力を表す前記試験ステップを用いて前記試験を実行し、前記次期サーバからの出力データを取得し、
     前記試験装置は、
     前記サーバ固有情報と前記クライアント固有情報と前記通信データ仕様とに基づいて、前記出力データを検証する検証部を備えた請求項3に記載の試験装置。
  5.  前記試験装置は、
     前記試験ステップと、前記試験ステップを用いて前記試験を実行した際の試験ステップ結果とを設定した結果管理テーブルを備え、
     前記シナリオ実行部は、
     前記検証部による検証結果に基づいて、前記結果管理テーブルの前記試験ステップ結果を設定する請求項4に記載の試験装置。
  6.  前記解析部は、
     前記シナリオ情報として、前記通信データから、宛先IPアドレスおよびポート番号、送信元IPアドレスおよびポート番号、前記入出力区分、通信データ長、動的パラメータ、および通信データ内容を含む情報を抽出する請求項2から請求項5のいずれか1項に記載の試験装置。
  7.  クライアント機器と現行サーバとにより通信される実データである通信データに基づいて、前記クライアント機器を模擬することにより前記現行サーバとは異なる次期サーバの試験を行う試験装置の試験方法において、
     解析部が、前記通信データから、前記試験のシナリオを構成する試験ステップの生成に用いるシナリオ情報を抽出し、
     シナリオ生成部が、前記シナリオ情報に基づいて前記試験ステップを生成し、前記試験ステップをシナリオ保存ファイルに保存し、
     シナリオ実行部が、前記シナリオ保存ファイルから前記試験ステップを読み込み、前記試験ステップを用いて前記試験を行う試験方法。
  8.  クライアント機器と現行サーバとにより通信される実データである通信データに基づいて、前記クライアント機器を模擬することにより前記現行サーバとは異なる次期サーバの試験を行う試験装置の試験プログラムにおいて、
     前記通信データから、前記試験のシナリオを構成する試験ステップの生成に用いるシナリオ情報を抽出する解析処理と、
     前記シナリオ情報に基づいて前記試験ステップを生成し、前記試験ステップをシナリオ保存ファイルに保存するシナリオ生成処理と、
     前記シナリオ保存ファイルから前記試験ステップを読み込み、前記試験ステップを用いて前記試験を行うシナリオ実行処理と
    をコンピュータである前記試験装置に実行させる試験プログラム。
PCT/JP2018/017100 2018-04-26 2018-04-26 試験装置、試験方法および試験プログラム WO2019207743A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/017100 WO2019207743A1 (ja) 2018-04-26 2018-04-26 試験装置、試験方法および試験プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/017100 WO2019207743A1 (ja) 2018-04-26 2018-04-26 試験装置、試験方法および試験プログラム

Publications (1)

Publication Number Publication Date
WO2019207743A1 true WO2019207743A1 (ja) 2019-10-31

Family

ID=68293507

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/017100 WO2019207743A1 (ja) 2018-04-26 2018-04-26 試験装置、試験方法および試験プログラム

Country Status (1)

Country Link
WO (1) WO2019207743A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023142907A1 (zh) * 2022-01-26 2023-08-03 中兴通讯股份有限公司 全光网络业务测试方法、装置、计算机设备和可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007145156A (ja) * 2005-11-28 2007-06-14 Hitachi Ltd 列車運行管理システムの試験方法及び装置
JP2010098429A (ja) * 2008-10-15 2010-04-30 Fujitsu Ltd ネットワークスイッチ装置、ネットワークスイッチ装置制御方法及びネットワークスイッチ装置制御プログラム
JP2012178094A (ja) * 2011-02-28 2012-09-13 Mitsubishi Electric Corp 試験実施装置及び試験実施方法及びプログラム
JP2015133552A (ja) * 2014-01-09 2015-07-23 日本電信電話株式会社 通信試験方法、装置及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007145156A (ja) * 2005-11-28 2007-06-14 Hitachi Ltd 列車運行管理システムの試験方法及び装置
JP2010098429A (ja) * 2008-10-15 2010-04-30 Fujitsu Ltd ネットワークスイッチ装置、ネットワークスイッチ装置制御方法及びネットワークスイッチ装置制御プログラム
JP2012178094A (ja) * 2011-02-28 2012-09-13 Mitsubishi Electric Corp 試験実施装置及び試験実施方法及びプログラム
JP2015133552A (ja) * 2014-01-09 2015-07-23 日本電信電話株式会社 通信試験方法、装置及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023142907A1 (zh) * 2022-01-26 2023-08-03 中兴通讯股份有限公司 全光网络业务测试方法、装置、计算机设备和可读介质

Similar Documents

Publication Publication Date Title
US7844692B2 (en) Web server multiplier for analyzing resource leaks
JP5094543B2 (ja) 情報処理装置、制御方法、及びプログラム
US20090055443A1 (en) Recording a Log of Operations
CN104094554A (zh) 无服务器名称指示(sni)的隐式ssl证书管理
US10701041B2 (en) Calculation device, calculation method, communication apparatus, and storage medium
CN111030963B (zh) 文档追踪方法、网关设备及服务器
CN108134816B (zh) 对远程设备上的数据的访问
JP2008219746A (ja) 情報送信装置、情報送信方法、情報送信プログラムおよび該プログラムを記録した記録媒体
JP5287172B2 (ja) 情報処理装置、画像処理装置、印刷制御方法、及び印刷制御プログラム
US11245685B2 (en) Methods and apparatus to verify encrypted handshakes
EP1696339A2 (en) System and method for testing data format using targeted variant input
CN112737891A (zh) 一种网络流量模拟测试方法、装置及存储介质
CN112073465A (zh) 一种基于sftp传输的动态脱敏方法与设备
WO2019207743A1 (ja) 試験装置、試験方法および試験プログラム
JP2006099442A (ja) 情報処理装置、履歴ファイル作成方法、及びプログラム
JP2007323162A (ja) クライアント装置及びサーバ装置及びプログラム
JP2010287189A (ja) 情報処理装置、その制御方法、及びプログラム
JP2004355511A (ja) 情報処理システム
JP5640752B2 (ja) 攻撃模倣テスト方法、攻撃模倣テスト装置及び攻撃模倣テストプログラム
JP2010140277A (ja) 電子ファイル処理装置、コンピュータシステム、電子ファイル処理方法、及びコンピュータプログラム
CN113835981A (zh) 日志格式适配方法、系统、装置及计算机可读存储介质
WO2019220480A1 (ja) 監視装置、監視方法及びプログラム
CN101101534A (zh) 利用可扩展标记语言数据成像的方法与系统
JP2008226242A (ja) 電子ドキュメントまたはその一部をロギングするシステムおよび方法
JP6425634B2 (ja) サービス仮想化システム、及び、サービス仮想化方法

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

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP