Traditional waterfall testing in traditional set up is much different from testing in a DevOps environment.
The essentials of testing in a DevOps environment have been listed below
- DevOps stages of continuous integration and continuous delivery necessitates frequent software releases. So, testing becomes much more important in every stage of Software development lifecycle than in traditional set-up, to ensure high software quality
- The testing is done by the entire team not just assigned testers in a DevOps environment contrary to a traditional set up where testers worked in siloes with the operations and the development teams. Testing is a shared responsibility in DevOps environment.
- Some DevOps test like pre-flight tests is conducted in an environment which is almost similar to the production environment in user deployment. This reduces the chance of false positives
- The primary job of QA in a traditional set up was practically to detect bugs while the QA in DevOps is responsible from stopping the defects reach the end user
- Each stage of SDLC requires different forms of testing and tools for testing in DevOps environment
- In DevOps environment code changes are merged with the repository continuously through continuous integration. Such frequent changes necessitate continuous code testing to ensure error free codes. The different types of tests afforded for testing codes are unit tests, functional tests, acceptance tests and integration tests
- DevOps teams generally employ integrated automated testing suites whose test areas range from codes, APIs, performance, load balancing, endurance etc. Some of the most popular test automation tools in DevOps are
- Katalon Studio
- Soap Ui and
- Contrary to traditional testing where testing started after the software was complete developed, DevOps employs testing in the entire CI/CD pipeline, at every stage of SDLC
- DevOps testers need to have cross teams working skills and a broad understanding of the tools and technologies like Source Control tools and concepts (using Git, Svn etc),Continuous Integration (using Jenkins, VSTS ), Infrastructure Automation (using Puppet, Ansible),Deployment Automation & Orchestration concepts (using Jenkins, Octopus Deploy).Container Concepts (LXD, Docker),Orchestration concepts (Kubernetes, Swarm), Cloud (using AWS, Google Cloud, Azure etc.)
- Ideally DevOps teams should create various testing documents like
Risk Assessment Report
Use Case Specifications
Test cases summary reports
Quality Management Plans and others
- DevOps uses Shift Left testing approach
Shift left Testing Approach
Shift left Testing involves detecting and negating errors early in the software delivery process. So, if you consider the six stages of the SDLC on a straight line, shift left means putting your maximum testing efforts for all probable scenarios at the early stages of the lifecycle development
Shift left method is more preferable so that defects can be negated at early stages and not when the software delivery is on its final legs. This would help reduce the cost in product development multiple times.
With the rapid growth of DevOps and adoption of DevOps practices by organizations, the need for testing as a service (TAAS) has increased rapidly. Ismile Technologies offer TAAS and guides the DevOps testing process, provides the necessary resources for testing and perform both functional and non-functional testing