DETAILED ACTION
This Final Office Action is in response to application number 17/623,851 filed on December 29th 2021. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Applicant’s amendment filed on 09/11/2025 is acknowledged
Claims 1,3,14 and 19 have been amended.
Claim Rejections - 35 USC § 103
The following is a quotation of pre-AIA 35 U.S.C. 103(a) which forms the basis for all obviousness rejections set forth in this Office action:
A patent may not be obtained though the invention is not identically disclosed or described as set forth in section 102 of this title, if the differences between the subject matter sought to be patented and the prior art are such that the subject matter as a whole would have been obvious at the time the invention was made to a person having ordinary skill in the art to which said subject matter pertains. Patentability shall not be negatived by the manner in which the invention was made.
Claims 1-6 and 8-20 are rejected under 35 U.S.C. 103(a) as being unpatentable over He et al. (CN 107608893-B translation used) in view of Frisken (WO 2009015122-A1) further in view of Broda et al. (US 20150222494 A1)
Regarding claim 1, He et al. disclose, an apparatus comprising: a processor (Page 3 Paragraph 5 discloses one or more processors); and a non-transitory computer readable medium on which is stored instructions that when executed by the processor, are to cause the processor to (Page 3 Paragraph 6 discloses instructions stored in memory to be executed by the processor): access a plurality of points, wherein each point of the plurality of points identifies a number of virtual users to be scheduled during a load test of a system under test and a time at which the number of virtual users is to be scheduled during the load test of the system under test (Page 2 paragraph 2 states “In other words, the pressure test is initiated according to the need of the user, simulating the real user number to operate the behavior of the of the tested system or software at a predetermined operating time. When the pressure test, usually setting user dynamic curve”. This indicates that the number of users to be applied/simulated to the system under test is obtained from the user dynamic curve. He page 2, paragraph 5 states, “The method comprises the following steps: Firstly, receiving the test parameter sent by any one client of a plurality of clients, the test parameter comprises a script parameter, User Curve Parameter and Execution Area Parameter”; This indicates that the server connected to the client receives and accesses the User Curve Parameter interpreted to be a position (data point (x,y)) on the user curve on the client device). and generate a load test schedule based on the curve (Page 2 Paragraph 5 disclose scheduling the load using the curve field to perform pressure testing).
He et al. fails to explicitly disclose curve fitting to the plurality of points to generate a curve based on the curve fitting;
However, in analogous art Frisken teaches, curve fitting to the plurality of points to generate a curve based on curve fitting (Page 10 Lines 8-15 discloses standard curve fitting given a set of digitized points);
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified He et al. to incorporate the teachings of Frisken, to generate the best fit curve to a set of data points in order to simulate realistic user behavior, to provide more actionable data and to reduce stress on the systems due to sudden spikes, the advantages of a best fit smooth curve.
He et al. and Frisken fail to explicitly disclose each virtual user of the number of virtual users comprises an application or process that executes one or more activities during the load test to simulate a real-world computation load on the system under test and wherein the one or more activities includes at least submitting requests to the application or process executing on the system under test, or imposing processing, memory or input/output load conditions on the system under test.
However, in analogous art Broda et al. teaches each virtual user of the number of virtual users comprises an application or process that executes one or more activities during the load test to simulate a real-world computation load on the system under test and wherein the one or more activities includes at least submitting requests to the application or process executing on the system under test, or imposing processing, memory or input/output load conditions on the system under test (Paragraph 20 discloses “ In the context of the present disclosure, load servers (also referred to as test servers) are servers deployed and utilized primarily to generate a test load on a target website. That is, load servers play the test composition, generating a load on a target (customer) website and web applications.” Paragraph 24 discloses “ In one embodiment, a method, system, and computer program product is provided for allowing a user (customer) to dynamically change or adjust virtual user distributions of a load test on a target website or web application during test run-time, i.e., when the computer code or software program implementing the load test is actually running or executing.” Paragraph 25 discloses “User groups may correspond to portions or collections of different virtual users that are performing different actions at different times with respect to the target website or web application. These user groups or user distributions may be adjusted dynamically while the load test is running by sending command information out to the load servers in real-time instructing the load servers to adjust change the current ramp plan.” Additionally Paragraph 51).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified He et al. and Frisken to incorporate the teachings of Broda et al., to implement virtual users comprising an application or process that executes one or more activities during the load test to simulate a real-world computation load on the system under test and wherein the one or more activities includes at least submitting requests to the application or process executing on the system under test, or imposing processing, memory or input/output load conditions on the system under test, in order to simulate real world loading of the system under test.
Regarding claim 2, He et al. disclose, the apparatus of claim 1, wherein the instructions are further to cause the processor to: conduct a load test based on the load test schedule (Page 2 Paragraph 5 discloses the scheduling of the load machine according to the user curve to perform the corresponding pressure test).
Regarding claim 3, He et al. disclose, the apparatus of claim 2, wherein to conduct the load test, the instructions are further to cause the processor to: execute a virtual user according to the load test schedule using a coroutine in order to reduce a number of system resources used in executing the real-world computational load conditions (Page 3 Paragraph 1 discloses the user number the equivalent of the number of virtual users to be scheduled).
Regarding claim 4, He et al., disclose the apparatus according to claim 2. Conducting a load test based on the user curve field and execution time, the equivalent of data points.
He et al. fails to explicitly teach the determination of a plurality of curve fitted points.
However, in an analogous art, Frisken discloses, wherein to determine a plurality of curve-fitted points based on the curve (Page 10 Lines 16-27, Fig. 4A and Fig. 4B discloses the plurality of points on the fitted curve 300).
Therefore, it would have been obvious to one of ordinary skill in the art before the
effective filling date of the claimed invention to have modified He et al. to further incorporate the teachings of Frisken to use the data points of the curve fitted points to generate the test load, in order to simulate realistic user behavior, to provide more actionable data and to reduce stress on the systems due to sudden spikes, the advantages of a best fit curve.
Regarding claim 5, He et al. disclose, the apparatus of claim 4, wherein to determine the plurality of points, the instructions are further to cause the processor to: access an indication of a number of instances that virtual users are to be scheduled during the load test, wherein a number of the plurality of curve- fitted points is determined based on the number of instances (Page 9 Paragraph 7-8 and Page 10 Paragraph 1 discloses the user curve field value of 4000, the number of climbing periods, this is equivalent to the number of instances that users are to be schedule in the climbing phase of the curve).
Regarding claim 6, He et al. disclose, the apparatus of claim 4, wherein to generate the load test schedule, the instructions are further to cause the processor to: determine a first number of virtual users to be scheduled associated with a first curve-fitted point of the plurality of curve-fitted points (Page 9 Paragraph 7-8 and Page 10 Paragraph 1 discloses the first curve field values of 4000 users and 4 minutes equivalent to the first phase of the curve); determine a second number of virtual users to be scheduled associated with a second curve-fitted point of the plurality of curve-fitted points, the second curve-fitted point adjacent to the first curve-fitted point in the plurality of curve-fitted points (Page 9 Paragraph 7-8 and Page 10 Paragraph 1 discloses the second curve field value of 4000 users and 7 minutes, equivalent to the second phase of the curve); and determine whether to add or remove a virtual user in an interval between the first curve-fitted point and the second curve-fitted point based on the first number and the second number (Page 10 Paragraph 4 discloses the capability to change the user curve of the pressure test in real time).
Regarding claim 8, He et al. disclose, the apparatus of claim 1.
He et al. fail to explicitly teach the graphical user interface (GUI) comprising a graph, wherein the plurality of points is received via user input to the graph.
However, in an analogous art Broda et al. disclose, a graphical user interface (GUI) comprising a graph, wherein the plurality of points is received via user input to the graph (Paragraph 22,24 disclose the graphical user interface (GUI) used to display the virtual user distribution graphically).
Therefore, it would have been obvious to one of ordinary skill in the art before the
effective filling date of the claimed invention to have modified He et al. to further incorporate the teachings of Broda et al. to implement a graphical user interface (GUI) whereby inputs ae received through modification or adjustments of the graph, in order to facilitate immediate visual feedback and provide flexibility with ease of use when setting or adjusting the virtual user distribution over time graphically on the display for load testing.
Regarding claim 9, Broda et al. disclose, the apparatus of claim 8, wherein a first axis on the graph represents the number of virtual users to be scheduled, and the second axis represents the time at which the number of virtual users is to be scheduled (FIG. 3 discloses a graph with the number of virtual uses to be scheduled on the Y axis and the time at which the number of virtual users are to be scheduled on the X axis).
Regarding claim 10, Broda et al. disclose the apparatus of claim 8, wherein the instructions are further to cause the processor to: display the curve on the graph (Paragraph 22,24 disclose the graphical user interface (GUI) used to display the virtual user distribution graphically).
Regarding claim 11, Broda et al. disclose, the apparatus of claim 8, wherein the instructions are further to cause the processor to: conduct a load test based on the load test schedule (Please see claim 1); determine a current number of virtual users during the load test; and generate, in the graph, an indication of the number of virtual users currently in the load test (Paragraph 0026, 0027 and FIG.1 disclose and depict the graphical user interface(GUI) displaying the present moment of the load test and the current number of virtual users).
Regarding claim 12, the apparatus of claim 8, wherein the instructions are further to cause the processor to: conduct a load test based on the load test schedule (Please see claim 1); access a modification to the plurality of points; refit the curve based on the modification to the plurality of points; and modify the load test schedule based on the refit curve (He et al. Page 4 Paragraph 5 disclose the ability to adjust the trend of the curve or modify the curve data).
Regarding claim 13, Frisken discloses, the apparatus of claim 1, wherein to generate the curve, the instructions are further to cause the processor to: access a smoothing factor; and apply the smoothing factor to the curve fitting function (Page 12 Lines 7-10 discloses and constrains fitted curves to have continuity to ensure that the approximation is smooth).
Regarding clam 14, He et al. disclose, a method comprising: generating, by a processor, a graph of a number of virtual users to be scheduled in a load test of a system under test over time; accessing, by the processor, a plurality of points, each point of the plurality of points representing a respective number of virtual users to be scheduled at a respective time point in the load test of the system under test; generating, by the processor, a curve based on the plurality of points (Page 10 Lines 8-15 discloses standard curve fitting given a set of digitized points);.
He et al. fail to explicitly teach accessing, by the processor, telemetry information indicating a number of active virtual users that exist in the load test at a given time; and displaying, by the processor, the telemetry information in association with the curve to show the number of active virtual users at the given time in relation to the curve.
However, in analogous art, Broda-1 et al. disclose, accessing, by the processor, telemetry information indicating a number of active virtual users that exist in the load test at a given time (Paragraph 0026,0027 and FIG.1); and displaying, by the processor, the telemetry information in association with the curve to show the number of active virtual users at the given time in relation to the curve (Paragraph 0026, 0027 and FIG.1 disclose and depict GUI displaying the virtual user ramp history, future changes to the present virtual ramp profile and the present moment of the load test).
Therefore, it would have been obvious to one of ordinary skill in the art before the
effective filling date of the claimed invention to have modified He et al. and Frisken to further incorporate the teachings of Broda et al. to access and display the number of active virtual user that exist in the load test at a given time, in order to modify the current or future distribution of the virtual users to generate relevant and valuable load test results based on real time feedback.
He et al. fails to explicitly disclose each virtual user of the number of virtual users comprises an application or process that executes one or more activities during the load test to simulate a real-world computation load on the system under test and wherein the one or more activities includes at least submitting requests to the application or process executing on the system under test, or imposing processing, memory or input/output load conditions on the system under test.
However, in analogous art Broda et al. teaches each virtual user of the number of virtual users comprises an application or process that executes one or more activities during the load test to simulate a real-world computation load on the system under test and wherein the one or more activities includes at least submitting requests to the application or process executing on the system under test, or imposing processing, memory or input/output load conditions on the system under test (Paragraph 15 discloses “ In the context of the present disclosure, load servers (also referred to as test servers) are servers deployed and utilized primarily to generate a test load on a target website. That is, load servers play the test composition, generating a load on a target (customer) website and web applications.” Paragraph 19 discloses “ In one embodiment, a method, system, and computer program product is provided for allowing a user (customer) to dynamically change or adjust virtual user distributions of a load test on a target website or web application during test run-time, i.e., when the computer code or software program implementing the load test is actually running or executing.” Paragraph 20 discloses “User groups may correspond to portions or collections of different virtual users that are performing different actions at different times with respect to the target website or web application. These user groups or user distributions may be adjusted dynamically while the load test is running by sending command information out to the load servers in real-time instructing the load servers to adjust change the current ramp plan.” Additionally Paragraph 46).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified He et al. to incorporate the teachings of Broda et al., to implement virtual users comprising an application or process that executes one or more activities during the load test to simulate a real-world computation load on the system under test and wherein the one or more activities includes at least submitting requests to the application or process executing on the system under test, or imposing processing, memory or input/output load conditions on the system under test, in order to simulate real world loading of the system under test.
Regarding claim 15, the method of claim 14, wherein accessing the plurality of points comprises: accessing a user input to the graph that specifies the plurality of points (The limitations of this claim are rejected on the same ground of rejection set forth in claim 1).
Regarding claim 16, the method of claim 15, further comprising: forwarding the plurality of points to a virtual user scheduler that generates a curve to fit the plurality of points, wherein the curve is used to generate a load test schedule that schedules virtual users (The limitations of this claim are rejected on the same grounds of rejection set forth in claim 1).
Regarding claim 17, He et al. disclose the method of claim 14, wherein accessing the plurality of points comprises: accessing a predefined set of points (Page 2 Paragraph 2 discloses the term user curve parameter corresponding to the user curve field, this along with the execution time, Page 3 Paragraph 1, is the equivalent characterization of the data points, the number of virtual users to be schedule during a load test)
Regarding claim 18, He et al. disclose, the method of claim 17, further comprising: accessing a user input that modifies the predefined set of points; and modifying the plurality of points based on the user input (Page 4 Paragraph 5 disclose the ability to adjust the trend of the curve or modify the curve data).
Regarding claim 19, a non-transitory computer readable medium on which is stored machine readable instructions that when executed by a processor, cause the processor to: import a plurality of predefined points, wherein each point of the plurality of predefined points identifies a number of virtual users to be scheduled during a load test of a system under test and a time at which the number of virtual users is to be scheduled during the load test of the system under test; modify the plurality of predefined points based on a user input (He page 10 paragraph 6 discloses “Receiving module 410 adapted to receive a plurality of client terminal sent by any one client test parameter, the test parameter comprises a script parameter, user curve parameter and execution area parameter. Wherein the client is adapted to receive a selection of a test parameter of the pressure test”. This indicates that the server receives a plurality of data points (positions or points on the user curve) from the client devices. Whereby the data points represent the number of virtual users to be scheduled); apply curve fitting to the modified plurality of predefined points; generate a curve based on the curve fitting; and generate a load test schedule based on the curve; Wherein each virtual user of the number of virtual users comprises an application or process that executes one or more activities during the load test to simulate a real-world computation load on the system under test and wherein the one or more activities includes at least submitting requests to the application or process executing on the system under test, or imposing processing, memory or input/output load conditions on the system under test. (The limitations of this claim are rejected on the same grounds of rejection set forth in claim 1).
Regarding claim 20, the non-transitory computer readable medium of claim 19, wherein to modify the plurality of predefined points (He et al. Page 4 Paragraph 5 disclose the ability to adjust the trend of the curve or modify the curve data); the machine readable instructions, when executed, further cause the processor to: cause a load test to be conducted based on the load test schedule (The limitations of this claim are rejected on the same ground of rejection set forth in claim 2).
Claim 7 is rejected under 35 U.S.C. 103(a) as being unpatentable over He et al. (CN 107608893-B) in view of Frisken (WO 2009015122-A1) in view of Broda et al. (US (US 20150222494 A1) further in view of Okuda (JP 200774343-A)
Regarding claim 7, He et al. disclose, the apparatus of claim 1.
He et al. fails to explicitly teach the importing of a plurality of points from a previous load test.
However, in an analogous art, Okuda discloses, wherein to access the plurality of points, the instructions are further to cause the processor to: import the plurality of points from a previous load test (Page 2 Paragraph 7 discloses the previously used number of virtual users under certain conditions).
Therefore, it would have been obvious to one of ordinary skill in the art before the
effective filling date of the claimed invention to have modified He et al. and Frisken to further incorporate the teachings of Okuda to use the previously used number of virtual users to conduct a load test under certain error conditions, in order to fall back and capture the specific sequence of actions that caused the error conditions and to identify the root cause of the error condition or system deficiencies.
Response to Arguments
Applicant contends that neither He et al., Frisken or Broda et al. disclose the following amendments to claim 1 stated as “Wherein each virtual user of the number of virtual users comprises an application or process that executes one or more activities during the load test to simulate a real-world computation load on the system under test and wherein the one or more activities includes at least submitting requests to the application or process executing on the system under test, or imposing processing, memory or input/output load conditions on the system under test.” The examiner respectfully disagrees. Broda et al. discloses “Wherein each virtual user of the number of virtual users comprises an application or process that executes one or more activities during the load test to simulate a real-world computation load on the system under test and wherein the one or more activities includes at least submitting requests to the application or process executing on the system under test, or imposing processing, memory or input/output load conditions on the system under test (Paragraph 20 discloses “ In the context of the present disclosure, load servers (also referred to as test servers) are servers deployed and utilized primarily to generate a test load on a target website. That is, load servers play the test composition, generating a load on a target (customer) website and web applications.” Paragraph 24 discloses “ In one embodiment, a method, system, and computer program product is provided for allowing a user (customer) to dynamically change or adjust virtual user distributions of a load test on a target website or web application during test run-time, i.e., when the computer code or software program implementing the load test is actually running or executing.” Paragraph 25 discloses “User groups may correspond to portions or collections of different virtual users that are performing different actions at different times with respect to the target website or web application. These user groups or user distributions may be adjusted dynamically while the load test is running by sending command information out to the load servers in real-time instructing the load servers to adjust change the current ramp plan.” Additionally Paragraph 51).
Applicant has not noted any specific deficiencies in the cited passages relative to the amended claim limitations. Hence the cited prior art documents read on the limitations as noted above.
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Samuel Dilan Rutnam whose telephone number is 703-756-1374. The examiner can normally be reached between 8:30am-5:00pm Mon-Fri.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Sujoy Kundu can be reached on 571-272-8586.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR.
Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free).
/Samuel Dilan Rutnam/
Patent Examiner, Art Unit 2471
/SUJOY K KUNDU/Supervisory Patent Examiner, Art Unit 2471