ADOPTING SHIFT LEFT APPROACH

At present most of the companies are using traditional testing practice, where they start testing after the product is developed and deployed to test environment i.e. to the very right of the development life cycle. In this approach testing often start late in the development phase with low code quality and testers are only to blame for product quality, this approach often leads to low product quality, unhappy customers and high project cost.

We always talk about early testing and its benefits in traditional software development approach, but due to various external or internal factors, the quality comes into picture when development is completed or on the verge of completion. Small tradeoff made initially to achieve the deadlines or save cost soon turn into big trouble to the team, let’s take an example from the below picture.

Compromise to quality is made at the point when the stakeholder/ project manager takes the call to assess the quality after development is completed. Developing application/product may give an initial advantage, but it has long-term consequences in terms of product quality, scalability and maintainability.

Usually, in this approach, developers focus on resolving user stories/work items and there are very few/no unit/ integration/ API test created at the time of development. The outcome of such development activity is a raw untested product and now its testers responsibility to gauge the quality, they must test complete application start from functionality to usability, performance etc. and hence a huge backlog of test activities to perform. In case, tester finds a mismatch in requirements then it’s certainly a huge loss of time and money, similarly, the edge case bugs which can be caught by unit and integration test will be seen very late in development activity.

The problem becomes even bigger while fixing the issues, due to absents of developer test there a very high chances of regression bugs when developers try to fix the bugs found by testers., due to these facts scaling and maintenance of such product will turn to a nightmare. In some case, Functional UI automation cases are created to fill the gap made in absence of Unit and Integration levels, but the fact is that UI test is generally Unstable and take more time to execute.

QodeStack believes that this model is old, and we help our customers in moving move towards “Shift left approach” where we test early and everyone is responsible for testing from the inception of the project till it is delivered.

“Shift left approach” is based on prevention rather than detection of bugs in the later stage. In this approach, everyone in the team is equally responsible for the quality of the product and all team members contribute towards product quality.

While tester starts testing from requirements phase, the developer along with tester write the unit test to check code functionality (edge cases and code coverage) followed by API, Integration and UI test automation for faster and high-quality delivery. At the time of product completion, the full team performs UAT along with TEST team and BA to ensure product meets requirements as designed. And as product testing was mostly automated and well tested from the inception, with no surprise, in the end, the product is far cheaper, high quality, scalable and maintainable.

Shift left demands a process setup and involvement of even one in the team towards a high-quality product, here are few key processes:

Quality Centric Dev and Test Planning

  • Product planning: be it development activity or testing activity, should be done in a way that the focus is to achieve high-quality product in the end.
  • For developers: Unit, API, Integration and UI testing activities should be part of project planning and estimations.
  • Overall: test team activities should be planned parallel to development activities and testers should be part of automation planning right from the planning phase.

Involve a full team in Functional Testing and Test Automation

  • Everyone should be responsible for quality not only manual testers; functional testing should be carried by all team members regularly so that the product confirms the quality, and everyone is on the same page with respect to product functionality.
  • Developer and Tester both should write test automation scripts, the focus should be given to maximum Unit Testing followed by Integration and API/Service and UI automation test.
  • Single reporting platform should be there to check the Unit, API, Integration, and UI test status.
  • BA, PM, Developers, and Testers should be able to run tests and analyze test results.
  • The functional tests should also be part of the mainstream automation platform and their execution status should be tied up with the reporting system.

Implement Continuous Integration & Delivery (DevOps)

  • With automation in place, implement Continuous Integration to test more often and get faster feedback.
  • Build a test pipeline which clearly explains the automated testing process. Starting from Dev Environment up to Pre-Production Environment which covers test status of the Unit test, UI test, and functional test etc.
  • Feedback received from test output must be translated quickly, this will allow the team in finding bugs early and reduce time to market.

Automate Automation (AI & ML & BI)

  • Develop self-learning automation system that can prevent/predict test failures and take necessary actions beforehand (here AI, ML can be used extensively to make sure we have correct test data set and predictive models of UI locator strategies).
  • There should be a safety net across all type of automation cases to prevent false positive and false negative (here AI ML can be used extensively to prevent test failures).
  • Reporting platform should be very good in terms of comparative analysis, historic test results data and debugging of test failures.

Regular Audits & Feedback

  • Gauge the benefits and shortcomings in Shift Left program and improve the shortcomings.
  • Enhance the program and process after taking feedback from stakeholders.
  • Setup Test Automation COE for sharing and best practices and lesson learned.

Conclusion

Shift-left approach of testing is at the core of the Agile and DevOps methodologies, adoption of shift left approach helps organizations to move toward a faster, predictive and preventive approach to testing which can be implemented in any testing and development approach. Here are the major benefits of adopting the shift left approach:

  • Bugs are found and fixed early.
  • Easy to maintain and scale products
  • Faster delivery time reduced time to production.
  • Facilitates good team spirit due to better teamwork and everyone’s involvement
  • Enhanced Test Coverage due to testing at each level (Unit, Integration, API, services, UI).

Not sure about the best practice in LEAPWORK? Get in touch with us and we will guide you from start till the end in your automation journey.

 

Leave a Reply

Your email address will not be published. Required fields are marked *