{"id":295,"date":"2018-04-25T23:07:58","date_gmt":"2018-04-25T23:07:58","guid":{"rendered":"http:\/\/rainforestqa.com\/2018-04-25-defeat-defect-clustering\/"},"modified":"2024-06-18T21:36:23","modified_gmt":"2024-06-18T21:36:23","slug":"2018-04-25-defeat-defect-clustering","status":"publish","type":"post","link":"https:\/\/www.rainforestqa.com\/blog\/2018-04-25-defeat-defect-clustering","title":{"rendered":"What is defect clustering?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Many teams encounter defect clustering and other quality issues as they build out a more complex product. In this post, we\u2019ll explore how to keep clusters of bugs from bringing down your quality. Bleacher Report\u2019s Senior Automation Engineer Quentin Thomas also weighs in with a real-world approach to addressing for defect clustering.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.rainforestqa.com\/blog\/2018-04-25-defeat-defect-clustering\/#What_is_Defect_Clustering\" >What is Defect Clustering?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.rainforestqa.com\/blog\/2018-04-25-defeat-defect-clustering\/#Are_you_affected_by_Defect_Clustering\" >Are you affected by Defect Clustering?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.rainforestqa.com\/blog\/2018-04-25-defeat-defect-clustering\/#Solution_How_to_Minimize_Defect_Clustering\" >Solution: How to Minimize Defect Clustering<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.rainforestqa.com\/blog\/2018-04-25-defeat-defect-clustering\/#Real_World-Fix_Take_a_Data-Driven_Approach_to_QA_Coverage\" >Real World-Fix: Take a Data-Driven Approach to QA Coverage<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_is_Defect_Clustering\"><\/span>What is Defect Clustering?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bugs are not often distributed evenly throughout an application. Defect clustering simply means that a small number of features have caused the majority of quality issues in an application.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A range of culprits may be responsible for defect clustering, from legacy code prone to breaking, to newer features that are undergoing frequent changes, to a particularly fickle 3rd-party integration. Whatever the reason, the ability to identify defect-prone areas of your product is an essential.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u201cWhen I fix a defect, I change some code. Whenever I create or [change] code, there&#8217;s a probability that I will introduce a new defect (or three). When I fix these new defects, I change more code, which creates a higher probability of more new defects.\u201d<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Jason Gorman, Software Engineer<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Are_you_affected_by_Defect_Clustering\"><\/span>Are you affected by Defect Clustering?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There are a key indicators that you may be dealing with defect clustering:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You have a significant number of test cases, but issues still appear regularly<\/li>\n\n\n\n<li>You have one or two \u201cproblem features\u201d where bugs seem to crop up most frequently. This is the Pareto Principle; 80% of your issues come from 20% of your features.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Solution_How_to_Minimize_Defect_Clustering\"><\/span>Solution: How to Minimize Defect Clustering<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It might seem obvious, but if an organization starts hunting around in its metrics and finds that the majority of issues revolve around a specific application, product feature or code base, then the greatest gains are going to be made if an improvement initiative focuses in on that specific software.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It doesn\u2019t mean abandoning everything else in the interim, but instead repurposing a few extra resources and muscle to make a difference in the targeted technology.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, if the majority of customer complaints focus on one aspect of a product then a short improvement initiative would be well spent solely in improving quality around that aspect. It might mean borrowing product managers or some developers from other projects and re-assigning them for a month or two to build up test coverage or automation around that feature.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Real_World-Fix_Take_a_Data-Driven_Approach_to_QA_Coverage\"><\/span>Real World-Fix: Take a Data-Driven Approach to QA Coverage<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A big believer in data-driven quality improvement, Bleacher Report\u2019s Quentin Thomas says the best changes are made based on facts rather than feelings. In one instance, he managed to take a trove of defect data from his organization to prove that the majority of issues were coming from an old code base that was only being lightly maintained. Rather than suggesting the organization pour more resources into coverage for that code-base, the data showed that maybe it needed to be abandoned altogether.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cThe data gave us the ammo as QA to say \u201cHey, why don\u2019t we just consider phasing it out, because it is causing us a lot of issues and that\u2019s better than trying to spend all this time to test and analyze this stuff,\u201d he says. \u201cSometimes getting rid of a service no one is maintaining is going to do a better job of improving quality than anything QA can do.\u201d<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this post we explore how to keep clusters of defects from bringing down your quality, and learn about a real-world fix for defect clustering with Bleacher Report\u2019s Senior Automation Engineer Quentin Thomas. We also cover what is defect clustering and some key indicators you should look out for.<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-295","post","type-post","status-publish","format-standard","hentry","category-qa-strategy"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts\/295","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/comments?post=295"}],"version-history":[{"count":3,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts\/295\/revisions"}],"predecessor-version":[{"id":2351,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts\/295\/revisions\/2351"}],"wp:attachment":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/media?parent=295"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/categories?post=295"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/tags?post=295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}