Test support system and test support method

The test support system facilitates real-time testing of new systems by replicating and processing requests and responses between current and new systems, addressing the challenge of testing with external services, ensuring accurate and unaffected testing outcomes.

JP7611064B2Active Publication Date: 2025-01-09HITACHI LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2021076375
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-04-28
Publication Date
2025-01-09
Estimated Expiration
2041-04-28

AI Technical Summary

Technical Problem

Existing systems face challenges in conducting real-time testing of new systems using actual data without affecting external services, particularly when the information system operates in conjunction with external services that are not subject to update, leading to unexpected duplication of processing during testing.

Method used

A test support system comprising a request control device and a check processing device that replicates and processes requests and responses between the current and new systems, allowing real-time testing without affecting external services by duplicating and modifying requests and responses to mimic actual system interactions.

Benefits of technology

Enables real-time testing of new systems using actual data without impacting external services, ensuring accurate testing outcomes by comparing and mirroring system interactions in real-time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007611064000001
    Figure 0007611064000001
  • Figure 0007611064000002
    Figure 0007611064000002
  • Figure 0007611064000003
    Figure 0007611064000003
Patent Text Reader

Abstract

To provide a test support system and a test support method capable of performing real-time testing of a new system using real data without affecting external services even when operating in conjunction with the external services.SOLUTION: In a test support method for performing real-time testing of a new system using actual requests input to a current system linked with external services, new system requests from the new system under test are not sent to the external services, but are input to the new system in response to the new system request after replicating a response of the current system to the current system's request to the external services.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a test support system and a test support method. [Background technology]

[0002] Once an information system has been released into production, that is not the end of it; it is necessary to upgrade it as necessary to add or improve functions and implement security measures. In particular, in recent years, the development of information systems that utilize Open Source Software (OSS) has become widespread. Because OSS is frequently upgraded and has a short support period, information systems that utilize it also require frequent updates.

[0003] When doing so, a method is required to perform the update safely and easily while confirming that the upgrade will not have any adverse effects. One method is to prepare a new system with an upgraded version, and after testing to confirm that there are no problems, switch traffic from the current system to the new system.

[0004] Testing is often done using test cases, but there is no guarantee that the test cases created will completely cover the impact of the version upgrade, and many defects are only discovered when data flows in actual operation after the production release. For this reason, in addition to testing using test cases, testing using actual data flowing through the current system is also required.

[0005] In addition, in order to minimize problems that occur due to rewriting of configuration values ​​such as the request destination when switching traffic after testing, it is preferable that the configuration values ​​of the new system during testing be the same as those of the current system.

[0006] By feeding data that will flow through the information system during actual operation into the new system before its production release and testing the processing results by comparing them with the current system and the new system, it is possible to guarantee how the new system will function when actual data flows into it.

[0007] Patent document 1 discloses a technology in which a test transition support system saves past packets that have flowed through a current system, and then sends the saved packets to a verification system for a new version to compare response packets, response times, etc. [Prior art documents] [Patent documents]

[0008] [Patent Document 1] JP 2014-26480 A Summary of the Invention [Problem to be solved by the invention]

[0009] The technology described in Patent Document 1 above makes it possible to perform testing using real past data. However, to perform accurate testing using real past data, it is necessary to reproduce the state of the system when the packets were saved in the new system and then verify it. This poses problems such as the need to save the system state for a long time and the time it takes to restore it. Therefore, a test method that mirrors the packets flowing through the current system in real time is required, rather than testing using past data.

[0010] However, if the information system to be updated operates in conjunction with an external service that runs in an environment that is not to be updated, the same external service will be used at the same time, running the risk of unexpected duplicate processing occurring during real-time testing.

[0011] Here, collaboration with external services refers to the use of managed storage services provided by cloud vendors, or making a processing request to another system, including a network-connected storage system, obtaining the results, and then performing subsequent processing.

[0012] An object of the present invention is to enable real-time testing of a new system using actual data without affecting an external service, even when the system is operating in conjunction with the external service. [Means for solving the problem]

[0013] One embodiment of the test support system of the present invention is a test support system that performs real-time testing of a new system using actual requests input to a current system in cooperation with an external service, and includes a first request control device arranged for the current system, a second request control device arranged for the new system, and a check processing device connected to the first request control device and the second request control device, wherein the first request control device sends a first request in response to a processing request to the current system to the external service, duplicates the processing request and sends it to the new system, duplicates the first request and sends it to the check processing device, and sends a response from the external service in response to the first request to the current system, the second request control device sends a second request in response to the duplicated processing request to the check processing device, and the check processing device compares the duplicated first request with the second request to determine whether the new system is normal or abnormal, and if it is determined that the new system is normal, duplicates the response from the external service and sends it to the new system as a response to the second request.

[0014] One embodiment of the test support method of the present invention is a test support method that performs real-time testing of a new system using actual requests input to a current system in cooperation with an external service, and is characterized in that a new system request is not sent from the new system under test to the external service, but rather the current system's response to the current system request to the external service is replicated and input into the new system as a response to the new system request. Effect of the Invention

[0015] According to one aspect of the present invention, even when operating in conjunction with an external service, it is possible to realize real-time testing of a new system using actual data without affecting the external service. [Brief description of the drawings]

