ISSUE #29 - August 27, 2017
Tester’s Digest is back after a short vacation! We look at testing levels, from unit tests to functional and end-to-end system tests, and how to determine where to focus one’s testing efforts.
A really good overview of automated testing, unit vs integration tests, using testing DSLs such as Cucumber, prioritizing tests, managing them as code, costs of automated testing and how to lower them.
The testing pyramid, with a wide base of unit tests and a narrow peak of end-to-end tests, is a familiar pictogram of the “right way to test”. Here it is, reimagined as a bug filter:
The “wrong way to test” would be the dreaded ice-cream cone, with few unit tests and most coverage focused in expensive, slow, flaky end-to-end tests. This post presents it as the testing cupcake… yummy and bad for you:
Traditional testing phases revamped and combined into a “threaded” approach:
We looked at this post from Google in a past issue, but worth mentioning in the context of testing levels: at Google, tests are broken into 3 categories: small, medium and large. That loosely maps to unit, functional and end-to-end system tests, but the distinction is based more on runtime than anything else. The post digs into metrics on test flakiness and shows, unsurprisingly, that large tests are least reliable, and should only be used where lower-level tests won’t provide the needed coverage.
For more on unit tests, see our older issue:
Issue #12 - April 23, 2017 // Topic: Unit Tests
For more on end-to-end tests, see our older issue:
Issue #11 - April 16, 2017 // Topic: End-to-end Testing
To continue the subject of games started last time, here is a list of science based games:
And games that teach assembly language while promising to be fun:
If you received this email directly then you’re already signed up, thanks! Else if this newsletter issue was forwarded to you and you’d like to get one weekly, then you can subscribe at http://testersdigest.mehras.net
If you come across content worth sharing, please send me a link at email@example.com