Walk Before You Run with Software Testing
Let’s think about all the different classifications of software testing and test automation. Some basic kinds of testing for purposes of quality assurance are:
Unit Testing
Integration Testing
System Testing
Regression Testing
There are other types of testing focused on specific non-functional or cross-cutting aspects of the software including:
Usability Testing
Load Testing
Performance Testing
From there, you might jump into various forms of testing in staging and production environments such as:
A/B Testing
Canary Testing
Chaos Testing
Everyone has probably seen some version of the software testing pyramid before. I’ve used it myself in a lot of my teaching and training materials.
The idea is that your testing strategy is built on a strong foundation of unit tests. Once those are in place, you build on them successively with integration tests and system tests. These tests should be automated and running on a regular schedule, and you should be measuring their coverage and effectiveness with specific goals and a strategy for constant improvement.
But if you rush to deploy advanced techniques — say, testing in production — without first mastering the fundamentals of unit and integration testing, you are likely to be disappointed in your product quality outcomes.
If you’d like to talk more about testing strategies appropriate to your project, feel free to reach out!