{"id":1629,"date":"2020-02-20T15:20:24","date_gmt":"2020-02-20T09:50:24","guid":{"rendered":"https:\/\/coforge.site\/cigniti\/blog\/?p=1629"},"modified":"2022-07-29T11:43:43","modified_gmt":"2022-07-29T06:13:43","slug":"importance-shift-left-shift-right-testing-approaches","status":"publish","type":"post","link":"https:\/\/coforge.site\/cigniti\/blog\/importance-shift-left-shift-right-testing-approaches\/","title":{"rendered":"The importance of Shift-Left and Shift-Right testing approaches"},"content":{"rendered":"<p><b><span data-contrast=\"none\">Edwards Deming had it right when he said, \u201cQuality is everyone\u2019s responsibility\u201d.<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">Quality of a product or service is seldom by chance. It can only be achieved through detailed planning and careful execution. Despite the efforts put in, except for in an ideal scenario, there are still bound to be glitches. However, the thing about Quality Assurance (QA) is that it paves the way for higher efficiency and better performance through incessant testing.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:2,&quot;335559739&quot;:300,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">With<\/span><span data-contrast=\"none\">\u00a0the implementation of Agile and DevOps methods,\u00a0<\/span><span data-contrast=\"none\">there is a high collaboration among teams<\/span><span data-contrast=\"none\">. Developers are\u00a0<\/span><span data-contrast=\"none\">involved<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">within<\/span><span data-contrast=\"none\">\u00a0a testing cycle right from the early stages. Formerly, the process of testing happened at definite intervals and testers had to wait for the product to be completely built before they set out to find the bugs and glitches. Admittedly, more time than can be agreed upon was spent waiting for the code to come through to a tester\u2019s lap.<\/span><span data-contrast=\"none\">\u00a0When it finally came, there was no<\/span><span data-contrast=\"none\">t<\/span><span data-contrast=\"none\">\u00a0sufficient time left to perform comprehensive testing, which would lead to bug-infested releases into production.<\/span><span data-contrast=\"none\">\u00a0With the drastic change in the role of a tester, the scope for QA has broadened by leaps and bounds. Be it a software-developer-in-test (SDET) or a QA engineer, as a member of a collaborative team, a modern day\u2019s tester has a cadence similar to that of a software development engineer.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:2,&quot;335559739&quot;:300,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">An SDET or a QA engineer would be able to easily validate fields being coded in order to avoid data loss. The QA engineer would also be able to write some basic checks and test ideas for an application programming interface (API), all of which inherently improves the design. Having teams that test earlier in the application lifecycle helps the QA engineers feel far more at ease with tooling and technology. Being able to look through server processes, work with API tools, or just walk through code quickly with a bit of help, is rapidly becoming a desired (and a much-required) skill.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:2,&quot;335559739&quot;:300,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">When speaking of quality software based on\u00a0<\/span><span data-contrast=\"none\">the software development<\/span><span data-contrast=\"none\">\u00a0processes, there are two essential parameters (among a few others) one should consider:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:2,&quot;335559739&quot;:300,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"none\">Shift-Left Testing<\/span><\/b><span data-contrast=\"none\">: Where testing\u00a0<\/span><span data-contrast=\"none\">begins parallel to the development<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:360}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><b><span data-contrast=\"none\">Shift-Right Testing<\/span><\/b><span data-contrast=\"none\">: Where the horizon of testing is broadened after receiving feedback from the end-users<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:360}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><b><span data-contrast=\"none\">Shift-Left Testing<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:2,&quot;335559739&quot;:300,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">The examples that are given while stating the features of a product need to meet the product acceptance criteria<\/span><span data-contrast=\"none\">, whereas\u00a0<\/span><span data-contrast=\"none\">the assumptions that are waiting to be validated need to meet the\u00a0<\/span><span data-contrast=\"none\">business acceptance criteria. In short, defining tests even before the features are completely built is the shift-left testing approach. Shift-left testing is key to delivering quality software at speed<\/span><span data-contrast=\"none\">\u00a0as it resolves the time constraints.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:2,&quot;335559739&quot;:300,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">In any organization, it can get quite challenging while deploying a new patch of an application. Rigorous testing needs to be conducted throughout<\/span><span data-contrast=\"none\">\u00a0the SDLC<\/span><span data-contrast=\"none\">\u00a0in the form o<\/span><span data-contrast=\"none\">f<\/span><span data-contrast=\"none\">\u00a0regression and functional testing to ensure that patch updates do not destabilize a system. When testing starts earlier in the cycle, teams are more focused on the quality and have a \u201clet\u2019s get the coding right the first time\u201d outlook. This helps save tremendous amounts of time and reduces the number of iterations a software development team has to perform for a particular code.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:2,&quot;335559739&quot;:300,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"none\">A few reasons to adopt the Shift-Left\u00a0<\/span><\/b><b><span data-contrast=\"none\">testing\u00a0<\/span><\/b><b><span data-contrast=\"none\">approach:<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:2,&quot;335559739&quot;:300,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"none\">Improved design<\/span><\/b><span data-contrast=\"none\">: Through continuous Shift-Left testing and arduous brainstorming sessions, roadblock areas, bottlenecks, and possible performance failures are identified in advance. Even though these discoveries may lead to new design alternatives, they are improved versions of the original idea.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:360}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><b><span data-contrast=\"none\">Bugs are\u00a0<\/span><\/b><b><span data-contrast=\"none\">fixed early<\/span><\/b><span data-contrast=\"none\">:\u00a0<\/span><span data-contrast=\"none\">When we stop and think about how often organizational executives admitted that they \u201cshould have\u201d dealt with the issue early on when it was identified, we realize the importance of Shift-Left testing. It gives more breathing room to tackle mistakes immediately after they are spotted, removing the, \u201clet\u2019s come back to this once we finish the critical stuff\u201d\u00a0<\/span><span data-contrast=\"none\">approach\u00a0<\/span><span data-contrast=\"none\">(which seldom happens)<\/span><span data-contrast=\"none\">.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:360}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"none\">Massive\u00a0<\/span><\/b><b><span data-contrast=\"none\">time and effort saved<\/span><\/b><span data-contrast=\"none\">: When talking about\u00a0<\/span><span data-contrast=\"none\">the\u00a0<\/span><span data-contrast=\"none\">improvement of efficiency and increase in quality, it would be ironic (and impractical) to hope to achieve those objectives without saving our own time and effort<\/span><span data-contrast=\"none\">.<\/span><span data-contrast=\"none\">\u00a0This is another compelling reason to shift your testing left.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:360}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><b><span data-contrast=\"none\">Shift-Right Testing<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:2,&quot;335559739&quot;:300,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">While testing early in the application lifecycle is absolutely essential and highly recommended, it is not enough. Obtaining feedback continuously from users\u00a0<\/span><span data-contrast=\"none\">and taking a shift-right testing approach\u00a0<\/span><span data-contrast=\"none\">is equally significant. Some things are out of the test engineer\u2019s purview.\u00a0<\/span><span data-contrast=\"none\">For instance, a<\/span><span data-contrast=\"none\">\u00a0server can have downtime. A\u00a0<\/span><span data-contrast=\"none\">live<\/span><span data-contrast=\"none\">\u00a0application, however, simply cannot afford such a failure.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:2,&quot;335559739&quot;:300,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">The performance and usability\u00a0<\/span><span data-contrast=\"none\">of<\/span><span data-contrast=\"none\">\u00a0an application\u00a0<\/span><span data-contrast=\"none\">are<\/span><span data-contrast=\"none\">\u00a0continuously monitored and accordingly modified. Even while gathering the requirements, a tester should be quite aware of how users would feel about the functionality of a particular application. The important thing to factor is covering more ground with the testing. Testing should have the right mix at the right time for a given business framework. Such an\u00a0<\/span><span data-contrast=\"none\">approach immediately helps engineers understand how the product or feature update was received by the intended users.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:2,&quot;335559739&quot;:300,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"none\">A\u00a0<\/span><\/b><b><span data-contrast=\"none\">few reasons to adopt the\u00a0<\/span><\/b><b><span data-contrast=\"none\">Shift-Right\u00a0<\/span><\/b><b><span data-contrast=\"none\">testing approach<\/span><\/b><b><span data-contrast=\"none\">:<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:2,&quot;335559739&quot;:300,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"none\">Enhancing\u00a0<\/span><\/b><b><span data-contrast=\"none\">customer exp<\/span><\/b><b><span data-contrast=\"none\">erience:<\/span><\/b><span data-contrast=\"none\">\u00a0Through shifting testing right, customer issues\u00a0<\/span><span data-contrast=\"none\">are<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">effectively<\/span><span data-contrast=\"none\">\u00a0collected. Upon obtaining the feedback, the collection of issues is then translated into technical and business languages. This helps isolate each issue and improve it, thereby enhancing the overall customer experience.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:360}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><b><span data-contrast=\"none\">More\u00a0<\/span><\/b><b><span data-contrast=\"none\">scope for automation<\/span><\/b><b><span data-contrast=\"none\">:<\/span><\/b><span data-contrast=\"none\">\u00a0Automation saves time, plain and simple. When patches and features are being built into\u00a0<\/span><span data-contrast=\"none\">an\u00a0<\/span><span data-contrast=\"none\">application, automating large parts and even the whole process saves precious time. User Interface (UI) automation, once the application is stable at a core-functional level, is crucial for testing with speed. Shifting testing to right enables you to do just that!<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:360}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\"><b><span data-contrast=\"none\">High\u00a0<\/span><\/b><b><span data-contrast=\"none\">test c<\/span><\/b><b><span data-contrast=\"none\">overage:<\/span><\/b><span data-contrast=\"none\">\u00a0A Shift-Right approach to testing empowers the test engineers to test more, test on-time and test late. That translates to lesser bugs (at a basic stage), better quality (at an elevated stage) and delighted customer experience\u00a0<\/span><span data-contrast=\"none\">ratio.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:360}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><b><span data-contrast=\"none\">A final word<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">QA of software products, services, and various applications aims to achieve quality at every stage of the application lifecycle. As businesses transform digitally, testing approaches need to evolve. More testing, earlier testing<\/span><span data-contrast=\"none\">,<\/span><span data-contrast=\"none\">\u00a0and broader testing<\/span><span data-contrast=\"none\">,<\/span><span data-contrast=\"none\">\u00a0all contribute to a well-rounded product. Any business that hopes to survive must also care about the digital impression and connect it provides to its customers, even if it has a physical product. Ultimately, including testing as a process right from the get-go of the application lifecycle process and refining the test cases as per user feedback, both are not only desired but also essential for businesses to guarantee digital assurance.\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">Being a global leader in the independent\u00a0<\/span><a href=\"https:\/\/www.cigniti.com\/services\/\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">software testing<\/span><\/a><span data-contrast=\"none\">\u00a0and\u00a0<\/span><a href=\"https:\/\/www.cigniti.com\/services\/quality-engineering\/\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">quality engineering<\/span><\/a><span data-contrast=\"none\">\u00a0services, Cigniti is a strong advocate of Quality Assurance and its implementation right from the early stages of the software lifecycle.\u00a0<\/span><span data-contrast=\"none\">We<\/span><span data-contrast=\"none\">\u00a0encourage customer feedback and believe in including such feedback in\u00a0<\/span><span data-contrast=\"none\">our<\/span><span data-contrast=\"none\">\u00a0broader testing approach. We take great measures to ensure that we are fully equipped with state-of-the-art services and have partnered with other experts that specialize in providing testing services.\u00a0<\/span><a href=\"https:\/\/www.cigniti.com\/contact-us\/\" target=\"_blank\" rel=\"noopener\"><span data-contrast=\"none\">Talk to us<\/span><\/a><span data-contrast=\"none\">.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:360}\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Edwards Deming had it right when he said, \u201cQuality is everyone\u2019s responsibility\u201d.\u00a0 Quality of a product or service is seldom by chance. It can only be achieved through detailed planning and careful execution. Despite the efforts put in, except for in an ideal scenario, there are still bound to be glitches. However, the thing about [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":14458,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[735],"tags":[170,222,1536,3019,3017,1903,3016,1904,1902,3018,434,616,617],"ppma_author":[3736],"class_list":["post-1629","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops-testing","tag-devops-testing","tag-quality-engineering","tag-shift-left-approach","tag-shift-left-in-devops","tag-shift-left-in-software-testing-shift-right-in-software-testing","tag-shift-left-methodology","tag-shift-left-test-strategy","tag-shift-left-testing-benefits","tag-shift-left-testing-levers","tag-shift-right-approach-for-testing","tag-shift-left-testing","tag-shift-right-testing","tag-testing-approach"],"authors":[{"term_id":3736,"user_id":2,"is_guest":0,"slug":"admin","display_name":"Cigniti Technologies","avatar_url":{"url":"https:\/\/coforge.site\/cigniti\/blog\/wp-content\/uploads\/120X120-1.png","url2x":"https:\/\/coforge.site\/cigniti\/blog\/wp-content\/uploads\/120X120-1.png"},"author_category":"","user_url":"http:\/\/www.cigniti.com\/","last_name":"Technologies","first_name":"Cigniti","job_title":"","description":"Cigniti is the world\u2019s leading AI &amp; IP-led Digital Assurance and Digital Engineering services company with offices in India, the USA, Canada, the UK, the UAE, Australia, South Africa, the Czech Republic, and Singapore. We help companies accelerate their digital transformation journey across various stages of digital adoption and help them achieve market leadership."}],"_links":{"self":[{"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/posts\/1629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/comments?post=1629"}],"version-history":[{"count":0,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/posts\/1629\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/media\/14458"}],"wp:attachment":[{"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/media?parent=1629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/categories?post=1629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/tags?post=1629"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/coforge.site\/cigniti\/blog\/wp-json\/wp\/v2\/ppma_author?post=1629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}