Sunday, January 18, 2015

DevOps Critics and Role of QA

DevOps methodology : 
After going through so many books and blogs i came to conclusion DevOps is still a relatively young method, partly experimental. As such it has received its fair share of negativism. Implementing such method might damage good processes withing organizations ( Sorry to be straight here) or can be easily mislead  

DevOps means that there are no walls, no gates, no transitions, and no ceremony between Development and Operations. They are seamlessly integrated (when viewed from “above”) into a single, value delivering, IT entity. This means  that everyone – from Jr Analyst, to Mid Dev, to Sr. Test, to Director of IT – is equally responsible and accountable for the product from inception through retirement. 

This means the Devs are just as likely to be maintaining the system in Production as the Sys Admins are to be doing configuration testing in the Dev Environment.


Management always stresses faster delivery of product , to achieve that most of them are thinking of Dev ops .

Obviously keeping the software instantly deploy-able  requires a large amount of automation, but it is dangerous to only focus on the tools. The focus should instea be on people coming together and working towards making the entire process rapid – reliable – repeatable. All the way from inception of a feature to deployment to production and everyone in between.

Why so critics abt Dev Ops?

Devops methodology facing resistance in organizations   

DevOps assumes that just about everything, and certainly testing, is completely automated. 

Even working in big organizations automation QA struggle to explain to management , most of managers who has background of industrial automation always things software automation is same which does not need any manual intervention . This leads lots of overall misunderstanding of implementing processes .

As QA knows what scenario's can be automated and what can not be ,which need to clearly communicated to avoid future misunderstanding. 

High degree of low level test automation will free up few automation resources which can be effectively managed for integration and exploratory testing, both pre- and post-deployment.

Testing in Production, which DevOps embraces, may look like an immediate block for industries with high amount of regulation: banking and Heathcare .

 A possible solution to consider is the idea of “Blue-Green Deployment”, where you build up an copy of the production environment, hardware and all, in parallel to the real production environment. Once everything has been tested to satisfaction, deployment becomes mostly a matter of switching a router.

 These criticisms does not mean we can not approach DevOps or we should not . You can approach with Open mind and select bits of work , bring them into greater whole .


Role of QA 

Just like Agile , In a pure DevOps world, Quality Assurance is no longer the gatekeeper between development and operations – the bottleneck. QA is an enabler means Everyone contributes to build product right.

On one side, QA works together with development in trying to push more of their tests into the continuous integration system. Tests must have zero human intervention and generate their own test data

A works with operations to collaborate on monitoring tools; perhaps to continuously run smoke tests in Production. Chances are that operations is developing scripts for backup and restore of production systems, rollback of deploy, or scripts for disaster recovery.
Testing such procedures presents an interesting and perhaps new challenge for QA. Another idea is that test automation should have a higher effort at a lower level: the API.
Assuming the API is doing everything correctly  then the UI is likely having issues. But your back end APIs and Data layer should be fine. 

Concentrating automation efforts on lower levels allows tests to be significantly less brittle. For higher level testing of the UI, which may change much more often, manual exploratory testing is a better use of resources. Any problems discovered can quickly be corrected due to higher deploy frequency. 

Conclusion : QA should contribute to the end product; make or bake  QA test scripts as a deliverable in the final product. Approach with Open mind and select bits of work , bring them into greater whole .