Home > Software Quality Tips > Software Testing > Performance and load/stress tests: Two types of capacity tests
Software Quality Tips:
EMAIL THIS
 TIPS & NEWSLETTERS TOPICS 

SOFTWARE TESTING

Performance and load/stress tests: Two types of capacity tests


David W. Johnson
07.02.2007
Rating: -3.57- (out of 5)


Software quality news and advice
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


Both performance and load/stress tests help determine the capacity of a system. But for the tests to be successful, certain guidelines should be followed. David W. Johnson reviews those guidelines and offers advice for planning tests.


Performance tests and load/stress tests determine the ability of the application to perform while under load. During stress/load testing, the tester attempts to stress or load an aspect of the system to the point of failure. The goal is to determine weak points in the system architecture. The tester identifies peak load conditions at which the program will fail to handle required processing loads within required time spans.

During performance testing, the tester designs test case scenarios to determine if the system meets the stated performance criteria. Example: A login request shall be responded to in 1 second or less under a typical daily load of 1,000 requests per minute. In both cases, the tester is trying to determine the capacity of the system under a known set of conditions.

The same set of tools and testing techniques can be applied for both types of capacity tests -- only the goal of the test changes.

System test -- capacity testing

Scheduling capacity tests
Performance tests and stress/load tests occur during a system test or when enough of an application has been delivered. The earlier capacity testing can be applied, the earlier defects can be detected and mediated. It is critical to detect capacity-related defects early because those types of defects often require architectural changes to the system.

Because these tests usually depend on functional interfaces, it may be wise to delay them until function testing has demonstrated some predefined level of reliability. A balance must be struck between testing early and testing when appropriate.

Designing capacity tests
Lack of capacity testing requirements and goals is on


Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


RELATED CONTENT
Software Testing
10 steps to acing Web app security assessments
Three software regression testing steps can perfect defect fixes
Exploring mobile layout testing, emulators and goals
Preparing for testing applications in the cloud
Hack maliciously to boost your software's security
Testing functionality, performance of mobile Web applications
Testing mobile Web applications for usability and context
Using SBTM for exploratory testing coverage problems
Web 2.0, RIAs push load testing to the max
Using session-based test management for exploratory testing

Software performance, load and stress testing
Budget-friendly Web app performance testing, monitoring tips
Testing functionality, performance of mobile Web applications
Free load/performance testing tools for Java-based Web applications
Software testing deliverables: Developing a software testing strategy
Is functional testing sufficient to determine code coverage?
Why the quality assurance department should be involved in testing
What are the different software testing methodologies?
Testers: Time to gear up for mobile software testing
Two-minute guide to determining software testing coverage
Best load and stress testing tools

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
integration testing  (SearchSoftwareQuality.com)
performance testing  (SearchSoftwareQuality.com)
shotgun debugging  (SearchSoftwareQuality.com)
stress testing  (SearchSoftwareQuality.com)

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary


e of the most common errors made during any capacity testing exercise. Test organizations will often go through the process of capacity testing only to discover the testing results do not present the project with any useful information. The solution is to treat performance and stress/load testing the same as any other testing effort. The test organization needs to perform the following: test planning, partitioning/functional decomposition, requirements definition/verification, test case design, traceability (traceability matrix), test case execution, defect management and coverage analysis.

Implementing capacity tests
Both performance and stress/load testing require a toolset that can put the system under a known load and measure the performance of the application while under the load. Several shops have developed their own solutions for capacity testing. There are also several capacity testing freeware, shareware and commercial products available to meet this need. It is easy to fall into the "over-engineering" trap when implementing a capacity testing toolset, however. To avoid that trap, ensure the solution meets the test organization's goals and that the toolset does not become a "goal" itself.

Implementations

Capacity testing is performed against different aspects of a system. They may exist as standalone applications or as one facet of the system being tested, such as GUI, transactional and batch. The type of application or aspect of the system undergoing capacity testing directly impacts the approach, tooling and skill set required when performing either performance or stress/load testing. While it is possible to test several aspects of the system at once during capacity testing, it's best to focus the testing effort on one aspect of the system at a time -- even if the resulting throughput exercises other aspects of the system.

