Sign In to Follow Application
View All Documents & Correspondence

Load Analysis Of Applications

Abstract: Methods and systems for load analysis of applications are defined herein. In one implementation, initial load test data of an application is obtained. The initial load test data is indicative of load test results for a predetermined number of user devices (110) accessing the application. Based on the initial load test data, intermediate extrapolated results for a first threshold number of user devices are determined. Further, based on the intermediate extrapolated results, final extrapolated results for a second threshold number of user devices are computed using an S-curve technique. The final extrapolated results are indicative of performance of the application.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
05 May 2011
Publication Number
49/2012
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application
Patent Number
Legal Status
Grant Date
2020-08-28
Renewal Date

Applicants

TATA CONSULTANCY SERVICES LIMITED
NIRMAL BUILDING, 9TH FLOOR, NARIMAN POINT, MUMBAI-400021, MAHARASHTRA, INDIA

Inventors

1. DUTTAGUPTA, SUBHASRI
BUSINESS PORT, ROAD NO. 13, MIDC ANDHERI EAST, MUMBAI-400093, MAHARASHTRA, INDIA
2. NAMBIAR, MANOJ
BUSINESS PORT, ROAD NO. 13, MIDC ANDHERI EAST, MUMBAI-400 093, MAHARASHTRA, INDIA

Specification

FORM 2
THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENTS RULES, 2003
COMPLETE SPECIFICATION
(See section 10, rule 13)
1. Title of the invention:
LOAD ANALYSIS OF APPLICATIONS
2. Appticant(s)
NAME NATIONALITY I ADDRESS
TATA CONSULTANCY Nirmal Building, 9th Floor, Nariman Point,
Indian
SERVICES LIMITED Mumbai-400021, Maharashtra, India
3. Preamble to the description
COMPLETE SPECIFICATION
The following specification particularly describes the invention and the manner in which it
is to be performed.

TECHNICAL FIELD
The present subject matter relates, in general, to load analysis of the applications.
BACKGROUND
Typically applications, executed on computing systems, include multiple
components with multi-tiered architecture and are deployed in a distributed and complex environment. Further, the applications, usually, need to scale to a large number of concurrent users. In order to obtain a qualitative idea of how well an application functions in real world environment, i.e., before the application is deployed on the production server, it is desirable to perform load testing. Based on results of the load testing, the application is loaded on a production server. The results of the load testing are indicative of, maximum load level that the application will be able to handle (also called scalability), average response time, throughput and resource utilization under expected workload, etc.
Thus, in case the load testing results indicate that the application is not scalable or
averaged response time is greater than required response time under expected workload, the necessary changes may be made in the application before deploying it on the production server. The load testing provides for identification of certain basic issues, for example, upon adding a small number of users, the application is not performing at desired levels. In the absence of load testing, the resources consumed and costs incurred in correcting faults, that could have been identified, are high. However, the load testing of the applications faces challenges, such as fidelity of load testing results, high cost of commercial load testing tools, and accurately representing production like scenarios.

SUMMARY
This summary is provided to introduce concepts related to load testing of
applications which are further described below in the detailed description. This summary is not intended to identify essential features of the claimed subject matter nor is it intended for use in determining or limiting the scope of the claimed subject matter.
Method(s) and system(s) for load analysis of an application implemented on a
computing system by extrapolating load test results are described herein. In one implementation, initial load test data, indicative of the load test results for a predetermined number of user devices accessing the application, is obtained. Based on the initial load test data, load analysis results for a first threshold number of user devices are determined. Further, based on the intermediate extrapolated results, final extrapolated results for a second threshold number of user devices are computed. The final load test results are computed using an S-curve technique. Further, the final extrapolated results are indicative of performance of the application.
BRIEF DESCRIPTION OF THE DRAWINGS
The detailed description is provided with reference to the accompanying figures. In
the figures, the left-most digit(s) of a reference number identifies the figure in which the
reference number first appears. The same numbers are used throughout the drawings to reference
like features and components.
Fig. 1 illustrates an exemplary computing environment for load analysis of an
application, in accordance with an embodiment of the present subject matter.
Fig. 2 illustrates an exemplary plot indicating load analysis results obtained for a
sample application using the load analysis technique according to an embodiment of the present
subject matter.