[0016] [Figure 1] FIG. 1 is a diagram for explaining an overview of the present invention. [Diagram 2] 1 is a block diagram showing an example of a system configuration according to the present invention. [Diagram 3] FIG. 2 is a block diagram showing an example of the configuration of a computer on which each component operates. [Figure 4] 2 is a block diagram showing an example of programs, processes, and data stored in a memory or storage device of a terminal, a memory or storage device of a request control device, and a memory or storage device of a check processing device. FIG. [Diagram 5] 1 is a diagram showing an example of the configuration of a table held in a memory or storage device of a request control device and a memory or storage device of a check processing device; [Figure 6] FIG. 2 is a diagram showing an example of a processing flow of each component of the present invention. [Figure 7] FIG. 11 illustrates an example of a process of a request duplication processing unit; [Figure 8] FIG. 11 illustrates an example of processing by a trace information adding processing unit; [Figure 9] FIG. 11 illustrates an example of a process performed by a transfer timing control processing unit; [Figure 10] FIG. 11 illustrates an example of a process performed by a destination change processing unit; [Figure 11] FIG. 11 illustrates an example of a process of a request transfer processing unit; [Figure 12] FIG. 11 illustrates an example of a process performed by a request association processing unit; [Figure 13] FIG. 13 illustrates an example of a process of a request comparison processing unit; [Figure 14] FIG. 11 is a diagram illustrating an example of a process of a system state monitoring processing unit. [Figure 15] FIG. 11 is a diagram illustrating an example of a process of a destination modification processing unit according to the second embodiment. [Figure 16] FIG. 2 is a block diagram showing an example of programs, processes, and data stored in a memory or storage device of the test status control device. [Figure 17A] FIG. 13 illustrates an example of a test status management GUI. [Figure 17B] FIG. 13 illustrates an example of a test status management GUI. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0017] An embodiment of the present invention will be described in detail below with reference to the drawings. In the following description, when describing elements of the same type without distinction, the common portion (part excluding the branch number) of the reference code including the branch number is used, and when describing elements of the same type with distinction, the reference code including the branch number may be used. For example, when describing a user without distinction, it may be written as "user 900", and when describing individual users with distinction, it may be written as "user 900-1", "user 900-2", etc. EXAMPLES

[0018] The present invention will be outlined with reference to FIG. The present invention includes a test support framework 10 that supports real-time testing of new systems using real data. The test support framework 10 includes a request control device 200 , a check processing device 300 , and a test status control device 400 .

[0019] The present invention relates to a technology for testing an upgraded new system in real time using actual data without affecting the external services, for an information system in which processing is not completed within a single information system but operates while linking with external services. Linking with external services refers to linking with information systems, services, servers, etc. operating in an environment outside the target information system, such as using a managed storage service provided by a cloud vendor, or making a processing request to another system including a network-connected storage system, obtaining the results, and performing subsequent processing.

[0020] Hereafter, information systems, services, servers, etc. that operate in environments outside of these target information systems will be referred to as "external services." Additionally, the system currently in production will be referred to as the "current system," and the upgraded system being tested will be referred to as the "new system." These correspond to external service 500, current system 600, and new system 700 in Figure 1, respectively.

[0021] As an example of the current system 600, assume an information system in which, during non-testing, a processing requester 800 makes a processing request to the current system 600, processing is carried out within the current system 600, an external processing request is sent to an external service 500, the current system 600 receives an external processing response from the processing carried out within the external service 500, processing is carried out within the current system 600, and the processing response is returned to the processing requester 800.

[0022] The processing request source 800 may be a single or multiple source, and the processing request source 800 may be another information system, service, or server that sends a processing request to the current system 600 via a network, or may be an independently operating processing device, such as an unspecified person operating a client terminal such as a PC. The external service 500 that operates in cooperation with the current system 600 may be a single or multiple source.

[0023] The following provides an overview of each processing device constituting a technology for testing a new system 700, which is an upgraded version of the current system 600, in real time using actual data without affecting the external service 500.

[0024] At least one request control device 200 is provided on the outside or inside of each of the current system 600 and the new system 700. The current system 600 is provided with a request control device 200-1, and the new system 700 is provided with a request control device 200-2.

[0025] The request control device 200 switches between two states, a current system mode and a new system mode, depending on whether the system in which it is deployed is the current system 600 or the new system 700, and behaves differently in each mode.

[0026] The request control device 200 controls the processing requests and responses input and output to and from the current system 600 and the new system 700, performs copy and transfer processing for content confirmation and testing of the new system 700, destination change processing for testing without affecting the external service 500, and attaching trace information for associating requests and responses input and output by the current system 600 and the new system 700. Details of the above processing will be described later.

[0027] The request control device 200 is also characterized in that it can be deployed and execute the above-mentioned processing in any application or system without making any special settings or changing the configuration, and without making any internal changes to the application or system. One example of the deployment method is a method in which Envoy Proxy (https: / / www.envoyproxy.io / ) is deployed as a sidecar container next to a container having the function of each application in an information system built using Docker (https: / / www.docker.com / ), which is an example of software that provides a container-type virtual environment, and ubernetes (https: / / kubernetes.io / ), which is an example of an execution infrastructure building and management tool.

[0028] The check processing device 300 performs processing for duplicating or transferring the processing requests and responses input / output to / from the current system 600 and new system 700 based on trace information added to each input / output, such as matching the requests and responses input / output to / from the current system 600 and new system 700, content comparison processing, and control processing for controlling the timing of transferring the processing requests and responses input to the current system 600 to the new system 700. The above processing will be described in detail later.

[0029] The test status control device 400 manages the test status (testing / not testing) and the system role (current system / new system), and controls the request control device 200 and the check processing device 300 accordingly. It also provides a GUI screen for the user 900 of the test support framework 10 to manage the test status. The above processing will be described in detail later.

[0030] In addition, if the request control device 200 and the check processing device 300 are deployed only during testing, and the request control device 200 and the check processing device 300 are not deployed during non-testing, the test status control device 400 does not need to manage the test status (testing / non-testing).

