The importance of testing for performance
Applications are evaluated based on the average number of tasks they perform as well as possible overload conditions. These evaluations include queue lengths, CPU cycles, memory usage, throughput, and the use of resources. The actions of performance testing include identifying possible information choke points and comparing the product's performance to original specifications.
There are a number of different types of tests based on user requirements. For example, functional testing verifies that the product is working correctly and meets the specified requirements. This is done through the use of test cases that duplicate and often surpass real world scenarios. Other types of testing include load testing, sometimes referred to as "scalability,” not to mention reliability and usability testing. There is also maintainability testing, which tests the ability of the provider to deliver patches and updates. Configurability, which tests the customer's ability to modify the software if needed and, of course, security testing.
As you can see, testing is more than just making sure that an application meets stakeholder desires. And what tests are run and how much testing is involved depends greatly on the end user's definition of performance. So, it's vital that stakeholders carefully delineate the specifications that developers are required to meet. Remember that software testing is greatly influenced by the time and resources available. Which is why agile testing was developed. The agile approach improves the economics of software development by enabling programming and testing to be done at the same time.
Automation can also save money and resources. However, it's important to include skilled human testers in the mix. Software testing is more of an art than a science and requires human experience, imagination and intuition.
In reality, all forms of software testing are testing for performance in one way or another. Performance drives software development. Better performing software helps people achieve things that could not be achieved any other way. Improving software performance, improves human performance and that's why testing software for performance is important.