Fig. 3 illustrates a method for generating load analysis results for an application,
according to an embodiment of the present subject matter.
DETAILED DESCRIPTION Systems and methods for load analysis of applications by extrapolation of initial load test results are described herein. The load on an application may be understood as number of user devices accessing the application concurrently. Based on the load analysis, load analysis results indicative of performance, in terms of scalability, throughput and/or response time of the application, are obtained. Further, time taken by the application to respond to a request sent by a user device may be understood as response time of the application. Further, the number of requests handled by the application per unit time may be understood as the throughput of the application.
Typically, before deploying an application on to a production server, load testing of the application is performed. Although, the load testing provides for reduction in resources, in terms of time and cost; however such a reduction is achieved only when the load testing is able to mimic production like scenarios. Further, mimicking the production like scenario, may add to the cost of the load testing, which in turn may defeat the purpose of applying the load testing. Often times, load analysis performed using conventional load analysis techniques may not be valid for the production like environment.
Certain conventional load analysis techniques involve subsequent analysis of the load tests results to extend the results from small loads to larger loads. However, such techniques often require careful analysis of each component of a computing system deploying the application, accurate representation of the analysis in a queuing model, and implementation of business function flow through the computing system. Further, in certain other load analysis

techniques often foad analysis model is built, which requires knowledge of exact deployment scenario and caters to only specific applications. In such load analysis techniques, in case the application behavior or deployment scenario changes, the load analysis model has to be rebuilt. Further, rebuilding the load analysis model every time is often time and resource consuming task.
According to an embodiment of the present subject matter, systems and methods for generation of load analysis of an application implemented on a computing system are described herein. In one implementation, initial load data is obtained. The initial load data includes actual load test results for a predetermined number of user devices. Based on the initial load data, a first set of load analysis results are selected. The first set of load analysis results include predefined number of load test results selected from the initial load data. Further, based on the first set of load analysis results, intermediate extrapolated results are obtained. In one implementation, the intermediate extrapolated results are obtained by extrapolating the first set of load analysis results. For example, linear regression technique may be used to extrapolate the first set of load test results.
Upon determining the intermediate extrapolated results, a second set of load analysis result is identified. The second set of load analysis results may be selected from the intermediate extrapolated results. In one implementation, final extrapolated results may be computed by extrapolating the second set of load analysis result. For example, S-curve technique may be used to extrapolate the second set of load analysis results to obtain the final extrapolated results. The final extrapolated results are indicative of the performance of the application, with respect to larger loads, which may be similar to a production like environment. The performance may be described in terms: of scalability, response time, and throughput of the application.

Accordingly, based on the final extrapolated results, the application may be deployed on the production server or necessary changes may be incorporated in the application before deploying the application on the production server.
Since, present load analysis technique does not require the knowledge of the application or the deployment infrastructure; it saves on time and resources. Further, the present load analysis technique only requires actual load testing results for a small number of user devices, which is used to determine application performance for a large number of user devices to appropriately mirror a production like environment. Additionally, in case the application is deployed in a new environment, the present technique only requires load testing results on the same environment to obtain initial load data and therefore does not require change in the underlying technique. Accordingly, the present technique may be applied to a variety of applications without involving any change.
The systems and methods, related to load analysis of an application by extrapolation of load test results, as described herein, can be implemented on a variety of computing systems, such as a server, a desktop computer, a notebook or a portable computer, a mainframe computer, a mobile computing device, and an entertainment device.
While aspects of described systems and methods for the load analysis of the application can be implemented in any number of different computing systems, environments, and/or configurations, the embodiments are described in the context of the following exemplary system(s).
EXEMPLARY SYSTEMS Fig. 1 illustrates an exemplary computing environment 100 for load analysis of applications, according to an embodiment of the present subject matter. In one implementation, a

load analysis system 105 may be coupled with user devices 110-1, 110-2...110-N, hereinafter referred to as user computing device(s) 110. Although, the load analysis system 105 has been illustrated associated with the user devices 110, it will be understood that the load analysis system 105 may be not be communicatively coupled to the user devices 110. In such a case, the load analysis system 105 may be provided with data pertaining to load test results corresponding to an application executed on the user devices 110, by a separate computing device. The load analysis system 105 may be coupled to the user devices 110 via a network 115, The network 115 may be a wireless network, wired network or a combination thereof. The network 115 can be implemented as one of the different types of networks, such as intranet, local area network (LAN), wide area network (WAN), the internet, and such. The network 115 may either be a dedicated network or a shared network, which represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP). Wireless Application Protocol (WAP), etc., to communicate with each other
The load analysis system 105 and the user computing devices 110 can be implemented using devices that include, but are not limited to, desktop computers, hand-held devices, multiprocessor systems, personal digital assistants (PDAs), laptops, network computers, cloud servers, minicomputers, mainframe computers, and the like. Although the load analysis system 105 is shown as a separate computing system, it will be understood that the load analysis system 105 can also be implemented in any of the user devices 110.
In one implementation, the-load analysis system 105 includes interface(s) 120, one or more processor(s) 125 and a memory 130 coupled to the processor(s) 125. The interface(s) 120 may include a variety of software and hardware interfaces, for example, interfaces for