[0031] In addition, if it is determined in advance which request control device 200 is the current system or the new system, and the state of the request control device 200 is fixed to the current system mode or the new system mode before deployment, and this information is shared by the check processing device 300, the test status control device 400 does not need to manage the system role (current system / new system).

[0032] Furthermore, if the request control device 200 and the check processing device 300 are deployed only during testing, and are not deployed during non-testing, and it is determined in advance which request control device 200 is the current system or the new system, and the state of the request control device 200 is fixed to the current system mode or the new system mode before deployment, and this information is shared by the check processing device 300, then the test support framework 10 does not need to have the test status control device 400.

[0033] Hereinafter, in the first embodiment, a case where the test support framework 10 does not have the test situation control device 400 will be mainly described, and in the third embodiment, a case where the test support framework 10 has the test situation control device 400 will be described.

[0034] Hereinafter, processing requests and responses input and output to and from the current system 600 and new system 700, as well as their duplication and transfer, will be referred to as "requests" unless there is a particular distinction to be made.

[0035] FIG. 2 is a block diagram illustrating an example of a system configuration according to the first embodiment of the present invention. 2 is composed of a network switch 100, a request control device 200, a check processing device 300, an external service 500, a current system 600, a new system 700, a processing request source 800, and a terminal 910 operated by a user 900. When the system has a test status control device 400, these devices are connected to the test status control device 400 via the network switch 100.

[0036] The current system 600 and the new system 700 each have one or more servers 610-1, 610-2, 710-1, 710-2. One or more request control devices 200 are provided inside or outside the current system 600 and the new system 700, respectively, as described above.

[0037] In FIG. 2, the request control devices 200 are arranged in one-to-one correspondence with the servers 610-1, 610-2, 710-1, and 710-2 of the current system 600 and the new system 700, but one request control device 200 may collectively control requests to a plurality of servers.

[0038] <Explanation of the calculator> FIG. 3 is a block diagram showing an example of the configuration of a computer 80 on which the components shown in FIG. 2 operate. The computer 80 has a CPU (Central Processing Unit) 81 which is a processor, a memory 82 which is a main storage device, a non-volatile secondary storage device 83, an input / output device 84, and a port 85. These components are connected to each other by a bus 86.

[0039] The CPU 81 realizes a predetermined function of each computer by executing a program stored in the memory 82. The memory 82 stores the program executed by the CPU 81 and data necessary for the execution of the program. The program is loaded into the memory 82 from the secondary storage device 830.

[0040] The input / output device 84 includes one or more devices such as a display, a pointer, a keyboard, etc. The user 900 can operate each computer through the input / output device 84.

[0041] The port 85 is connected to a network (for example, the network switch 100 in FIG. 2). Each computer can communicate with another computer 80 via the port 85. The computer 80 on which each component runs may be a virtual environment such as a virtual machine or a container.

[0042] <Description of data structure of memory or storage device> FIG. 4 is a block diagram showing an example of programs, processes, and data stored in the memory or storage device 920 of the terminal 910 used by the user 900, the memory or storage device 220 of the request control device 200, and the memory or storage device 320 of the check processing device 300.

[0043] The memory or storage device 920 of the terminal 910 used by the user 900 has a client program 921 for displaying a GUI shown in Fig. 17, which will be described later. An example of the client program 921 is a web browser.

[0044] The memory or storage device 220 of the request control device 200 has a request duplication processing unit 221 , a trace information addition processing unit 222 , a destination change processing unit 223 , a request transfer processing unit 224 , a trace information management table 225 , and a system correspondence management table 226 .

[0045] The memory or storage device 320 of the check processing device 300 has a transfer timing control processing unit 321, a request matching processing unit 322, a request comparison processing unit 323, a system status monitoring processing unit 324, a trace information management table 325, a system correspondence management table 326, a comparison result management table 327, and a comparison condition management database 328.

[0046] The comparison result management table 327 may exist in the memory or storage device 320 of the check processing device 300, or may exist in the memory or storage device of one or more independent, dedicated or shared servers connected to a network separate from the memory or storage device 320 of the check processing device 300.

[0047] The comparison condition management database 328 has comparison condition information 3281. When the check processing device 300 compares requests of the current system 600 and the new system 700 to determine whether the new system 700 is normal or abnormal, there are cases where the request contents are normal even if they differ due to the influence of an upgrade. In such cases, the comparison condition information 3281 is information indicating what kind of change is deemed normal.

[0048] The trace information management table 225 and system correspondence management table 226 in the memory or storage device 220 of the request control device 200 and the trace information management table 325 and system correspondence management table 326 in the memory or storage device 320 of the check processing device 300 are assumed to have the same information, and if a change is made to one of the tables, the change is transmitted and synchronized by communication between the request control device 200 and the check processing device 300.

[0049] In addition, only the memory or storage device 220 of the request control device 200 or the memory or storage device 320 of the check processing device 300 may have the trace information management table 225 or 325 and the system correspondence management table 226 or 326, and the necessary information may be exchanged through communication between the request control device 200 and the check processing device 300.

[0050] In addition, the trace information management table 225 or 325 and the system correspondence management table 226 or 326 may exist in the memory or storage device 220 of the request control device 200, or in the memory or storage device 320 of the check processing device 300, or may exist in the memory or storage device of one or more independent, dedicated or shared servers connected to a network separate from the memory or storage device 220 of the request control device 200, or the memory or storage device 320 of the check processing device 300.

[0051] The above-mentioned processing units and tables will be described in detail later.

[0052] The memory or storage device 920 of the terminal 910 used by the user 900, the memory or storage device 220 of the request control device 200, and the memory or storage device 320 of the check processing device 300 may operate on something like a network-connected database or virtual server.

[0053] FIG. 5 is a diagram showing an example of the configuration of tables held in the memory or storage device 220 of the request control device 200 and the memory or storage device 320 of the check processing device 300. As shown in FIG.

