Each minute of our life is a lesson but most of us fail to read it. I thought I would just add my daily lessons & the lessons that I learned by seeing the people around here. So it may be useful for you and as memories for me.
Article by V Rana & Vaibhav Choksi..
In most software development organizations, QA is considered a function separate from development units. Indeed, testers and developers have their own roles and responsibilities to take care of. However, QA and development teams should sync very closely to achieve common objectives of delivering a single, robust application that functions and behaves as per agreed standards.
When one examines the present drift toward DevOps, it’s quite evident that more and more organizations are implementing this software release model with the intention of enabling automation in software deployment. DevOps affords the framework that allows teams to move forward software on a more frequent basis. The conventional idea of a “software release” dissolves into a uninterrupted cycle of service improvement over time.
What is DevOps?
DevOps is projected as the next higher level of agile software development practice that enables coding and testing to take place simultaneously with timely collaboration and communication amongst all concerned functions/ departments. It provides a framework that enables teams to speed-up software releases and gain faster time-to-market, even while ensuring quality at the same time. Traditional role of QA is to detect bugs, but in DevOps, the key responsibility of QA is to avoid the bugs from occurring in the first place
DevOps encourages development and operations teams to function as one single cohesive unit, focused on delivering business values across the IT value chain. It also helps in release management, delivery and deployment with continuous automation. Here we will discuss how DevOps can be helpful to deliver continuous integration & continuous delivery in QA..
Test automation tools are capable of performing tests, reporting outcomes and comparing results with earlier test runs. Tests carried out with these tools can be run repetitively, at any time of day. Test automation framework is a set of guidelines, coding standards, concepts, processes, practices and more, which provides an execution environment for automation test scripts. It allows the user to develop, execute and report on the automation test scripts in an effective and efficient manner.
Build Verification Test (BVT) is a set of tests run on every new build to verify that build is testable, before it is released to a test team for further testing. These test cases are fundamental functionality test cases that ensure application is stable and can be tested systematically. BVT saves time, cost, resources and efforts for test teams to setup and test a build. Test environment virtualization enables optimization of various simultaneously started processes. It can make testing much easier and efficient by eliminating certain dependencies and bring down the cost of setting one or multiple test environments. It considerably increases IT infrastructure flexibility and the efficiency of hardware usage.
How implementing DevOps can be useful in QA?
The role of QA in DevOps becomes more of an enabler or gatekeeper that links developers and the operations teams. DevOps is an approach to highlight swift, small, iterative development and deployment of applications. DevOps flawlessly integrates all the three functions – Dev, Ops and QA as a single IT entity that deliver value.
Take an example of an ecommerce portal. In its release environment, hourly releases are very common. In such cases, load, stress, and security testing become important. With DevOps approach, faster timely releases can be delivered by eliminating the opportunity for people to make errors. The continuous performance evaluation of the portal helps in improving customer experience.
DevOps helps in creating rapid, reliable and repeatable processes. It also benefits in achieving process improvements throughout the software development life cycle by identifying issues and recommending necessary improvements. With the help of DevOps, testers can leverage best practices in agile testing, continuous integration and test-driven development to accelerate QA processes and reduce cycle time.
What is the role of QA in DevOps?
QA has always been seen as a “gatekeeper” for software deliveries. However, in a DevOps environment, QA is part of the process itself since there are no boundaries between development and operations leading to Agile results unlike a traditional environment where development and operations are separated functions and operations team fixed issues raised by development teams.
In DevOps organizations, QA pushes out new development code to a production environment and DevOps teams provide infrastructure and tools to make the deployment process easier while simultaneously verifying that the changes are functioning as per the requirement.
In a traditional QA focused organizations, quality assurance teams focus on finding bugs while in DevOps organizations, the responsibility of quality assurance is not limited to that but to prevent them from arising in the first place. This approach helps in an environment where there is a need for newer releases every few minutes or hours. Here, manual testing is simply ruled out as an option and test automation has to be deployed.
Hourly releases are very common if we consider the release environment of an eCommerce portal. In this case, load, security and stress testing become critical and DevOps practice can help manage better quality releases since quality is an integral part of DevOps. This helps to identify and fix issues before new code goes live on the portal while checking for performance when it’s live.
DevOps helps achieve continuous improvement throughout the development cycle of a software product as QA teams can simultaneously identify issues in processes and recommend improvements wherever necessary.
Please feel free to share your story and any lessons you learned, you experienced, you came across in your life in the comments below.