{"id":3063,"date":"2020-12-14T15:52:09","date_gmt":"2020-12-14T10:22:09","guid":{"rendered":"https:\/\/stg.tftus.com\/?p=3063"},"modified":"2025-12-16T07:50:22","modified_gmt":"2025-12-16T07:50:22","slug":"enable-devops-success-improve-qa-with-shift-left-testing-automation-testing-as-the-secret-ingredient","status":"publish","type":"post","link":"https:\/\/stg.tftus.com\/blogs\/enable-devops-success-improve-qa-with-shift-left-testing-automation-testing-as-the-secret-ingredient\/","title":{"rendered":"Enable DevOps Success, Improve QA with Shift Left Testing \u2013 Automation Testing as the Secret Ingredient"},"content":{"rendered":"\n<p>Shift left testing = a practice of testing frequently, as early as possible. That\u2019s shift left testing in a nutshell!<\/p>\n\n\n\n<p>The <a href=\"https:\/\/stg.tftus.com\/blogs\/blog\/why-qa-is-crucial-for-executing-devops\/\">QA Team has an important role to play in executing DevOps<\/a>. Shifting left requires two key DevOps practices to be considered which are continuous testing and continuous deployment. As you read through this article, you will understand how shifting left truly empowers DevOps.<\/p>\n\n\n\n<p>This article also discusses the cultural shift this move encompasses, and the advantages that are inferred from it. Test automation has been the secret ingredient in making shift left testing work successfully, and with that, some tools have been listed to help you explore this further as well.<\/p>\n\n\n\n<p>The topics discussed in this article are:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Shift left testing \u2013 Why shift left, and not right?<ul><li>Shift right testing \u2013 A brief overview<\/li><li>Shift left testing\u2013 A culture shift from the traditional waterfall model towards agile methods.<\/li><\/ul><\/li><li>7 steps we took to implement shift left testing: My story.<\/li><li>The choice of the right automation testing tool.<\/li><li>Advantages with shift left testing<\/li><li>How shift left testing synced with DevOps<\/li><li>Wrap up<\/li><\/ul>\n\n\n\n<p><strong>Shift Left Testing \u2013 Why shift left, and not right?<\/strong><\/p>\n\n\n\n<p><strong>Shift right testing \u2013 A brief overview<\/strong><\/p>\n\n\n\n<p>In the traditional way of working in a project, in a waterfall method, the team would test much later in the project. The result was obvious as there was a high number of errors reaching the customer. A defect discovered late in the project is much more expensive to correct, both in finances and in terms of effort. A defect found late may even cause significant design changes and may involve a lot of effort in addressing the issue. All this signifies the shift right way of testing.<\/p>\n\n\n\n<p><strong>Shift left testing\u2013 A culture shift from the traditional waterfall model towards agile methods.<\/strong><\/p>\n\n\n\n<p>Shift left testing is about \u2013<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Testing frequently &#8211; In a project that works this way, they keep testing, while the project runs. They do not wait for a project to end to take action on testing.<\/li><li>Test as early as possible \u2013as soon as small increments of code blocks are developed; these code deliverables are handed over for testing.<\/li><\/ul>\n\n\n\n<p>With the incorporation of this methodology, the lines are blurred between the testers and developers, as they are always working with each other, and not as two separate entities. This becomes a significant cultural shift and has proven to result in robust products being built. After all, quality is the key in business outcomes, and <a href=\"https:\/\/stg.tftus.com\/blogs\/blog\/how-software-testing-services-improves-the-customer-satisfaction\/\">The QA team holds the power behind customer satisfaction<\/a>.<\/p>\n\n\n\n<p><strong>7 steps we took to implement shift left testing: My story<\/strong><\/p>\n\n\n\n<p>When did I first start believing in the power of shift left testing? Here is my story:<\/p>\n\n\n\n<p>We, in the QA team, were running functional and integration tests. We ran them only at the end of every development cycle. However, we noticed that many defects were reaching the customer. Delays in the project and correction of defects reaching the customer were proving costly.<\/p>\n\n\n\n<p>With this issue, we quickly got together and decided to revamp our test strategy \u2013 to shift left in testing. We decided to test all parts of the project.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Step 1 \u2013 The testers and the development teams started working side by side with developers in creating the deployment and testing process.<\/li><li>Step 2 \u2013 We started relying on building small-sized tests. We set benchmarks on how small they ought to be. We started building and running small chunks, or unit tests. These tests were different from the functional and integration tests, in that they were:<ul><li>Significantly smaller in size<\/li><li>Ran faster<\/li><\/ul><\/li><li>Step 3 \u2013 We decided to run these tests frequently and as early as possible. With this change, we saw that we were able to figure out the level of quality of the project much earlier. And as per the current running quality that we saw, we started making quick decisions on fixing the issues if any, much earlier. This resulted in:<ul><li>Finding the defects much earlier<\/li><li>A drastically reduced number of defects reached the customers<\/li><\/ul><\/li><li>Step 4 \u2013 We worked in a TDD fashion \u2013test-driven development. TDD requires you to first write tests for the piece of code that you want to develop. We started incorporating this strategy concerning any new feature requests that came in. Therefore, once the code was ready, we could immediately verify the validity of the piece of code being tested.<\/li><li>Step 5\u2013 We relied on automation development and testing. We built a lot of unit tests. We kept adding in more. We ensured a broad test coverage. However, we could not get them manually designed in less time. For this, we used automation testing tools to quicken up this process. The shifts we incorporated are:<ul><li>We built small unit API tests using API test automation tools.<\/li><li>We started using a scriptless automation tool \u2013 zero code platforms \u2013 which helps you build code with record playback and with no manual coding at all. Quick coding can be performed with these tools.<\/li><li>We used tools that used <a href=\"https:\/\/hackernoon.com\/how-can-self-healing-ai-help-a-web-test-automation-developer-gac3tr4\">Self-Healing AI<\/a> \u2013 These automation tools heal the code when an error occurs, automatically, with the power of artificial intelligence. We need to catch up with the <a href=\"https:\/\/stg.tftus.com\/blogs\/blog\/the-secrets-of-industrial-revolution\/\">Industrial revolution 4.0<\/a>, and tools with such cutting edge technologies will help you move towards it.<\/li><li>We used BDD \u2013It helped people from all over the project collaborate with each other with ease.<\/li><\/ul><\/li><li>Step 6 \u2013 Provisioning resources from the cloud. Rather than provisioning resources from the \u201con-premises\u201d lab, and waiting for resources as they become available, we started provisioning resources from the cloud. Cloud-available resources were available 24\/7, and we didn\u2019t need to wait for resources. For example, BrowserStack is a tool that I can recommend for cloud-based provisioning of resources.<\/li><li>Step 7 \u2013 We started relying on the test analysis reports more often. After all, there were more frequent tests being run. We started analyzing trends and deriving insights out of test results. We started becoming mindful of the test results and started making quick decisions based on them.<\/li><\/ul>\n\n\n\n<p><strong>The choice of the right automation testing tool; Some examples of tools:<\/strong><\/p>\n\n\n\n<p>The tool that you choose for automation should observe an open automation methodology \u2013 which lets you integrate your existing toolset\/development setup easily. The wider range allowed for integration with different frameworks, tools, and software, which turns out beneficial for the project. For example, <a href=\"https:\/\/testproject.io\/\">TestProject<\/a>, <a href=\"https:\/\/www.tricentis.com\/products\/automate-continuous-testing-tosca\/\">Tricentis Tosca<\/a>, etc., lets you integrate with several tools like Jenkins, JIRA, Selenium, and many more. <a href=\"https:\/\/www.postman.com\/\">PostMan<\/a>, <a href=\"https:\/\/www.soapui.org\/\">SOAPUI<\/a> tools can be used for API test automation. Some BDD tools I recommend are Cucumber, JDave, etc.<\/p>\n\n\n\n<p>Your QA team cannot always handle the burden of manually creating the tests in less time. With the help of an automation tool, this can be done automatically and quickly as well.<\/p>\n\n\n\n<p><strong>Advantages with shift left testing<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Bugs were found much earlier \u2013 Result: reduced costs by detecting and solving bugs earlier.<\/li><li>Higher code quality; therefore, higher quality product \u2013 Once the product was rolled out to the customer, there were fewer instances of code patches, and code fixes required.<\/li><li>There were fewer chances that the product overshot the planned timeline.<\/li><li>Increased quality<\/li><li>Shortened the otherwise long test cycles \u2013 the customer was able to get info regarding the health of the project much earlier as they also started getting involved more frequently in feedback.<\/li><li>Mitigated the surprises at the end of the development cycle or in production. Everyone was aware of the project status.<\/li><li>The test team became knowledgeable about tooling and technology much earlier.<\/li><li>Last, but not least, customer satisfaction was much higher as the product was delivered with the utmost quality.<\/li><\/ul>\n\n\n\n<p><strong>How shift left testing is associated with DevOps<\/strong><\/p>\n\n\n\n<p>DevOps builds on the base of continuous feedback. With frequent testing, this is exactly what we got. Because of the fact that testers and developers, as well as the rest of the team, were in constant collaboration to make it work, the traditional silos setup was broken. There was an eventual removal of silos between the development and operations. Everyone started collaborating.<\/p>\n\n\n\n<p>Also, it syncs well with the CICD practices, wherein there is continuous testing. We automated the tests and ran them as early as possible, and as often as possible. Apart from that, we also embedded service virtualization to mimic unavailable systems. It also syncs with the continuous deployment concept of CICD. Continuous deployment involves the automation of provisioning and deployment of new builds and hence enabling continuous testing to occur quickly, and in an efficient manner.<\/p>\n\n\n\n<p><strong>Wrap up<\/strong><\/p>\n\n\n\n<p>Shift left testing holds true to its definition in that it is a practice in SDLC in which the teams focus on the quality, and work on problem prevention rather than focus entirely on detection. The idea of testing earlier almost always gives benefit to the project. Let us keep the test strategy and the culture of the organization healthy and positive. Shift left testing has been amplified to get them both right, leading to a happy client and a happy team.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Shift left testing = a practice of testing frequently, as early as possible. That\u2019s shift left testing in a nutshell! The QA Team has an important role to play in executing DevOps. Shifting left requires two key DevOps practices to be considered which are continuous testing and continuous deployment. As you read through this article, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":3064,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[],"class_list":["post-3063","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops"],"acf":[],"_links":{"self":[{"href":"https:\/\/stg.tftus.com\/blogs\/wp-json\/wp\/v2\/posts\/3063","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stg.tftus.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stg.tftus.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stg.tftus.com\/blogs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/stg.tftus.com\/blogs\/wp-json\/wp\/v2\/comments?post=3063"}],"version-history":[{"count":1,"href":"https:\/\/stg.tftus.com\/blogs\/wp-json\/wp\/v2\/posts\/3063\/revisions"}],"predecessor-version":[{"id":12363,"href":"https:\/\/stg.tftus.com\/blogs\/wp-json\/wp\/v2\/posts\/3063\/revisions\/12363"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stg.tftus.com\/blogs\/wp-json\/wp\/v2\/media\/3064"}],"wp:attachment":[{"href":"https:\/\/stg.tftus.com\/blogs\/wp-json\/wp\/v2\/media?parent=3063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stg.tftus.com\/blogs\/wp-json\/wp\/v2\/categories?post=3063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stg.tftus.com\/blogs\/wp-json\/wp\/v2\/tags?post=3063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}