[0054] The trace information management table 225 is a table for managing trace information that the request control device 200 assigns to each request in order to associate the requests input and output by the current system 600 and the new system 700 .

[0055] The trace information management table 225 has a unique pair ID 2251 assigned to each pair of requests that can be associated with each other, a current system trace identifier 2252 assigned to requests flowing through the current system, and a new system trace identifier 2253 assigned to requests flowing through the new system.

[0056] The system correspondence management table 226 is a table for managing the correspondence between the destinations of requests in the current system 600 and the new system 700 .

[0057] The system correspondence management table 226 has a current system destination 2261 and a new system destination 2262. Note that there may be two or more tables of pairs of destinations and management numbers of systems having the same configuration, and when the current system and the new system are specified, the destination may be associated with the management number as a key.

[0058] The comparison result management table 327 is a table for managing the results of the check processing device 300 comparing requests of the current system 600 and the new system 700 and judging whether the new system is normal or abnormal.

[0059] The comparison result management table 327 has a unique comparison number 3271 assigned to each request comparison, current system request content 3272 which is the request content sent to the current system, new system request content 3273 which is the request content sent to the new system, and the result 3274 of the normality / abnormality judgment of the new system based on the comparison.

[0060] <Explanation of the overall process flow> FIG. 6 shows a process flow when a new system 700 is tested in real time using actual data without affecting the external service 500, by using the test support framework 10 of the present invention.

[0061] First, a processing request source 800 transmits a processing request to the current system 600 (801). The request control device 200-1 (current system mode) arranged on the current system side acquires the processing request addressed to the current system 600 and executes a request duplication process 221. As a result, two copies of the processing request addressed to the current system 600 are created, and the processing request is amplified to three. These are one for sending to the current system, one for sending to the new system, and one for storage in the check processing device. Note that the number of copies of the processing request may be one, and one for sending to the current system and one for sending to the new system. In that case, the processing request is duplicated before being sent to the new system by the check processing device 300, and is stored in the check processing device 300. If not necessary depending on the test contents or the request matching method, duplication for storage in the check processing device may not be made.

[0062] Next, for the duplicated request, the request control device 200-1 (current system mode) arranged on the current system side executes a trace information attachment process 222. This process issues a trace identifier, attaches the trace identifier to the request, and propagates the trace identifier between a series of processes performed in the current system 600 and the new system 700, thereby enabling the check processing device 300 to associate requests input and output by the current system 600 and the new system 700.

[0063] One example of a method of adding trace information to requests and propagating it is to apply the method of distributed tracing (SIGELMAN, Benjamin H., et al. Dapper, a large-scale distributed systems tracing infrastructure. 2010.). Two of the three requests are assigned a trace identifier for the current system, and one is assigned a trace identifier for the new system. Then, one of the processing requests with the trace identifier for the current system assigned is sent to the current system 600. The remaining two requests are sent to the check processing device 300, and the request with the trace identifier for the current system is temporarily stored for storage in the check processing device.

[0064] The request with the trace identifier for the new system is sent to the new system 700 in accordance with the timing control of the transfer timing control process 321. The request control device 200-2 (new system mode) installed on the new system side acquires the processing request addressed to the new system 700, executes the request duplication process 221, and then sends the request to the new system 700.

[0065] The current system 600 and the new system 700 each execute processing in accordance with the processing request (601, 701) within each system, and as a result, a new processing request to be sent to the external service is created and sent (602, 702).

[0066] First, an external processing request of the current system is acquired by the request control device 200-1 (current system mode) arranged on the current system side, and executes the request transfer process 224. As a result, two requests are created: a request to be sent to make an external processing request to an external service, and a request to be sent to the check processing device and used for request comparison, and are sent to each of them.

[0067] On the other hand, an external processing request of the new system is acquired by a request control device 200-2 (new system mode) arranged on the new system side, and rewrites it to the check processing device by executing a destination change process 223. This prevents the new system from rewriting the external service with test information while being under the mistaken impression that it has sent an external processing request to the external service.

[0068] The check processing device 300 executes a request matching process 322 to match an external processing request transferred from the current system 600 with an external processing request whose destination has been changed from the new system 700. Then, a request comparison process 323 is executed for the matched request pair. This makes it possible to determine whether the new system 700 is normal or abnormal until it processes the processing request from the processing request source 800 and issues an external processing request to the external service 500.

[0069] The external service 500 performs processing in accordance with the external processing request from the current system 501 and transmits an external processing response to the current system 502 .

[0070] The request control device 200-1 (current system mode) deployed on the current system side acquires the external processing response addressed to the current system 600, and executes the request duplication process 221. As a result, two copies of the external processing response addressed to the current system 600 are created, and the external processing response is amplified to three. These are one for sending to the current system, one for sending to the new system, and one for storage in the check processing device. Note that the number of copies of the external processing response may be one, one for sending to the current system and one for sending to the new system, in which case the response is duplicated before being sent to the new system by the check processing device 300, and stored in the check processing device 300. If not necessary depending on the test contents or the method of matching requests, duplication for storage in the check processing device may not be made.

[0071] Next, the request control device 200-1 (current system mode) deployed on the current system side executes a trace information assignment process 222 for the duplicated request. This process checks the trace identifier. If the trace identifier has disappeared from the external service response, the same identifier is reassigned. Also, one of the three duplicated requests is rewritten with a trace identifier for the new system.

[0072] Then, one of the external processing responses with the trace identifier for the current system added is sent to the current system 600. The remaining two requests are sent to the check processing device 300, and the request with the trace identifier for the current system is temporarily stored for storage in the check processing device. The request with the trace identifier for the new system is sent to the new system 700 in accordance with the timing control of the transfer timing control process 321.