peripheral device(s), such as a keyboard, a mouse, an external memory and a printer. Further, the interface(s) 120 may enable the load analysis system 105 to communicate with other devices, such as external computing devices and external databases.
The processor. 125 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the processor 125 is configured to fetch and execute computer-readable instructions and data stored in the memory 130.
The memory 130 may include any computer-readable medium known in the art including, for example, volatile memory such as static random access memory (SRAM) and dynamic random access memory (DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
The memory 130 includes modules 135 and data 140. The modules 135 include routines, programs, objects, components, data structures and the like, which perform particular tasks or implement particular abstract data types. The moduies 135 further include, for example, a first load analysis module 145, a second load analysis module 150, and other module(s) 155. The other module(s) 155 may include moduies that supplement applications on the load analysis system 105, for example, modules of an operating system. The data 140 serves as a repository for storing data that may be processed, received or generated by one or more of the modules 135. The data 140 includes, for example, initial load data 160, load analysis data 165, and other data 170. The other data 170 includes data corresponding to one or more of the other module(s) 155.

In operation, an application, for which load analysis is to be performed, is accessed
by a predetermined number of user devices 110. In one implementation, the predetermined
number of the user devices 110 is in a range of about 50 to about 400. Once the application is
accessed by the user devices 110 various load parameters are determined. Examples of load
parameters include, but are not limited to, throughput and response time. Considering that the
user devices 110 submit requests to and wait for responses from the application, the time taken
by the application to respond to a request may be understood as the response time of the
application. Further, the number of requests handled by the application per unit time may be
understood as the throughput of the application. In one implementation, the load parameters may
be determined by an externa! application server, such as, Apache Tomcat 6.0. In another
implementation, the application server may be internal to the load analysis system 105.
Based on the load parameters, load data with respect to the predetermined number
of the user devices 110 may be obtained and stored in the initial load data 160. The initial load
data 160 is indicative of performance of the application in terms of throughput and response time
for the predetermined number of the user devices 110. In one implementation, upon obtaining the
initial load data 160, the first load analysis module 145 is configured to determine intermediate
extrapolated results based on the initial load data 160. The intermediate extrapolated results may
be determined by extrapolating the initial load data 160 to a first threshold number of user
devices using a linear regression technique.
The first threshold number of user devices corresponds to a threshold throughput of the application, i.e., the number of user devices 110 for which the threshold throughput for the application is achieved. The threshold throughput indicates throughput corresponding to load or the number of user devices 110 beyond which the throughput of the application has declining

rate of growth. In one implementation, the threshold throughput is a certain percentage of the threshold throughput, for example, 50% of the maximum throughput of the application. In one implementation, the first load analysis module 145 determines maximum throughput for the application. In one example, the maximum throughput is determined based on queuing theory and service demands associated with various hardware resources. In said example, it may be considered that there is no software bottlenecks, and accordingly hardware resources such as processor, disk, network, and memory are identified as the bottlenecks. Though the throughput of an application may be limited by resource usage of the processor, the disk and the network, it is assumed that the available maximum memory limits the concurrent usage of these three hardware resources and thus, limits the maximum throughput. Therefore, usage of memory is captured differently than the other three hardware resources. The usage of the various hardware resources may be derived from service demands of these hardware resources. In order to compute a service demand, a sample application script is run in single user mode over a fixed, duration. Further, to normalize the difference among individual runs of the sample application script, the sample application script is executed for a number of iterations and then the usage statistics is gathered over all these runs for loading a single page. For example, the sample application script for a telecom application is run over / number of iterations, then processor, disk, and network busy time in seconds may be obtained. Further, assuming that the sample application script deals with loading P pages, the service demand can be computed using the following formula:

where Sresource is service demand for a resource, / is the number of iterations and P is the number of pages the sample application script accesses through uniform resource locators (urls). In order
10

to obtain service demand for a multiple core processor, service demand is further divided by the . number of cores and the equation (1) may be modified as:

Further, if the maximum service demand, i.e., the service demand of that hardware resource, which has maximum service demand, is denoted by SDmax, and Abuser devices 110 are used for actual load testing with think time Z, then the maximum throughput may be obtained using following formula:

where Xmax gives the maximum throughput that an application can achieve for N users and SumD is the sum of service demand of all the resources. Further, the think time Z, may be understood as the time that a user spends outside of waiting for a response, for instance, time spent by a user in entering details of a requestor in reviewing the responses. The first term limits Xmax at lighter load and second term limits Xmax at higher load. In one implementation, small load may understood as a load when 500 or less user devices access the application and large load may understood as a load when 2000 or more user devices access the application. However, it will be understood the computation of maximum throughput using equation 1 and equation 2, i.e., using service demands based on queuing theory is only for the purpose of explanation and other techniques for estimation of the maximum throughput, which could be based on various benchmarks for specific hardware resources may also be used.
Upon computation of the maximum throughput for the application, the first load analysis module 145 may determine the threshold throughput. In one implementation, the threshold throughput is taken as a certain percentage of the maximum throughput. In an example,

the percentage may vary, based on the application for which the load analysis is to be preformed. In another example, the percentage may be selected such that it remains fixed for the majority of applications to be tested. In said example, the threshold throughput may be taken as at least 50% of the maximum throughput.
Once the threshold throughput is computed, the first load analysis module 145 determines corresponding load, i.e., first threshold number of user devices. As explained previously, the number of the user devices 110 for which threshold throughput is achieved are taken as the first threshold number of the user devices. In order to determine load analysis results for a large number of users from the initial load data 160, the first load analysis module 145 extrapolates the initial load data 160 to the first threshold number of user devices. In one implementation, a first set of load analysis results are selected from the initial load data 160. A load analysis result indicates for a given number of user devices 110, what is the throughput of the application. The first set of load analysis results may include a predefined number of load analysis results from the initial load data 160, for example, the first set of the load analysis results may include 5 load analysis results, i.e. 5 values of number of user devices 110 N and corresponding values of throughput X. The values of iV may selected such that they cover a range of throughput for different values of the number of user devices 110. For example, in case the initial load data 160 includes load test results corresponding to 400 user devices 110, the first set of load analysis results may include different values of throughput X for number of user devices 110, JV=50, JV=100, iV-200, JV=300, 7V=400.
Upon obtaining the first set of load analysis results, the first load analysis module 145 extrapolates the same to a higher of value of N, for example, till a first threshold number of user devices, to provide the intermediate extrapolated results. Thus, the first load analysis

module 145 extrapolates the first set of results till the threshold throughput is reached. As mentioned previously, the first set of load analysis results are extrapolated using the linear regression technique. The load analysis results obtained upon extrapolation performed by the first load analysis module 145 are referred as the intermediate extrapolated results and may be stored in the load analysis data 165. Since, the linear regression analysis is used to extrapolate results for the first threshold number of the user devices, where the throughput increases linearly with the number of user devices 110, because the throughput of the application would increase linearly before any hardware or software bottleneck is encountered; therefore errors are minimized and the accuracy of the present load analysis technique is enhanced. Based on the intermediate extrapolated results, the second load analysis module 150 determines a second set of load analysis results. Similar to the first set of the load analysis results, the second set of the load analysis results include a predefined number of load analysis results; however the load analysis results are selected from the intermediate extrapolated results. In one example, the second set of load analysis results may be selected after equal intervals of number of user devices 110,' for instance, in case five load analysis results may be selected from the intermediate extrapolated results, one of the five load analysis results may correspond to first threshold number of the user devices, N&,; and the other four load analysis results may be

Upon obtaining, the second set of the load analysis results, the second load analysis module 150 extrapolates the second set of the load analysis results to determine final extrapolated results. In one implementation, S-curve techniques are used to extrapolate the second set of the load analysis results. The second set of load analysis results may be extrapolated using following formula:


where N is the number of the users devices 110 used for load analysis and X is corresponding throughput; a and b are constants and can be estimated through standard linear estimation using the second set of the load analysis results.
The second load analysis module 150 extrapolates the second set of load analysis results for a second threshold number of user devices, also represented as N . The second threshold number of the user devices is greater than the first threshold number of the user devices. In one example, the second threshold number of user devices may be understood as the number of user devices 110 for which the throughput starts to saturate. It will be understood that the second threshold number of user devices may be chosen to be of some other value as well. The second threshold number of user devices, N may be determined by equating two bounds on maximum throughput as illustrated in equation (3) and can be obtained using following equation:

where Z is the think time, Sumo is total sum of the service demands for the all hardware resources, and the service demand of that hardware resource, SDmax which has maximum service demand.
Thus, based on the extrapolation of the intermediate extrapolated results, the final extrapolated results are obtained. Since, the extrapolation of the initial load data 160, which can be considered to be lower load level, is performed using the linear regression analysis, the errors incurred while computation for lower loads are minimized; and subsequent extrapolation, which is for higher load level, is performed by the S-curve technique, it minimizes the error incurred for higher load levels. Further, it would be appreciated that had the linear regression technique been used alone for extrapolating the higher load values, the errors incurred for the higher load levels

would have been high and similarly, had the S-curve technique been used alone, the errors incurred for the lower load level would have been high.
The final extrapolated results are indicative throughput of the application for varying number of user devices 110. Based on the throughput, corresponding response time may be determined using Little's Law. Thus, the final extrapolated results may also indicate the response time of the application corresponding to varying nurnber of user devices. The final extrapolated results may be stored in the load analysis data 165.
In one implementation, the second load analysis module 150 is further configured to
analyze the final extrapolated results to determine performance of the application. For example,
in case requnied bad paraners are alearly provided to the load analysis system105, the secound
load analysis module 150 may compare it with the final extrapolated results to determine the performance of the application or to identify the possible bottlenecks. In said example, in case at lower loads throughput does not increase linearly, it may be determined that the application is not performing well and accordingly before loading the application on a production server, required changes may be incorporated in the application. In one implementation, the comparison may be performed using a load testing software, such as LoadRunner and JMeter. Further, based :on the performance of the appiication, the second load analysis module 150 may generate a report. The report may indicate that application is performing as expected, or in cases wherethe application is not performing as expected, it may also provide certain suggestions to improve the performance. For example, me load analysis system 105 may be associated with a knowledge base (not shown in the figures), which includes actions taken to improve performance of previously tested applications. So in case, a problem in the current application is identified, which has been encountered in one of the previously tested similar

application, the second load analysis module 150 may suggest the same solution to an analyst. For example, the second load analysis module 150 makes suggestions in the report on how to improve throughput or reduce response time or support more number of user devices 110. Additionally, the knowledge database may be continually updated with analysis done for various applications. Jn another implementation, the final results may be analyzed by an analyst. Fig. 2 illustrates an exemplary plot 200 indicating load analysis results obtained for a test application using the load analysis technique in accordance with an embodiment of the present subject matter. The test application is an eCommerce J2EE application Benchmark. JPetStore. The basis of the JPetStore is an on-line application where users can browse and search for various types of pets in five top-level categories. It displays details including prices, inventory, and images for all items within each category. Further, with authenticated login it provides full shopping cart facility that includes credit card option for billing and shipping. The throughput of the test application is extrapolated throughput when it is run on a mid-range server. The mid range server may have following features, Quad Core AMD Opteron processor 275 with 2.19 GHz processor speed, 4MB L2 cache, and 4 GB RAM. For this application, disk is the hardware resource with maximum service demand on all the tested platforms. Based on the disk service demand and service demand of other hardware resources, the present technique uses maximum throughput, Xmax as 593 and the second threshold number of the user devices, N* is 4000. Using actual load testing, the maximum throughput obtained is 574 and the corresponding number of users supported is 3500. Using the computed X max and N*. the load test results, initial load data 160 for 400 user devices are extrapolated. Firstly, liner regression is performed for a first threshold of user devices, which is 1400 and subsequently, extrapolation is done for the second threshold of the user devices, which is 4000 to obtain final

extrapolated results. The load analysis results are plotted as indicated in the plot 200. On the X-axis of the plot 200, number of the user devices 110 is plotted and on the Y- axis, throughput is plotted. As it can bee seen that the computed load analysis results are closer to the actual load test results, and it may be concluded that with actual load testing results from a small number of the user devices 110, the present load analysis technique can be used to extend it to a large number of the user devices 110 with at least 90% accuracy.
Fig. 3 illustrates a method 300 for generating load analysis results for an application by extrapolating actual load test results, in accordance with an embodiment of the present subject matter.
The exemplary method 300 may be described in the general context of computer executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, functions, etc., that perform particular functions or implement particular abstract data types. The method 300 may also be practiced in a distributed computing environment where functions are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, computer executable instructions may be located in both local and remote computer storage media, including memory storage devices.
The order in which the method 300 is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method, or an alternative method. Additionally, individual blocks may be deleted from the method without departing from the spirit and scope of the subject matter described herein. Furthermore, the method 300 can be implemented in any suitable hardware, software, firmware, or combination thereof.

At block 305, initial load data corresponding to an application is obtained. The initial load data includes the actual load test results corresponding to a predetermined number of user devices 110, for example, in the range of about 50 to 400 user devices 110. By actual load test results it is meant the load test results derived when the predetermined number of users concurrently access the application in reality, i.e., without any simulation or extrapolation. A single load test result indicates for a given load, what is throughput of the application. Further, the load of the application may be understood as the number of the user devices 110 accessing the application. In one implementation, the load test results obtained corresponding to a predetermined number of user devices 110 may be stored in the initial load data 160. At block 3 JO, a first set of load analysis results are identified from the initial load data. The first set of load analysis results may include a predefined number of load analysis results, each indicating throughput (X) of the application corresponding to a given number of the user devices HO (TV). The first set of load analysis results are identified such that load analysis results obtained over a range of the predetermined number of user devices, used for obtaining initial load data, are covered. For example, in case the predetermined number of the user devices 110 is 250 and the first set of load analysis results includes five load analysis results, then load analysis results corresponding to N=50, N==100, N=] 50, N=200, and N=250 may be identified. In one example, the first load analysis module 145 identifies the first set of the load analysis results. At block 315, intermediate extrapolated results, based on the first set of load analysis results are determined. For example, the intermediate extrapolated results are computed by extrapolating the first set of load analysis results for a first threshold number of the user devices using a liner regression technique. The first threshold of the user devices correspond to a first threshold throughput of the application. Further, the first threshold throughput is determined

