39: Thorough software testing for critical features




Test & Code - Software Testing, Development, Python show

Summary: <p>Complete and exhaustive testing is not possible. Nor would it be fun, or maintainable, or a good use of your time.</p> <p>However, some functionality is important enough to make sure the test behavior coverage is thorough enough to have high confidence in it's quality.</p> <p>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.</p> <p>The techniques covered are:</p> <ul> <li>equivalence partitioning</li> <li>boundary value analysis</li> <li>decision tables </li> </ul> <p>We discuss how to use these to generate test cases for a new list filter functionality in the cards application.</p> <p>The resulting tests:</p> <ul> <li>1 UI test to make sure the options are able to be passed in correctly.</li> <li>1 small parametrized test function with 16 single line parameter sets representing the different test cases.</li> </ul><p>Sponsored By:</p><ul> <li> <a rel="nofollow" href="http://amzn.to/2E6cYZ9">Python Testing with pytest</a>: <a rel="nofollow" href="http://amzn.to/2E6cYZ9">Simple, Rapid, Effective, and Scalable The fastest way to learn pytest. From 0 to expert in under 200 pages.</a> </li> <li> <a rel="nofollow" href="https://www.patreon.com/testpodcast">Patreon Supporters</a>: <a rel="nofollow" href="https://www.patreon.com/testpodcast">Help support the show with as little as $1 per month. Funds help pay for expenses associated with the show.</a> </li> </ul><p><a rel="payment" href="https://www.patreon.com/testpodcast">Support Test &amp; Code - Software Testing, Development, Python</a></p><p>Links:</p><ul> <li><a title="github cards project (version 0.1.11)" rel="nofollow" href="https://github.com/okken/cards/tree/v0.1.11">github cards project (version 0.1.11)</a></li> <li><a title="Equivalence partitioning - Wikipedia" rel="nofollow" href="https://en.wikipedia.org/wiki/Equivalence_partitioning">Equivalence partitioning - Wikipedia</a></li> <li><a title="Boundary-value analysis - Wikipedia" rel="nofollow" href="https://en.wikipedia.org/wiki/Boundary-value_analysis">Boundary-value analysis - Wikipedia</a></li> <li><a title="Decision table - Wikipedia" rel="nofollow" href="https://en.wikipedia.org/wiki/Decision_table">Decision table - Wikipedia</a></li> <li><a title="Slack Channel for Test and Code" rel="nofollow" href="http://testandcode.com/slack">Slack Channel for Test and Code</a></li> <li><a title="DJ YANiC - The awesome listener that contributed our theme music." rel="nofollow" href="http://dj-yanic.com/">DJ YANiC - The awesome listener that contributed our theme music.</a></li> </ul>