%% date:: [[2023-04-08]] %% # [[Emergent load testing]] What does it mean for a [[Load Testing|load test]] to be [[Emergence|emergent]]? An emergent load test is one that encourages the formation of new and complex behaviors that were unexpected and unplanned. By its very nature, though, we can't *plan* emergence. We can only recreate conditions that encourage it. ^b83cd0 Our best chance of encouraging true emergence in load testing begins with considering writing a different type of test script. ^eb56ee ## Evolving software trends affect testing When software evolves, so does [[Software Testing]] because [[Test as code|tests are code]]. ### [[Imperative]] load tests *Do these steps in order.* - Fixed inputs (instructions) - Fixed outputs - Processing just means carrying out instructions ### [[Declarative]] load tests *I don't care how you do it, but get here.* - Fixed output - Variable process ### [[Generative]] load tests *Here's what you can do. Surprise me.* - Fixed *range* of input. - Unknown output. Generative load testing is about defining the [[Affordances]] of an application. A generative load test is not necessarily an emergent one: remember, that's something we can't plan for. ## Range for generative load testing [[Performance|Application Performance]] consists of the following factors: - [[Scalability]] - [[Elasticity]] - [[Availability]] - [[Reliability]] - [[Speed]] These factors serve as [[Affordances]] in a generative load test. ## Examples of emergent behaviors