Introducing The Quality Split
We've all seen the software testing pyramid by now, in all it's various forms. There are a lot of interpretations about it's scope and applicability but it's proven to be a useful hueristic.
Not too long ago, Kent C Dodds gave us the questionably shaped testing trophy. It's meant to be about ROI and impact but the critical and notable thing there is the introduction of type checking, static analysis and linting as its own quadrant. This was something a lot of testers knew about but didn't really address specifically as they are not typically the ones cranking out features and APIs. It also doesn't necessarily map to the automation focus of the original pyramid used by testers.
But the way of the tester is disappearing and the old waterfall model is finally really slipping away. Just like your Ops team is now your DevOps and/or SRE team, with engineering skills being non-negotiable, so too is the QA and Test role going. It's no longer acceptable to not have a coding skillset, there are still those folks around but their days are numbered. We're all in the same boat now. A banana boat. A banana split, if you will.
Today in a conversation on the testersio.slack board, Kent's trophy came up. I made a joke about the pyramid just being Cypress plus Jest with a little ESlint on top. But I couldn't get it out of my head. I felt like it was missing exploratory testing and testing in production. Then I remembered that all the testing doesn't matter if the design is crap. Your whole concept is trash if it's not user focused. So maybe this isn't the testing split. But the Quality Split. You could probably find a thousand things to add, like performance, security, accessibility, documentation but let's just chalk the rest of it all to chopped nuts sprinkled on top. This was a goof after all.
Smooshing these things together, I give you, the Quality Split
- Quality is everyones responsibility.
- Exploratory testing is a critical component.
- Pre-checking the code before you commit.
- Testing from from the method level, through integration to the UI.
- Building something your customers want.
- Testing continues past release.
I was really joking when I made this but the more I chew on it, the closer it's getting to ringing true in my head. I hope you are as amused as I am.