based on maximum throughput of the application. In one example, the first load analysis module
145 determines the intermediate extrapolated results, which may be stored in the load analysis
data 165.
At block 320, a second set of load analysis results are identified based on the
intermediate extrapolated results. The second set of load analysis results includes a predefined
number of load analysis results selected from the intermediate extrapolated results. In one
implementation, the second load analysis module 150 determines the second set of load analysis
results.
At block 325, final extrapolated results are computed based on the second set of
load analysis results. For example, the second set of load analysis results are extrapolated for a
second threshold number of user devices using S-curve technique. The second threshold number
of user devices corresponds to a throughput which is close to the maximum throughput. So, the
second set of load analysis results are extrapolated till a throughput, which is closer to the
maximum throughput, is achieved. In one implementation, the second load analysis module 150
determines the final extrapolated results.
The present subject matter provides for load analysis of an application with at least
90% accuracy. Further, since actual load test results are obtained from a small number of user
devices, which are then extrapolated for a targe number of users thereby giving a picture of
production like scenario, the cost incurred in load testing is substantially reduced without
compromising on the accuracy.
Although embodiments for load testing of an application have been described in
language specific to structural features and/or methods, it is to be understood that the invention is

not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as exemplary embodiments for the load testing of an application.

I/We claim:
]. A method for extrapolating load test results to estimate performance of an application, the method comprising:
obtaining initial load test data for the application, wherein the initial load test data is indicative of the load test results for a predetermined number of user devices (110) accessing the application;
determining intermediate extrapolated results based on the initial load test data for a first threshold number of user devices; and
computing final extrapolated results based on the intermediate extrapolated results for a second threshold number of user devices, wherein the final extrapolated results are obtained using an S-curve technique, and wherein the final extrapolated results are indicative of performance of the application.
2. The method as claimed in claim 1, wherein the determining the intermediate extrapolated
results comprises:
identifying a first set of load analysis results from the initial load test data; and
extrapolating the first set of load analysis results using a linear regression technique to obtain the intermediate extrapolated results.
3. The method as claimed in claim 1, wherein the computing the final extrapolated results
comprises:

identifying a second set of load analysis results from the intermediate load analysis data; and
extrapolating the second set of load analysis results using the S-curve technique to obtain'the final extrapolated results.
4. The method as claimed in claim 1, wherein the predetermined number of user devices (110) is in the range of about 50 to about 400.
5. The method as claimed in claim 1, wherein the method further comprises computing the first threshold number of user devices based on a threshold throughput of the application.
6. A load analysis system (105) for extrapolating load test results comprising:
a processor(125); and
a memory (130) coupled to the processor (125), the memory (130) comprising,
a first load analysis module (145) configured to:
obtain initial load test data for the application, wherein the initial load test data is indicative of the load test results for a predetermined number of user devices (110) accessing the application; and
determine intermediate extrapolated results based on the initial load test data for a first threshold number of user devices; and
a second load analysis module (150) configured to compute final extrapolated results based on the intermediate extrapolated results for a second threshold number of

user devices, wherein the final extrapolated results are obtained using a S-curve technique.
7. The load analysis system (105) as claimed in claim 6, wherein the second threshold number of the user devices corresponds to a number of user devices for which the throughput of the application saturates.
8. The load analysis system (105) as claimed in claim 6, wherein the first load analysis module (145) is further configured to:
identify a first set of load analysis results from the initial load test data; and
extrapolate the first set of load analysis results using a linear regression technique to obtain the intermediate extrapolated results.
9. The load analysis system (105) as claimed in claim 6, wherein the second load analysis
module (150) is further configured to:
identify a second set of load analysis results from the intermediate load analysis data; and
extrapolate the second set of load analysis results using the S-curve technique to obtain the final extrapolated results.
10. The load analysis system (105) as claimed in claim 6, wherein the second load analysis
module (150) is further configured to:
analyze the final load analysis results to determine the performance of the application; and