[0073] The request control device 200-2 (new system mode) installed on the new system side acquires the external processing response addressed to the new system 700, executes the request duplication process 221, and then transmits the response to the new system 700. As a result, even though the external processing request from the new system has not been transmitted to the external service, it is recognized as if the external processing request had been transmitted to the external service and the response had been received, making it possible to continue processing.

[0074] The current system 600 and the new system 700 execute processing within each system according to the contents of the external processing response (603, 703).

[0075] When an information system cooperates with multiple external services, or cooperates with one or more external services multiple times to perform processing, the current system 600 and the new system 700 repeat the process of sending an external processing request (602, 702) and then executing processing according to the contents of the external processing response (603, 703).

[0076] A processing response to be sent to the processing request source 800 is created based on the final external processing response and the result of the processing, and is then sent (604, 704).

[0077] The processing response of the current system is acquired by the request control device 200-1 (current system mode) arranged on the current system side, and executes the request transfer process 224. As a result, two requests are created: a request to be sent to the processing request source 800 to make a processing response, and a request to be sent to the check processing device 300 for request comparison, and are sent to each of them.

[0078] On the other hand, the processing response of the new system is acquired by the request control device 200-2 (new system mode) arranged on the new system side, and the destination change process 223 is executed to rewrite it to the check processing device. This prevents the new system from receiving multiple processing responses to the processing request source 800 under the mistaken impression that it has sent a processing response to the processing request source 800.

[0079] Details of the processing by the request duplication processing unit 221, trace information assignment processing unit 222, destination change processing unit 223, and request transfer processing unit 224 of the request control device 200, and the transfer timing control processing unit 321, request matching processing unit 322, request comparison processing unit 323, and system status monitoring processing unit 324 of the check processing device 300 will be described later.

[0080] <Description of the processing of each processing unit> 7 shows an example of processing by the request duplication processing unit 221 performed by the request control device 200. The following processing is executed when the request processing device 200 acquires a processing request or an external processing response, and a duplicate thereof.

[0081] First, in step 2211, the request control device 200 receives a request addressed to the system.

[0082] Next, in step 2212, it is confirmed whether or not a test is currently in progress. If a test is in progress, the process proceeds to step 2213, and if a test is not in progress, the process proceeds to step 2216. Whether or not a test is in progress is determined by the processing of the system status monitoring processing unit shown in FIG. 14, and is distributed to the request control device 200, and the request control device 200 has this information in its memory or storage device 220.

[0083] In step 2213, it is confirmed whether the request control device 200 is in the current system mode (deployed on the current system side) or not (new system mode: deployed on the new system side). If it is in the current system mode, proceed to step 2214, and if it is not in the current system mode, proceed to step 2216. As described above, whether the request control device 200 is in the current system mode or the new system mode is determined before the deployment of the request control device 200 by the test status control device 400 described later, which mode is managed and delivered to the request control device 200, and the request control device 200 has the information in its memory or storage device 220.

[0084] In step 2214, two copies of the request information destined for the system received in step 2211 are created.

[0085] Next, in step 2215, a total of three requests are sent to the trace information addition processing unit 222, and the process ends.

[0086] In step 2216, if the system is not undergoing testing, no duplication is required, and even if the system is in new system mode, no duplication of the request to be sent to the new system is required. Therefore, the system-destined request information received in step 2211 is sent to the system as is without modification, and processing ends.

[0087] 8 shows an example of processing by the trace information adding unit 222 performed by the request control device 200. The following processing is executed when the result of the processing by the request duplication unit 221 is received.

[0088] First, in step 2221, it is confirmed whether the request has a trace identifier. If it does, the process proceeds to step 2224; if it does not, the process proceeds to step 2222.

[0089] In step 2222, it is confirmed whether the request is a response to an external processing request. For example, this can be determined from the TCP / IP sequence number, acknowledgment number, source IP address, destination IP address, etc. If it is a response to an external processing request, the process proceeds to step 2224, and if it is not a response to an external processing request, the process proceeds to step 2223.

[0090] In step 2223, if the request reaches this point, it can be assumed that it is a new processing request from the processing request source 800, so two new trace identifiers are issued and the pair ID 2251, current system trace identifier 2252, and new system trace identifier 2253 are registered in the trace information management table 225.

[0091] In step 2224, in accordance with the trace information management table 225, a trace identifier is assigned to a request that does not have a trace identifier so that two of the three requests have the current system trace identifier 2252 and the remaining one has the new system trace identifier 2253. Even if a request does have a trace identifier, the trace identifier is rewritten as necessary to achieve the ratio described above.

[0092] Finally, in step 2225 , one of the requests having the current system trace identifier 2252 is sent to the current system, and the other two requests, the request having the current system trace identifier 2252 and the request having the new system trace identifier 2253 , are sent to the check processing unit 300 .

[0093] 9 shows an example of the process of the transfer timing control processing unit 321 performed by the check processing device 300. The following process is executed when the check processing device 300 receives a request addressed to the new system from the request control device 200 in the current system mode.

[0094] First, in step 3211, a copy of a request to the current system, to which a new system trace identifier has been assigned, is received from the request control device 200 in the current system mode.

[0095] Next, in step 3212, it is confirmed whether the request received in step 3211 is the initial request that is the starting point of the process, in other words, whether it is a new processing request from the processing request source 800. If it is the initial request, the process proceeds to step 3215, and if it is not the initial request, the process proceeds to step 3213.

[0096] In step 3213, the check processing device 300 checks whether the corresponding external processing request has been received from the new system. If it reaches this point, the request received in step 3211 is an external processing response from the external service 500, so by executing this step, the new system 700 can send the corresponding external processing request and confirm that the external processing response is in a state in which it can be accepted before sending the request.

