{"id":82984,"date":"2018-10-25T07:00:43","date_gmt":"2018-10-25T04:00:43","guid":{"rendered":"https:\/\/www.javacodegeeks.com\/?p=82984"},"modified":"2018-10-24T17:36:36","modified_gmt":"2018-10-24T14:36:36","slug":"simple-testing-prevent-critical-failures","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html","title":{"rendered":"Simple Testing Can Prevent Most Critical Failures"},"content":{"rendered":"<p>Error handling is one of the hardest and ignored part of software development and if system is distributed then this becomes even harder.<\/p>\n<p>Nice paper is written on\u00a0<a href=\"https:\/\/www.usenix.org\/system\/files\/conference\/osdi14\/osdi14-paper-yuan.pdf\">Simple Testing Can Prevent Most Critical Failures<\/a><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/10\/office-space-that-would-be-great-yeah-if-you-could-work-this-weekend-to-fix-the-code-on-test-thatd-b.jpg\"><span style=\"color: #333333;\">\u00a0topic.<\/span><\/a><\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/10\/office-space-that-would-be-great-yeah-if-you-could-work-this-weekend-to-fix-the-code-on-test-thatd-b.jpg\"><img decoding=\"async\" class=\"aligncenter wp-image-83000 size-full\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/10\/office-space-that-would-be-great-yeah-if-you-could-work-this-weekend-to-fix-the-code-on-test-thatd-b.jpg\" alt=\"Error handling\" width=\"300\" height=\"251\" \/><\/a><\/p>\n<p>Every developer should read this paper. I will try to summarized key take away from this paper but will suggest to read the paper to get more details about it.<\/p>\n<p>Distributed system outage is common and some of the recent example are<\/p>\n<p><a href=\"https:\/\/www.theverge.com\/2018\/10\/16\/17987280\/youtube-down-outage\">Youtube was down on Oct,2018 for around 1+ hour<\/a><\/p>\n<p><a href=\"https:\/\/www.theverge.com\/2018\/7\/16\/17577654\/amazon-prime-day-website-down-deals-service-disruption\">Amazon was down during Prime day on July,2018<\/a><\/p>\n<p><a href=\"https:\/\/thenextweb.com\/google\/2017\/09\/12\/google-down-gmail-youtube-maps\/\">Google services like Map,Gmail,Youtube were down numerous time in 2018<\/a><\/p>\n<p><a href=\"https:\/\/www.express.co.uk\/life-style\/science-technology\/1004842\/Facebook-down-not-working-issues\">Facebook was also down apart from many data leak issues they are facing.<\/a><\/p>\n<p>This paper talks about catastrophic failure that happened in distributed system like Cassandra, Hbase , HDFS, Redis, Map Reduce.<\/p>\n<p>As per paper most of the errors are due to 2 reason<\/p>\n<p>&#8211; Failure happens due to complex sequence of events<\/p>\n<p>&#8211; Catastrophic error are due to incorrect handling<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>&#8211; I will include 3rd one on &#8220;ignoring of design pressure&#8221; which i wrote in\u00a0<a href=\"http:\/\/ashkrit.blogspot.com\/2018\/05\/design-pressure-on-engineering-team.html\">design-pressure-on-engineering-team<\/a>\u00a0post<\/p>\n<p>Example from HBase outage<\/p>\n<p>1 &#8211; Load balancer Transfer region R from Slave A to Slave<\/p>\n<p>2 &#8211; Slave B open region R<\/p>\n<p>3 &#8211; Master delete current Zookeeper region R after it is owned by Slave B<\/p>\n<p>4 &#8211; Slave B dies<\/p>\n<p>5 &#8211; Region R is assigned to Slave C &amp; Slave C open the region<\/p>\n<p>6 &#8211; Master tries to delete Slave B znode on Zookeeper and because Slave b is down and whole cluster goes down due to wrong error handling code.<\/p>\n<p>In above example sequence of event matters to reproduce issue.<\/p>\n<p>HDFS failure when block is not replicated.<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/10\/HDFS-Failure.gif\"><img decoding=\"async\" class=\"aligncenter wp-image-83001 size-large\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/10\/HDFS-Failure-1024x243.gif\" alt=\"Error handling\" width=\"620\" height=\"147\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/10\/HDFS-Failure-1024x243.gif 1024w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/10\/HDFS-Failure-300x71.gif 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2018\/10\/HDFS-Failure-768x182.gif 768w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>In this example also sequence of event and when new data node starts it exposes bug of system.<\/p>\n<p>Paper has many more examples.<\/p>\n<p>Root cause of error<\/p>\n<p>92% of the catastrophic error happens due to incorrect error handling.<\/p>\n<p>What this means is that error was deducted but error handling code was not good, does this sound like lots of project you have worked on !<\/p>\n<p>1 &#8211; Error are ignored<br \/>\nThis is reason of 25% of the failure, i think number will be high in many live system.<\/p>\n<pre class=\"brush:bash\">eg of such error\r\ncatch(RebootException e) {\r\nlog.info(\"Reboot occurred....\")\r\n}<\/pre>\n<p>Yes this harmless looking log statement is ignoring exception and is very common anti pattern of error handling.<\/p>\n<p>2 &#8211; Overcatch exception<br \/>\nThis is also very common like having generic catch block and bringing down the whole system<\/p>\n<pre class=\"brush:bash\">catch(Throwable e) {\r\ncluster.abort()\r\n}<\/pre>\n<p>3 &#8211; TODO\/FIXME in comments<br \/>\nYes real distributed system in production also has lots of TODO\/FIXME in critical section of code.<\/p>\n<p>Some other example of error handling<\/p>\n<pre class=\"brush:bash\"><i>} catch (IOException e) {<\/i>\r\n\r\n<i>\u00a0\/\/ will never happen <\/i>\r\n\r\n<i>\u00a0}<\/i>\r\n\r\n<i>} catch (NoTransitionException e) {<\/i>\r\n\r\n<i>\u00a0\/* Why this can happen? Ask God not me. *\/ <\/i>\r\n\r\n<i>\u00a0}<\/i>\r\n\r\n<i>try { tableLock.release(); } <\/i>\r\n\r\n<i>catch (IOException e) { <\/i>\r\n\r\n<i>\u00a0LOG(\"Can't release lock\u201d, e); <\/i>\r\n\r\n<i>}\u00a0<\/i><\/pre>\n<p>4 &#8211; Feature development is prioritized<br \/>\nI think all the software engineers will agree to it. This is also called Tech Debt and i can&#8217;t think of better example than\u00a0<a href=\"https:\/\/dougseven.com\/2014\/04\/17\/knightmare-a-devops-cautionary-tale\/\">Knight Capital<\/a>\u00a0bankruptcy which was due to config &amp; experimental code.<\/p>\n<h2>Conclusion<\/h2>\n<p>All the errors are complex to reproduce but better unit test will definitely catch these, this also shows that unit\/integration test done in many system is not testing scenario like service going down and coming back again and how it impacts system.<\/p>\n<p>Based on above example it will look like all error are due to java checked exception but it is not different in other system like C\/C++ which does not have checked but everything is unchecked , it is developer responsibility to check for it at various places.<\/p>\n<p>On side note language with no type system like Python makes it very easy to write code that will break at runtime and if you are really unlucky then error handling code will have some type error and it will get tested in production.<\/p>\n<p>Also almost all product will have some static code tool(findbugs) integration but these tools does not give more importance to such error handling anti pattern.<\/p>\n<p>Link to issues mention in paper<\/p>\n<p><a href=\"http:\/\/www.eecg.toronto.edu\/failureAnalysis\/HDFS.html\">HDFS<\/a><\/p>\n<p><a href=\"http:\/\/www.eecg.toronto.edu\/failureAnalysis\/MapReduce.html\">MapReduce<\/a><\/p>\n<p><a href=\"http:\/\/www.eecg.toronto.edu\/failureAnalysis\/HBase.html\">HBase<\/a><\/p>\n<p><a href=\"http:\/\/www.eecg.toronto.edu\/failureAnalysis\/Redis.html\">Redis<\/a><\/p>\n<p><a href=\"http:\/\/www.eecg.toronto.edu\/failureAnalysis\/Cassandra.html\">Cassandra<\/a><\/p>\n<p>Please share about more anti pattern you have seen in production system.<\/p>\n<p>Till then Happy unit testing.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>Published on Java Code Geeks with permission by Ashkrit Sharma, partner at our <a href=\"\/\/www.javacodegeeks.com\/join-us\/jcg\/\" target=\"_blank\" rel=\"noopener\">JCG program<\/a>. See the original article here: <a href=\"http:\/\/ashkrit.blogspot.com\/2018\/10\/simple-testing-can-prevent-most.html\" target=\"_blank\" rel=\"noopener\">Simple Testing Can Prevent Most Critical Failures<\/a><\/p>\n<p>Opinions expressed by Java Code Geeks contributors are their own.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Error handling is one of the hardest and ignored part of software development and if system is distributed then this becomes even harder. Nice paper is written on\u00a0Simple Testing Can Prevent Most Critical Failures\u00a0topic. Every developer should read this paper. I will try to summarized key take away from this paper but will suggest to &hellip;<\/p>\n","protected":false},"author":436,"featured_media":112,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[273],"class_list":["post-82984","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-testing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Simple Testing Can Prevent Most Critical Failures - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"Interested to learn about error handling? Check our article explaining how Simple Testing Can Prevent Most Critical Failures.\" \/>\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.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Simple Testing Can Prevent Most Critical Failures - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"Interested to learn about error handling? Check our article explaining how Simple Testing Can Prevent Most Critical Failures.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2018-10-25T04:00:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ashkrit Sharma\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/ashkrit\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ashkrit Sharma\" \/>\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.javacodegeeks.com\\\/2018\\\/10\\\/simple-testing-prevent-critical-failures.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/10\\\/simple-testing-prevent-critical-failures.html\"},\"author\":{\"name\":\"Ashkrit Sharma\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/a33969e7ad234c75747b6cd427ac72e7\"},\"headline\":\"Simple Testing Can Prevent Most Critical Failures\",\"datePublished\":\"2018-10-25T04:00:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/10\\\/simple-testing-prevent-critical-failures.html\"},\"wordCount\":702,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/10\\\/simple-testing-prevent-critical-failures.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"keywords\":[\"Testing\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/10\\\/simple-testing-prevent-critical-failures.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/10\\\/simple-testing-prevent-critical-failures.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/10\\\/simple-testing-prevent-critical-failures.html\",\"name\":\"Simple Testing Can Prevent Most Critical Failures - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/10\\\/simple-testing-prevent-critical-failures.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/10\\\/simple-testing-prevent-critical-failures.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"datePublished\":\"2018-10-25T04:00:43+00:00\",\"description\":\"Interested to learn about error handling? Check our article explaining how Simple Testing Can Prevent Most Critical Failures.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/10\\\/simple-testing-prevent-critical-failures.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/10\\\/simple-testing-prevent-critical-failures.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/10\\\/simple-testing-prevent-critical-failures.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"width\":150,\"height\":150,\"caption\":\"java-interview-questions-answers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/10\\\/simple-testing-prevent-critical-failures.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Simple Testing Can Prevent Most Critical Failures\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/a33969e7ad234c75747b6cd427ac72e7\",\"name\":\"Ashkrit Sharma\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/448af59d42b001af6fe807800d1cc900db0bc041326ac6893aae754f4070febd?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/448af59d42b001af6fe807800d1cc900db0bc041326ac6893aae754f4070febd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/448af59d42b001af6fe807800d1cc900db0bc041326ac6893aae754f4070febd?s=96&d=mm&r=g\",\"caption\":\"Ashkrit Sharma\"},\"description\":\"Pragmatic software developer who loves practice that makes software development fun and likes to develop high performance &amp; low latency system.\",\"sameAs\":[\"http:\\\/\\\/ashkrit.blogspot.com\",\"http:\\\/\\\/www.linkedin.com\\\/in\\\/ashkrit\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/ashkrit\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/ashkrit-sharma\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Simple Testing Can Prevent Most Critical Failures - Java Code Geeks","description":"Interested to learn about error handling? Check our article explaining how Simple Testing Can Prevent Most Critical Failures.","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.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html","og_locale":"en_US","og_type":"article","og_title":"Simple Testing Can Prevent Most Critical Failures - Java Code Geeks","og_description":"Interested to learn about error handling? Check our article explaining how Simple Testing Can Prevent Most Critical Failures.","og_url":"https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2018-10-25T04:00:43+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","type":"image\/jpeg"}],"author":"Ashkrit Sharma","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/ashkrit","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Ashkrit Sharma","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html"},"author":{"name":"Ashkrit Sharma","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/a33969e7ad234c75747b6cd427ac72e7"},"headline":"Simple Testing Can Prevent Most Critical Failures","datePublished":"2018-10-25T04:00:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html"},"wordCount":702,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","keywords":["Testing"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html","url":"https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html","name":"Simple Testing Can Prevent Most Critical Failures - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","datePublished":"2018-10-25T04:00:43+00:00","description":"Interested to learn about error handling? Check our article explaining how Simple Testing Can Prevent Most Critical Failures.","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","width":150,"height":150,"caption":"java-interview-questions-answers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2018\/10\/simple-testing-prevent-critical-failures.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Simple Testing Can Prevent Most Critical Failures"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/a33969e7ad234c75747b6cd427ac72e7","name":"Ashkrit Sharma","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/448af59d42b001af6fe807800d1cc900db0bc041326ac6893aae754f4070febd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/448af59d42b001af6fe807800d1cc900db0bc041326ac6893aae754f4070febd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/448af59d42b001af6fe807800d1cc900db0bc041326ac6893aae754f4070febd?s=96&d=mm&r=g","caption":"Ashkrit Sharma"},"description":"Pragmatic software developer who loves practice that makes software development fun and likes to develop high performance &amp; low latency system.","sameAs":["http:\/\/ashkrit.blogspot.com","http:\/\/www.linkedin.com\/in\/ashkrit","https:\/\/x.com\/https:\/\/twitter.com\/ashkrit"],"url":"https:\/\/www.javacodegeeks.com\/author\/ashkrit-sharma"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/82984","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/436"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=82984"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/82984\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/112"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=82984"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=82984"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=82984"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}