The Importance of Benchmark Testing
If youíve been in application development for a while, youíve most likely heard the phrase ďbenchmark testingĒ. But do you truly know what it is, or why is it important?
Benchmark testing is performance measurements, typically in relation to computer software or hardware. Iíll be focusing on it in regards to software testing, but benchmark testing is a term used elsewhere as well, such as in hardware development, and even in the business world.
When I benchmark test my PHP applications, I run them through what I like to consider a marathon of assaults. Iíve recently developed a component to handle this for me, Benchmark Testing Framework. What this component does is simplify the process of timing how long operations within your application take to complete and generating reports from the results.
This is a very simplistic form of benchmark testing. I simply calculate the time it takes for 1 million iterations of a function to perform, or how long it takes for a page to load, etc, but there are other areas of development that test even deeper. Take for example ApacheBench, a web server benchmark tester that bombards your server with HTTP requests and reports how well your server handles the load conditions.
This is also useful to test for how well your system will be able to stand up against a distributed denial of service (DDoS) attack. DDoS has been in the tech news lately due to hacker groups such as Lulz Security, but did you know that you could have the symptoms of a DDoS attack without an actual attack occurring?
Say your website gets put into place, youíve worked months on your new site, and everything is great. You did no benchmark testing, though, because for whatever reason you believed itís unnecessary. Within a week people are falling over themselves to visit your site, and youíre extremely happy. Then all of a sudden you load your page to a 500 error. What happened? You did not properly benchmark test your web application, and it just could not handle the millions of daily users wanting to see pictures of alpacas in sweaters.
Benchmark testing can be a simple process and is very useful for validating the performance of your application / site, and you should keep it in mind while developing and consider it in the architecture (not unlike the thought process that goes into test-driven design). There are many tools at your disposal to benchmark test any application you may be developing, so there is no excuse not to benchmark test.
... to read more articles, visit http://sqa.fyicenter.com/art/