/Tests

Supercharging A/B Testing At Uber

tl;dr: "While the statistical underpinnings of A/B testing are a century old, building a correct and reliable A/B testing platform and culture at a large scale is still a massive challenge... Uber went through a similar journey and this blog post describes why and how we rebuilt the A/B testing platform we had at Uber."

featured in #337


Unit And Integration Tests

- Alex Kladov tl;dr: "In this post I argue that integration-vs-unit is a confused, and harmful, distinction. I provide a more useful two-dimensional mental model instead. The model is descriptive (it allows to think more clearly about any test), but I also include my personal prescriptions."

featured in #332


Start Test Names With “Should”

tl;dr: Reasons include: (1) It removes redundancy, because the function name should already be in the call stack. (2) It is falsifiable i.e. a person reviewing the test can decide to which degree the name agrees with the actual test. (3) Encourages testing one property of the function per test.

featured in #323


How I Accidentally Deleted 7TB Of Videos Before Going To Production

- Nikita Brancatisano tl;dr: "The bad news is that this was on Friday, and we needed to have the videos back up at most for Tuesday morning. We had to upload ~8TB of data with a 30MB/s connection. Not ideal, and I had to think about something fast."

featured in #314


Writing Descriptive Tests

- Alex Turek tl;dr: The goal of testing code is: (1) Document what the code should do. (2) Assert that it does it. It’s common to find tests that do the 2nd but neglect the 1st. Alex discusses common problems and his testing strategy.

featured in #310


Tests Aren’t Enough: Case Study After Adding Type Hints To Urllib3

- Seth Michael Larson tl;dr: "A guide to developers looking to add type hints to a medium-to-large size project. This effort took many months for our team to complete so make sure to allocate enough time."

featured in #262


On The Diverse And Fantastical Shapes of Testing

- Martin Fowler tl;dr: "Pyramids, honeycombs, trophies, and the meaning of unit testing." Martin discusses the recent twitter discussions on various testing strategies, and the balance between unit and integration tests.

featured in #235


Why Are My Tests So Slow? A Likely List Of Suspects, Anti-Patterns, And Unresolved Personal Trauma

- Charity Majors tl;dr: "It’s nigh impossible to have a high-performing team with a long lead time, and becomes drastically easier with a dramatically shorter lead time." Merging to deployed should be under 15 minutes. Charity outlines issues why tests could be slow.

featured in #220


Decision Table Patterns

- Hillel Wayne tl;dr: "This post will reintroduce the core ideas in a more formal way and then talk about some of the techniques you can apply to make better tables."

featured in #205


Tests That Help You Find Defects Faster

- Philipp Giese tl;dr: Each test should (1) test one thing (2) use precisely the data it needs (3) be disconnected from other tests (4) provide context to find the problem in error messages.

featured in #194