{"id":312,"date":"2015-12-09T19:43:40","date_gmt":"2015-12-09T18:43:40","guid":{"rendered":"http:\/\/oso.com.pl\/?p=312"},"modified":"2015-12-31T08:27:09","modified_gmt":"2015-12-31T07:27:09","slug":"assumptions-testing","status":"publish","type":"post","link":"https:\/\/oso.com.pl\/?p=312&lang=en","title":{"rendered":"Assumptions testing"},"content":{"rendered":"<p>A failed browser extension release we did recently reminded me of an interesting presentation\u00a0a job applicant once gave. A short talk on any topic was part\u00a0of a hiring process for our team back then, and this\u00a0candidate\u00a0decided to talk about <em>assumptions testing<\/em>. Now I don&#8217;t remember the exact slides or words, but I do remember the spirit of the message, and I will try to describe it here.<\/p>\n<p>This person defined assumptions testing as a technique in which you deliberately try to identify the expectations you have about the object of your testing. And try breaking\u00a0the assumptions\u00a0in hope of\u00a0identifying issues with the item under test.<\/p>\n<p>There are\u00a0two types\u00a0of assumptions you can make in this context:<\/p>\n<ul>\n<li><strong>Explicit<\/strong>\u00a0assumptions &#8211; known and declared. Defined product limitations, for example.\u00a0They may appear as statements on\u00a0what user would never do. And the tester\u00a0performing assumptions testing would naturally not only ask, &#8222;why do we believe user would never do it?&#8221;, but would actually also perform that very action. The idea behind performing such test is to trying to catch serious product malfunctions before they can do real harm. An example that comes to mind here may be plane doors. One may make an assumption that no passenger would ever attempt to open them in flight. But it happens, <a href=\"https:\/\/www.google.com\/search?q=attempts+to+open+plane+door&amp;oq=attempts+to+open+plane+door&amp;aqs=chrome..69i57j0.3999j0j4&amp;sourceid=chrome&amp;es_sm=119&amp;ie=UTF-8\" target=\"_blank\">many times per year<\/a>. So a prudent assumptions tester would come up with a scenario to test exactly that.<\/li>\n<li><strong>Implicit<\/strong> assumptions &#8211; unknown and undeclared. Could be something that is related to engineering culture at your company, or your individual experience. These may be harder to identify than the explicit ones, but there are methods\u00a0that can help:\n<ul>\n<li>Peer reviews of test plans and testcases: especially when the reviewer is not directly involved in the project, so less likely to make assumptions about the solution, and is more likely to ask questions that\u00a0break them.<\/li>\n<li>Templates: I am not a big fan of documentation, but in some cases you can prepare templates that trigger questions similar to the ones a peer reviewer would ask.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Not breaking either type of\u00a0assumptions may be\u00a0equally catastrophic. In our case of the failed browser extension release the assumption made was an implicit one: this browser extension had never had any issues with upgrading, so testing the upgrade scenario never came to our minds. Fresh installation we tested worked well. But we broke the extension for any user that upgraded it. Lesson learned.<a href=\"http:\/\/oso.com.pl\/wp-content\/uploads\/2015\/11\/assumptions.png\"><br \/>\n<\/a><\/p>\n<p><a href=\"http:\/\/oso.com.pl\/wp-content\/uploads\/2015\/11\/assumptions.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"345\" data-permalink=\"https:\/\/oso.com.pl\/?attachment_id=345\" data-orig-file=\"https:\/\/oso.com.pl\/wp-content\/uploads\/2015\/11\/assumptions.png\" data-orig-size=\"2000,1314\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"assumptions\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/oso.com.pl\/wp-content\/uploads\/2015\/11\/assumptions-1024x673.png\" class=\"aligncenter wp-image-345\" src=\"http:\/\/oso.com.pl\/wp-content\/uploads\/2015\/11\/assumptions-1024x673.png\" alt=\"assumptions\" width=\"500\" height=\"329\" srcset=\"https:\/\/oso.com.pl\/wp-content\/uploads\/2015\/11\/assumptions-1024x673.png 1024w, https:\/\/oso.com.pl\/wp-content\/uploads\/2015\/11\/assumptions-300x197.png 300w, https:\/\/oso.com.pl\/wp-content\/uploads\/2015\/11\/assumptions.png 2000w\" sizes=\"auto, (max-width: 500px) 85vw, 500px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A failed browser extension release we did recently reminded me of an interesting presentation\u00a0a job applicant once gave. A short talk on any topic was part\u00a0of a hiring process for our team back then, and this\u00a0candidate\u00a0decided to talk about assumptions testing. Now I don&#8217;t remember the exact slides or words, but I do remember the &hellip; <a href=\"https:\/\/oso.com.pl\/?p=312&#038;lang=en\" class=\"more-link\">Czytaj dalej<span class=\"screen-reader-text\"> \u201eAssumptions testing\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[20],"tags":[23],"class_list":["post-312","post","type-post","status-publish","format-standard","hentry","category-testing","tag-testing"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p217OK-52","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/oso.com.pl\/index.php?rest_route=\/wp\/v2\/posts\/312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oso.com.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oso.com.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oso.com.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oso.com.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=312"}],"version-history":[{"count":13,"href":"https:\/\/oso.com.pl\/index.php?rest_route=\/wp\/v2\/posts\/312\/revisions"}],"predecessor-version":[{"id":355,"href":"https:\/\/oso.com.pl\/index.php?rest_route=\/wp\/v2\/posts\/312\/revisions\/355"}],"wp:attachment":[{"href":"https:\/\/oso.com.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=312"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oso.com.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=312"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oso.com.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}