Test & Code

39: Thorough software testing for critical features


Listen Later

Complete and exhaustive testing is not possible. Nor would it be fun, or maintainable, or a good use of your time.

However, some functionality is important enough to make sure the test behavior coverage is thorough enough to have high confidence in it's quality.

In this episode, we discuss 3 techniques that can be combined to quickly generate test cases. We then talk about how to implement them efficiently in pytest.

The techniques covered are:

  • equivalence partitioning
  • boundary value analysis
  • decision tables
  • We discuss how to use these to generate test cases for a new list filter functionality in the cards application.

    The resulting tests:

    • 1 UI test to make sure the options are able to be passed in correctly.
    • 1 small parametrized test function with 16 single line parameter sets representing the different test cases.
    • Sponsored By:

      • Python Testing with pytestSimple, Rapid, Effective, and Scalable
      The fastest way to learn pytest. From 0 to expert in under 200 pages.
    • Patreon SupportersHelp support the show with as little as $1 per month.
    • Funds help pay for expenses associated with the show.

      Support Test & Code - Software Testing, Development, Python

      Links:

      • github cards project (version 0.1.11)
      • Equivalence partitioning - Wikipedia
      • Boundary-value analysis - Wikipedia
      • Decision table - Wikipedia
      • Slack Channel for Test and Code
      • DJ YANiC - The awesome listener that contributed our theme music.
      ...more
      View all episodesView all episodes
      Download on the App Store

      Test & CodeBy Brian Okken

      • 4.7
      • 4.7
      • 4.7
      • 4.7
      • 4.7

      4.7

      70 ratings


      More shows like Test & Code

      View all
      Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

      Software Engineering Radio - the podcast for professional software developers

      272 Listeners

      The Changelog: Software Development, Open Source by Changelog Media

      The Changelog: Software Development, Open Source

      283 Listeners

      Thoughtworks Technology Podcast by Thoughtworks

      Thoughtworks Technology Podcast

      41 Listeners

      Data Skeptic by Kyle Polich

      Data Skeptic

      483 Listeners

      Talk Python To Me by Michael Kennedy

      Talk Python To Me

      592 Listeners

      Software Engineering Daily by Software Engineering Daily

      Software Engineering Daily

      625 Listeners

      Soft Skills Engineering by Jamison Dance and Dave Smith

      Soft Skills Engineering

      269 Listeners

      Python Bytes by Michael Kennedy and Brian Okken

      Python Bytes

      213 Listeners

      Data Engineering Podcast by Tobias Macey

      Data Engineering Podcast

      142 Listeners

      Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

      Syntax - Tasty Web Development Treats

      981 Listeners

      Practical AI by Practical AI LLC

      Practical AI

      190 Listeners

      The Stack Overflow Podcast by The Stack Overflow Podcast

      The Stack Overflow Podcast

      64 Listeners

      The Real Python Podcast by Real Python

      The Real Python Podcast

      140 Listeners

      Oxide and Friends by Oxide Computer Company

      Oxide and Friends

      47 Listeners

      The Pragmatic Engineer by Gergely Orosz

      The Pragmatic Engineer

      52 Listeners