End-to-end testing ensures quality delivery and also makes the development process quicker. That is the reason most of the IT companies prefer end-to-...Read More
Instead of DevOps being an extension to Agile, the software testing strategies in DevOps and Agile are very different to each other. Before moving to the testing let us know the difference between Agile and DevOps.
Although there are not much differences between Agile and DevOps Testing, people working with Agile find DevOps familiar to work with. While Agile conventions are implemented successfully in the development & QA iterations, it works differently on the operations side. With the help of DevOps, this gap is amended.
The traditional way of testing a build includes a cycle in which the build is deployed to the QA environment and the functional and regression testing is done on this environment. For the period in which the testing is being done the build ideally sit until the testing status is provided by the QA. This approach is changed in DevOps as we have various benefits of DevOps.
In DevOps speed and agility is the basics for DevOps and for this we automate all the testing processes. Simultaneously, when development is completed in the QA environment, all the processes are configured to run them automatically. There are different types of automation testing tools and continuous integration tools for integration. A solid and easy to use framework used for writing the scripts also speed up the process of testing.
1. The test cases are identified first that are required to be executed.
2. After a new build is released, our QA and dev team sit together discuss and identify for the affected areas. Sanity testing is done and also the related tested cases are.
3. We make sure that 100% code coverage is achieved by using coverage tools.
4. All the regression test cases that are required to pass a test are executed.
5. When a new feature is introduced to existing code, before deploying it to the production the interim build is given to QA, who create test scripts for these features and run these on interim builds until the build becomes stable.
6. All the environments on which testing is to be performed are standardized and all the deployments are automated.
7. To make the application more compatible and have a high performance, different automation techniques are used and for web applications cross-browser technique is used.
8. One of the main specialties of DevOps is the time constraint. Thus, to reduce the time parallel execution of tests is done.
9. There needs to be criteria to take the build to the production. For this, an exit criteria is set for each run. If this exists criteria is passed then the build is taken to the production environment.
10. Before deploying the build to the production environment, the blockers and bugs with high priority need to be reported & fixed. Only after these bugs are resolved and passed, the build is deployed to production environment.
QA works proactively and detects and reports the bugs as early as possible. Also, to avoid any failure at the production environment, we set up monitoring on the production environment. This helps to find bugs before they turn into failures.
For getting more fine testing, we set up specialized counters like response times, memory & CPU utilization, etc. which provide a lot of insight into the end-user experience.
For example, if the average response time for submitting a contact form is more than the expected time in a build, the issue is reported and is handled in current build as it makes become a concern for the future builds due to high response times.
Execution of high priority test cases periodically on the production environment can also be helpful to catch bugs like “This is a random bug” or “Unable to reproduce”. This will help to get a more stable build and more customer satisfaction.
The hierarchy of software testing includes Waterfall Model that was replaced by V-Model which in turn was taken over by Agile.
Now, if we look to the future DevOps is what we see. It is a methodology that has the ability to deliver applications and services at high speed as discussed in starting. It’s a continuous development.
The concept basically is the same to produce a product that is user-friendly and gives them a sense of satisfaction. Here at BugRaptors, we use DevOps to give you a quality product in less time using automation.