%% date:: [[2022-10-21]] %% # [[Requirements]] Every good test begins with requirements. Requirements gathering and setting are activities that are typically carried out by business analysts. However, as testers, especially on smaller teams or shorter projects, it’s still part of our job to make sure we know what our clients want. Otherwise, how do we know whether we’ve succeeded or failed? I often speak to project teams who ask for help interpreting reports. Most of those times, the problem is not that they don’t understand the metrics or what they measure. The problem is that they didn’t set pass or fail criteria in the first place, and so they don't have anything to judge the results against. This is always a big warning sign. Requirements inform every step of the load testing process. Why are we doing load testing? What exactly do we want to test? How will we know when a test has passed or failed? How will we know if application performance is good enough to go into production? What does “good enough” mean? ## [[What should my application’s response time be]] ## [[Writing a good test requirement]] ## [[Performance Thresholds]] Many requirements, especially [[Operational testing|nonfunctional]] ones, are expressed as performance thresholds. However, this is not always the case. Performance thresholds typically seek to quantify the performance of an application using metrics such as CPU utilization, but requirements are not necessarily numerical. For example, "When one of the application servers is down, the load balancer must redirect traffic to the other servers and users must still be able to submit their mortgage applications" is an example of a requirement that does not involve a threshold. - [[SLOs]] ## Related - [[Load Testing]] - [[Performance Testing]] - [[Article/Mine/Start with Why: How to Write Requirements for API Load Testing]] - [[API Load Testing - A Beginner's Guide]]