[0097] Which request received by the check processing device 300 corresponds to the external processing request of the request received in step 3211 can be determined from the trace identifier information, the TCP / IP sequence number, the acknowledgement number, the source IP address, the destination IP address, etc. If the result of the check shows that the request has already been received, the process proceeds to step 3215, and if not, the process proceeds to step 3214 and waits for an arbitrary period of time, after which step 3213 is executed again.

[0098] In step 3215, the request received in step 3211 is processed so that the new system recognizes it as if it had received a new processing request directly from the processing request source 800, or as if the new system had sent an external processing request to the external service 500 and received a response thereto.

[0099] For example, the TCP / IP sequence number, acknowledgment number, source IP address, destination IP address, and other request-specific values ​​are rewritten. At this time, the system correspondence management table 226 is used as necessary to perform processing while checking the information on the current system destination 2261 and the corresponding new system destination 2262 given to the request received in step 3211. Finally, in step 3216, the request is sent to the new system.

[0100] In this way, the check processing device 300 controls the timing of request transfer, taking into consideration the difference in processing speed between the current system 600 and the new system 700. For example, even if the new system 700 is slower in processing than the current system 600, it is possible to transmit a response to a request to the external service 500 to the new system 700 after the new system 700 is ready to accept the response. This reduces the risk of test failure.

[0101] In addition, even if the current system 600 is slower in processing than the new system 700 and the new system 700 does not receive a response to a request to the external service 500 in time and so resends the request, the duplicate request is ignored. This reduces the risk of test failure.

[0102] 10 shows an example of the processing of the destination change processing unit 223 performed by the request control device 200. The following processing is executed when the request control device 200 in the new system mode acquires a request addressed to the processing request source 800 or the external service 500 from the new system.

[0103] First, in step 2231, a request addressed to the process request source 800 or external service 500 is obtained from the new system. Next, in step 2232 , the request is redirected to be sent to the check processor 300 . Finally, in step 2233 the request is sent to the check processor 300 .

[0104] At this time, if the original destination information is necessary depending on the test contents or the request matching method, the information before the destination is rewritten is also sent. Also, the packet including the request may be serialized and sent as a whole.

[0105] 11 shows an example of processing of the request transfer processing unit 224 performed by the request control device 200. The following processing is executed when the request control device 200 in the current system mode receives a request addressed to the processing request source 800 or the external service 500 from the current system 600.

[0106] First, in step 2241 , a request addressed to the process request source 800 or the external service 500 is obtained from the current system 600 . Next, in step 2242, the request is duplicated. Finally, one of the requests is sent as is to the original destination, that is, the process request source 800 or the external service 500 , and the other is transferred to the check processing unit 300 .

[0107] 12 shows an example of processing of the request association processing unit 322 performed by the check processing device 300. The following processing is executed when the check processing unit 300 receives a transfer of a request addressed to the processing request source 800 or the external service 500 from the current system 600 or the new system 700.

[0108] First, in step 3221 , a transfer of a request addressed to the process request source 800 or the external service 500 is received from the current system 600 or the new system 700 .

[0109] Next, in step 3222, the trace identifier given to the request is confirmed, and the trace information management table 225 is referenced to obtain the paired trace identifier (the current system trace identifier 2252 or the new system trace identifier 2253).

[0110] Next, in step 3223, it is confirmed whether a request paired with the request received in step 3221 has been received, based on information on the paired trace identifier acquired in step 3222, and information such as the TCP / IP sequence number of each request packet, the acknowledgement number, the source IP address, and the destination IP address. If the confirmation result shows that the request has been received, the process proceeds to step 3225, and if not, the process proceeds to step 3224 to wait for an arbitrary period of time, and then step 3223 is executed again.

[0111] Finally, the pair of requests is passed to the request comparison processor 323 as a pair of requests.

[0112] 13 shows an example of the process of the request comparison processing unit 323 performed by the check processing device 300. The following process is executed when the result of the request association process 322 is received.

[0113] First, in step 3231, a pair of requests is received as a result of the request matching process 322.

[0114] Next, in step 3232, it is confirmed whether the request contents are the same. If they are the same, the process proceeds to step 3235;

[0115] In step 3233, the comparison condition management database 328 of the check processing device 300 is accessed, and the stored comparison condition information 3281 is referenced to confirm whether there are additional comparison conditions. If there are additional comparison conditions, the process proceeds to step 3234; if not, the process proceeds to step 3236.

[0116] In step 3234, it is confirmed whether the request content matches the additional comparison condition. If it matches, the process proceeds to step 3235, and if it does not match, the process proceeds to step 3236.

[0117] In step 3235, as a result of the request comparison, it is deemed that the processing of the new system 700 was normal, and the current system request content 3272, the new system request content 3263, and the result 3274 are written as "normal" in the comparison result management table 327.

[0118] In step 3235, it is determined that the request comparison results indicate an abnormality in the processing of new system 700, and current system request content 3272, new system request content 3263, and result 3274 are written as "abnormal" in comparison result management table 327.

[0119] Finally, the results are saved in step 3237, and the process is terminated. The contents of the comparison result management table 327 are displayed on a test result display screen 440 provided by a test status control device 400 (described later) after the test is completed, and can also be confirmed by viewing the contents saved in the check processing device 300 in any file format during and after the test on the terminal 910 of the user 900, or by outputting the contents to the standard output of the terminal 910 of the user 900.

[0120] 14 shows an example of processing of the system state monitoring processing unit 324 performed by the check processing device 300. The following processing is executed when the request control device 200 and the check processing device 300 are installed and a test of a new system is to be performed.

