2.1.4. DevOps and Testing
DevOps is an organizational approach aiming to create synergy by getting development (including
testing) and operations to work together to achieve a set of common goals. DevOps requires a cultural
shift within an organization to bridge the gaps between development (including testing) and operations
while treating their functions with equal value. DevOps promotes team autonomy, fast feedback,
integrated toolchains, and technical practices like continuous integration (CI) and continuous delivery
(CD). This enables the teams to build, test and release high-quality code faster through a DevOps
delivery pipeline (Kim 2016).
From the testing perspective, some of the benefits of DevOps are:
• Fast feedback on the code quality, and whether changes adversely affect existing code
• CI promotes a shift-left approach in testing (see section 2.1.5) by encouraging developers to
submit high quality code accompanied by component tests and static analysis
• Promotes automated processes like CI/CD that facilitate establishing stable test environments
• Increases the view on non-functional quality characteristics (e.g., performance, reliability)
• Automation through a delivery pipeline reduces the need for repetitive manual testing
• The risk in regression is minimized due to the scale and range of automated regression tests
DevOps is not without its risks and challenges, which include:
• The DevOps delivery pipeline must be defined and established
• CI / CD tools must be introduced and maintained
• Test automation requires additional resources and may be difficult to establish and maintain
Although DevOps comes with a high level of automated testing, manual testing – especially from the
user’s perspective – will still be needed.