Summary
Load testing uncovers some of the hardest-to-find and most important bugs in your system. These are issues that you’ll never hit by just running some exploratory testing. They require dedicated tools and skills to discover and even more to isolate and debug.
In this chapter, we described identifying load operations, the differences between static and dynamic load, and soak testing versus spikes of operations. You need to consider the design of your application for load testing, the interfaces it should use, and the functions it requires. There are different bugs when raising system limits, looking for race conditions, inefficient programming, or testing the messages between modules. You need to create a performance baseline to check for higher resource usage and look for defects that obscure other problems.
Finally, we considered the challenges of filtering and debugging load-testing issues. In the next chapter, we will go one step further and apply load to push...