{"id":209,"date":"2017-11-13T10:48:35","date_gmt":"2017-11-13T10:48:35","guid":{"rendered":"http:\/\/talentedtester.com\/?p=209"},"modified":"2019-06-17T18:48:58","modified_gmt":"2019-06-17T18:48:58","slug":"regression-testing-best-practices","status":"publish","type":"post","link":"http:\/\/talentedtester.com\/regression-testing-best-practices\/","title":{"rendered":"Regression Testing Best Practices"},"content":{"rendered":"

Regression testing is defined as the process of testing a changed software to ensure that the older established features still work as they should.  It is a crucial step in software development as it eliminates many of the risks associated with software updates. <\/p>\n

Although some organizations verify critical functionality only once and they presume it will continue to work fine unless it\u2019s been purposely modified, the practice has shown that even routine changes in code can have unthought-of side effects that break previously established functionality.<\/p>\n

It is essential as it provides the only reliable tool that verifies that the code changes don\u2019t break the existing functionality of an application and it has a huge impact on release delays, budget overruns and the possibility of bugged errored software<\/a> being released. <\/p>\n

Regression testing (click here to see the difference between regression & progression testing<\/a>) determines when code alterations cause previously working functionality to fail, giving you the opportunity to identify errors in real time. <\/p>\n

Shop Now<\/span> Ads by Amazon <\/a> <\/a> <\/span> <\/span>\u00d7Thank you!<\/p>\n

This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n

Report a problem<\/p>\n

This item is…<\/p>\n

Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n

Add Comments (Max 320 characters)<\/span><\/p>\n

Clean Code: A Handbook of Agi\u2026<\/span> <\/a>$47.49<\/span>$49.99<\/span>Bestseller<\/span> <\/span>(486)<\/span> <\/a>DEAL OF THE DAYENDS IN <\/span> <\/a>\u00d7Thank you!<\/p>\n

This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n

Report a problem<\/p>\n

This item is…<\/p>\n

Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n

Add Comments (Max 320 characters)<\/span><\/p>\n

Lessons Learned in Software Testing: \u2026<\/span> <\/a>$18.99<\/span>Bestseller<\/span> <\/span>(69)<\/span> <\/a>DEAL OF THE DAYENDS IN <\/span> <\/a>\u00d7Thank you!<\/p>\n

This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n

Report a problem<\/p>\n

This item is…<\/p>\n

Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n

Add Comments (Max 320 characters)<\/span><\/p>\n

A Friendly Introduction to Software Testing<\/span> <\/a>$29.95<\/span>$29.95<\/span>Bestseller<\/span> <\/span>(18)<\/span> <\/a>DEAL OF THE DAYENDS IN <\/span> <\/a>\u00d7Thank you!<\/p>\n

This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n

Report a problem<\/p>\n

This item is…<\/p>\n

Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n

Add Comments (Max 320 characters)<\/span><\/p>\n

Software Testing<\/span> <\/a>$37.74<\/span>$49.99<\/span>Bestseller<\/span> <\/span>(44)<\/span> <\/a>DEAL OF THE DAYENDS IN <\/span> <\/a>\u00d7Thank you!<\/p>\n

This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n

Report a problem<\/p>\n

This item is…<\/p>\n

Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n

Add Comments (Max 320 characters)<\/span><\/p>\n

The DevOps Handbook:: How\u2026<\/span> <\/a>$14.49<\/span>Bestseller<\/span> <\/span>(153)<\/span> <\/a>DEAL OF THE DAYENDS IN <\/span> <\/a>\u00d7Thank you!<\/p>\n

This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n

Report a problem<\/p>\n

This item is…<\/p>\n

Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n

Add Comments (Max 320 characters)<\/span><\/p>\n

The Cucumber Book: Behaviour-Drive\u2026<\/span> <\/a>$32.80<\/span>$39.95<\/span>Bestseller<\/span> <\/span>(4)<\/span> <\/a>DEAL OF THE DAYENDS IN <\/span> <\/a>\u00d7Thank you!<\/p>\n

This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n

Report a problem<\/p>\n

This item is…<\/p>\n

Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n

Add Comments (Max 320 characters)<\/span><\/p>\n

The Cucumber for Java Book: Behav\u2026<\/span> <\/a>$28.25<\/span>$36.00<\/span>Bestseller<\/span> <\/span>(33)<\/span> <\/a>DEAL OF THE DAYENDS IN <\/span> <\/a>\u00d7Thank you!<\/p>\n

This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n

Report a problem<\/p>\n

This item is…<\/p>\n

Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n

Add Comments (Max 320 characters)<\/span><\/p>\n

Advanced Software Testing – Vol. 1, 2n\u2026<\/span> <\/a>$37.04<\/span>$54.95<\/span>Bestseller<\/span> <\/span>(22)<\/span> <\/a>DEAL OF THE DAYENDS IN <\/span> <\/a> Ads by Amazon <\/a> <\/a> <\/span> <\/span><\/p>\n

Why do defects appear during changes in code?<\/h2>\n

For a software that was previously working flawlessly, this can change if the updates included incorrect or incomplete changes. This occurs extremely often in the software industry. Generally, one of six attempts to correct a defect is faulty and generates additional errors.<\/p>\n

This high rate of the defects has several reasons. First, it\u2019s the tendency developers have to fix the symptoms instead of the root cause.  Other factors can be the lack of experience of the developers or poor system documentation, often seen in the agile methodology, as appose to the waterfall model<\/a>.<\/p>\n

Most common regression testing techniques that are used today<\/h2>\n

These techniques exist to focus our testing<\/a> on the aspects that could have been affected by the code changes instead of covering all possible aspects that could go wrong. <\/p>\n

Full testing (Retest All)<\/strong><\/em> aims to cover as many issues as possible and it\u2019s basically running all tests after every change to the code is made. It\u2019s the complete technique and sometimes the only option when you can\u2019t predict which part of the software was affected by the update.<\/p>\n

Regression test selection<\/strong><\/em> <\/strong>aims only at the modules that were more likely to be affected by the changes. As it is not complete, I can let errors slip through so it\u2019s extremely important to receive a very high ROI.<\/p>\n

Test Case Prioritization<\/strong> <\/em>is approached in two different ways: general prioritization when cases are chosen based on their importance and version-specific prioritization when cases are chosen based on their importance for that specific version.<\/p>\n

Hybrid<\/strong><\/em> combines any or all of the above techniques for various releases.<\/p>\n

What are the best practices for regression testing?<\/h2>\n

When you create your regression testing plan and you\u2019re opting for one technique or the other, there are a few things you should keep in mind:<\/p>\n

1.  Use automation<\/strong> \u2013 nothing can make your process more efficient than automation. Repeated testing under the same conditions and with the same variables will not discover any new defects. Also, repeated tasks will make your testers lose concentration and they might miss some of the defects. <\/p>\n

The biggest advantage of automated regression testing is that you can add extra test cases to the regression pack without increasing the testing time too much. And more, the automated test can be run during the night or at the same time with the manual tests. <\/p>\n

2.  Update your regression pack regularly \u2013 <\/strong>It is always a good idea to keep your regression pack up to date. As your project increases, some of the newest functionality won\u2019t have enough test coverage while some other tests might not be necessary anymore.<\/p>\n

3.  Use an element ‘id\u2019 to locate items on screen. <\/strong>Original automation tests recorded actions they later replayed. They could simulate the clicking on a certain pixel\u2019s location. However, if that button was moved, the clicking will take place in the wrong location. Calling it by name instead of location allow the test to continue no matter where the button was moved<\/a>. <\/p>\n

4.  Analyze every defect that escaped the previous testing <\/strong> – this will allow you to figure out what went wrong and to include tests that can possibly cover that path and detect that particular type of defect.<\/p>\n

5.  Focus on busy paths \u2013 <\/strong>they should include the basic functionality of your software as well as the most used features. This implies you know your users and those features they rely on the most. Your regression pack should focus on the core functionality of your application.<\/p>\n

6.  Identify those areas that have shown the most failures and include in your regression pack more tests that focus on those areas.<\/p>\n

7.  Don\u2019t forget to include tests that cover non-functional attributes such as performance, usability, security. <\/p>\n

Regression testing tools you can use<\/h2>\n

There are a few testing tools available for use, like code-based software testing frameworks, JavaScript-based frameworks, BDD testing frameworks, Enterprise record-playback IDEs or Codeless cloud-based platforms.<\/p>\n

The latter are simple substitutes to Enterprise IDEs<\/a> but they offer advanced functionality, like DOM comparison, collaboration functionality, etc. <\/p>\n

Conclusions<\/h2>\n

When developers change or update their applications, the smallest modification can have unforeseen ramifications. Regression testing is the only way to ensure the modification hasn\u2019t broken existing functionality. By re-running testing scenarios that were designed when original problems were fixed you can make sure your update didn\u2019t cause previously solved bugs to re-appear.<\/p>\n

Regression testing needs to be seen as a piece of a testing methodology that\u2019s cost-effective but still complete and that incorporates enough variety, like for example frontend UI automated tests combined with targeted unit testing using risk prioritization. This will prevent any aspect of your application from being unchecked<\/a>. <\/p>\n

Software development companies with effective regression packs improve their performance of their developers significantly thus leading to a successful project. <\/p>\n

The discovery of errors on time can save a lot of time wasted on chasing errors further in the development cycle. It also allows the team to update the code when necessary without being afraid it will compromise previously established functionality.<\/p>\n","protected":false},"excerpt":{"rendered":"

Regression testing is defined as the process of testing a changed software to ensure that the older established features still work as they should.  It is a crucial step in software development as it eliminates many of the risks associated with software updates.  Although some organizations verify critical functionality only once and they presume it will […]<\/p>\n","protected":false},"author":1,"featured_media":215,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"pmpro_default_level":0,"footnotes":""},"categories":[24],"tags":[31,28,30,29],"yoast_head":"\nRegression Testing Best Practices - Talented Tester<\/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:\/\/talentedtester.com\/regression-testing-best-practices\/\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"og:locale\" content=\"en_US\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"og:type\" content=\"article\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"og:title\" content=\"Regression Testing Best Practices - Talented Tester\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"og:description\" content=\"Regression testing is defined as the process of testing a changed software to ensure that the older established features still work as they should.  It is a crucial step in software development as it eliminates many of the risks associated with software updates.  Although some organizations verify critical functionality only once and they presume it will […]\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"og:url\" content=\"http:\/\/talentedtester.com\/regression-testing-best-practices\/\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"og:site_name\" content=\"Talented Tester\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"article:published_time\" content=\"2017-11-13T10:48:35+00:00\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"article:modified_time\" content=\"2019-06-17T18:48:58+00:00\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"og:image\" content=\"http:\/\/talentedtester.com\/wp-content\/uploads\/2017\/11\/Quality-Checklist-Talented-Tester-47860193_s.jpg\" class=\"yoast-seo-meta-tag\" \/>\n\t<meta property=\"og:image:width\" content=\"450\" class=\"yoast-seo-meta-tag\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" class=\"yoast-seo-meta-tag\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" class=\"yoast-seo-meta-tag\" \/>\n<meta name=\"author\" content=\"Talented Tester Support\" class=\"yoast-seo-meta-tag\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" class=\"yoast-seo-meta-tag\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" class=\"yoast-seo-meta-tag\" \/>\n\t<meta name=\"twitter:data1\" content=\"Talented Tester Support\" class=\"yoast-seo-meta-tag\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" class=\"yoast-seo-meta-tag\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" class=\"yoast-seo-meta-tag\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"http:\/\/talentedtester.com\/regression-testing-best-practices\/\",\"url\":\"http:\/\/talentedtester.com\/regression-testing-best-practices\/\",\"name\":\"Regression Testing Best Practices - Talented Tester\",\"isPartOf\":{\"@id\":\"http:\/\/talentedtester.com\/#website\"},\"datePublished\":\"2017-11-13T10:48:35+00:00\",\"dateModified\":\"2019-06-17T18:48:58+00:00\",\"author\":{\"@id\":\"http:\/\/talentedtester.com\/#\/schema\/person\/f2587bb99b34702fdc503f068c0726fe\"},\"breadcrumb\":{\"@id\":\"http:\/\/talentedtester.com\/regression-testing-best-practices\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/talentedtester.com\/regression-testing-best-practices\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/talentedtester.com\/regression-testing-best-practices\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/talentedtester.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Regression Testing Best Practices\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/talentedtester.com\/#website\",\"url\":\"http:\/\/talentedtester.com\/\",\"name\":\"Talented Tester\",\"description\":\"The No1 Resource for Software Testers\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/talentedtester.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/talentedtester.com\/#\/schema\/person\/f2587bb99b34702fdc503f068c0726fe\",\"name\":\"Talented Tester Support\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/talentedtester.com\/#\/schema\/person\/image\/\",\"url\":\"\/\/www.gravatar.com\/avatar\/b51481991756e76264b3ffa054e3f215?s=96&r=g&d=mm\",\"contentUrl\":\"\/\/www.gravatar.com\/avatar\/b51481991756e76264b3ffa054e3f215?s=96&r=g&d=mm\",\"caption\":\"Talented Tester Support\"},\"url\":\"http:\/\/talentedtester.com\/author\/talented\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Regression Testing Best Practices - Talented Tester","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:\/\/talentedtester.com\/regression-testing-best-practices\/","og_locale":"en_US","og_type":"article","og_title":"Regression Testing Best Practices - Talented Tester","og_description":"Regression testing is defined as the process of testing a changed software to ensure that the older established features still work as they should.  It is a crucial step in software development as it eliminates many of the risks associated with software updates.  Although some organizations verify critical functionality only once and they presume it will […]","og_url":"http:\/\/talentedtester.com\/regression-testing-best-practices\/","og_site_name":"Talented Tester","article_published_time":"2017-11-13T10:48:35+00:00","article_modified_time":"2019-06-17T18:48:58+00:00","og_image":[{"width":450,"height":300,"url":"http:\/\/talentedtester.com\/wp-content\/uploads\/2017\/11\/Quality-Checklist-Talented-Tester-47860193_s.jpg","type":"image\/jpeg"}],"author":"Talented Tester Support","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Talented Tester Support","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/talentedtester.com\/regression-testing-best-practices\/","url":"http:\/\/talentedtester.com\/regression-testing-best-practices\/","name":"Regression Testing Best Practices - Talented Tester","isPartOf":{"@id":"http:\/\/talentedtester.com\/#website"},"datePublished":"2017-11-13T10:48:35+00:00","dateModified":"2019-06-17T18:48:58+00:00","author":{"@id":"http:\/\/talentedtester.com\/#\/schema\/person\/f2587bb99b34702fdc503f068c0726fe"},"breadcrumb":{"@id":"http:\/\/talentedtester.com\/regression-testing-best-practices\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/talentedtester.com\/regression-testing-best-practices\/"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/talentedtester.com\/regression-testing-best-practices\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/talentedtester.com\/"},{"@type":"ListItem","position":2,"name":"Regression Testing Best Practices"}]},{"@type":"WebSite","@id":"http:\/\/talentedtester.com\/#website","url":"http:\/\/talentedtester.com\/","name":"Talented Tester","description":"The No1 Resource for Software Testers","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/talentedtester.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"http:\/\/talentedtester.com\/#\/schema\/person\/f2587bb99b34702fdc503f068c0726fe","name":"Talented Tester Support","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/talentedtester.com\/#\/schema\/person\/image\/","url":"\/\/www.gravatar.com\/avatar\/b51481991756e76264b3ffa054e3f215?s=96&r=g&d=mm","contentUrl":"\/\/www.gravatar.com\/avatar\/b51481991756e76264b3ffa054e3f215?s=96&r=g&d=mm","caption":"Talented Tester Support"},"url":"http:\/\/talentedtester.com\/author\/talented\/"}]}},"_links":{"self":[{"href":"http:\/\/talentedtester.com\/wp-json\/wp\/v2\/posts\/209"}],"collection":[{"href":"http:\/\/talentedtester.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/talentedtester.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/talentedtester.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/talentedtester.com\/wp-json\/wp\/v2\/comments?post=209"}],"version-history":[{"count":0,"href":"http:\/\/talentedtester.com\/wp-json\/wp\/v2\/posts\/209\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/talentedtester.com\/wp-json\/wp\/v2\/media\/215"}],"wp:attachment":[{"href":"http:\/\/talentedtester.com\/wp-json\/wp\/v2\/media?parent=209"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/talentedtester.com\/wp-json\/wp\/v2\/categories?post=209"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/talentedtester.com\/wp-json\/wp\/v2\/tags?post=209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}