{"id":8662,"date":"2017-09-25T22:20:50","date_gmt":"2017-09-26T03:20:50","guid":{"rendered":"https:\/\/daedtech.wpenginepowered.com\/?p=8662"},"modified":"2017-09-25T22:20:50","modified_gmt":"2017-09-26T03:20:50","slug":"unit-testing-enough","status":"publish","type":"post","link":"https:\/\/daedtech.com\/unit-testing-enough\/","title":{"rendered":"How Much Unit Testing is Enough?"},"content":{"rendered":"<p><em>Editorial note: I originally wrote this post for the TechTown blog. \u00a0You can <a href=\"http:\/\/techtowntraining.com\/resources\/blog\/how-much-unit-testing-enough\">check out the original here, at their site<\/a>. \u00a0While you&#8217;re there, have a look at their training and course offerings.<\/em><\/p>\n<p>I work as an independent consultant, and I also happen to have created a book and some courses about unit testing. \u00a0So I\u00a0field a lot of questions about the subject. \u00a0In fact, companies sometimes bring me in specifically to help their developers adopt the practice. \u00a0And those efforts usually fall into a predictable pattern.<\/p>\n<p>Up until the moment that I arrive, most of the developers have spent zero time unit testing. \u00a0But nevertheless, they have all found <em>something<\/em> to occupy them full time at the office. \u00a0So they must now choose: do less of something else or start working overtime for the sake of unit testing.<\/p>\n<p>This choice obviously inspires little enthusiasm. \u00a0Most developers I meet in my travels are conscientious folks. \u00a0They&#8217;ve been giving it their all and so they interpret this new thing that takes them away from their duties as a hindrance. \u00a0And, in spite of signing a contract to bring me in, management harbors the same worry. \u00a0While they buy into the long term benefit, they fret the short term cost.<\/p>\n<p><a href=\"https:\/\/daedtech.com\/wp-content\/uploads\/2014\/11\/MoreMaintainable.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-4458\" src=\"https:\/\/daedtech.com\/wp-content\/uploads\/2014\/11\/MoreMaintainable-1024x859.jpg\" alt=\"\" width=\"1024\" height=\"859\" srcset=\"https:\/\/daedtech.com\/wp-content\/uploads\/2014\/11\/MoreMaintainable-1024x859.jpg 1024w, https:\/\/daedtech.com\/wp-content\/uploads\/2014\/11\/MoreMaintainable-300x251.jpg 300w, https:\/\/daedtech.com\/wp-content\/uploads\/2014\/11\/MoreMaintainable.jpg 1027w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>All of this leads to a very predictable question. \u00a0How much unit testing is enough?<\/p>\n<p>Clients invariably ask me this, and usually they ask it almost immediately. \u00a0They want to understand how to spend the minimum amount of time required to realize benefits, but not a second longer. \u00a0This way they can return to the pressing matters they&#8217;ve delayed for the sake of learning this new skill.<\/p>\n<p><!--more--><\/p>\n<h3>Defining Unit Testing<\/h3>\n<p>Now, before we go any further, let&#8217;s establish a working definition of unit testing. \u00a0You might have something specific in mind when you hear this term, but it does cause a fair bit of confusion.<\/p>\n<p>For instance, early in my career, I remember a dev manager with a curious (to me) definition of unit testing. \u00a0He meant making changes to the application and then running it to see what happened. \u00a0He reasoned that if you&#8217;d just, say, added a new text box to a form, that addition represented a &#8220;unit.&#8221; \u00a0So next you would &#8220;unit test&#8221; by compiling and running the app and observing that it now, in fact, had your new text box. \u00a0Given his definition of the word unit, it&#8217;s hard to argue his semantics. \u00a0Nevertheless, I do not plan to use this definition.<\/p>\n<p>Instead, I&#8217;ll go with something much closer to <a href=\"https:\/\/martinfowler.com\/bliki\/UnitTest.html\">Martin Fowler&#8217;s definition<\/a>\u00a0or what the folks at <a href=\"https:\/\/www.industriallogic.com\/blog\/history-microtests\/\">Industrial Logic call a microtest<\/a>. \u00a0The terminology gets confusing because of the vagueness of the term &#8220;unit.&#8221; \u00a0Let&#8217;s address this by thinking of a unit as a method\/function in your code. \u00a0You use unit tests to test methods in your code.<\/p>\n<p>Now, moving beyond that, we can describe their specific properties, so as not to confuse them with things like integration tests, system tests, and acceptance tests. \u00a0First, we&#8217;ll only talk about automated tests, which knocks the aforementioned dev manager&#8217;s definition right out. \u00a0In terms of scope, unit tests operate on pieces of code in your codebase in isolation, and they run\u00a0<em>quickly<\/em>. \u00a0If it triggers a file write or a the coordination of many classes in your codebase, that&#8217;s not a unit test. \u00a0And, finally, done right, these things tend to be small &#8212; only a handful of lines of code each.<\/p>\n<h3>How Teams Quantify Their Unit Testing<\/h3>\n<p>In my experience, teams in the early stages of adoption try to quantify the testing effort in one of three basic ways. \u00a0I&#8217;ll list those quickly and then describe them in more detail.<\/p>\n<ul>\n<li>&#8220;Amount&#8221; of test code (number of unit tests or lines of test code)<\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Code_coverage\">Code coverage<\/a> (usually statement or branch coverage)<\/li>\n<li>Time spent on the test suite<\/li>\n<\/ul>\n<p>For the first consideration, teams decide to shoot for\u00a0some amount of unit test code. \u00a0I&#8217;ve seen more variants than I can really recall, but some common ones include raw number of tests, raw lines of test code, number of test per class, and number of tests per method. \u00a0Whatever the flavor, they chase some ratio of test\/verification code to production code.<\/p>\n<p>Second, some aspiring unit test practitioners pursue coverage. \u00a0When people say that their test suite\u00a0<em>covers<\/em> a given statement or branch in the codebase, they mean that some test in the suite causes that statement to execute or traverses that branch. \u00a0Coverage tells you nothing but this.<\/p>\n<p>And, finally, I&#8217;ll see them establish amount of time to spend on the suite. \u00a0Generally, this means a percentage of the team&#8217;s work week or something. \u00a0<em>From now on, spend 90% of your time writing code and 10% working on unit tests.<\/em><\/p>\n<p>One or more of these things, they reason, will ensure that the team does &#8220;enough&#8221; unit testing.<\/p>\n<h3>Getting Past the Proxies<\/h3>\n<p>Let&#8217;s now get down to brass tacks. \u00a0When management decides on some metric like this, they&#8217;re pursuing some kind of <a href=\"https:\/\/www.freshbooks.com\/support\/what-is-a-profit-and-loss-report\">profit and loss<\/a> goal. \u00a0In other words, management doesn&#8217;t say, &#8220;gosh, I&#8217;d love to work at a company with 65% code coverage.&#8221; \u00a0Instead, they say something more like this.<\/p>\n<blockquote><p>Our reputation is taking an absolute beating lately with all of these bugs. \u00a0We need to fix this, and I read on <a href=\"http:\/\/www.cio.com\/\">cio.com<\/a>\u00a0that unit testing can fix that. \u00a0But we can&#8217;t just tell the developers to unit test &#8212; we need to measure adoption of the practice. \u00a0We&#8217;ll know we&#8217;re in good shape when test coverage hits 65%.<\/p><\/blockquote>\n<p>The unit test quantification thus represents a\u00a0<em>proxy<\/em> for what the business actually needs. \u00a0In this case, it needs to stop shipping code with defects to stem the tide of dissatisfied customers.<\/p>\n<p>That tide translates into lost money. \u00a0So the business suddenly becomes willing to hire some consultant to come in and to help stop the bleeding. \u00a0The business views the unit test initiative as an <em>investment<\/em>. \u00a0But the business struggles to understand when it realizes its return on this investment, so it guesses with proxies.<\/p>\n<h3>Cost-Benefit of a Test Suite<\/h3>\n<p>I&#8217;ll punt for now on the matter of &#8220;enough&#8221; unit testing. \u00a0First, I want to establish that your test suite has benefits and it also has costs.<\/p>\n<p>To drive this point home, consider an extreme example. \u00a0Imagine an expansive test suite. \u00a0The development team spent months implementing it. \u00a0It involves tens of thousands of tests, and those tests cover 100% of all statements and branches in your entire codebase. \u00a0But the test suite never asserts (tests) anything. \u00a0That&#8217;s right. \u00a0Its tests just call methods in the code care not a whit what happens. \u00a0This test suite hits all of the metrics, but it isn&#8217;t enough. \u00a0How could it be enough when it confers zero benefit to the business?<\/p>\n<p>This test suite does have a cost, though. \u00a0The team spent months on it and they collect salary. \u00a0As they change the code in the future, they&#8217;ll need to continue changing the tests, which takes more effort. \u00a0And that doesn&#8217;t account for opportunity cost, either.<\/p>\n<p>Now you won&#8217;t wind up implementing a test suite with cost and no benefit. \u00a0But neither will (can) you implement one with all benefit and no cost. \u00a0Instead, you can only implement a unit testing suite as efficiently as possible &#8212; trying to realize the most benefit for the least cost, ensuring that the thing pays for itself.<\/p>\n<h3>Enough Unit Testing<\/h3>\n<p>That leads back to the tricky question of how much represents enough. \u00a0If you setup a proxy metric, you&#8217;ll hit it. \u00a0I promise. \u00a0Your team will write 1,000 tests or achieve 65% coverage, even if it has to write zero-benefit unit tests in order to hit those goals. \u00a0I&#8217;ve seen that play out over and over again.<\/p>\n<p>So forget the proxy goals and understand that\u00a0<em>it&#8217;s really hard to answer<\/em> the core question here. \u00a0Enough is going to vary a lot, depending on context, business needs, team skill, and many more factors. \u00a0But what won&#8217;t vary is the business calculation involved. \u00a0You have enough unit testing when adding additional tests costs you more than those tests will save you. \u00a0This may mean simple dollars, or it might be a function of risk.<\/p>\n<p>If that seems wishy-washy, I have good news. \u00a0While you won&#8217;t ever arrive at the point where you can say, &#8220;okay, stop at unit test 3,882 because its marginal cost exceeds its marginal benefit,&#8221; you can develop an intuitive feel for this as a group. \u00a0As your team upskills in unit testing, it becomes more efficient at it, bringing the cost way down. \u00a0It also develops a sense for these diminishing returns. \u00a0&#8220;I&#8217;ve covered all of the decision points in this method, so adding more tests now would be a waste.&#8221;<\/p>\n<p>Unit testing is a long play and a long range investment, but I&#8217;ve rarely seen shops express regret for making it. \u00a0So how much unit testing is enough? \u00a0Get your team really good at doing it, and, using their knowledge of your business and code, they&#8217;ll be able to tell you far better than I can.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Editorial note: I originally wrote this post for the TechTown blog. \u00a0You can check out the original here, at their site. \u00a0While you&#8217;re there, have a look at their training and course offerings. I work as an independent consultant, and I also happen to have created a book and some courses about unit testing. \u00a0So&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[71],"tags":[226,13],"class_list":["post-8662","post","type-post","status-publish","format-standard","hentry","category-language-agnostic","tag-techtown","tag-unit-testing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How Much Unit Testing is Enough? - DaedTech<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/techtowntraining.com\/resources\/blog\/how-much-unit-testing-enough\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"How Much Unit Testing is Enough? - DaedTech\" \/>\n<meta name=\"twitter:description\" content=\"Editorial note: I originally wrote this post for the TechTown blog. \u00a0You can check out the original here, at their site. \u00a0While you&#8217;re there, have a look at their training and course offerings. I work as an independent consultant, and I also happen to have created a book and some courses about unit testing. \u00a0So...\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/daedtech.com\/wp-content\/uploads\/2014\/11\/MoreMaintainable.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Erik Dietrich\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/techtowntraining.com\\\/resources\\\/blog\\\/how-much-unit-testing-enough#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/unit-testing-enough\\\/\"},\"author\":{\"name\":\"Erik Dietrich\",\"@id\":\"https:\\\/\\\/daedtech.com\\\/#\\\/schema\\\/person\\\/3dae63e91a0fa60c8051a2171fa687d2\"},\"headline\":\"How Much Unit Testing is Enough?\",\"datePublished\":\"2017-09-26T03:20:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/unit-testing-enough\\\/\"},\"wordCount\":1551,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/#organization\"},\"image\":{\"@id\":\"http:\\\/\\\/techtowntraining.com\\\/resources\\\/blog\\\/how-much-unit-testing-enough#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/daedtech.com\\\/wp-content\\\/uploads\\\/2014\\\/11\\\/MoreMaintainable-1024x859.jpg\",\"keywords\":[\"TechTown\",\"Unit Testing\"],\"articleSection\":[\"Language Agnostic\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\\\/\\\/techtowntraining.com\\\/resources\\\/blog\\\/how-much-unit-testing-enough#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/daedtech.com\\\/unit-testing-enough\\\/\",\"url\":\"http:\\\/\\\/techtowntraining.com\\\/resources\\\/blog\\\/how-much-unit-testing-enough\",\"name\":\"How Much Unit Testing is Enough? - DaedTech\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\\\/\\\/techtowntraining.com\\\/resources\\\/blog\\\/how-much-unit-testing-enough#primaryimage\"},\"image\":{\"@id\":\"http:\\\/\\\/techtowntraining.com\\\/resources\\\/blog\\\/how-much-unit-testing-enough#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/daedtech.com\\\/wp-content\\\/uploads\\\/2014\\\/11\\\/MoreMaintainable-1024x859.jpg\",\"datePublished\":\"2017-09-26T03:20:50+00:00\",\"breadcrumb\":{\"@id\":\"http:\\\/\\\/techtowntraining.com\\\/resources\\\/blog\\\/how-much-unit-testing-enough#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/techtowntraining.com\\\/resources\\\/blog\\\/how-much-unit-testing-enough\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\\\/\\\/techtowntraining.com\\\/resources\\\/blog\\\/how-much-unit-testing-enough#primaryimage\",\"url\":\"https:\\\/\\\/daedtech.com\\\/wp-content\\\/uploads\\\/2014\\\/11\\\/MoreMaintainable.jpg\",\"contentUrl\":\"https:\\\/\\\/daedtech.com\\\/wp-content\\\/uploads\\\/2014\\\/11\\\/MoreMaintainable.jpg\",\"width\":1027,\"height\":862},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\\\/\\\/techtowntraining.com\\\/resources\\\/blog\\\/how-much-unit-testing-enough#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/daedtech.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How Much Unit Testing is Enough?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/daedtech.com\\\/#website\",\"url\":\"https:\\\/\\\/daedtech.com\\\/\",\"name\":\"DaedTech\",\"description\":\"Stories about Software\",\"publisher\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/daedtech.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/daedtech.com\\\/#organization\",\"name\":\"DaedTech LLC\",\"url\":\"https:\\\/\\\/daedtech.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/daedtech.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/daedtech.com\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/SmallLogo.jpg\",\"contentUrl\":\"https:\\\/\\\/daedtech.com\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/SmallLogo.jpg\",\"width\":82,\"height\":84,\"caption\":\"DaedTech LLC\"},\"image\":{\"@id\":\"https:\\\/\\\/daedtech.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/daedtech.com\\\/#\\\/schema\\\/person\\\/3dae63e91a0fa60c8051a2171fa687d2\",\"name\":\"Erik Dietrich\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/691ca004bd18f464e9467b2f838e8fbc7a9a2c9eb8568b04a834ac653f3ab1d7?s=96&d=wavatar&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/691ca004bd18f464e9467b2f838e8fbc7a9a2c9eb8568b04a834ac653f3ab1d7?s=96&d=wavatar&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/691ca004bd18f464e9467b2f838e8fbc7a9a2c9eb8568b04a834ac653f3ab1d7?s=96&d=wavatar&r=pg\",\"caption\":\"Erik Dietrich\"},\"sameAs\":[\"https:\\\/\\\/daedtech.com\"],\"url\":\"https:\\\/\\\/daedtech.com\\\/author\\\/erik\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How Much Unit Testing is Enough? - DaedTech","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":"http:\/\/techtowntraining.com\/resources\/blog\/how-much-unit-testing-enough","twitter_card":"summary_large_image","twitter_title":"How Much Unit Testing is Enough? - DaedTech","twitter_description":"Editorial note: I originally wrote this post for the TechTown blog. \u00a0You can check out the original here, at their site. \u00a0While you&#8217;re there, have a look at their training and course offerings. I work as an independent consultant, and I also happen to have created a book and some courses about unit testing. \u00a0So...","twitter_image":"https:\/\/daedtech.com\/wp-content\/uploads\/2014\/11\/MoreMaintainable.jpg","twitter_misc":{"Written by":"Erik Dietrich","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/techtowntraining.com\/resources\/blog\/how-much-unit-testing-enough#article","isPartOf":{"@id":"https:\/\/daedtech.com\/unit-testing-enough\/"},"author":{"name":"Erik Dietrich","@id":"https:\/\/daedtech.com\/#\/schema\/person\/3dae63e91a0fa60c8051a2171fa687d2"},"headline":"How Much Unit Testing is Enough?","datePublished":"2017-09-26T03:20:50+00:00","mainEntityOfPage":{"@id":"https:\/\/daedtech.com\/unit-testing-enough\/"},"wordCount":1551,"commentCount":3,"publisher":{"@id":"https:\/\/daedtech.com\/#organization"},"image":{"@id":"http:\/\/techtowntraining.com\/resources\/blog\/how-much-unit-testing-enough#primaryimage"},"thumbnailUrl":"https:\/\/daedtech.com\/wp-content\/uploads\/2014\/11\/MoreMaintainable-1024x859.jpg","keywords":["TechTown","Unit Testing"],"articleSection":["Language Agnostic"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/techtowntraining.com\/resources\/blog\/how-much-unit-testing-enough#respond"]}]},{"@type":"WebPage","@id":"https:\/\/daedtech.com\/unit-testing-enough\/","url":"http:\/\/techtowntraining.com\/resources\/blog\/how-much-unit-testing-enough","name":"How Much Unit Testing is Enough? - DaedTech","isPartOf":{"@id":"https:\/\/daedtech.com\/#website"},"primaryImageOfPage":{"@id":"http:\/\/techtowntraining.com\/resources\/blog\/how-much-unit-testing-enough#primaryimage"},"image":{"@id":"http:\/\/techtowntraining.com\/resources\/blog\/how-much-unit-testing-enough#primaryimage"},"thumbnailUrl":"https:\/\/daedtech.com\/wp-content\/uploads\/2014\/11\/MoreMaintainable-1024x859.jpg","datePublished":"2017-09-26T03:20:50+00:00","breadcrumb":{"@id":"http:\/\/techtowntraining.com\/resources\/blog\/how-much-unit-testing-enough#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/techtowntraining.com\/resources\/blog\/how-much-unit-testing-enough"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/techtowntraining.com\/resources\/blog\/how-much-unit-testing-enough#primaryimage","url":"https:\/\/daedtech.com\/wp-content\/uploads\/2014\/11\/MoreMaintainable.jpg","contentUrl":"https:\/\/daedtech.com\/wp-content\/uploads\/2014\/11\/MoreMaintainable.jpg","width":1027,"height":862},{"@type":"BreadcrumbList","@id":"http:\/\/techtowntraining.com\/resources\/blog\/how-much-unit-testing-enough#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/daedtech.com\/"},{"@type":"ListItem","position":2,"name":"How Much Unit Testing is Enough?"}]},{"@type":"WebSite","@id":"https:\/\/daedtech.com\/#website","url":"https:\/\/daedtech.com\/","name":"DaedTech","description":"Stories about Software","publisher":{"@id":"https:\/\/daedtech.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/daedtech.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/daedtech.com\/#organization","name":"DaedTech LLC","url":"https:\/\/daedtech.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/daedtech.com\/#\/schema\/logo\/image\/","url":"https:\/\/daedtech.com\/wp-content\/uploads\/2015\/07\/SmallLogo.jpg","contentUrl":"https:\/\/daedtech.com\/wp-content\/uploads\/2015\/07\/SmallLogo.jpg","width":82,"height":84,"caption":"DaedTech LLC"},"image":{"@id":"https:\/\/daedtech.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/daedtech.com\/#\/schema\/person\/3dae63e91a0fa60c8051a2171fa687d2","name":"Erik Dietrich","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/691ca004bd18f464e9467b2f838e8fbc7a9a2c9eb8568b04a834ac653f3ab1d7?s=96&d=wavatar&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/691ca004bd18f464e9467b2f838e8fbc7a9a2c9eb8568b04a834ac653f3ab1d7?s=96&d=wavatar&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/691ca004bd18f464e9467b2f838e8fbc7a9a2c9eb8568b04a834ac653f3ab1d7?s=96&d=wavatar&r=pg","caption":"Erik Dietrich"},"sameAs":["https:\/\/daedtech.com"],"url":"https:\/\/daedtech.com\/author\/erik\/"}]}},"_links":{"self":[{"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/posts\/8662","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/comments?post=8662"}],"version-history":[{"count":0,"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/posts\/8662\/revisions"}],"wp:attachment":[{"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/media?parent=8662"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/categories?post=8662"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daedtech.com\/wp-json\/wp\/v2\/tags?post=8662"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}