Shift Left and Shift Right Testing practices

Agile and DevOps practices have gained popularity in the last few years, and embracing these practices has resulted in a significant change in the way software is developed and tested. It has been found that close collaboration between developers and testers, right from the initial development stage, is a key ingredient to delivering high quality products.

Agile testing is also referred to as Shift Left testing, whereas DevOps is referred to as Shift Right testing. This article aims to clarify the terminology, and to explain the practices involved in both. Reading this article will not only help you understand these practices, but will also give you insight into how to appropriately apply them.

The major difference between Shift Left and Shift Right testing practices, is the stage of the release cycle at which they are applied. Shift Left is applied during the development phase, and Shift Right is applied at the production stage.

Process

What is Shift Left Testing?

Shift Left Testing, or Agile Testing, follows the philosophy ‘Test Early Test Often’. Our previous blog article on Agile Testing can be found here: https://www.metasyssoftware.com/blogs/agile-testing.

Shift Left Testing uses very early customer feedback to improve the quality of the release, allowing the product to reach the market sooner, and can therefore lead to a much better ROI.

There are a number of practices that can be included in Shift Left testing:

  • Unit Tests – Often created to make the development process more agile and improve the quality of code at the unit level. Developers usually write unit tests for component testing.

 

  • Service Virtualization – When developing software components there is likely to be a dependence on other components such as web services and APIs. For typical testing, these services need to be in place and running at the time of development. However, if these services are not available at the right time, it may lead to a dela Service virtualization involves simulating service behaviour such as requests and responses, and sample stubs of that specific service are used to continue with development and testing.

 

  • TDD (Test Driven Development) – TDD is a development technique where tests are written before code is written. This reduces the number of bugs from passing on to the next phase, as the tests allow for early detection of many errors.

 

  • BDD (Behaviour Driven Development) and Testing – BDD is a development technique where the focus is on building an application from an end-user and business perspective. BDD focuses on system-level behaviour rather than on component level behaviour. It requires developers, testers, BAs and business participants to understand and define application behaviour in different circumstances.

 

  • Load Testing – In this practice, the developer tries to understand system behaviour and performance under different peak conditions and tries to improve the system performance with heavy loading conditions in mind.

 Advantages of Shift Left Testing:

  • Testing Early Testing Often helps to catch defects early and reduces the cost of fixing errors.
  • Short feedback cycles from customers contributes to improvements in customer satisfaction.
  • Maximizing automated testing and minimizing manual testing helps the product to reach the market earlier.

 What is Shift Right Testing ?

Shift Right Testing, or DevOps, in the production environment can be seen as a post-production activity, where monitoring of the product performance provides feedback from end users.  It follows the philosophy that a continuous feedback loop between users and developers is essential for the success of the product.

With Shift Right testing, a completely built and fully functional application is tested by the real end-users and the real-time data is used to improve performance and remove functional bottlenecks in the system.

There are a number of practices that can be included in Shift Right testing:

 

  • API Monitoring – API performance and behaviour is monitored in the production environment using tools like Postman, AppDynamics and New Relic APIs.

 

  • A/B Testing – This refers to testing an application for various non-functional aspects like usability and The process involves comparing two versions of the same page and determining which performs better.

 

  • Canary Deployment – This is a deployment strategy to reduce the number of defects in production. In this strategy, the application is made available to a small subset of users first. The application performance and behaviour is then monitored for a short time period, usually a few days. Based on user feedback, a decision is made regarding whether or not the application is ready to be rolled out.

Shift Right Testing Advantages:

  • Shift Right practices are important for getting behaviour and performance data, which allows identification and removal of bottlenecks and improvement of application stability.
  • It allows for load and performance test scenarios which are almost impossible to achieve in development and test environments.
  • It provides increased test coverage and scope for automation to save time and effort.

 At Metasys, we have extensive experience in both Shift Left and Shift Right Testing practices, and follow both as per the project requirements.

Agile Testing

Agile testing is a software testing process that follows the Agile methodology and the Scrum framework.

