Stress testing | Data scalability
Scalability testing
The goal of stress testing is to identify peak load and stress conditions at which the program will fail to handle processing loads within required timespans. Whereas stress testing attempts to identify abnormal behaviors when the system is under extreme load conditions, the goal of scalability testing is to identify if the system scales as workload, data, or store complexity increases. That is, the goal is to build a graph (for example, data size versus response time) that will allow us to predict with reasonable accuracy the performance impact of site growth and possibly predict capacity milestones of peak capacity (P) and business capacity (B).Examples of abnormal and non-scalable behavior are:
- Non-linear increase in response times
- Non-linear decrease in throughput
- Data corruption
- Database or code deadlocks
- Cookie resets
- System crashes
Scalability testing includes validation of site scalability from the following aspects:
- Interface (for example, GUI) scalability
This allows us to determine that size of data does not impact negatively the look and feel of the product. If you do not have access to a tool to test interface scalability then you can consider taking running a 100+1 test, as explained at 20.5.5, 100% + 1 testing.
- Performance impact of data growth
As time goes on, WebSphere Commerce users will create more and more data and the existing data will age (for example, data that needs to be archived or cleaned/removed from the database). We need to determine the impact that this will have on the performance of their system.
- Capacity scalability
Another major component of scalability is capacity scalability. We need to be able to understand and predict how different or additional hardware and topologies influence throughput and response times when using large sets of data.
Scalability testing is achieved by primarily scaling the workload, data scalability, and store complexity, as discussed in the following sections.
xxxx