{"id":239,"date":"2018-04-01T22:49:22","date_gmt":"2018-04-01T20:49:22","guid":{"rendered":"http:\/\/testhexen.de\/?p=239"},"modified":"2018-04-01T22:51:00","modified_gmt":"2018-04-01T20:51:00","slug":"dear-m-i-hear-you-want-to-learn-something-about-testing","status":"publish","type":"post","link":"https:\/\/testhexen.de\/?p=239","title":{"rendered":"Dear M, I Hear You Want to Learn Something About Testing?"},"content":{"rendered":"<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">As you are a manager, let me use an analogy. Assume, we are creating a dessert from a given recipe, a chocolate cheesecake, with hot cherries and vanilla sauce. <\/span><\/span><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">What plan would you create to make sure the result is yummy?<\/span><\/span><\/p>\n<h2><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">The Process Model<\/span><\/span><\/h2>\n<p>I<span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">n this case you know what you want to achieve, and you generally know how to do it, the only insecurity is if you are able to follow a recipe. So I would take this as a simple problem, with some possible complications \u2013 calling for a \u201ejust do it\u201c approach, with possible iterations for feedback, if possible. No agile, really, this is not complex enough.<\/span><\/span><\/p>\n<h2><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">The Architecture<\/span><\/span><\/h2>\n<p><span lang=\"EN-US\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">The dessert consists of several components: the dough for the cake, the filling, the little baking pans, the vanilla sauce, the cherries. These components are made of ingredients, like butter, sugar, curd cheese, vanilla, cocoa &#8211; <\/span><a href=\"http:\/\/testhexen.de\/wp-admin\/baketotheroots.de\/russischer-zupfkuchen\/\">here<\/a><\/span><span style=\"color: #000000; font-family: Calibri;\"> is a nice recipe with the complete list for the cake, plus eggs, cream, cinnamon etc. for the other components. \u00a0The components are then integrated into little cakes, and later into cakes sitting on top of a bit of vanilla sauce and enhanced with hot cherries.<\/span><\/span><\/p>\n<figure id=\"attachment_241\" aria-describedby=\"caption-attachment-241\" style=\"width: 1024px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-241 size-large\" src=\"http:\/\/testhexen.de\/wp-content\/uploads\/2018\/04\/cakepyramide-1024x576.png\" alt=\"\" width=\"1024\" height=\"576\" srcset=\"https:\/\/testhexen.de\/wp-content\/uploads\/2018\/04\/cakepyramide-1024x576.png 1024w, https:\/\/testhexen.de\/wp-content\/uploads\/2018\/04\/cakepyramide-300x169.png 300w, https:\/\/testhexen.de\/wp-content\/uploads\/2018\/04\/cakepyramide-768x432.png 768w, https:\/\/testhexen.de\/wp-content\/uploads\/2018\/04\/cakepyramide-356x200.png 356w, https:\/\/testhexen.de\/wp-content\/uploads\/2018\/04\/cakepyramide.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption id=\"caption-attachment-241\" class=\"wp-caption-text\">Cake testing pyramid<\/figcaption><\/figure>\n<h2><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">The Test Plan<\/span><\/span><\/h2>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">What do I need to test? Functionality is obvious: does it taste well? Does it look appetizing? Is the smell seductive?<\/span><\/span><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">But then you would have to decide what to test else: <\/span><\/span><\/p>\n<ul>\n<li><span style=\"color: #000000;\"><span lang=\"EN-US\"><span style=\"font-family: Calibri;\">Usability: how easy is it to eat the desert, without spilling the red sauce on your white shirt or without having it fall apart while eating -&gt; Yes<\/span><\/span><\/span><\/li>\n<li><span style=\"color: #000000;\"><span lang=\"EN-US\"><span style=\"font-family: Calibri;\">Maintainablility or operationability: hm, I guess it got a rather short life span, so here we could take the risk of not testing it: -&gt; No<\/span><\/span><\/span><\/li>\n<li><span style=\"color: #000000;\"><span lang=\"EN-US\"><span style=\"font-family: Calibri;\">Efficiency: well if you find someone who wants to do a load or stress test \u2013 I guess, go for it. This way you could also test, if the dessert is good for your health <\/span><\/span><span lang=\"EN-US\"><span style=\"font-family: Calibri;\"> -&gt; maybe<\/span><\/span><\/span><\/li>\n<li><span style=\"color: #000000;\"><span lang=\"EN-US\"><span style=\"font-family: Calibri;\">Reliability: is the dessert fault tolerant? Is it still good, if one of the components fails? Can I recover it to a full scope dessert? -&gt; Yes, you could.<\/span><\/span><\/span><\/li>\n<\/ul>\n<h2><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">And When Will You Test What?<\/span><\/span><\/h2>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Here the standard means to help decide is the testing pyramid. From here you easily read your test levels: <\/span><\/span><\/p>\n<h3><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Unit Test<\/span><\/span><\/h3>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Check if all ingredients are good and well suited. Is that fine crystal shaped stuff really sugar or is it salt? Is the butter soft enough to be processed, are the baking pans clean and a little warm?<\/span><\/span><\/p>\n<ul>\n<li><span lang=\"EN-US\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">Test tools: your fingers, a spoon, your tongue, <\/span><\/span><\/span><\/li>\n<li><span lang=\"EN-US\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">Test methods: taste, touch, \u2026 <\/span><\/span><\/span><\/li>\n<\/ul>\n<h3><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Component Test<\/span><\/span><\/h3>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">are the components fulfilling the correct expectations? In component test you test what you have not been able to test before. So even if you still would find out now that that crystal shaped stuff was salt, it would be rather annoying to find out now. You\u2019d have to throw everything away. So now you would want to only have to test the component in total only: is it the right amount of sugar, do you have enough better to grease the complete pan? Is the vanilla sauce fluid enough to be poured? <img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-242 size-thumbnail\" src=\"http:\/\/testhexen.de\/wp-content\/uploads\/2018\/04\/IMG_20180322_184825-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/span><\/span><\/p>\n<ul>\n<li><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Test tools: your fingers, a spoon, your tongue, your eyes\u2026. <\/span><\/span><\/li>\n<li><span lang=\"EN-US\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">Test methods: taste, touch, \u2026 <\/span><\/span><\/span><\/li>\n<\/ul>\n<h3><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Integration Test<\/span><\/span><\/h3>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Now you get to the level where testing is sexy. Why? Because you know you have done all the boring details before! And now the culmination of your knowledge starts: what is different on this level of integration? What have you not been able to see before? What do you have now because of integration? I mean, you get the chance to test, if you got enough butter in the pan so that the dough does not stick to it while not yet baked. You get the chance to see if there is enough filling to get all pans with dough filled\u2026. <\/span><\/span><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Test tools and Test methods as before. Only on a different object. <\/span><\/span><\/p>\n<h3><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">System Integration Test<\/span><\/span><\/h3>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">On top after integration there is the baking and cooking. To make it short: the new test here is: do you still get the cake out of the pan? Does the cake survive sitting in the vanilla sauce? Would the hot cherries cover all the beautiful chocolate dough pieces in the filling or can you still see something?<\/span><\/span><\/p>\n<ul>\n<li><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Test tools would have to be extended by a knife, a plate, \u2026 <\/span><\/span><\/li>\n<li><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Test methods: some kind of business process test could help here: the process would be for example putting everything together\u2026 <\/span><\/span><\/li>\n<\/ul>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Actually, this would be the level for load test and usability test. You got all you need for it. But you also can consider who could do it. In this not so very complex situation, you could decide that you skip this at this point in time, but do it in the next level:<\/span><\/span><\/p>\n<h3><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">User Acceptance Test<\/span><\/span><\/h3>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">EAT IT. <\/span><\/span><\/p>\n<ul>\n<li><span lang=\"EN-US\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">Test tools: fork, mouth, tongue, eyes, fingers, \u2026 <\/span><\/span><\/span><\/li>\n<li><span lang=\"EN-US\"><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Test methods: for example, put yourself into different personas, who would eat the dessert: the manager, the rookie, the long-term team member\u2026 invite all your family and friends for the load test.<\/span><\/span><\/span>\n<p><figure id=\"attachment_243\" aria-describedby=\"caption-attachment-243\" style=\"width: 300px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-243 size-medium\" src=\"http:\/\/testhexen.de\/wp-content\/uploads\/2018\/04\/IMG_20180322_212317-300x224.jpg\" alt=\"\" width=\"300\" height=\"224\" srcset=\"https:\/\/testhexen.de\/wp-content\/uploads\/2018\/04\/IMG_20180322_212317-300x224.jpg 300w, https:\/\/testhexen.de\/wp-content\/uploads\/2018\/04\/IMG_20180322_212317-768x574.jpg 768w, https:\/\/testhexen.de\/wp-content\/uploads\/2018\/04\/IMG_20180322_212317-1024x766.jpg 1024w, https:\/\/testhexen.de\/wp-content\/uploads\/2018\/04\/IMG_20180322_212317-267x200.jpg 267w, https:\/\/testhexen.de\/wp-content\/uploads\/2018\/04\/IMG_20180322_212317.jpg 2016w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-243\" class=\"wp-caption-text\">The final product<\/figcaption><\/figure><\/li>\n<\/ul>\n<h3><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Retrospective<\/span><\/span><\/h3>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Not a standard test level, but a good practice. What could you have done better in process? Maybe first prototype one little cake, and then lead through the whole process to see if all is fine? To make sure you got enough butter in the pan? Or you got enough filling for all the dough? I guess this would have to be evaluated in the specific situation. <\/span><\/span><\/p>\n<h2>So&#8230;<\/h2>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">dear M. now you know how you could approach the test of the dessert. Want to know more? Test methods in detail, or testing in agile, or\u2026 that could be part of a next letter\u2026\u00a0<\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As you are a manager, let me use an analogy. Assume, we are creating a dessert from a given recipe, a chocolate cheesecake, with hot cherries and vanilla sauce. What plan would you create to make sure the result is yummy? The Process Model In this case you know what &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-239","post","type-post","status-publish","format-standard","hentry","category-not-so-serious"],"_links":{"self":[{"href":"https:\/\/testhexen.de\/index.php?rest_route=\/wp\/v2\/posts\/239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/testhexen.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/testhexen.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/testhexen.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/testhexen.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=239"}],"version-history":[{"count":10,"href":"https:\/\/testhexen.de\/index.php?rest_route=\/wp\/v2\/posts\/239\/revisions"}],"predecessor-version":[{"id":252,"href":"https:\/\/testhexen.de\/index.php?rest_route=\/wp\/v2\/posts\/239\/revisions\/252"}],"wp:attachment":[{"href":"https:\/\/testhexen.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/testhexen.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/testhexen.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}