Testing can be the long pole in our deployment pipelines. Without test automation, we are forced to choose between poor velocity and insufficient regression testing (and the resulting risks and quality problems).
But test automation is no magic “silver bullet”! If we don’t approach it in a disciplined and structured way, it can become its own source of problems and a time-sink for our team. The Test Automation Pyramid provides a framework for a structured and rigorous approach to testing.
We will use the Pyramid as our touchstone for delving into some excellent guidance on test automation from both the Agile and the DevOps communities, like:
- Divide and conquer: How can we treat test automation not as a single big problem, but the Agile way – as a series of small workable problems.
- Unit testing means what? A clear purpose for Unit Testing that translates into clear direction on what it should and should not be.
- What comes before Integration testing? A look at what it takes to actually test interfaces. (Hint: It’s not integration testing!)
- GUI-less Functional test automation: Full testing of the functionality of our application without the complexity and brittleness of going through the graphical user interface (GUI).
- An architecture for automating functional testing: Automated functional tests become much more maintainable when we use a multi-layered architecture to create them.
- Testing in the CI/CD Pipeline: How can we fit all of this testing into our Continuous Integration, Continuous Delivery (CI/CD) pipeline and still have it complete quickly?