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 .


Sunday, December 7, 2014

SDLC Models

Every software developed is different and requires a suitable SDLC approach to be followed based on the internal and external factors.

I have added more information for below popular software models 


 Waterfall Model 
 V Model 
 Agile Model


The waterfall model is a sequential design process, used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, AnalysisDesign, Construction, Testing,Production/Implementation and Maintenance.


Here are some situations where the use of Waterfall model is most appropriate 
  • Clearly defined requirements , no ambiguous requirements.
  • Stable Product definition
  • Ample resources with required expertise are available to support the product.
  • The project is short.

Waterfall Model Pros & Cons

ADVANTAGE

The advantage of waterfall development is that it allows for departmentalization and control. A schedule can be set with deadlines for each stage of development and a product can proceed through the development process model phases one by one.
Development moves from concept, through design, implementation, testing, installation, troubleshooting, and ends up at operation and maintenance. Each phase of development proceeds in strict order.

DISADVANTAGE

The disadvantage of waterfall development is that it does not allow for much reflection or revision. Once an application is in the testing stage, it is very difficult to go back and change something that was not well-documented or thought upon in the concept stage.

V Model

The V - model is SDLC model where execution of processes happens in a sequential manner in V-shape. It is also known as Verification and Validation model.
V - Model is an extension of the waterfall model and is based on association of a testing phase for each corresponding development stage. This means that for every single phase in the development cycle there is a directly associated testing phase. This is a highly disciplined model and next phase starts only after completion of the previous phase.
The below figure illustrates the different phases in V-Model of SDLC.


Agile Model 
Agile thought process had started early in the software development and started becoming popular with time due to its flexibility and adaptability.
Following are the Agile Manifesto principles
  • Individuals and interactions . in agile development, self-organization and motivation are important, as are interactions like co-location and pair programming.
  • Working software . Demo working software is considered the best means of communication with the customer to understand their requirement, instead of just depending on documentation.
  • Customer collaboration . As the requirements cannot be gathered completely in the beginning of the project due to various factors, continuous customer interaction is very important to get proper product requirements.
  • Responding to change . agile development is focused on quick responses to change and continuous development.
                           

QAClub : Concepts of Software testing

All ,

 I started this blog to add more conceptual clarity in our day to day testing life . 


This will help QA professionals to understand software Testing concepts ,processes , Tool evaluations 

Stay Tuned !!!!