[0121] First, in step 3241, it is confirmed whether preparation of the new system 700 is complete. For example, it is possible to carry out a status check of the servers and storage systems used by the system, or to prepare and execute a network communication confirmation script. If the result of the check shows that preparation is complete, the process proceeds to step 3243, and if not, the process proceeds to step 3242 and waits for an arbitrary period of time, after which step 3241 is executed again.

[0122] Next, in step 3243, it is confirmed whether synchronization of the internal system states of the current system 600 and the new system 700 has been completed. For example, it is confirmed whether synchronization of the state of the cache held within the system, or the data stored in the storage if the system has a storage system, has been completed. If the result of the confirmation shows that preparation is complete, the process proceeds to step 3245, and if not, the process proceeds to step 3244, where it waits for an arbitrary period of time, and then step 3243 is executed again.

[0123] Finally, in step 3245 , a test start command is sent to each processing unit in the check processing device 300 and to the request control device 200 .

[0124] The above processing has been described for the case in which the request control device 200 in the current system mode creates copies of two requests in step 2214 of the request duplication processing unit 221, and assigns trace identifiers to all three requests and their copies in step 2223 of the trace information assignment processing unit 222.

[0125] However, the number of copies of the request created in step 2214 of the request copy processing unit 221 may be one for sending to the current system and one for sending to the new system. In that case, the request is copied before being sent to the new system in the check processing device 300 and stored in the check processing device 300. Also, if it is not necessary depending on the test contents or the method of associating requests, it is not necessary to make a copy for storage in the check processing device.

[0126] Also, the timing for performing the process of assigning a trace identifier for the new system does not have to be step 2223 of the trace information assigning processing unit 222. In that case, for example, if the confirmation in step 2213 is No in the process of the request duplication processing unit 221 performed by the request control device 200 deployed on the new system side before the request is transmitted to the new system 700, that is, if the request control device 200 is in the new system mode (deployed on the new system side) during testing, the identifier for the new system is assigned in step 2216 or immediately before that. Another possible method is for the check processing device 300 to assign a trace identifier in the request processing process performed in step 3215 of the transfer timing control processing unit 321. EXAMPLES

[0127] In the first embodiment, an example was described in which a request control device 200 in new system mode deployed in a new system 700 sends requests to a check processing device 300 by processing of a destination change processing unit 223 for all requests sent from the new system to a processing request source 800 or an external service 500.

[0128] However, depending on the contents and destination of the request, there are cases where the request may be sent as is to the external service 500. For example, a request such as an HTTP Get method that acquires data from the external service 500 may be sent because it does not update the state of the external service 500. On the other hand, a request such as an HTTP Post method that updates data in the external service 500 should not be sent because there is a risk of updating the state of the external service 500 twice.

[0129] 15 shows an example of the processing of the destination change processing unit 223, which has the function of determining whether a request addressed to the processing request source 800 or the external service 500 by the new system 700 should be sent to the outside as is, or sent to the check processing device 300 as in the first embodiment, taking into account the content and destination of the request. The following processing is executed when the request control device 200 in the new system mode receives a request addressed to the processing request source 800 or the external service 500 from the new system.

[0130] First, in step 22311 , a request addressed to the process request source 800 or external service 500 is obtained from the new system 600 .

[0131] Next, in step 22312, the request contents and destination are referenced to confirm whether or not the request will have an impact on the outside. If the request is not one that will have an impact, the process proceeds to step 22313, and if the request is one that will have an impact, the process proceeds to step 22315.

[0132] In step 22313, the request is copied for the request comparison process 323 in the check processing device 300.

[0133] Next, in step 22314, one request is sent as is, and the other request is transferred to the check processing device 300. Note that if the test policy dictates that the request comparison process 323 is unnecessary for requests that can be sent as is without affecting the outside world, the request may be sent as is without performing the process in step 22313.

[0134] Step 22315 redirects the request to be sent to the check processor 300 .

[0135] Finally, in step 223316, the request is sent to the check processing device 300. At this time, if the original destination information is necessary depending on the test contents and the request matching method, the information before the destination is rewritten is also sent. Also, the packet including the request may be serialized and sent as a whole. This reduces the load on the request control device 200 and the check processing device 300. EXAMPLES

[0136] In the first and third embodiments, an example was described in which the test support framework 10 deploys the request control device 200 and the check processing device 300 only during testing, and does not deploy the request control device 200 and the check processing device 300 during non-testing, and determines in advance which request control device 200 is the current system or the new system, fixes the state of the request control device 200 to the current system mode or the new system mode, and then deploys it, and the check processing device 300 shares this information.

[0137] However, deploying the request control device 200 and the check processing device 300 only during testing and withdrawing them during non-testing periods results in high operational costs. Also, if it is determined in advance which request control device 200 is the current system or the new system, and the state of the request control device 200 is fixed to the current system mode or the new system mode before deployment, the request control device 200 must be reconfigured in the next test after the new system is put into production operation after the test is completed.

[0138] To improve this, we will introduce a new test status control device 400 to manage the test status (testing / not testing) and the system role (current system / new system), and control the request control device 200 and check processing device 300 accordingly.We will also describe an example in which a GUI screen is provided for a user 900 of the test support framework 10 (the present invention) to manage the test status, thereby reducing the operational load.

[0139] FIG. 16 is a block diagram showing an example of the programs, processes, and data stored in the memory or storage device 420 of the test status control device 400. As shown in FIG.

[0140] The memory or storage device 420 of the test status control device 400 has a system status monitoring processor 421 , a GUI display processor 422 , and a system correspondence management table 423 .

[0141] The system state monitoring processor 421 has a function equivalent to the processing of the system state monitoring processor 324 performed by the check processor 300. Also, by referring to a system correspondence management table 423, it commands the request controller 200 to switch between the current system mode and the new system mode.

