DevOps Model
DevOps takes the Agile model a step further by bringing closer the release and deployment activities to those of development and testing. This means that an agile team on its own is responsible for the development, testing and release of the software they create
DevOps Testing Strategy
Testing in DevOps spans the whole software development and delivery lifecycle. Testers are no longer just focusing on functional testing and feature verification.
As testers, we should also be involved in operations testing, performance testing, basic security testing, as well as being able to monitor and analyze production data and logs.
You can see why people struggle to understand where testing fits in a model that doesn’t mention it at all. For me, testing fits at each and every single point in this model.
Indeed, testing can and should happen at each stage in a DevOps model. In the Agile Test Strategy post, we described how testing fits into the Agile model.
DevOps testing strategy can extend that by adding following sections:
Test Automation and Continuous Testing in DevOps
Choice of tools and technologies become ever so important in the DevOps model. The choice of tools allows an organization’s ability to deliver applications and services at high velocity. There is a greater emphasis on automated testing in DevOps as we want to create a culture where we can push code down the systems quickly and with confidence.
As well as automated functional tests, we should also have a set of performance tests as well as security/resilience tests in the delivery pipeline.
Needless to say, before being able to implement any of the above automated tests, first and foremost is building an automated build and delivery pipeline in a Continuous Integration tool, such as Jenkins.
Testing in Production
Testing in production doesn’t necessarily mean executing your functional / performance testing scripts against a live system where users are using the application. We can start by analyzing the trends in A/B or multivariant tests. We can also monitor servers for any strange behavior, such as memory leaks, high CPU usage, etc.
Impact of DevOps on Testing
How has all of this changed the role of testers and testing in DevOps?
Testers are now expected to have at least the following knowledge and skills to be able to effectively carry out testing activities :
– Basic networking knowledge
– Basic Unix/Shell scripting, e.g. bash, python
– Continuous Integration/Continuous Delivery e.g. Jenkins, Azure DevOps, GitLab CI
– Performance testing tools such as JMeter ,K6 ,Gatling
– Ready for Operations and Resilience Testing
– Knowledge of containers, Docker, Kubernetes
– Querying monitoring tools such as Splunk, Azure Monitor
– Clouds services, e.g. AWS, Azure
Original post: https://devqa.io/testing-in-devops/