{"id":277,"date":"2011-04-02T11:10:35","date_gmt":"2011-04-02T09:10:35","guid":{"rendered":"http:\/\/blog.asym.dk\/?p=277"},"modified":"2011-04-02T11:10:35","modified_gmt":"2011-04-02T09:10:35","slug":"acceptance-tests-are-not-enough","status":"publish","type":"post","link":"https:\/\/www.asym.dk\/index.php\/2011\/04\/02\/acceptance-tests-are-not-enough\/","title":{"rendered":"Acceptance tests are not enough!"},"content":{"rendered":"<p>Acceptance testing is a key method in Agile. One way of defining acceptance tests are <a title=\"Link to Gojko Adzic's pages on himself\" href=\"http:\/\/gojko.net\/\" target=\"_blank\" rel=\"noopener noreferrer\">Gojko Adzic<\/a>&#8216;s \u201dSpecification by example\u201d paradigm which has gained quite a bit of momentum lately. I personally found it to be both refreshing and nice when I heard him present it at Agile Testing Days 2009, and I also found his book <a title=\"Page about the book\" href=\"http:\/\/www.acceptancetesting.info\/the-book\/\" target=\"_blank\" rel=\"noopener noreferrer\">Bridging the Communication Gap<\/a> a nice read.<br \/>\n<figure id=\"attachment_279\" aria-describedby=\"caption-attachment-279\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/asymaps.files.wordpress.com\/2011\/04\/gojko_adzic.jpg\"><img loading=\"lazy\" class=\"size-medium wp-image-279\" title=\"Gojko Adzic at Agile Testing Days 2009\" src=\"http:\/\/asymaps.files.wordpress.com\/2011\/04\/gojko_adzic.jpg?w=300\" alt=\"Photo of Gojko Adzic demonstrating communication gaps in his keynote presentation at Agile Testing Days 2009\" width=\"300\" height=\"264\" srcset=\"https:\/\/www.asym.dk\/wp-content\/uploads\/2011\/04\/gojko_adzic.jpg 1908w, https:\/\/www.asym.dk\/wp-content\/uploads\/2011\/04\/gojko_adzic-300x264.jpg 300w, https:\/\/www.asym.dk\/wp-content\/uploads\/2011\/04\/gojko_adzic-1024x902.jpg 1024w, https:\/\/www.asym.dk\/wp-content\/uploads\/2011\/04\/gojko_adzic-768x676.jpg 768w, https:\/\/www.asym.dk\/wp-content\/uploads\/2011\/04\/gojko_adzic-1536x1352.jpg 1536w, https:\/\/www.asym.dk\/wp-content\/uploads\/2011\/04\/gojko_adzic-1200x1057.jpg 1200w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-279\" class=\"wp-caption-text\">Gojko Adzic demonstrating communication gaps at Agile Testing Days 2009<\/figcaption><\/figure><br \/>\nI&#8217;m sceptical of the concept of acceptance testing. Not because verification  of agreed functionality is not a good thing, but because it tends to  shift attention to verification instead of exploration.<br \/>\nThis will shift attention from testing to problem prevention. Is that  bad, you ask? Isn&#8217;t it better to prevent problems than to discover  them?<br \/>\nWell, most people think \u201dwhy didn&#8217;t I prevent this from happening?\u201d  when problems do happen. Feelings of regret are natural in that  situation and that feeling can lead you into thinking you should improve  your problem prevention. And maybe you should, but more examples aren&#8217;t  going to do it!<br \/>\nReal testing is still necessary.<br \/>\nTo explain why, I&#8217;ll consult one of the great early 20&#8217;th century mathematical philosophers: <a title=\"Link to article about Kurt G\u00f6del at Wikipedia\" href=\"http:\/\/en.wikipedia.org\/wiki\/Kurt_G%C3%B6del\" target=\"_blank\" rel=\"noopener noreferrer\">Kurt G\u00f6del<\/a>. In particular his <a title=\"Link to article about G\u00f6dels incompleteness theorems on Wikipedia\" href=\"http:\/\/en.wikipedia.org\/wiki\/G%C3%B6del%27s_incompleteness_theorems\" target=\"_blank\" rel=\"noopener noreferrer\">first incompleteness theorem<\/a>.  It says that no consistent system of axioms whose theorems can be  listed by an &#8220;effective procedure&#8221; is capable of proving all facts about  the natural numbers.<br \/>\nWhat does this mean to us?<br \/>\nIt means that we will never be able to list all things that can be done with this particular set of data.<br \/>\nA specification is a kind of listing of \u201dvalid things to do\u201d with  data, thus G\u00f6del&#8217;s theorem teaches us that there are infinitely more  things to a system than any long list of requirements. This also applies  when the requirements are listed as examples.<br \/>\nIf you&#8217;re in the business to deliver products of only \u201dagreed  quality\u201d to a customer, you can be all right only verifying things which  are explicity agreed. If something goes wrong you can always claim: \u201dIt  wasn&#8217;t in the specification!\u201d<br \/>\nBut if you&#8217;re striving for quality in a broader sense, verifying that  the system works according to specifications is never going to be  enough.<br \/>\nGojko has made a good contribution to agile. Examples can be useful  and efficient communication tools, and if they are used correctly they  can help making users and other interested parties better aware of  what&#8217;s going on on the other side. His contribution can help <em>bridge a communication gap<\/em>. It can also produce excellent input for automated unit tests.<br \/>\nJust don&#8217;t let it consume your precious testing time. The real testing goes far beyond verification of documented requirements!<br \/>\nIf you want to learn more about this, I recommend you sign up for one of the <a title=\"Link to Michael Bolton's page on the RST course\" href=\"http:\/\/www.developsense.com\/courses.html\" target=\"_blank\" rel=\"noopener noreferrer\">Rapid Software Testing<\/a> courses offered by <a title=\"Link to James's pages\" href=\"http:\/\/www.satisfice.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">James Bach<\/a> and <a title=\"Link to Michael's company home page\" href=\"http:\/\/www.developsense.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Michael Bolton<\/a>.<br \/>\n<figure id=\"attachment_284\" aria-describedby=\"caption-attachment-284\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/asymaps.files.wordpress.com\/2011\/04\/dsc00107bsmalls.jpg\"><img loading=\"lazy\" class=\"size-medium wp-image-284\" title=\"Michael Bolton teaching Rapid Software Testing\" src=\"http:\/\/asymaps.files.wordpress.com\/2011\/04\/dsc00107bsmalls.jpg?w=300\" alt=\"Photo from Rapid Software Testing course in London November 2010 as offered by Electromind\" width=\"300\" height=\"258\" srcset=\"https:\/\/www.asym.dk\/wp-content\/uploads\/2011\/04\/dsc00107bsmalls.jpg 1251w, https:\/\/www.asym.dk\/wp-content\/uploads\/2011\/04\/dsc00107bsmalls-300x259.jpg 300w, https:\/\/www.asym.dk\/wp-content\/uploads\/2011\/04\/dsc00107bsmalls-1024x884.jpg 1024w, https:\/\/www.asym.dk\/wp-content\/uploads\/2011\/04\/dsc00107bsmalls-768x663.jpg 768w, https:\/\/www.asym.dk\/wp-content\/uploads\/2011\/04\/dsc00107bsmalls-1200x1036.jpg 1200w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-284\" class=\"wp-caption-text\">Michael Bolton with one of the many interesting and challenging test exercises at the RST course<\/figcaption><\/figure><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Acceptance testing is a key method in Agile. One way of defining acceptance tests are Gojko Adzic&#8216;s \u201dSpecification by example\u201d paradigm which has gained quite a bit of momentum lately. I personally found it to be both refreshing and nice when I heard him present it at Agile Testing Days 2009, and I also found [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[9,10,12,26],"_links":{"self":[{"href":"https:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/posts\/277"}],"collection":[{"href":"https:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/comments?post=277"}],"version-history":[{"count":0,"href":"https:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/posts\/277\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/media?parent=277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/categories?post=277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.asym.dk\/index.php\/wp-json\/wp\/v2\/tags?post=277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}