Agile methodology is a lightweight and effective development method.  Scrum is a Framework that supports it.  The main focus is on quick response to the customer requests or wish lists and an iterative method for application development and testing. Work is completed and reviewed in a set period of time which is called as ‘Sprint’. All iterations are of the same duration. At the end of each iteration, a working feature of the product is delivered to the customer.
How agile methodology in software development works:

  1. All requirements are in the form of a feature list and are added to the Product Backlog. The feature list is described in the form of a user story.
  2. The backlog list is prioritized and each user story is estimated.
  3. Based on the team size, sprint duration and complexity of the user story, a set of features is selected for each Sprint.
  4. Individual tasks are distributed among developers involved in the sprint.
  5. Development and Testing are carried out for all features selected in the sprint.
  6. A daily scrum meeting is conducted by the scrum master whose job it is to keep the team focused on the goal. Active participation from each individual of the scrum team is required. The meeting agenda is restricted to what was done yesterday and what you plan to do today and whether there are any known obstacles or risks.
  7. At the end of the sprint, a working feature of the product is delivered to the customer and immediate feedback from the customer is captured.

The role of Agile Testing Team:

  • In Agile testing, testing starts as soon as sprint development is done. The customer or product owner is involved with the progress of the software development. The whole team approach is to deliver a set of features which meet the customers’ current needs. The entire team works at the same workplace to allow for active collaboration. Throughout the sprint, the tester closely works with every team member and product owner to ensure better product quality and functioning. Team Interaction and active participation of each individual play an important role in Agile testing.

Why should one follow Agile testing methodology?

  • Testing starts at an early stage in the software development and features are tested within each Sprint improving quality of the product.
  • Defects are identified and either handled within the same sprint or added to the product backlog –to be taken care of by developers in the upcoming iterations while working on similar/relevant features.
  • Since defects are identified early in the development process, it reduces defect cost
  • Regular customer feedback increases the morale of the team and helps in improving the quality of the upcoming sprint work.
  • Priority features can be delivered early so that the customer does not have to wait too long. Low priority tasks can be completed later on. There is a flexibility to change scope/story points of the sprint based on the changes in customer requirements.
  • More focus on working software and Less focus on documentation.

MetaSys Software is a software services company with offices in Mumbai, India and Toronto Canada. Our team has experience in different development methodologies but we mainly prefer the agile approach to delivery. If you are looking for software outsourcing then contact us.

.NET evolution

Microsoft began developing the dot net framework in the 1990’s and launched the first beta version in 2000. Since then, there has been no looking back. Almost 12 versions of.Net framework have been launched till now. Organizations which are looking for enterprise software solutions rely upon.NET framework. Recently, Microsoft celebrated the completion of 15 years since.NET was introduced.

Initially, dot net was known as NGWS (Next Generation Windows Services). Since 2000, different versions of this technology were launched, the latest being version 4.6.2. This latest version was launched just last year in the month of August. Each version carries betas, and service packs so as to provide more value to the users. In the entire 15 years, developers experienced an object oriented programming environment and freedom to develop desktop as well as web applications. Many of the languages that run on.NET framework are simple, secure and object oriented.

Over the past 15 years, this technology has evolved to fulfill the requirements of a dynamic online environment. The ASP.NET framework has helped in building many dynamic websites and applications catering to different industry verticals. Complex applications such as hotel reservation system, a billing system in shopping malls are built easily with the ASP.NET framework. It has enabled customized content building for users, thus increasing the relevancy factor of the web page. It has helped the users in accessing any data with ease. The .Net zone has now increased more than tenfold since it was launched.

The data below will give you a clear picture of where.NET technology stands today vis-à-vis some other players in the market. (Source: W3techs)

  1. As per a recent study, 15% of websites today use ASP.NET technology in which a whopping 80% are using version 4, followed by version 2.
  2. Java and ColdFusion are the most preferred technology for high traffic sites followed by ASP.NET.
  3. .Net domain names have got a wide presence. It is presently used in more than 200 countries.

We at MetaSys Software have a long history of experience with building.Net applications since last 15 years.Our expertise lies in different technological platforms such as.NET & ASP.NET Framework (2.0 – 4.5), JavaScript, jQuery, Microsoft SQL Server. If you wish to leverage ASP.Net development capability then please feel free to contact us.