provide a report based on the performance of the application.
11, A computer-readable medium having computer-executable instructions that when executed perform acts comprising:
obtaining initial load test data for an application, wherein the initial load test data is indicative of load test results for a predetermined number of user devices (110) accessing the application;
determining intermediate extrapolated results based on the initial load test data for a first threshold number of user devices; and
computing final extrapolated results based on the intermediate extrapolated results for a second threshold number of user devices, wherein the final extrapolated results are obtained using a S-curve technique, and wherein the final extrapolated results are indicative of performance of the application.

Documents

Orders

Section Controller Decision Date

Application Documents

# Name Date
1 1405-MUM-2011-OTHERS [18-06-2018(online)].pdf 2018-06-18
1 1405-MUM-2011-RELEVANT DOCUMENTS [26-09-2023(online)].pdf 2023-09-26
2 1405-MUM-2011-FER_SER_REPLY [18-06-2018(online)].pdf 2018-06-18
2 1405-MUM-2011-RELEVANT DOCUMENTS [27-09-2022(online)].pdf 2022-09-27
3 1405-MUM-2011-IntimationOfGrant28-08-2020.pdf 2020-08-28
3 1405-MUM-2011-COMPLETE SPECIFICATION [18-06-2018(online)].pdf 2018-06-18
4 1405-MUM-2011-PatentCertificate28-08-2020.pdf 2020-08-28
4 1405-MUM-2011-CLAIMS [18-06-2018(online)].pdf 2018-06-18
5 abstract1.jpg 2018-08-10
5 1405-MUM-2011-Written submissions and relevant documents [12-08-2020(online)].pdf 2020-08-12
6 1405-MUM-2011-POWER OF ATTORNEY(23-9-2011).pdf 2018-08-10
6 1405-MUM-2011-Correspondence to notify the Controller [08-07-2020(online)].pdf 2020-07-08
7 1405-MUM-2011-US(14)-ExtendedHearingNotice-(HearingDate-28-07-2020).pdf 2020-07-07
7 1405-mum-2011-form 3.pdf 2018-08-10
8 1405-MUM-2011-US(14)-HearingNotice-(HearingDate-15-04-2020).pdf 2020-03-18
8 1405-mum-2011-form 2.pdf 2018-08-10
9 1405-mum-2011-abstract.pdf 2018-08-10
9 1405-mum-2011-form 2(title page).pdf 2018-08-10
10 1405-mum-2011-claims.pdf 2018-08-10
10 1405-MUM-2011-FORM 18(19-8-2011).pdf 2018-08-10
11 1405-MUM-2011-CORRESPONDENCE(17-6-2011).pdf 2018-08-10
11 1405-mum-2011-form 1.pdf 2018-08-10
12 1405-MUM-2011-CORRESPONDENCE(19-8-2011).pdf 2018-08-10
12 1405-MUM-2011-FORM 1(17-6-2011).pdf 2018-08-10
13 1405-MUM-2011-CORRESPONDENCE(23-9-2011).pdf 2018-08-10
13 1405-MUM-2011-FER.pdf 2018-08-10
14 1405-mum-2011-correspondence.pdf 2018-08-10
14 1405-mum-2011-drawing.pdf 2018-08-10
15 1405-mum-2011-description(complete).pdf 2018-08-10
16 1405-mum-2011-correspondence.pdf 2018-08-10
16 1405-mum-2011-drawing.pdf 2018-08-10
17 1405-MUM-2011-FER.pdf 2018-08-10
17 1405-MUM-2011-CORRESPONDENCE(23-9-2011).pdf 2018-08-10
18 1405-MUM-2011-FORM 1(17-6-2011).pdf 2018-08-10
18 1405-MUM-2011-CORRESPONDENCE(19-8-2011).pdf 2018-08-10
19 1405-MUM-2011-CORRESPONDENCE(17-6-2011).pdf 2018-08-10
19 1405-mum-2011-form 1.pdf 2018-08-10
20 1405-mum-2011-claims.pdf 2018-08-10
20 1405-MUM-2011-FORM 18(19-8-2011).pdf 2018-08-10
21 1405-mum-2011-abstract.pdf 2018-08-10
21 1405-mum-2011-form 2(title page).pdf 2018-08-10
22 1405-mum-2011-form 2.pdf 2018-08-10
22 1405-MUM-2011-US(14)-HearingNotice-(HearingDate-15-04-2020).pdf 2020-03-18
23 1405-mum-2011-form 3.pdf 2018-08-10
23 1405-MUM-2011-US(14)-ExtendedHearingNotice-(HearingDate-28-07-2020).pdf 2020-07-07
24 1405-MUM-2011-Correspondence to notify the Controller [08-07-2020(online)].pdf 2020-07-08
24 1405-MUM-2011-POWER OF ATTORNEY(23-9-2011).pdf 2018-08-10
25 abstract1.jpg 2018-08-10
25 1405-MUM-2011-Written submissions and relevant documents [12-08-2020(online)].pdf 2020-08-12
26 1405-MUM-2011-PatentCertificate28-08-2020.pdf 2020-08-28
26 1405-MUM-2011-CLAIMS [18-06-2018(online)].pdf 2018-06-18
27 1405-MUM-2011-IntimationOfGrant28-08-2020.pdf 2020-08-28
27 1405-MUM-2011-COMPLETE SPECIFICATION [18-06-2018(online)].pdf 2018-06-18
28 1405-MUM-2011-RELEVANT DOCUMENTS [27-09-2022(online)].pdf 2022-09-27
28 1405-MUM-2011-FER_SER_REPLY [18-06-2018(online)].pdf 2018-06-18
29 1405-MUM-2011-RELEVANT DOCUMENTS [26-09-2023(online)].pdf 2023-09-26
29 1405-MUM-2011-OTHERS [18-06-2018(online)].pdf 2018-06-18

Search Strategy

1 search_08-12-2017.pdf

ERegister / Renewals

3rd: 01 Sep 2020

From 05/05/2013 - To 05/05/2014

4th: 01 Sep 2020

From 05/05/2014 - To 05/05/2015

5th: 01 Sep 2020

From 05/05/2015 - To 05/05/2016

6th: 01 Sep 2020

From 05/05/2016 - To 05/05/2017

7th: 01 Sep 2020

From 05/05/2017 - To 05/05/2018

8th: 01 Sep 2020

From 05/05/2018 - To 05/05/2019

9th: 01 Sep 2020

From 05/05/2019 - To 05/05/2020

10th: 01 Sep 2020

From 05/05/2020 - To 05/05/2021

11th: 23 Apr 2021

From 05/05/2021 - To 05/05/2022

12th: 05 Apr 2022

From 05/05/2022 - To 05/05/2023

13th: 01 May 2023

From 05/05/2023 - To 05/05/2024

14th: 03 May 2024

From 05/05/2024 - To 05/05/2025

15th: 02 May 2025

From 05/05/2025 - To 05/05/2026