I was honored to chat to a bunch of professional QA people last night about Testing Pyramid and Consequences, details on a previous blog post. People last night seemed interested and curious in the "Testing Trophy" concept. That is, in contrast to the Testing Pyramid, tests should be mostly integration, with a few UI and unit tests. In this way we get the most business value for each test we write.
I'm a fan of the Testing Pyramid (lots of unit tests), however I'm an even bigger fan of paying really close attention to business value. Tests aren't free, and they aren't cheap! They can have bugs, and can be over-designed, so they function as "change detector" as opposed to a safety net.
From Kent C Dodds:
"Testing Trophy
A general guide for the return on investment of the different forms of testing with regards to testing JavaScript applications.
- End to end: Cypress
- Integration, Unit: Jest
- Static: Flow, ESLint"
- End to end: Cypress
- Integration, Unit: Jest
- Static: Flow, ESLint"
From @kentcdodds tweet