The presentation on Testing in DevOps Culture was done during #ATAGTR2017, one of the largest global testing conference. All copyright belongs to the author.
Author and presenter : Arshi Nazneen
2. Agile Testing Alliance Global Testing Retreat 2017
DevOps (development and operations) is an enterprise software development phrase used to mean a type of
agile relationship between Development and IT Operations. A popular belief is that DevOps requires
throwing away everything the organization has built and starting from scratch. However, that is untrue; the
critical component of DevOps in large organizations is the need to improve communication and
collaboration between IT team disciplines.
In IT organizations, developers, testers and operations engineers typically play different roles, with varying
responsibilities, job descriptions and cultures, and all working in separate functional areas as distinct
entities. The question is whether QA can unify these various groups under the DevOps flag and spur
adoption.
Introduction
4. Agile Testing Alliance Global Testing Retreat 2017
Testing in Agile Testing in DevOps
Test as early and as often as possible. Test Continuously
Automate test as much as possible Automate almost everything
Continuous integration and testing is a step forward Continuous integration and testing is mandatory
Role of Testing in DevOps
The role of testing in DevOps can be best understood by comparing how testing is approached in Agile vs.
DevOps.
From DevOps perspective development and operation takes place together as a TEAM. They work together to
deliver the final product. Prior to code integration to trunk, developers pre-flight test their code to make sure it
doesn’t blow up the trunk. During the Continuous integration cycle and code commits from multiple developers
integration testing is used to verify merges.
Contd..
5. Agile Testing Alliance Global Testing Retreat 2017
• During the continuous testing phase where nightly and weekend regression runs are automated for trunk and
release branches it is testing that does the job of finding problems before the software release.
• During the development process the verdicts trends from testing are a primary measurement of progress.
• During the release deployment phase more testing verifies the release packages are ready for release.
What DevOps really does is bring testing into the mainstream of development processes, and avoids the problems
created by having “big-bang” testing left to the end of the cycle, such as release delays, and quality issues.
Testing is a vital part of the overall DevOps process — not only to ensure verify code changes work and integrate
well — but to ensure the changes do not blow up the product. So clearly testing is an integral part of product
development and delivery
6. Agile Testing Alliance Global Testing Retreat 2017
DevOps is Agile
• Faster time to market
• Higher quality
• Increased organizational effectiveness
DevOps is Agile taken through its logical evolution, removing all the obstacles to get high-quality
software in the hands of customers. Once you have a smooth process for agile development and
continuous integration, automating the deployment process makes total sense because it’s
fulfilling the objectives that business managers crave:
7. Agile Testing Alliance Global Testing Retreat 2017
DevOps Adoption
DevOps Adoption in 2015
8. Agile Testing Alliance Global Testing Retreat 2017
DevOps Lifecycle (New SDLC)
DevOps lifecycle follow some principles-
Create production like systems for development and testing environment
Deployments need to iterative and frequent. Ensure a reliable and repeatable process
Continuously monitor and validate operational quality characteristics
Amplify feedback loop
9. Agile Testing Alliance Global Testing Retreat 2017
Challenges
DevOps is gaining momentum with legacy organizations but at a slower pace due to a variety of
challenges. Typical challenges in IT organizations seeking to embrace DevOps include:
Traditional Ops: This group spends the majority of its time putting out production fires, dealing with
recurring failures and making urgent fixes
Test environment overhead: Each environment (testing, development, pre-production/ staging and
production) is unique. Operations must have a laser focus on production environment issues and, as
such, does not have time to work on improving infrastructure.
Traditional testing: Several thousand interdependent regression test cases run through the application
user interface for several days, causing longer test cycles and manual handoffs, resulting in much
slower feedback.
Traditional development: Late code integration results in integration issues and late defect fixes,
leading to longer cycles. Schedule delays often occur due to the absence of automated build
verification and deployment procedures.
10. Agile Testing Alliance Global Testing Retreat 2017
Continuous Testing (CT)
Continuous Testing plays a crucial role in Continuous Delivery. It implicates usage of methods and concepts of
agile development for the testing and QA process, offering more efficient testing process. Continuous Testing needs
automated end-to-end testing solutions that integrate existing development processes while excluding errors and
enabling continuity throughout SDLC
11. Agile Testing Alliance Global Testing Retreat 2017
Testing teams can play a key role in overcoming the challenges of transitioning to DevOps by planning a CT
infrastructure and creating an early feedback loop with development. By successfully implementing CT as a
first step, the dots of DevOps can be connected with development and operations to create automated build
deployments, code coverage analysis, production monitoring and on-demand environment provisioning –
enabling a full cycle of Continuous Transitioning (CT) and Continuous Delivery (CD) to be established.
Conclusion