Graphical user interface (GUI)
When performing capacity tests against a GUI, the focus should be on the ability of the interface to respond to user input. The focus is on the interface, not on any transactional aspect of the system, such as security, middleware, databases and back-end processing

To best isolate the testing to the actual interface, ensure the remainder of the system is under little (if any) load and then perform the appropriate set of performance and stress/load tests. Interfaces are often ignored during performance and stress/load testing, but applying capacity testing techniques against the interface will often discover a host of defects that might not be detected during function testing. These can include memory leaks, memory management issues, object management issues and functional defects. This type of capacity testing can be performed using the same toolset that's used for automated function tests (i.e. record and playback).

Transactional
There are several types of transactional-based systems being deployed today: client/server, telephony, Internet-based, and so on. Each implementation or mix of implementations employs an architectural framework composed of hardware, firmware and software components. The complexity of the architectural solution can often add confusion to the task of capacity testing.

Testing the simplest and most common transactions first will often reveal the most critical defects. For example, the tester could start by implementing a test case that simulates users logging in to the system starting with one user and moving up to the number of users expected to be on the system during peak load. For stress/load testing, simply continue to add users until the system fails.

When testing organizations first attempt transactional-based capacity testing, they're tempted to feed a production mix of transactions to the system. But that often results in so much information being created that the root cause of any failure is difficult to determine. Keeping the transactional mix simple makes the task of defect analysis and remediation easier. Once the system can handle the simpler transactions, a more complex set of transactions can be added into the mix. The tactic is to move from simple to complex in a controlled manner to avoid data overload. This type of capacity testing can be performed using an appropriate load-testing tool or toolset.

Batch
Batch processing can be ad-hoc (user-requested) or scheduled. The circumstances around each type of batch processing are often very different and require different testing approaches.

Scheduled batch processing often occurs during off-peak hours or when no transactions are permitted. In this situation, the tester can focus on the ability of the system to handle large volumes of data with little regard to other aspects of the system (i.e. transactions).

Ad-hoc or user-requested batch processing must take into account other business that can occur on the system during the processing of the job, including other user-requested jobs. Once a set of ad-hoc jobs has been defined, the appropriate level of "background noise" must be created. It is often the combination of ad-hoc jobs and background noise that detects defects. Going from a simple set of batch processes to a more complex situation for batch and background noise will help avoid the issue of data overload.

Planning and staffing

A performance or stress/load testing engagement requires a team that has an in-depth understanding of the systems -- hardware, software, firmware, protocols, transactions and the business -- and load test engineers. Unless capacity testing is an ongoing exercise for the project/system owner, this type of talent does not reside in one organization. The test manager must work with his peers in operations, development, testing and any third-party IT providers to bring a team together that can address all aspects of the system.

Schedule conflicts and resource allocation are the two most common challenges when planning this type of testing effort. The test manager must be both opportunistic (What can be done now?) and risk-sensitive (What must be tested? What should be tested? What can be tested?). Unless capacity testing is a priority to the organization, even the simplest system will not be fully tested -- focus on the tests that will have the greatest chance of detecting defects and actually being executed.

-----------------------------------------
About the author: David W. Johnson is a senior computer systems analyst with over 20 years of experience in IT across several industries. He has played key roles in business needs analysis, software design, software development, testing, training, implementation, organizational assessments and support of business solutions. David has developed specific expertise over the past 10 years on implementing "Testware," including test strategies, test planning, test automation and test management solutions. You may contact David at DavidWJohnson@Eastlink.ca.


Rate this Tip
To rate tips, you must be a member of SearchSoftwareQuality.com.
Register now to start rating these tips. Log in if you are already a member.


Submit a Tip




DISCLAIMER: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.



Software Design & Testing - Project Management
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 2006 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts