{"id":1417,"date":"2023-02-15T13:06:31","date_gmt":"2023-02-15T18:06:31","guid":{"rendered":"https:\/\/testing.sqalogic.com\/?p=1417"},"modified":"2023-10-25T09:30:35","modified_gmt":"2023-10-25T14:30:35","slug":"test-surcharge-verification-de-build-bvt","status":"publish","type":"post","link":"https:\/\/sqalogic.com\/en\/test-surcharge-verification-de-build-bvt\/","title":{"rendered":"Qu&rsquo;est-ce qu&rsquo;un bon test de surcharge lors des Tests de v\u00e9rification de build (BVT)"},"content":{"rendered":"<h3>\u201cBuild Verification\u201d Stress Test in a nutshell<\/h3>\n<p>Before answering this let me point out that I used the word \u201cstress\u201d and not \u201cperformance\u201d.  That\u2019s because performance degradation is only one of the potential finds of a good CI stress test, with errors being the other.  So, before we talk about what makes a good one let\u2019s talk about what doesn\u2019t.<\/p>\n<p>A test like you would use in regular pre-release load testing is not a good one for several reasons.  These normally run for some period of time, up to an hour or longer, with ramp up, hold and ramp down times included.  We need something more like the POST (power on self-test) your laptop goes through when you first turn it on \u2013 get as much done in the shortest amount of time possible, making sure there are no glaring errors or performance degradation issues before promoting the build (or bringing up Windows on your laptop in the case of the POST test).<\/p>\n<h3>\u201cEngines on Blocks\u201d methodology<\/h3>\n<p>The methodology I use is called \u201cEngines on Blocks\u201d because it\u2019s modeled after the test harnesses that automobile engines are installed and tested in before putting them in a car at the factory.  It\u2019s not a lengthy test but it does rev the engine at 80 or 90 for a couple minutes to see if it sputters and dies.  Even though only 1 or 2% fail at this stage, the cost of finding and fixing them here is much, much less than discovering it later down the line.  Same goes for your application, and hence the need for a build verification test.<\/p>\n<p>One thing that isn\u2019t needed is think time \u2013 what is there to think about anyway?  We are not trying to model user behavior we are trying to run a 3-to-5-minute stress using the minimum number of threads needed to rev the CPU up to 80, just like that car engine.  And we should be testing a happy path through the core functionality of the application, not merely logging in, traversing the menus, and logging out (although even that is better than nothing).<\/p>\n<p>Your CI or build verification test represents the velocity of your core business transaction, where milliseconds count.   Since this test is run many times, it becomes easy to spot historical trends and to know exactly when performance degradation first begins to happen so it can be fixed before it degrades further.<\/p>\n<h3>Numerous challenges ahead<\/h3>\n<p>Running load tests as part of the CI test pipeline is challenging for a number of reasons.  They don\u2019t simply pass or fail the way functional tests do and since every application is different there are different criteria for what should cause a failure.  All the usual requirements of a load test, including test data and test users, sill apply, including the state of the database itself, before and after the test.  Backing out the added transactions to avoid leaving clutter behind is always a good idea.<\/p>\n<div class=\"entry-content\">\n<p>Has anyone out there in our readers tried this at your company?  If so, would you like to share your experience with the rest of us?<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>A test like you would use as part of a regular load test before a release is not a good test for several reasons.<\/p>","protected":false},"author":1,"featured_media":1419,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[36],"tags":[31,32],"class_list":["post-1417","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-test-de-charge","tag-test-de-surcharge","tag-tests-de-verification-de-build-bvt"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/sqalogic.com\/en\/wp-json\/wp\/v2\/posts\/1417","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sqalogic.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sqalogic.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sqalogic.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sqalogic.com\/en\/wp-json\/wp\/v2\/comments?post=1417"}],"version-history":[{"count":5,"href":"https:\/\/sqalogic.com\/en\/wp-json\/wp\/v2\/posts\/1417\/revisions"}],"predecessor-version":[{"id":4788,"href":"https:\/\/sqalogic.com\/en\/wp-json\/wp\/v2\/posts\/1417\/revisions\/4788"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sqalogic.com\/en\/wp-json\/wp\/v2\/media\/1419"}],"wp:attachment":[{"href":"https:\/\/sqalogic.com\/en\/wp-json\/wp\/v2\/media?parent=1417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sqalogic.com\/en\/wp-json\/wp\/v2\/categories?post=1417"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sqalogic.com\/en\/wp-json\/wp\/v2\/tags?post=1417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}