54% of companies have adopted DevOps and the interest around DevOps is increasing rapidly – A research Report.
What is DevOps?
DevOps is a software development methodology which looks at integrating all the software development functions from development to operations within the same cycle. This methodology is an extension of Agile and it requires higher level of coordination across various stakeholders in the software development process (namely Development, QA & Operations)
DevOps impact on Software Testing:
DevOps encourages everyone to contribute across the chain. So it is important for the Chief Technology Officer to understand the impact of various roles that encompass Software Testing Team. Scenario 1: A developer can configure deployments. Scenario 2: Deployment engineers can add test cases to the QA repository. Scenario 3: QA Engineers can develop test automation scripts and configure their automation test cases into the DevOps chain. What it means is that every single person in the organization is responsible for quality and timeliness of deliverables.
DevOps and Test Automation
To achieve such speed and agility, it is important to automate all testing processes and implement specialized automation testing tools and continuous integration tools to make DevOps possible. This also necessitates building a mature automation testing framework through which one can quickly script new test cases.
In today’s world of Continuous Delivery, DevOps is a stage by stage process to be introduced and implemented within the organization. The best possible way is to start with the Testing and Test Automation process and extend it to the other departments.
Consider this approach:
- Start by automating your application deployment to test environments. Take advantage of virtualization and the cloud, and deploy those test environments dynamically, without any hard-coding. The test environments are torn down at the end of the test. In order for this to be achievable, the team needs to collaborate around the application architecture to make it as-easy-as-possible to automate deployment.
- Make sure you can run a test automatically first: Implement a strategy from the build – it can be installed, configured and the automated test runs before writing additional tests. Approach differently about what tests should be automated
- Provide an automation framework that solves the test automation implementation timeline puzzle. Create a Test Automation framework that can provide reusable components for creating new scripts. An Automation framework that is well created contributes to pay off in the future.
- Make it a team commitment that every code change is committed with a test to the framework. There will be no shortage of tests.
DevOps QA/ Test Automation Is About Preventing Defects, Not Finding Them
QA takes a critical role in DevOps organizational structure because they have the visibility and the directive to push code out when it is working, and roll it back when it is not. This is a very different mindset from QA organizations of 10 years ago, whose primary responsibilities involved finding bugs. Today QA groups are charged with preventing defects from reaching the public domain. This mindset will inspire technology organizations to go for DevOps and Test Automation together.