Software Performance Testing
In the execution test in software engineering, testing is to be done in this perspective of how fast any aspect of the system works under a particular workload. It can also work to validate the system and to verify the quality of its other properties, such as the use of scalability, reliability and resources. Performance testing, the emerging practice of computer science is a subset of execution engineering, which attempts to elevate performance in the design and structure of the system.
Execution test can meet different purposes. He can prove that the system meets the performance criteria. It can compare two systems that the performance of which system is better. Or it can evaluate whether the performance of the system or the workload is defective. In the case of diagnosis, software engineers use tools like a prolifer to test which parts of the instrument or software are responsible for poor performance or the flow-capacity level (and entry-gate) proven for the acceptable response period. Able to do It is important for the performance of the new system to be executed at the beginning of the development project and execution continues till deployment. The delay in execution defect is known, the more the cost of its solution is. This is accurate in the case of functional testing, but due to the overall nature of its field of work, the higher the performance test also.
an objective
In the performance test, it is important (and often difficult to organize) to be tested conditions similar to expected actual use. However in actual practice this is not entirely possible. The reason is that the nature of the workload of the production systems is random and while the test workload makes good efforts to duplicate what is likely to happen in the production environment, but it is impossible to repeat this workload variability as well - except the simplest In the system.
Loose-coupled structural implementation (eg .: SOA) has created additional complications with performance testing. For enterprise services or properties (which share common infrastructure or platforms) correctly to repeat production-like conditions (where all consumers prepare production-like transaction volume on the shared infrastructure or platforms shared ) Integrated performance testing is required. Due to the complications and financial and time requirements associated with this activity, now some organizations use such tools in their performance test environments (PTE) to understand the resources and requirements of resources and to verify / validate their quality characteristics. Which can prepare production-like conditions (also called "noise") and monitor them. Establishment of execution goals
Many performance tests are started without considering the actual execution goals. The first question from business perspective should always be: "Why are we doing the test?" Execution goals may vary based on application technology and purpose, but they should always include some of the following: - Concurrency / flow capacity
If an application identifies users through a login process, the concurrency goal is very important. By definition, this concurrent application is the largest number of users, at any time whose application is expected from the application. The working flow of your written exchanges can affect the actual application concurrency, especially if the interaction part involves logging and logout activity.
If there is no concept of users in your application, then your performance target is likely to be based on maximum flow capacity or exchange rates. A common example may be casual browsing of a web site such as Wikipedia. Server response time
This specifies the time it takes to respond to an application node for the request of another. A common example would be the HTTP 'GET' request from the browser client to the web server. In case of response time, this is what all the load testing tools actually measure. It would be relevant to determine the server response time targets among all nodes of the application scenario. Rendering response time
A difficult topic to deal with load testing equipment, since they usually have no concept that what is happening inside the node in addition to the identification of a time period, where there is no activity on the 'wire'. To measure the rendering response time, generally include functional test scripts as part of the performance test scenario, which is a feature that many offer load testing equipment does not offer. Performance test sub-genres Load testing
This is the simplest form of performance testing. Weight testing is generally done to understand the behavior of the application under a specific expected load. This weight can be a concurrent number of expected users who exchange specific times over the prescribed period. This test will give the response time of the important exchange of all important business. If database, application server etc. is also monitored, then this simple test can point to any barriers to the application software. Stress testing
Generally this test is used to understand the upper limit of capacity in the application scenario. This type of test is done to determine the strength of the application at the time of excessive load and helps the application administrators to determine whether the current load is more than expected, the application will be able to execute it properly. / p> Endurance Testing (Sok Testing)
This test is usually done for determining whether the application will handle the expected load. During the capacity test, memory usage is monitored to detect potential leakage. Also performance degradation is important, but it is often overlooked. That is, to ensure that the flow capacity and / or response period after a long period of continuous activity is better or better than the start of the trial. Spike testing
As the name implies, understanding the application's behavior by testing the strength of the number of users is only a spike test; Whether the performance will be affected, the application will fail, or it will handle dramatic changes in load. Configuration testing
Configuration test is another conversion of the traditional performance test. Instead of testing performance in the perspective of load, you are testing the effect of configuration changes of application scenarios on application execution and behavior. A common example is to experiment with various methods of weight-balance. Isolation testing
Except for the execution test, but this term is used to describe the repetition of the test implementation that results in the application problem. Often used to isolate and confirm the effect of error. Pre-Expectations for Performance Testing
A static composition of the application, as far as possible to reflect the production environment.
The performance test environment should not be combined with the UAT or the development environment. This is critical because the results obtained from the performance test can not be reliable if a UAT or integration test or other testing is conducted in the same environment. As a best practice, it would always be appropriate that a different environment, such as a production environment, is available for performance testing as much as possible. Myth of performance testing
Some very common myths are given below. 1. Execution test is done for system decomposition.
The stress testing system is used to understand the breakpoint. Otherwise, general load testing is usually done to understand the application's behavior under the expected user load. Depending on other expectations, such as spike load, spike, endurance sock or stress testing will be required for the continuous load of extended time.
2. Execution testing should be done only after system integration testing.
Although this is mostly the industry standard, performance testing can be done in the initial development phase of the application. This kind of approach is known as the initial performance test. This approach will ensure the overall development of the application, keeping performance standards in mind. Thus, the execution bug is detected and its cost involved in the correction can be reduced to a great extent right before the release of the application.
3. Execution tests only include scripts and any application changes will require general refactoring of scripts.
Performance testing is itself a developing science in the software industry. Although the scripting is important in itself, but in performance testing it is only one of the components. The biggest challenge for any performance tester is the analysis of various performance counters for determining the type of investigation and determining the performance bottlenecks for implementation.
The second section of the myth related to application changes that will result in the need for refactoring only in scripts, is also incorrect, because due to changes in the UI anyway, especially in web protocol, scripts redeveloped from scratch Will need to do This problem gets enlarged, if included in the implied protocol, web service, Siebel, Web click and script, citrix, SAP. The technology
Performance testing technology deploys one or more PCs or Unix servers to act as injectors - in which each imitates the presence of innumerable users and runs automatic sequence of interaction with each such host. , Whose performance is being tested (recorded as a series of scripts or scripts, Car users can simulate the interactions). Generally, a separate PC works as a test operator, which coordinates and collects the matrix from each injector and matches performance data for the purpose of reporting. The general sequence is to increase the load - starting with a small number of virtual users and increasing the number for a maximum duration. The test results show how the execution varies with load, which is given in the form of number of users versus response time. Different tools are available to perform such tests. In this category, the devices generally execute an arrangement of tests that emulate real users against the system. Occasionally some disparities appear, for example, while the average response time may be acceptable, there are some major different exchanges that take a lot of time to accomplish - which may be potentially disabled database queries, Pictures, etc. due to this.
Performance testing can be combined with tension test, so that when an acceptable load gets high - then does the system crash? If heavy loads are reduced, how long does it take to recover? Does it fail in such a way that collateral damage is inflicted?
Analytical performance modeling is a method of modeling the behavior of an application in a spreadsheet. The model is delivered to measure the exchanges resource expectations (CPU, disk I / O, LAN, WAN), which is measured by the exchange mix (business transactions per hour). Measured transaction resource demand is added to detect hourly resource demand and is divided by hourly processing capacity to obtain resource weight. Response time can be calculated using calculation time thread (R = S / (1-U), R = response time, S = service period, U = load) and calibrated with the results of performance tests Could. Analytical performance modeling allows evaluation of design options and system size reduction based on actual or anticipated business use. Therefore it is faster and cheaper than performance testing, although this requires the hardware platform to fully understand. performance specification
It is important for specifying execution specifications (requirements) and for their documentation in any performance test scheme. Ideally, before any design effort, it is done during the development phase of a system development project. See performance engineering for more information.
However, performance testing is not often executed against a specific specification, i.e. no one has expressed that what should be the maximum acceptable response time for a specific number of users. Performance testing is often used as part of the process of execution profile tuning. The idea here is to identify the "weak link" - of course there is no part of the system, which is arranged to respond faster, in response, the resultant system can run faster. Sometimes it is a difficult task to identify which part of the system represents this important path and some instrumentation instrumentation (or instrumentation can be add-ons available) in some test devices ) And report on the exchange time, database access time, overhead network and other server monitors, with the raw performance data Can be analyzed. Without this kind of equipment, one should be tuned to the Windows Task Manager on the server to see how much performance testing is generating the CPU load (considering the Windows system under test).
The story of a company that spent a large amount of money to optimize its software without proper analysis of the problem. Eventually, he had to rewrite the system's 'idle loop', where he found that most of the time spent on the system, but still with the world's most efficient idle loop, obviously there was no improvement in the overall performance of the particle! / p>
Performance testing can be executed across the web and can even be done in different parts of the country, because it is believed that the response time of Internet only varies time-wise. It can also be done within the office, although similar to the general application on the public network, the routers will need to be configured to enter the interval. Loads from the realistic point should be introduced into the system. For example, if 50% of the system's user base is accessing the system via 56K modem connection and the remaining half will be loaded on the same connections through ideal T1, then load injectors (computers that emulate real users) (ideal) or Following the same user profile, follow the network aptitude of such connections.
The statement about the possible number of users will always be helpful, through which the system is likely to be used in the peak hour. If there is a statement that the maximum permissible 95 percent of the response time is formed, then an injector configuration can be used to check whether the proposed system meets that specification.
At least the following questions should be asked by the performance specifications: Work to be done
The tasks to be performed for such testing will include: Mechanism Performance test web application mechanism
According to the Microsoft Developer Network, Performance Testing Methodology includes the following activities: Also see them Newsgroup Resources /
wiki
Comments
Post a Comment