{"id":190,"date":"2014-11-08T11:57:47","date_gmt":"2014-11-08T11:57:47","guid":{"rendered":"http:\/\/www.davefarley.net\/?p=190"},"modified":"2017-01-24T11:57:47","modified_gmt":"2017-01-24T11:57:47","slug":"strategies-for-effective-acceptance-testing-part-ii","status":"publish","type":"post","link":"https:\/\/www.davefarley.net\/?p=190","title":{"rendered":"Strategies for effective Acceptance Testing &#8211; Part II"},"content":{"rendered":"<div style=\"text-align: left; background-color: transparent; vertical-align: baseline; margin: 0px 0px 24px; padding: 0px; border: 0px none white;\">The second\u00a0part of my blog post on effective Acceptance Testing is now available on the XebiaLabs website\u2026<\/div>\n<div style=\"text-align: left; background-color: transparent; vertical-align: baseline; color: #666666; margin: 0px 0px 24px; padding: 0px 0px 0px 30px; border: 0px none white;\"><em style=\"text-align: left; background-color: transparent; vertical-align: baseline; font-style: italic; margin: 0px; padding: 0px; border: 0px none white;\">In my last blog post I described the characteristics of good Acceptance tests and how I tend to use a Domain Specific Language based approach to defining a language in which to specify my Acceptance Test cases. This time I\u2019d like to describe each of these desirable characteristics in a bit more detail and to reinforce why DSL\u2019s help.<\/em><\/div>\n<div style=\"text-align: left; background-color: transparent; vertical-align: baseline; color: #666666; margin: 0px 0px 24px; padding: 0px 0px 0px 30px; border: 0px none white;\"><em style=\"text-align: left; background-color: transparent; vertical-align: baseline; font-style: italic; margin: 0px; padding: 0px; border: 0px none white;\"><span style=\"text-align: left; background-color: transparent; vertical-align: baseline; font-weight: bold; margin: 0px; padding: 0px; border: 0px none white;\">To refresh you memory here are the desirable characteristics:<\/span><\/em><\/div>\n<ul style=\"text-align: left; background-color: transparent; vertical-align: baseline; color: #666666; list-style: square outside none; margin: 0px 0px 24px 1.5em; padding: 0px 0px 0px 30px; border: 0px none white;\">\n<li style=\"text-align: left; background-color: transparent; vertical-align: baseline; margin: 0px; padding: 0px; border: 0px none white;\"><em style=\"text-align: left; background-color: transparent; vertical-align: baseline; font-style: italic; margin: 0px; padding: 0px; border: 0px none white;\"><span style=\"text-align: left; background-color: transparent; vertical-align: baseline; font-weight: bold; margin: 0px; padding: 0px; border: 0px none white;\">Relevance<\/span>\u00a0&#8211; A good Acceptance test should assert behaviour from the perspective of some user of the System Under Test (SUT).<\/em><\/li>\n<li style=\"text-align: left; background-color: transparent; vertical-align: baseline; margin: 0px; padding: 0px; border: 0px none white;\"><em style=\"text-align: left; background-color: transparent; vertical-align: baseline; font-style: italic; margin: 0px; padding: 0px; border: 0px none white;\"><span style=\"text-align: left; background-color: transparent; vertical-align: baseline; font-weight: bold; margin: 0px; padding: 0px; border: 0px none white;\">Reliability \/ Repeatability\u00a0<\/span>&#8211; The test should give consistent, repeatable results.<\/em><\/li>\n<li style=\"text-align: left; background-color: transparent; vertical-align: baseline; margin: 0px; padding: 0px; border: 0px none white;\"><em style=\"text-align: left; background-color: transparent; vertical-align: baseline; font-style: italic; margin: 0px; padding: 0px; border: 0px none white;\"><span style=\"text-align: left; background-color: transparent; vertical-align: baseline; font-weight: bold; margin: 0px; padding: 0px; border: 0px none white;\">Isolation<\/span>\u00a0&#8211; The test should work in isolation and not depend, or be affected by, the results of other tests or other systems.<\/em><\/li>\n<li style=\"text-align: left; background-color: transparent; vertical-align: baseline; margin: 0px; padding: 0px; border: 0px none white;\"><em style=\"text-align: left; background-color: transparent; vertical-align: baseline; font-style: italic; margin: 0px; padding: 0px; border: 0px none white;\"><span style=\"text-align: left; background-color: transparent; vertical-align: baseline; font-weight: bold; margin: 0px; padding: 0px; border: 0px none white;\">Ease of Development<\/span>\u00a0&#8211; We want to create lots of tests, so they should be as easy as possible to write.<\/em><\/li>\n<li style=\"text-align: left; background-color: transparent; vertical-align: baseline; margin: 0px; padding: 0px; border: 0px none white;\"><em style=\"text-align: left; background-color: transparent; vertical-align: baseline; font-style: italic; margin: 0px; padding: 0px; border: 0px none white;\"><span style=\"text-align: left; background-color: transparent; vertical-align: baseline; font-weight: bold; margin: 0px; padding: 0px; border: 0px none white;\">Ease of Maintenance<\/span>\u00a0&#8211; When we change code that breaks tests, we want to home in on the problem and fix it quickly.<\/em><\/li>\n<\/ul>\n<div style=\"text-align: left; background-color: transparent; vertical-align: baseline; margin: 0px 0px 24px; padding: 0px; border: 0px none white;\"><a style=\"text-align: left; background-color: transparent; vertical-align: baseline; color: #0066cc; margin: 0px; padding: 0px; border: 0px none white;\" href=\"https:\/\/archive.is\/o\/LLhot\/blog.xebialabs.com\/2014\/10\/28\/strategies-effective-acceptance-testing-part-ii\/\">Goto the XebiaLags site to read more\u2026<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>The second\u00a0part of my blog post on effective Acceptance Testing is now available on the XebiaLabs website\u2026 In my last blog post I described the characteristics of good Acceptance tests and how I tend to use a Domain Specific Language &hellip; <a href=\"https:\/\/www.davefarley.net\/?p=190\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[18,5,16],"tags":[],"_links":{"self":[{"href":"https:\/\/www.davefarley.net\/index.php?rest_route=\/wp\/v2\/posts\/190"}],"collection":[{"href":"https:\/\/www.davefarley.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.davefarley.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.davefarley.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.davefarley.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=190"}],"version-history":[{"count":1,"href":"https:\/\/www.davefarley.net\/index.php?rest_route=\/wp\/v2\/posts\/190\/revisions"}],"predecessor-version":[{"id":191,"href":"https:\/\/www.davefarley.net\/index.php?rest_route=\/wp\/v2\/posts\/190\/revisions\/191"}],"wp:attachment":[{"href":"https:\/\/www.davefarley.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.davefarley.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=190"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.davefarley.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}