DEV Community

Iteration Podcast

❌ Extreme Testing

Iteration — A weekly podcast about programming, development, and design through the lens of amazing books, chapter-by-chapter.

This episode uses Chapter 13 of Extreme programing as a jumping off point

Testing Early, Often, and Automated

Here is the dilemma in software development: defects are expensive, but eliminating defects is also expensive.

  • Instead of talking about having a kick-ass automated test suite, frequently testing code, and all of that good stuff, we should talk about something a little different.

Q: What was the last big bug you can think of? How did you handle it?

  • Health coaching group discussions, mobile users could not post into group discussions for 48 hours. It’s a core feature of the platform.
  • React Native Upgrade → Weird android bug where people could not take a photo to upload their proof of funds

Q: What was the reason for the latest big bug?

  • lack of automated integration tests in the Mobile app.
  • We have some unit testing we also have full API tests, but not enough coverage in the integration.
  • We made a small change to the group discussion model, the mobile app wasn’t updated to consider this change, timing the rollout.
  • Android Weirdness, lack of QA, rushing to get to the latest and greatest

Q: How do you handle bugs in general?

  • Testing is first line of defense.
  • QA is backup (One other dev)
  • App signal is the catch all (After deployment)
  • Users are the last line of defense RABBITHOLE
    • Give users a clear escape hatch / line of communication.
    • So many times we’ve caught flawed design assumptions from that feedback. Users love it too.
    • Superlative language "Thank you so much, you are the best, we really really appreciate you sending that in and I'm so sorry if you are having issues. "

Q: John Ask: What’s the most common causes of bugs?

  • Test data does not properly represent production data - phone formats / etc
  • An Edge case that wasn’t considered
  • The feature functions properly but the functionality is wrong / not what the stakeholder intended.
  • Rollout was not planned, data transition or all platforms are not in sync.
  • Browser or context considerations. Mobile vs tablet / android device universe.
  • Lack of QA, lack of tests
  • Rushing things

John — Summary / Thoughts on book overall

  • Overall got the most out of this vs other books we've read

Picks

  • JP: Heroku! Review Apps (spins up a new app every time a PR is opened); Pipelines
  • John: Contentful + Rails to give clients ability to update copy and images on marketing pages.

Episode source