As we all know, development methodologies such as Agile and DevOps have brought about a significant change in the process of software development and delivery. Naturally, software testing was impacted by these changes in technology. Automation testing frameworks were introduced to keep pace with the new development methodologies. Let’s take a look at how testing has evolved through the phases from waterfall, to agile to DevOps and the impact these have had on quality assurance and software testing.
Testing was seen as a separate phase in the software development lifecycle in the waterfall model. This phase witnessed testing teams that were separate from the development team altogether.
The software would take longer to deliver owing to this methodology. A separate operations team was accountable for releasing the software to production which happened every few months. There was either very little or almost no communication and collaboration between the development and testing teams.
During this phase, testing was mostly manual and was conducted after the software was developed and just before releasing it to production.
A shift was created in the development and testing space by the agile methodology. This methodology was primarily introduced to fill the gap of the waterfall model. In this model, software delivery was broken into smaller pieces which required strong collaboration between developers, testers and product managers.
Rather than a phase at the end of SDLC, testing now became a parallel activity to software development, and testers became a part of the development team. The development team now took ownership of quality and testing became a shared responsibility.
Owing to the need for speed and high quality, the use of automation testing frameworks became common during this phase. By fusing the development and testing practices, the agile methodology paved the way for faster delivery of software. However, the actual deployment to production was conducted by a separate TechOps team.
While the TechOps team had knowledge of servers, networks, and deployment, they were usually unaware of the details of each release. Therefore, feedback to the development team was slow. So, if a bug existed in the release, it would take a while for the development team to become aware of the problem.
The agile model was taken a step further by DevOps by reducing the gap between the release and deployment activities and those of development and testing. With DevOps, an agile team became responsible for the development, testing and release of the software. Testing in DevOps includes the entire software development and delivery lifecycle.
The need for faster delivery, brought about a requirement for fast testing as well. Selenium's automation testing framework became one of the commonly used tools in the market.
Owing to digitalization, development methodologies are experiencing a rapid evolution, similarly even automation testing frameworks need to evolve to keep pace. In the beginning of the DevOps era, Selenium's automation testing framework was commonly used, however today the automation tools have evolved to fit the market’s changing needs. The ease and speed of script-less test automation has made the process of software testing almost effortless.