{"id":4380,"date":"2021-11-15T07:00:00","date_gmt":"2021-11-15T07:00:00","guid":{"rendered":"https:\/\/www.diogonunes.com\/blog\/?p=4380"},"modified":"2021-10-30T12:00:26","modified_gmt":"2021-10-30T11:00:26","slug":"testing-concepts-6","status":"publish","type":"post","link":"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/","title":{"rendered":"Testability (Concepts #6)"},"content":{"rendered":"<figure id=\"attachment_4386\" aria-describedby=\"caption-attachment-4386\" style=\"width: 580px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?resize=580%2C385&#038;ssl=1\" alt=\"\" width=\"580\" height=\"385\" class=\"size-large wp-image-4386\" srcset=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?resize=1024%2C680&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?resize=400%2C266&amp;ssl=1 400w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?resize=768%2C510&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?resize=1536%2C1020&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?resize=1200%2C797&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?w=1920&amp;ssl=1 1920w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?w=1740&amp;ssl=1 1740w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><figcaption id=\"caption-attachment-4386\" class=\"wp-caption-text\">Photo by <a href=\"https:\/\/unsplash.com\/@olloweb?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Agence Olloweb<\/a> on <a href=\"https:\/\/unsplash.com\/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Unsplash<\/a><br \/><\/figcaption><\/figure>\n<blockquote>\n<p><strong>tl;dr<\/strong> Testability measures the ability to test. When it&#8217;s easy, you get deeper and faster info about the product.<\/p>\n<\/blockquote>\n<p><!--more--><\/p>\n<h2>Theory<\/h2>\n<p>Testability measures our human ability to test \u2014 how skilled we are, how easy it is to test, and how deep we can go. One of the <a href=\"https:\/\/dialex.github.io\/start-testing\/#\/concepts\/tester-responsibilities.md\">responsibilities of a tester<\/a> is to advocate testability within the team, highlighting what is making testing harder or slower.<\/p>\n<blockquote>\n<p>If testing is questioning a product in order to evaluate it, then testability is anything that makes it easier to question or evaluate that product.<\/p>\n<p>When testing is hard or slow, bugs have more time and opportunity to stay hidden. Those bugs \u2014 deeper, less obvious, more intermittent \u2014 may be far worse than any bugs discovered so far.<\/p>\n<p>\u2014 <a href=\"http:\/\/www.developsense.com\/blog\/2017\/09\/deeper-testing-3-testability\/\">Michael Bolton<\/a><\/p>\n<\/blockquote>\n<p><a href=\"http:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.94.5966&amp;rep=rep1&amp;type=pdf\">Bret Pettichord<\/a> defines testability as visibility and control. <strong>Visibility<\/strong> is our ability to observe the states, outputs and other side effects of the system under test. <strong>Control<\/strong> is our ability to give inputs to the system under test or set it in specific states.<\/p>\n<p>Do not confuse with <a href=\"https:\/\/www.youtube.com\/watch?v=gL8hmAH4ZGM\">automatability<\/a> which measures how easy it is to automate the interaction and control of our system. For instance, <a href=\"https:\/\/dialex.github.io\/start-testing\/#\/fields\/logging.md\">logging<\/a> is a feature that improves <em>testability<\/em> because it helps humans inspect how the system works; browser cookies enhance <em>automatability<\/em> because it allows automation to control a user session.<\/p>\n<h2>Practice<\/h2>\n<p>There are four main groups of variables that influence testability: value-related, intrinsic, project-related and subjective. Below are some <a href=\"https:\/\/dialex.github.io\/start-testing\/#\/toolbox\/heuristics.md\">heuristics<\/a> adapted from <a href=\"http:\/\/www.satisfice.com\/tools\/testable.pdf\">James Bach<\/a>. To discover even more dimensions that influence testability, refer to <a href=\"https:\/\/mkedemo.wordpress.com\/2015\/11\/22\/dimensions-of-testability-v1-1\/\">Maria Kedemo<\/a>&#8216;s <strong>dimensions of testability<\/strong>.<\/p>\n<ul>\n<li><strong>Value<\/strong>: changing the quality standard or our knowledge of it.\n<ul>\n<li><a href=\"https:\/\/dialex.github.io\/start-testing\/#\/toolbox\/oracles.md\"><em>Oracles<\/em><\/a>. We need ways to detect each kind of problem that is worth looking for.<\/li>\n<li><em>Users<\/em>. The more we can talk to and observe users, the easier it is to test for them.<\/li>\n<li><em>Environment<\/em>. Testing is more accurate when performed in the users&#8217; environment (or similar).<\/li>\n<\/ul>\n<\/li>\n<li><strong>Intrinsic<\/strong> (aka. product): changing the system itself.\n<ul>\n<li><em>Reliability<\/em>. Issues slow down testing since we must stop to report them or work around them.<\/li>\n<li><em>Tolerance<\/em>. The less quality required or the more risk that can be taken, the less testing is needed.<\/li>\n<li><em>Controllability<\/em>. Ideally we can provide any possible input and invoke any possible state or combination of states easily and on demand.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Project<\/strong>: changing the conditions under which we test.\n<ul>\n<li><em>Information<\/em>. We get all information we want or need to test well.<\/li>\n<li><em>Sandboxing<\/em>. We are free to do any testing without fear of disrupting users or teams.<\/li>\n<li><em>Time<\/em>. We need time to think, prepare and deal with surprises.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Subjective<\/strong> (aka. tester): changing the tester or the test process.\n<ul>\n<li><a href=\"https:\/\/dialex.github.io\/start-testing\/#\/toolbox\/test-strategy.md\"><em>Test strategy<\/em><\/a>. A strategy will reduce waste by focusing the testing efforts on what matters.<\/li>\n<li><em>Context knowledge<\/em>. The more we know about the users and the system, the better we can test.<\/li>\n<li><em>Technical knowledge<\/em>. Our knowledge of technology and tools makes testing easier for us.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Here&#8217;s a <a href=\"https:\/\/dialex.github.io\/start-testing\/#\/toolbox\/mnemonics.md\">mnemonic<\/a> to remember these dimensions: usability, security and other -ilities are equally important; testability is VIP as well; thus testability dimensions are <strong><code>VIPS<\/code><\/strong> (<strong>v<\/strong>alue, <strong>i<\/strong>ntrinsic, <strong>p<\/strong>roject, <strong>s<\/strong>ubjective). Here&#8217;s another: <a href=\"https:\/\/www.a-sisyphean-task.com\/2012\/07\/putting-your-testability-socks-on.html\"><code>SOCKS<\/code><\/a>.<\/p>\n<p>This checklist adapted from <a href=\"https:\/\/testingisbelieving.blogspot.com\/2017\/08\/the-team-test-for-testability.html\">Ash Winter<\/a> can be used for a quick <strong>health check on your testability<\/strong>. For each question answer Yes (+1) or No (+0). If your final score is below 8, you are working under unnecessary risk.<\/p>\n<ol>\n<li>Do developers react positively when a bug is reported?<\/li>\n<li>Can anyone access a prioritised list of the open bugs?<\/li>\n<li>Does your team measure critical metrics about the system?<\/li>\n<li>Is it possible to simulate a failure of a dependency (e.g.. 3rd party)?<\/li>\n<li>Is it possible to test with enough isolation a specific system behaviour?<\/li>\n<li>Can any team member test an unfinished feature from their machines?<\/li>\n<li>Can you set your system into a given state to repeat a test?<\/li>\n<li>Can any team member create a test environment?<\/li>\n<li>Can you test on production (e.g.. feature flags)?<\/li>\n<li>Is it possible to see and query logs from production?<\/li>\n<li>Does your team have regular contact with the users of the system?<\/li>\n<li>Does your team maintain a knowledge base on how their system is built and tested?<\/li>\n<\/ol>\n<p>If you were unsatisfied with score you got, there are methods to improve it. Of course you have <del>boring<\/del> <del>expensive<\/del> <a href=\"https:\/\/www.tmmi.org\/tmmi-documents\/#\">maturity models<\/a> in the market to formally evaluate your testability. However, if you prefer something simple and tailored for your team you can use the <a href=\"http:\/\/www.huibschoots.nl\/wordpress\/wp-content\/uploads\/2017\/02\/Test-Improvement-Huib-Schoots-Joep-Schuurkes.pdf\"><strong>Test Improvement Assessment<\/strong><\/a>. Essentially your team selects which testability criteria are relevant for your context, scores them and finally agrees on how to improve. If you need hints on practices that can improve your system&#8217;s testability, <a href=\"http:\/\/www.developsense.com\/blog\/2009\/07\/testability\/\">Michael Bolton<\/a> has a few.<\/p>\n<p>Both the checklist and the assessment are practical methods to discuss testability. To visually <strong>report the state of testability<\/strong> you can use a <a href=\"https:\/\/dialex.github.io\/start-testing\/#\/toolbox\/note-taking.md\">mind map<\/a>, as illustrated (pun intended) by <a href=\"https:\/\/www.a-sisyphean-task.com\/2014\/07\/a-map-for-testability.html\">Adam Knight<\/a>.<\/p>\n<h2>Teachers<\/h2>\n<ul>\n<li><a href=\"https:\/\/testingisbelieving.blogspot.com\/2019\/02\/ask-me-anything-testability.html\">Ash Winter<\/a><\/li>\n<li><a href=\"http:\/\/www.pettichord.com\/\">Bret Pettichord<\/a><\/li>\n<li><a href=\"https:\/\/vimeo.com\/78912852\">James Bach<\/a><\/li>\n<li><a href=\"https:\/\/mkedemo.wordpress.com\/2015\/11\/22\/dimensions-of-testability-v1-1\/\">Maria Kedemo<\/a><\/li>\n<li><a href=\"http:\/\/www.developsense.com\/blog\/category\/testability\/\">Michael Bolton<\/a><\/li>\n<\/ul>\n<h2>Sources<\/h2>\n<ul>\n<li><a href=\"http:\/\/www.huibschoots.nl\/wordpress\/?p=2543\">Test improvement in an agile\/CD environment<\/a><\/li>\n<li><a href=\"https:\/\/testingisbelieving.blogspot.com\/2017\/08\/the-team-test-for-testability.html\">The team test for testability<\/a><\/li>\n<li><a href=\"http:\/\/www.developsense.com\/blog\/2017\/09\/deeper-testing-3-testability\/\">Deeper Testing: Testability<\/a><\/li>\n<li><a href=\"http:\/\/www.satisfice.com\/tools\/testable.pdf\">Heuristics of Software Testability<\/a><\/li>\n<li><a href=\"https:\/\/www.a-sisyphean-task.com\/2012\/07\/putting-your-testability-socks-on.html\">Putting Your Testability Socks On<\/a><\/li>\n<li><a href=\"https:\/\/www.a-sisyphean-task.com\/2014\/07\/a-map-for-testability.html\">A Map For Testability<\/a><\/li>\n<li><a href=\"http:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.94.5966&amp;rep=rep1&amp;type=pdf\">Design for Testability<\/a><\/li>\n<li><a href=\"https:\/\/dojo.ministryoftesting.com\/dojo\/lessons\/30-days-of-testability\">30 days of Testability challenge<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>tl;dr Testability measures the ability to test. When it&#8217;s easy, you get deeper and faster info about the product.<\/p>\n","protected":false},"author":1,"featured_media":4386,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[51],"tags":[86,55],"class_list":["post-4380","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-work","tag-course","tag-testing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Testability (Concepts #6) - The Geeky Gecko<\/title>\n<meta name=\"description\" content=\"Testability measures the ability to test. When it&#039;s easy, you get deeper and faster info about the product.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Testability (Concepts #6) - The Geeky Gecko\" \/>\n<meta property=\"og:description\" content=\"Testability measures the ability to test. When it&#039;s easy, you get deeper and faster info about the product.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/\" \/>\n<meta property=\"og:site_name\" content=\"The Geeky Gecko\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-15T07:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?fit=1920%2C1275&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1275\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Diogo Nunes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dialexnunes\" \/>\n<meta name=\"twitter:site\" content=\"@dialexnunes\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Diogo Nunes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/\"},\"author\":{\"name\":\"Diogo Nunes\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"headline\":\"Testability (Concepts #6)\",\"datePublished\":\"2021-11-15T07:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/\"},\"wordCount\":861,\"publisher\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"image\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?fit=1920%2C1275&ssl=1\",\"keywords\":[\"course\",\"testing\"],\"articleSection\":[\"Work\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/\",\"url\":\"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/\",\"name\":\"Testability (Concepts #6) - The Geeky Gecko\",\"isPartOf\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?fit=1920%2C1275&ssl=1\",\"datePublished\":\"2021-11-15T07:00:00+00:00\",\"description\":\"Testability measures the ability to test. When it's easy, you get deeper and faster info about the product.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?fit=1920%2C1275&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?fit=1920%2C1275&ssl=1\",\"width\":1920,\"height\":1275},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.diogonunes.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Testability (Concepts #6)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#website\",\"url\":\"https:\/\/www.diogonunes.com\/blog\/\",\"name\":\"The Geeky Gecko\",\"description\":\"The Geeky Gecko\",\"publisher\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.diogonunes.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\",\"name\":\"Diogo Nunes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1\",\"width\":799,\"height\":799,\"caption\":\"Diogo Nunes\"},\"logo\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/www.diogonunes.com\",\"https:\/\/x.com\/dialexnunes\"],\"url\":\"https:\/\/www.diogonunes.com\/blog\/author\/diogo-nunes\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Testability (Concepts #6) - The Geeky Gecko","description":"Testability measures the ability to test. When it's easy, you get deeper and faster info about the product.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/","og_locale":"en_US","og_type":"article","og_title":"Testability (Concepts #6) - The Geeky Gecko","og_description":"Testability measures the ability to test. When it's easy, you get deeper and faster info about the product.","og_url":"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/","og_site_name":"The Geeky Gecko","article_published_time":"2021-11-15T07:00:00+00:00","og_image":[{"width":1920,"height":1275,"url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?fit=1920%2C1275&ssl=1","type":"image\/jpeg"}],"author":"Diogo Nunes","twitter_card":"summary_large_image","twitter_creator":"@dialexnunes","twitter_site":"@dialexnunes","twitter_misc":{"Written by":"Diogo Nunes","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/#article","isPartOf":{"@id":"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/"},"author":{"name":"Diogo Nunes","@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"headline":"Testability (Concepts #6)","datePublished":"2021-11-15T07:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/"},"wordCount":861,"publisher":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"image":{"@id":"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?fit=1920%2C1275&ssl=1","keywords":["course","testing"],"articleSection":["Work"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/","url":"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/","name":"Testability (Concepts #6) - The Geeky Gecko","isPartOf":{"@id":"https:\/\/www.diogonunes.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/#primaryimage"},"image":{"@id":"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?fit=1920%2C1275&ssl=1","datePublished":"2021-11-15T07:00:00+00:00","description":"Testability measures the ability to test. When it's easy, you get deeper and faster info about the product.","breadcrumb":{"@id":"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/#primaryimage","url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?fit=1920%2C1275&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?fit=1920%2C1275&ssl=1","width":1920,"height":1275},{"@type":"BreadcrumbList","@id":"https:\/\/www.diogonunes.com\/blog\/testing-concepts-6\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.diogonunes.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Testability (Concepts #6)"}]},{"@type":"WebSite","@id":"https:\/\/www.diogonunes.com\/blog\/#website","url":"https:\/\/www.diogonunes.com\/blog\/","name":"The Geeky Gecko","description":"The Geeky Gecko","publisher":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.diogonunes.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c","name":"Diogo Nunes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1","width":799,"height":799,"caption":"Diogo Nunes"},"logo":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/www.diogonunes.com","https:\/\/x.com\/dialexnunes"],"url":"https:\/\/www.diogonunes.com\/blog\/author\/diogo-nunes\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/agence-olloweb-d9ILr-dbEdg-unsplash.jpg?fit=1920%2C1275&ssl=1","jetpack-related-posts":[{"id":4411,"url":"https:\/\/www.diogonunes.com\/blog\/testers-toolbox-5-mnemonics\/","url_meta":{"origin":4380,"position":0},"title":"Mnemonics (Toolbox #5)","author":"Diogo Nunes","date":"24 January, 2022","format":false,"excerpt":"tl;dr Mnemonics are memory shortcuts to retrieve information. Theory A mnemonic is a pattern of letters, ideas, or associations which helps remember something else. It is a learning technique that aids information retention and retrieval. \u2014 Wikipedia Your brain can store a lot of information, but sometimes it's hard to\u2026","rel":"","context":"In &quot;Work&quot;","block_context":{"text":"Work","link":"https:\/\/www.diogonunes.com\/blog\/category\/work\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/john-jennings-wRgNwR9CZDA-unsplash.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/john-jennings-wRgNwR9CZDA-unsplash.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/john-jennings-wRgNwR9CZDA-unsplash.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/john-jennings-wRgNwR9CZDA-unsplash.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/john-jennings-wRgNwR9CZDA-unsplash.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3867,"url":"https:\/\/www.diogonunes.com\/blog\/test-strategy-saddest-ppiratee-mnemonic\/","url_meta":{"origin":4380,"position":1},"title":"Creating a test strategy using questions","author":"Diogo Nunes","date":"7 December, 2020","format":false,"excerpt":"He doesn't have a test strategy \u261d\ufe0f \ud83c\udfc6 This post was featured in Software Testing Weekly, issue 49 The test strategy is defined at the start of the project and it can be revisited and reviewed during the duration of that project. The strategy is usually driven by the testers,\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/05\/SadPirate1.jpg?fit=640%2C360&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/05\/SadPirate1.jpg?fit=640%2C360&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/05\/SadPirate1.jpg?fit=640%2C360&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":4412,"url":"https:\/\/www.diogonunes.com\/blog\/testers-toolbox-6-dev-methodologies\/","url_meta":{"origin":4380,"position":2},"title":"Development processes (Toolbox #6)","author":"Diogo Nunes","date":"31 January, 2022","format":false,"excerpt":"tl;dr TDD, ATDD and BDD are different development practices that favour quality. \ud83c\udfc6 This post was featured in Software Testing Notes #44 Theory Neither of these methodologies are \"testing\" by itself. They are development practices that foster quality, which in turn make testing easier. TDD: (Unit) Test Driven Development Write\u2026","rel":"","context":"In &quot;Work&quot;","block_context":{"text":"Work","link":"https:\/\/www.diogonunes.com\/blog\/category\/work\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/annie-spratt-QckxruozjRg-unsplash.jpg?fit=1200%2C801&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/annie-spratt-QckxruozjRg-unsplash.jpg?fit=1200%2C801&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/annie-spratt-QckxruozjRg-unsplash.jpg?fit=1200%2C801&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/annie-spratt-QckxruozjRg-unsplash.jpg?fit=1200%2C801&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/10\/annie-spratt-QckxruozjRg-unsplash.jpg?fit=1200%2C801&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":4756,"url":"https:\/\/www.diogonunes.com\/blog\/types-2-test-categories-approaches-types\/","url_meta":{"origin":4380,"position":3},"title":"Test categories and approaches (Types #2)","author":"Diogo Nunes","date":"16 October, 2023","format":false,"excerpt":"\ud83c\udfc6 This post was featured in Software Testing Weekly #191 This is a very long post. You don't have to read it all in one go. Use it as a reference, anytime you want to check the purpose of a particular test type. Categories Functional testing Non-functional testing Black box\u2026","rel":"","context":"In &quot;Work&quot;","block_context":{"text":"Work","link":"https:\/\/www.diogonunes.com\/blog\/category\/work\/"},"img":{"alt_text":"lego pieces","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/08\/xavi-cabrera-kn-UmDZQDjM-unsplash.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/08\/xavi-cabrera-kn-UmDZQDjM-unsplash.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/08\/xavi-cabrera-kn-UmDZQDjM-unsplash.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/08\/xavi-cabrera-kn-UmDZQDjM-unsplash.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/08\/xavi-cabrera-kn-UmDZQDjM-unsplash.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":4307,"url":"https:\/\/www.diogonunes.com\/blog\/ama-e2e-tests\/","url_meta":{"origin":4380,"position":4},"title":"7 questions we all had about end-to-end tests","author":"Diogo Nunes","date":"4 October, 2021","format":false,"excerpt":"The summary of an Ask Me Anything session I hosted at my company \ud83c\udfc6 This post was featured in Software Testing Weekly, #92 and Software Testing Notes, #28 What\u2019s the definition of E2E in frontend? I don't think there's a definition specific to frontend (BE). An end-to-end test interacts with\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/09\/Knowledge-Sharing-E2E-tests-1.jpg?fit=960%2C540&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/09\/Knowledge-Sharing-E2E-tests-1.jpg?fit=960%2C540&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/09\/Knowledge-Sharing-E2E-tests-1.jpg?fit=960%2C540&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2021\/09\/Knowledge-Sharing-E2E-tests-1.jpg?fit=960%2C540&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":4709,"url":"https:\/\/www.diogonunes.com\/blog\/types-1-the-test-pyramid\/","url_meta":{"origin":4380,"position":5},"title":"The test pyramid model (Types #1)","author":"Diogo Nunes","date":"12 June, 2023","format":false,"excerpt":"\ud83c\udfc6 This post was featured in Software Testing Weekly #173 tl;dr A visual metaphor that groups tests into layers and recommends how many tests should exist in each of layers. This is part of my free testing course, focused on teaching you the fundamentals of testing \ud83d\ude09 Theory The concept\u2026","rel":"","context":"In &quot;Work&quot;","block_context":{"text":"Work","link":"https:\/\/www.diogonunes.com\/blog\/category\/work\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/05\/eugene-tkachenko-TF47p5PHW18-unsplash-1.jpg?fit=1200%2C738&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/05\/eugene-tkachenko-TF47p5PHW18-unsplash-1.jpg?fit=1200%2C738&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/05\/eugene-tkachenko-TF47p5PHW18-unsplash-1.jpg?fit=1200%2C738&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/05\/eugene-tkachenko-TF47p5PHW18-unsplash-1.jpg?fit=1200%2C738&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2023\/05\/eugene-tkachenko-TF47p5PHW18-unsplash-1.jpg?fit=1200%2C738&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/4380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/comments?post=4380"}],"version-history":[{"count":3,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/4380\/revisions"}],"predecessor-version":[{"id":4435,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/4380\/revisions\/4435"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/media\/4386"}],"wp:attachment":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/media?parent=4380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/categories?post=4380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/tags?post=4380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}