This document discusses the need for continuous testing in DevOps. It explains that continuous testing is an approach where all testing activities run continuously and are integrated with development and delivery. The key is to assess business risk, establish a safety net for users, and provide feedback throughout the software delivery pipeline. It provides details on implementing continuous testing such as engaging in continuous risk analysis, increasing testing velocity, and developing a culture of quality. It also discusses practices like defect management, test case optimization, environment access, and identifying bottlenecks. The document argues for integrating testing throughout the delivery pipeline and implementing automated testing checkpoints and non-functional testing earlier in the process. It emphasizes the importance of continuous monitoring in both testing and production.
2. About Me
|Gerie Owen
• VP, Knowledge & Innovation--US at QualiTest
Group
• Speaker and Writer on Testing topics
• Experienced Tester, Test Lead, & Test
Architect
• Gerie can be reached:
• gowen@qualitestgroup.com
• www.gerieowen.com,
• her blog, Testing in the Trenches, is at
https://testinggirl.wordpress.com/
• @GerieOwen on Twitter and on
• http://www.linkedin.com/in/gerieowen
2
3. Agenda
| Does DevOps Need Continuous Testing?
| Continuous Testing Explained
| Implementing Continuous Testing
| Streamlining the Test Process
| Developing a Test Strategy for Continuous Testing
| Monitoring in Production
4. Does DevOps Need Continuous Testing?
| DevOps is about Continuous Delivery
| Testing Cycles must be shortened yet quality must be increased
| Increase in microservices architectures require high-quality functional testing including
automated API testing
| Builds, Integrations and deployments are automated; testing must be integrated into the pipeline
4
5. Continuous Testing
| A core capability in Agile and DevOps where all testing activities run continuously in an
integrated fashion with development and delivery. Immediate bug fixing is enabled,
test environments are provisioned instantly, and unit, functional, and nonfunctional
tests are run in an automated way, orchestrated by continuous integration and
continuous delivery tools. The Forrester Wave™: Modern Application Functional Test Automation Tools, Q4
2016
5
6. Continuous Testing vs Test Automation
| Continuous testing requires automation, however, it encompasses much more.
| Continuous testing is an approach to managing risk by focusing on not only on
improving testing efficiency but more importantly, increasing the effectiveness of our
test processes.
6
7. Attributes of Continuous Testing
| Assesses business risk coverage as its primary goal
| Establishes a safety net that helps the team protect the user experience
| Requires a stable test environment to be available on demand
| Integrates seamlessly into the software delivery pipeline and DevOps toolchain
| Delivers actionable feedback appropriate for each stage of the delivery pipeline
7
8. Implementing Continuous Testing
| Engage in continuous risk analysis and process improvement
| Increase the velocity of current quality assurance process
| Implement automated testing through the entire software development process
| Develop a culture in which the entire team is responsible for quality.
8
9. Key Practices of Continuous Testing
| Defect Management
| Discuss their “observations” prior to logging defects.
| Fix defects immediately rather than logging and tracking.
| Test Case Management and Optimization
| Analyze individual test cases for for their quality and effectiveness.
| Evaluate test suites to determine if they are providing the maximum amount of coverage with
the fewest number of test cases.
| Advanced Analytics
| Using code change impact analysis for test optimization to determine:
• what new tests are needed,
• what old tests need updating or replacement,
• what other areas of the application have been affected and require regression testing.
10. Key Practices of Continuous Testing
| Environment Access and Availability
| Requires easy access to production-like environments.
| Automated processes for creating and verifying these environments.
| Service Virtualization and Data Management
| Processes include deployment automation, test data creation. and service virtualization.
Embraces shift left because integration testing can begin even though all the integrations may
not be completed or available
| Automated Testing
| Includes automating not only all layers of testing, but also, automated testing of the deployment
process, including automated health checks and feedback at each step
10
11. Streamlining the Test Process
| Focus on Mitigating Business Risk
| Optimize Test Scope
| Identify and Mitigate Bottlenecks
12. Focus on Mitigating Business Risk
| Focus on the customer; aspects of the applications that are most important to the
customer are areas of highest risk
| Understand the competitive climate of the organization; how important is it to be first
to market.
| Map risks to application components, requirements and tests
| Optimize the test suite to provide the greatest risk coverage with the fewest number of
test cases
| Always report status in a way that highlights the business risk including, technical,
performance, and compliance perspectives
12
13. Optimize Test Scope
| Select end-to-end tests that focus on the critical and high-risk features of the
application
| Understand all integrations involved in critical user workflows including the
technologies employed in those applications (web, mobile, message/API-layer etc.)
| Implement service virtualization for integrations and components that aren’t readily
available in order to run end-to-end test continuously
| Use the most realistic data possible for each test, include synthetic data generation
where needed
| Include exploratory testing to find user-experience and other bugs not easily found by
automated tests
13
14. Identify and Mitigate Bottlenecks
| Constraints to the test process can be found throughout from requirements through
post production checkout. Some Examples:
| Testers aren’t included in backlog refinement so they don’t have the opportunity help build the
acceptance criteria.
| Testers aren’t included in sprint planning, story points may not include testing which affects
velocity.
| Defects may not be addressed on a timely basis
| Regression suite runs too long or is ineffective
| Post production checkout is still done manually.
| Constraints impact velocity.
14
15. Continuous Testing Strategy
| Components
| Increase Velocity AND Improve Quality
| Integrate Testing throughout the Build Pipeline
| Implement Automated Testing Checkpoints
| “Shift-Left Non-Functional Testing
| Continuous Monitoring in Test and Production
15
16. Increase Velocity AND Improve Quality
| Increase velocity
| “Shift Left”; Push automation to the base of the testing pyramid
• TDD, BDD
| Include risked-based manual and exploratory testing
| Implement continuous non-functional testing including:
• Performance
• Security
• Availability
• Accessibility
| Amplify automated feedback loops to enable risk-based decision-making
| Improve quality
| Developers need to embrace testing
| Entire team is responsibility for quality
| Implement post-production monitoring
| Implement testing in production, based on application risk”Shfit
16
17. Integrate Testing Throughout the Delivery Pipeline
| Integrate automated tests in each stage the Continuous Integration Pipeline
17
18. Implement Automated Testing Checkpoints
| Automated Testing Checkpoints
| Unit tests verify code
| Component tests verify key features
| Integration test verify workflows involving multiple applications
| Risk-based, Optimized Regression tests run prior to each deployment
| Post production health checks verify applications are up and running after deployment
| Production monitoring finds defects and performance issues before they impact the customer
18
19. “Shift Left” Non-Functional Testing
| Begin Performance testing as early as possible in order to correct design flaws more
easily
| Use Functional Automation tools that create multi-purpose scripts
| Cross-Platform Testing
• Scripts should run on Desktop, Web, Mobile & Server
| Cross-Browser Testing
• Scripts should run on multiple browsers including Chrome, Edge, Safari and any others required
| Performance Testing
• Scripts should collects performance statistics including page loads etc
19
20. Continuous Monitoring in Test and Production
| Continuous Monitoring
| Comes from the DevOps principle of amplifying feedback loops in both test and production
| Enables collection and analysis of data and metrics throughout the lifecycle that are used to
optimized user experience.
| The most important data is about how users are interacting with the application and feedback
from customers. This data allows stakeholders and DevOps teams to make targeted adjustments
such as:
• Functional enhancements to remove customer pain points
• Upgrades to environments to improve application performance
| Testing in production includes
• Monitoring data and transactions
• Simulating transactions
• Experimentation with real users
• A/B Testing
22. References
| Continuous Testing for IT Leaders, Wayne Ariola and Cynthia Dunlop
| A Practical Guide to Testing in DevOps, Katrina Clokie
| What Testers Need To Know About Continuous Testing, Wayne Ariola
| The Forrester Wave™: Modern Application Functional Test Automation Tools, Q4 2016,
Diego Lo Guidice
22