DevOps Testing — A Trend?
Recently, I decided to dust off one of my new year resolutions, which was to write more technical articles. At the same time I enrolled in Microsoft's DevOps Testing course. It inspired me to start writing a sequence of articles to help others learn DevOps skills as well.
What is DevOps?
The term DevOps originates in the contraction of "development" and "operations". It is a software engineering practice intended to unify software development (Dev) and software operation (Ops). Its main goal is to instill automation and monitoring through all phases of software building, integration, testing, deployment and infrastructure management.
DevOps aims to shorten development cycles, increase deployment frequency, decrease installation risks and improve alignment with business objectives.
DevOps is a culture based on the integration of development, integration, operation and support, alongside automated process adoption for rapid and safe production of applications and services.
As a culture, DevOps is based on 3 pillars:
- Continuous Integration: a software development practice in which developers frequently merge separate parts of code in a central repository and run automated tests to ensure quality prior to application deployment.
- Continuous Delivery: a set of practices aiming to ensure new code is viable for deployment in production environment.
- Continuous Deployment: each new change sent to the repository starts an automated process that applies that change to a given environment.
DevOps raises the bar of corporate culture by focusing on performance and reduce the space for bureaucracy and inefficiency. It increases the level of collaboration among team members, and a feeling of purpose and belonging. This increases productivity for the team and the company.
Now we understand DevOps is a culture that strives for continous quality and value delivery for the customer, it's time to discuss the test pyramid layers (if you don't know Martin Fowler's work, we'll address that in following posts. 😉 ). That's where you start clearly seeing the need for tests in each step of software development. The need for more unit tests, why we have to test both the unit level and UI… It all starts making more sense.
With all these concepts in mind, we'll start our jorney on QA practices from scratch, but in a more technical approach. We'll go through the whole testing structure with practical examples and make DevOps Testing make sense for you.
See ya in the next post!