[0142] The GUI display processing unit 422 may operate in a client program 921 on the memory or storage device of the user's 900 terminal 910, such as Javascript, or may operate using a client GUI other than the client program 921 on the terminal 910, such as a dedicated application.

[0143] The system correspondence management table 423 may exist in the memory or storage device 420 of the test status control device 400, or may exist in the memory or storage device of one or more independent, dedicated or shared servers connected to a network separate from the memory or storage device 420 of the test status control device 400.

[0144] The system correspondence management table 423 has the same information as the system correspondence management table 226 in the memory or storage device 220 of the request control device 200 and the system correspondence management table 326 in the memory or storage device 320 of the check processing device 300. If any change is made to either table, the change is transmitted and synchronized by communication between the request control device 200, the check processing device 300, and the test status control device 400.

[0145] In addition, one or more of the memory or storage device 220 of the request control device 200, the memory or storage device 320 of the check processing device 300, or the memory or storage device 420 of the test status control device 400 may have a system correspondence management table 226, 326, or 423, and necessary information may be exchanged by communication between the request control device 200 and the check processing device 300 and between the test status control device 400.

[0146] The test status control device 400 controls the request control device 200 and the check processing device 300 based on at least one of mode information indicating whether a test is in progress or not and management information indicating the roles of the current system 600 and the new system 700. The test status control device 400 may also have a display unit that displays at least one of the mode information and the management information.

[0147] 17A and 17B are diagrams showing an example of a GUI provided by the test status control device 400. FIG.

[0148] The test management screen 430 is an example of a GUI screen for allowing a user 900 of the test support framework 10 (the present invention) to manage the test status.

[0149] The user 900 switches the test status (testing / not testing) using the test status check box 431 displayed on the test management screen 430. Note that the switching may be performed in a different manner, such as by operating a toggle switch, instead of using a check box.

[0150] The user 900 also inputs destination information 432-1 of the current system and destination information 432-2 of the new system into the environment information input window 432. Note that information may be input not only manually into the input window, but also in other forms such as uploading files. Finally, the user 900 presses the update button 433 to switch the test status.

[0151] The test result display screen 440 is an example of a GUI screen for allowing a user 900 of the test support framework 10 (the present invention) to check the test results.

[0152] A user 900 can refer to the current system at the time of testing in a current system display 441, the new system at the time of testing in a new system display 442, the test period in a test period display 443, and the test results in a test result display 444. In the test result display 444, information equivalent to the contents of the comparison result management table 327 can be viewed.

[0153] In the above embodiment, this is achieved by not sending requests from the new system under test to the outside. Furthermore, by duplicating the response to a request from the current system to an external service and inputting it as a response to the request from the new system, the internal processing of the system is continuously tested, and it can be considered that a test equivalent to that performed when a request is actually sent to an external service is performed.

[0154] According to the above embodiment, even when operating in cooperation with an external service, it is possible to realize real-time testing of a new system using actual data without affecting the external service. [Explanation of symbols]

[0155] 10 Test Support Framework 200 Request Control Device 300 Check processing device 400 Test Status Control Device 500 External Service 600 Current System 700 New System 800 Processing request origin 900 users

Claims

1. A test support system that performs real-time testing of a new system using actual requests input to a current system while linking with an external service, a first request control device disposed relative to the current system; a second request control device disposed relative to the new system; a check processing device connected to the first request control device and the second request control device; The first request control device includes: Sending a first request to the external service for processing the current system; Duplicating and transmitting the processing request to the new system; Duplicating the first request and sending it to the check processing device; Sending a response from the external service to the first request to the current system; The second request control device includes: sending a second request for the replicated processing request to the check processing device; The check processing device includes: A test support system characterized by comparing the duplicated first request with the second request to determine whether the new system is normal or abnormal, and if it is determined that the new system is normal, duplicating the response from the external service and sending it to the new system as a response to the second request.

2. The second request control device includes:

2. A test support system according to claim 1, wherein the new system changes the destination of the second request that it intends to send to the external service and sends the second request to the check processing device.

3. The first request control device includes: assigning trace information having different identifiers to the current system and the new system; The check processing device includes:

2. The test support system according to claim 1, wherein the first request and the second request are associated with each other by using the trace information.

4. The check processing device includes:

2. The test support system according to claim 1, further comprising: a control unit that controls a transfer timing of the first request, the second request, or the response based on a difference between a processing speed of the current system and a processing speed of the new system.

5. The check processing device includes:

5. A test support system according to claim 4, further comprising: a step of controlling the timing of the transfer so that, after the new system is in a state in which it can accept the response, the response is copied and transmitted to the new system.

6. The check processing device includes:

2. A test support system according to claim 1, wherein a timing for starting a test is controlled based on an internal state of the new system.

7. 2. The test support system according to claim 1, further comprising a test status control device that controls the first request control device, the second request control device and the check processing device based on at least one of mode information indicating whether a test is in progress or not and management information indicating the roles of the current system and the new system.

8. 8. The test support system according to claim 7, further comprising a display unit for displaying at least one of the mode information and the management information.

9. The current system is a first server for processing the processing request; The new system is 2. The test support system according to claim 1, further comprising a second server for processing the replicated processing requests.

10. The first request control device includes: Located inside or outside the current system, The second request control device includes:

2. A test support system according to claim 1, wherein the test support system is arranged inside or outside the new system.

Citation Information

Patent Citations

  • Transaction processing system and method, and program

    JP2005149043A

  • Verification device, verification method, and verification program

    JP2012195699A

  • Output comparison method for plural information systems

    JP2014026480A

  • Verification system and verification method

    JP2018055161A