{"id":1768,"date":"2015-07-06T17:20:08","date_gmt":"2015-07-06T17:20:08","guid":{"rendered":"http:\/\/www.abstracta.us\/?p=1768"},"modified":"2025-05-05T21:21:41","modified_gmt":"2025-05-05T21:21:41","slug":"execute-performance-test-fewer-problems","status":"publish","type":"post","link":"https:\/\/abstracta.us\/blog\/performance-testing\/execute-performance-test-fewer-problems\/","title":{"rendered":"How to Execute a Performance Test With Fewer Problems"},"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;\">Executing performance tests more effectively and efficiently<\/span><\/h1>\n<p><span style=\"font-weight: 400; color: #333333;\">A thought by <a href=\"https:\/\/twitter.com\/sbarber\" target=\"_blank\" rel=\"noopener\">Scott Barber<\/a>\u00a0<\/span><span style=\"font-weight: 400; color: #333333;\">with which I fully agree reflects part of what I want to discuss here:<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #333333;\">\u201cOnly performance testing at the conclusion of system or functional testing is like ordering a diagnostic blood test after the patient is dead.\u201d<\/span><\/p>\n<p><strong><span style=\"color: #333333;\">What we are interested in here at Abstracta, is how to execute a performance test most effectively and efficiently.\u00a0<\/span><\/strong><\/p>\n<p><span style=\"font-weight: 400; color: #333333;\">It&#8217;s typical for performance tests to be left until the end of a project (provided there is still time and money left in the budget), and without having done any previous research. This means that all performance problems are encountered at the end and all at once. This is not the most effective approach to performance testing because as Barber puts it, it may be as useless as running diagnostics on a dead patient. <\/span><\/p>\n<p><span style=\"font-weight: 400; color: #333333;\">Instead of running tests as an afterthought, let\u2019s consider what happens with functional tests. Most of the time, but unfortunately not always, unit tests are carried out by each developer prior to putting the system together. Once the system is integrated, integration tests are run and a new version is forwarded to an external testing team to perform the system testing as a whole.<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #333333;\">We believe that unit testing, applied to performance and to many other non-functional aspects as well, could result in a much more refined application upon the final testing stage. This way, fewer problems will arise at the end of the project.<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #333333;\"><a style=\"color: #333333;\" href=\"http:\/\/www.abstracta.us\/wp-content\/uploads\/2015\/07\/diagram.png\"><img decoding=\"async\" class=\"aligncenter wp-image-1774 size-full\" src=\"http:\/\/www.abstracta.us\/wp-content\/uploads\/2015\/07\/diagram.png\" alt=\"diagram\" width=\"1024\" height=\"768\" \/><\/a><\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Unit_Performance_Testing\"><\/span><strong><span style=\"color: #00b674;\">Unit Performance Testing<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400; color: #333333;\">It is not hard to implement a program for executing a method several times and to record the response times. While that goes on, we could check the database, the timing of SQLs, and whether indices were used correctly. We could also consider what would happen if the table grew in size among other things.<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #333333;\">This way, instead of just executing a method several times, that program could gather multiple processes to execute that method several times, always bearing in mind what will happen in production. We could measure the memory consumed, and how the connections pool is managed, or whether we will observe blocking among tables, etc.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Unit_performance_testing_advantages\"><\/span><strong><span style=\"color: #3056a2;\">Unit performance testing advantages<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><span style=\"font-weight: 400; color: #333333;\">Lower risk of encountering performance problems<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #333333;\">Problems are detected in advance, making solutions less expensive<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #333333;\">Developers are committed to performance and carry out verifications to avoid releasing modules with serious performance problems<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #333333;\">Developers become familiar with the use of their systems\u2019 resources and unveil the things in the code that generate problems in order to avoid them in the future<\/span><\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Unit_performance_testing_disadvantages\"><\/span><strong><span style=\"color: #3056a2;\">Unit performance testing disadvantages<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><span style=\"font-weight: 400; color: #333333;\">More time is needed to release the first version<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #333333;\">One must learn how to use monitoring tools<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400; color: #333333;\">Of course, this cannot be done with every method developed. However, we should take into account, for example, those most used and with the most demanding tasks in consumption, or those with more data processing, etc.<\/span><br \/>\n<span style=\"font-weight: 400; color: #333333;\"> These unit performance tests are obviously no substitute for performance tests. They are a way of being better prepared for them. They\u2019re not a substitution because the various functionalities are not tested together and no tests are run on the operations. Also, these tests are not carried out on a server similar to the production server, but rather on the development server.<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #333333;\">While many developers see performance testing as an afterthought, it is important to perform smaller intermittent tests during production. This way, in the end, the final performance test will result in fewer problems, a smaller chance of having to make major adjustments, and will ultimately lower costs.<\/span><\/p>\n<h2><\/h2>\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><span style=\"font-weight: 400; color: #00b674;\"><a href=\"http:\/\/abstracta.us\/blog\/performance-testing\/is-the-system-actually-running-slow\/\">Is the System Actually Running Slow?<\/a><\/span><br \/>\n<a href=\"http:\/\/abstracta.us\/blog\/performance-testing\/how-to-make-a-performance-test-plan\/\">How to Make a Performance Test Plan<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Executing performance tests more effectively and efficiently A thought by Scott Barber\u00a0with which I fully agree reflects part of what I want to discuss here: \u201cOnly performance testing at the conclusion of system or functional testing is like ordering a diagnostic blood test after the&#8230;<\/p>\n","protected":false},"author":3,"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>How to Execute A Performance Test With Fewer Problems | Abstracta<\/title>\n<meta name=\"description\" content=\"What we are interested in at Abstracta is how to execute a performance test most effectively and efficiently. Here are some tips we&#039;ve discovered!\" \/>\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\/execute-performance-test-fewer-problems\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Execute A Performance Test With Fewer Problems | Abstracta\" \/>\n<meta property=\"og:description\" content=\"What we are interested in at Abstracta is how to execute a performance test most effectively and efficiently. Here are some tips we&#039;ve discovered!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/abstracta.us\/blog\/performance-testing\/execute-performance-test-fewer-problems\/\" \/>\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-07-06T17:20:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-05T21:21:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/abstracta.us\/wp-content\/uploads\/2015\/07\/danger_tasterinprogress-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=\"@AbstractaUS\" \/>\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\/execute-performance-test-fewer-problems\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"http:\/\/www.abstracta.us\/wp-content\/uploads\/2015\/07\/diagram.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/execute-performance-test-fewer-problems\/#webpage\",\"url\":\"https:\/\/abstracta.us\/blog\/performance-testing\/execute-performance-test-fewer-problems\/\",\"name\":\"How to Execute A Performance Test With Fewer Problems | Abstracta\",\"isPartOf\":{\"@id\":\"https:\/\/abstracta.us\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/execute-performance-test-fewer-problems\/#primaryimage\"},\"datePublished\":\"2015-07-06T17:20:08+00:00\",\"dateModified\":\"2025-05-05T21:21:41+00:00\",\"author\":{\"@id\":\"https:\/\/abstracta.us\/blog\/#\/schema\/person\/78cd0dcae50ce820b25e86d3330e9762\"},\"description\":\"What we are interested in at Abstracta is how to execute a performance test most effectively and efficiently. Here are some tips we've discovered!\",\"breadcrumb\":{\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/execute-performance-test-fewer-problems\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/abstracta.us\/blog\/performance-testing\/execute-performance-test-fewer-problems\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/execute-performance-test-fewer-problems\/#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\/execute-performance-test-fewer-problems\/\",\"url\":\"https:\/\/abstracta.us\/blog\/performance-testing\/execute-performance-test-fewer-problems\/\",\"name\":\"How to Execute a Performance Test With Fewer Problems\"}}]},{\"@type\":[\"Person\"],\"@id\":\"https:\/\/abstracta.us\/blog\/#\/schema\/person\/78cd0dcae50ce820b25e86d3330e9762\",\"name\":\"Sof\\u00eda Palamarchuk, Co-CEO at Abstracta\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/abstracta.us\/blog\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/222e8b1136482564fe25acc4de2b9b7a?s=96&d=blank&r=g\",\"caption\":\"Sof\\u00eda Palamarchuk, Co-CEO at Abstracta\"},\"description\":\"Co-Chief Executive Officer at Abstracta\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/posts\/1768"}],"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\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/comments?post=1768"}],"version-history":[{"count":17,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/posts\/1768\/revisions"}],"predecessor-version":[{"id":17539,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/posts\/1768\/revisions\/17539"}],"wp:attachment":[{"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/media?parent=1768"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/categories?post=1768"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/tags?post=1768"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}