In software engineering , performance testing is testing performed, from one perspective, to determine how quickly a system performs a task in particular working conditions. It can also serve to validate and verify other quality attributes of the system, such as scalability , reliability and resource usage. Performance tests are a subset of the test engineering , a practical computer that strives to improve performance, englobándose in the design and architecture of a system, even before the initial effort of coding.
Performance testing can serve different purposes. They can demonstrate that the system meets the performance criteria. They can compare two systems to find which one works best. O measurable parts of the system workload or cause the wrong set render. For diagnosis , the software engineers use tools such as measuring monitorings which parts of a device or software contribute more to poor performance or to establish levels (and thresholds) the same time keep an acceptable answer.
It is essential to achieve a good level of performance of a new system, that efforts in these tests begin at the beginning of project development and will be enlarged during construction. The longer it takes to detect a defect in performance, the higher the cost of the solution. This is true in the case of functional tests , but much more on the performance tests , because its scope is from beginning to end.
In performance testing, it is often crucial (and often difficult to obtain) that the test conditions are similar to those expected in actual use. This is, however, almost impossible in practice. The reason is that production systems have a random nature of the workload and although the evidence is to try their best to mimic the workload likely to have the production environment, it is impossible to replicate the variability this work, except in the simplest system.
New concepts in the implementation of the architecture (eg SOA ) have added additional complexity to performance testing. The services and resources of the company (which share infrastructure or platform) require coordinated performance testing (with the creation of the volume and load of all systems sharing the infrastructure or platforms) to actually reproduce the environment state production . Due to the complexity , cost and time required around this activity, some organizations use tools that can show and create conditions (also known as “noise”) in the performance testing environments to understand the capacity and resource requirements and verify / validate quality standards.