{"id":3964,"date":"2015-11-30T05:22:11","date_gmt":"2015-11-30T05:22:11","guid":{"rendered":"http:\/\/www.abstracta.us\/?p=3964"},"modified":"2025-05-05T21:21:27","modified_gmt":"2025-05-05T21:21:27","slug":"designing-performance-tests-little-bit-futurology","status":"publish","type":"post","link":"https:\/\/abstracta.us\/blog\/performance-testing\/designing-performance-tests-little-bit-futurology\/","title":{"rendered":"Designing Performance Tests With a Little Bit of Futurology"},"content":{"rendered":"<p><!-- Go to www.addthis.com\/dashboard to customize your tools --><script src=\"\/\/s7.addthis.com\/js\/300\/addthis_widget.js#pubid=ra-58d80a50fc4f926d\" type=\"text\/javascript\"><\/script><\/p>\n<h1><span style=\"font-weight: 400; color: #333333;\">Futurology: noun, systematically forecasting the future, especially from present trends in society<\/span><\/h1>\n<p><span style=\"font-weight: 400; color: #333333;\">I\u2019m not going to lie, I can\u2019t predict the future. I don\u2019t even know what I am going to eat for dinner most days, but in testing, sometimes we have to put our best hypotheses about the future to use.\u00a0<span style=\"font-weight: 400;\">When <strong>designing performance tests<\/strong>, specifically a load test (<\/span><span style=\"font-weight: 400;\">read<\/span><span style=\"font-weight: 400;\"> about the different types of performance tests), we should simulate a load that is as close to the real one as possible that the system will face, thereby reducing risk in production. <\/span><\/span><\/p>\n<p><span style=\"font-weight: 400; color: #333333;\">To design these tests it\u2019s usually important to do some background research by conducting interviews with analysts, business experts, developers, infrastructure managers, etc. to get a feel for the expected load of a system. Often, you can look at the usage statistics (meaning, analyzing the access log of the system) if it is already in production. With this information you can generally obtain the load that the system is <b>currently<\/b><span style=\"font-weight: 400;\"> used to experiencing. You can seek out when it\u2019s under the greatest stress and then simulate those moments. \u00a0<\/span><\/span><\/p>\n<p><span style=\"font-weight: 400; color: #333333;\">We have seen in some cases the importance of guiding the interviewee to think not only about the present load situation, <\/span><b>but also to think about the future<\/b><span style=\"color: #333333; font-weight: 400;\">. It should be emphasized when designing performance tests to not only base the load scenario on access logs, but also to take into account the <\/span><i><span style=\"color: #333333; font-weight: 400;\">projected<\/span><\/i><span style=\"color: #333333; font-weight: 400;\"> load. <\/span><\/p>\n<p><span style=\"font-weight: 400; color: #333333;\">A manager may read a performance report and say &#8220;Ok, with the load that we simulated, it seems that we won\u2019t have any problems with effectively supporting a load like last month\u2019s&#8230; but what if I do a marketing campaign and the site visits double?\u201d<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"This_is_Where_Futurology_Comes_In\"><\/span><strong><span style=\"color: #00b674;\">This is Where Futurology Comes In<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400; color: #333333;\">In certain situations, you can directly establish the expected load scenario (also known as the 100% load scenario) as the load that you project for the future. Another way is to define our scenario of 100% as 100% of the current production today, and then run a test target for 110% or 150%, according to how we deem it will grow. In this way, we systematically are forecasting the future, or say, using futurology! <\/span><\/p>\n<p><span style=\"font-weight: 400; color: #333333;\">This clearly affects the effort estimated for the test. When we estimate the time spent on the executions in general we think of reaching 100% of the load and if we go into \u201cover time,\u201d we run tests with a larger load. But, it would be desirable to include in the same time schedule, test executions at perhaps 150% and 200% of the actual load for example, or according to the projections that exist. <\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"How_Do_We_Know_the_Projected_Load\"><\/span><strong><span style=\"color: #00b674;\">How Do We Know the Projected Load?\u00a0<\/span><\/strong><span style=\"color: #00b674;\"><a style=\"color: #333333;\" href=\"http:\/\/www.abstracta.us\/wp-content\/uploads\/2015\/11\/downloading-compressor.jpg\" rel=\"attachment wp-att-4894\"><br \/>\n<img decoding=\"async\" class=\"aligncenter wp-image-4895 size-full\" src=\"http:\/\/www.abstracta.us\/wp-content\/uploads\/2015\/11\/downloading-compressor.jpg\" alt=\"designing performance tests with futurology post cartoon\" width=\"374\" height=\"455\" \/> <\/a><\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400; color: #333333;\">Is there some kind of crystal ball that will help us to determine the projected load?<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #333333;\"><b>Unfortunately, no. This is one of the major performance testing difficulties: estimating growth.<\/b><span style=\"font-weight: 400;\"> As futurologists, we can analyze the historical growth rates and use them as a predictor of future growth or involve other people inside the company, like the marketing team, for example, who are the ones with a clear growth target and a plan for achieving it.<\/span><\/span><\/p>\n<p><span style=\"font-weight: 400; color: #333333;\">Another major difficulty of these tests usually has to do with the database used. For example, if we define the load as the user activity three years into the future, considering the expected growth, but the volume of data in the database used doesn\u2019t contain the historical data that would result after three years of using the system, we would not be simulating the complete situation that the server would be exposed to.<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #333333;\">Keep in mind the task of generating such data, or else make it clear that the test does not include that aspect, which may leave some uncertainty, but as always, one aims to maximize the cost\/benefit ratio. So, if the cost of generating such data is very high, it might be preferable not to.<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #333333;\">Of course, since designing tests takes time and resources, it\u2019s important to be strategic. Ideally one would want to know at the very least, the maximum load that the system could possibly support, (independent of the client\u2019s expectations) simply to document the point at which the system breaks or to discover potential problems beforehand.<\/span><\/p>\n<p>How do you estimate the future expected load when designing performance tests?<\/p>\n<hr \/>\n<h2><span class=\"ez-toc-section\" id=\"Recommended_for_You\"><\/span><strong>Recommended for You<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a href=\"http:\/\/abstracta.us\/blog\/performance-testing\/new-challenges-performance-engineers\/\">Today&#8217;s New Challenges for Performance Engineers and How to Deal with Them<\/a><br \/>\n<a href=\"http:\/\/abstracta.us\/blog\/performance-testing\/software-performance-testing-fallacies-part-1\/\">Software Performance Testing Fallacies Part 1<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Futurology: noun, systematically forecasting the future, especially from present trends in society I\u2019m not going to lie, I can\u2019t predict the future. I don\u2019t even know what I am going to eat for dinner most days, but in testing, sometimes we have to put our&#8230;<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[50],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v14.0.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Designing Performance Tests with a Little Futurology | Abstracta<\/title>\n<meta name=\"description\" content=\"When designing performance tests, you must predict the number of concurrent users your system will have, hence using futurology! Here are some tips.\" \/>\n<meta name=\"robots\" content=\"index, follow\" \/>\n<meta name=\"googlebot\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta name=\"bingbot\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/abstracta.us\/blog\/performance-testing\/designing-performance-tests-little-bit-futurology\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Designing Performance Tests with a Little Futurology | Abstracta\" \/>\n<meta property=\"og:description\" content=\"When designing performance tests, you must predict the number of concurrent users your system will have, hence using futurology! Here are some tips.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/abstracta.us\/blog\/performance-testing\/designing-performance-tests-little-bit-futurology\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog about AI-powered quality engineering for teams building complex software | Abstracta\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/AbstractaQA\/\" \/>\n<meta property=\"article:published_time\" content=\"2015-11-30T05:22:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-05T21:21:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/abstracta.us\/wp-content\/uploads\/2015\/11\/futurology-min.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"420\" \/>\n\t<meta property=\"og:image:height\" content=\"236\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fltoledo\" \/>\n<meta name=\"twitter:site\" content=\"@AbstractaUS\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/abstracta.us\/blog\/#website\",\"url\":\"https:\/\/abstracta.us\/blog\/\",\"name\":\"Blog about AI-powered quality engineering for teams building complex software | Abstracta\",\"description\":\"AI-powered quality engineering\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/abstracta.us\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/designing-performance-tests-little-bit-futurology\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"http:\/\/www.abstracta.us\/wp-content\/uploads\/2015\/11\/downloading-compressor.jpg\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/designing-performance-tests-little-bit-futurology\/#webpage\",\"url\":\"https:\/\/abstracta.us\/blog\/performance-testing\/designing-performance-tests-little-bit-futurology\/\",\"name\":\"Designing Performance Tests with a Little Futurology | Abstracta\",\"isPartOf\":{\"@id\":\"https:\/\/abstracta.us\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/designing-performance-tests-little-bit-futurology\/#primaryimage\"},\"datePublished\":\"2015-11-30T05:22:11+00:00\",\"dateModified\":\"2025-05-05T21:21:27+00:00\",\"author\":{\"@id\":\"https:\/\/abstracta.us\/blog\/#\/schema\/person\/7421e539de0357d3adb0c69ed469a1c2\"},\"description\":\"When designing performance tests, you must predict the number of concurrent users your system will have, hence using futurology! Here are some tips.\",\"breadcrumb\":{\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/designing-performance-tests-little-bit-futurology\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/abstracta.us\/blog\/performance-testing\/designing-performance-tests-little-bit-futurology\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/designing-performance-tests-little-bit-futurology\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/abstracta.us\/blog\/\",\"url\":\"https:\/\/abstracta.us\/blog\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/\",\"url\":\"https:\/\/abstracta.us\/blog\/performance-testing\/\",\"name\":\"Performance Testing\"}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/designing-performance-tests-little-bit-futurology\/\",\"url\":\"https:\/\/abstracta.us\/blog\/performance-testing\/designing-performance-tests-little-bit-futurology\/\",\"name\":\"Designing Performance Tests With a Little Bit of Futurology\"}}]},{\"@type\":[\"Person\"],\"@id\":\"https:\/\/abstracta.us\/blog\/#\/schema\/person\/7421e539de0357d3adb0c69ed469a1c2\",\"name\":\"Federico Toledo, Chief Quality Officer at Abstracta\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/abstracta.us\/blog\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6de7ec6536c4028b5c02ad4ec1b9af0d?s=96&d=blank&r=g\",\"caption\":\"Federico Toledo, Chief Quality Officer at Abstracta\"},\"description\":\"Co-founder and COO of Abstracta\",\"sameAs\":[\"https:\/\/twitter.com\/fltoledo\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/posts\/3964"}],"collection":[{"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/comments?post=3964"}],"version-history":[{"count":11,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/posts\/3964\/revisions"}],"predecessor-version":[{"id":12014,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/posts\/3964\/revisions\/12014"}],"wp:attachment":[{"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/media?parent=3964"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/categories?post=3964"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/tags?post=3964"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}