Tuesday, February 2, 2010

Testing of non functional software

Non functional test is the test of a program application for its non-functional requirements. The names of the a large number of functional tests are used interchangeably, because of overlap between the fields of different non-functional requirements. For example, program performance is a broad term that includes plenty of specific requirements such as reliability & scalability.
Non-functional testing includes:
• Baseline testing
• Compatibility testing
• Compliance testing
• Documentation testing
• Endurance testing
• Load testing
• Localization testing and Internationalization testing
• Performance testing
• Resilience testing
• Security testing
• Scalability testing
• Stress testing
• Usability testing
• Volume testing
• Failover testing

Software performance testing:
In application engineering, performance testing is the check that is completed, with a view to select how rapid some aspect of a technique performs under a particular workload. It may also serve to validate and verify other technique quality attributes such as scalability, reliability and resource usage. Performance testing is a subset of Performance engineering, an emerging practice of computer science that strives to improve performance in the design of and the architecture of a technique before the onset of actual coding work.Performance testing can serve different purposes. It can be shown that the technique meets performance criteria. It can compare one systems to find what works best. Or you can measure what parts of the technique or workload cause the technique to malfunction. For diagnosis, the application engineers use tools such as profiling to measure which parts of a tool or application contribute most to the poor performance or for levels of performance (and thresholds) to maintain acceptable response time. It is critical to the performance cost of a new technique that the performance check efforts start at the beginning of the development project and extend through to deployment. The later detects a malfunction, the greater the cost of rehabilitation. This is true of tests,But more so with performance testing, due to the nature of the tip finish of its scope.

Purposes:
In S/w engineering, performance testing is the check that is completed, with a view to select how rapid some aspect of a technique performs under a particular workload. It may also serve to validate and verify other technique quality attributes such as scalability, reliability and resource usage. Performance testing is a subset of Performance engineering, an emerging practice of computer science that strives to improve performance in the design of
and the architecture of a technique before the onset of actual coding work.Performance testing can serve different purposes. It can be shown that the technique meets performance criteria. It can compare one systems to find what works best. Or you can measure what parts of the technique or workload
cause the technique to malfunction. For diagnosis, the application engineers use tools such as profiling to measure which parts of a tool or application contribute most to the poor performance or for levels of performance (and thresholds) to maintain acceptable response time. It is critical to the performance cost of a new technique that the performance check efforts start at the beginning of the development project and extend through to deployment. The
later detects a malfunction, the greater the cost of rehabilitation. This is true of tests,But more so with performance testing, due to the nature of the tip finish of its scope.

Setting performance goals:
Many performance tests are conducted without due regard to setting realistic performance targets. The Query from a business point of view should always be "why are they benchmark?". Performance goals vary depending on the application technology & purpose however, must always include a quantity of the
following:

Concurrency / Throughput:
If an application identifies the finish users with some kind of login procedure, then the audience is a very desirable aim.By definition, this is the largest number of simultaneous users of the application that the application is expected to support at any given time. The work flow of your transaction with script can affect concurrency application if the iterative part contains the login and log off activity.If the application has no concept of finish users, their objective is likely performance based on a maximum of throughput or transaction fee. A common example would be grounds for navigation of a web-site.

Server response time:
This refers to the time needed for a node application in response to a request from another. A simple example would be an HTTP 'GET' request from client browser to web server. In terms of response time is what all the load tests actually measuring tools. It may be relevant to establish the objectives of server response time among all nodes in the implementation of landscape.

Render response time:
One thing difficult for load testing tools to deal with what they generally have no idea what happens inside a node In addition to recognizing a period where no activity "on the wire '. To measure the response time to render is generally necessary to include functional check scripts as part of performance check scenario which is a feature that does not offer plenty of load testing tools.

Performance Testing Sub-Genres:
• load
• stress
• endurance
• spike
• configuration
• isolation

Load Testing:
This is the simplest form of performance tests. A load check is usually completed to understand the behavior of the application provided under a specific load. This load can be the expected number of concurrent users in the application that performs a specific number of transaction within the set period. This check will give the answer times of all transactions of the major criticism. If the server database, applications, etc. are also monitored, then this simple check can itself point to any bottlenecks in the application program.

Stress Testing:
This test is normally used to understand the upper limits of capacity in the application environment. This type of test is performed to decide the strength of the application in times of extreme load and helps application administrators whether the application is made sufficiently if the load current is well above the maximum allowed.

Endurance Testing (Soak Testing):
This check is performed to choose if the application can sustain the continuous expected load. During the resistance tests, memory usage is monitored to detect leaks. It is also important but often overlooked is the performance degradation. That is, to ensure that the performance and / or response times after a long period of sustained activity are as lovely or better than at the beginning of the check.

Spike Testing:
Spike test, as its name suggests is made by nailing the number of users and understanding the behavior of the
demand if it disappears or is going to be able to handle extreme changes in the load.

Configuration Testing:
Configuration testing is another variation on the traditional performance testing. In lieu of performance tests from the point of view of the burden that is testing the effects of configuration changes in the application environment in the application performance and behavior. A common example would be experimenting with different methods load balancing.

Isolation Testing:
It is not exclusive performance tests, but a term used to describe the repetition of a check run that resulted in a implementation problem. They are often used to isolate and confirm the dominance of the blame.

1 comment:

Software Load Testing said...

I agree with you that "In terms of response time is what all the load tests tools are actually measuring".