

Test & Code
Brian Okken
The Python Test Podcast hosted by Brian Okken
Episodes
Mentioned books

Mar 13, 2018 • 11min
38: Prioritize software tests with RCRCRC
RCRCRC was developed by Karen Nicole Johnson.
In this episode we discuss the mnemonic/heuristic and use it to prioritize tests for the cards application.
Recent: new features, new areas of code
Core: essential functions must continue to work, your products USPs (Unique Selling Propositions)
Risk: some areas of an application pose more risk, perhaps areas important to customers but not used regularly by the development team.
Configuration sensitive: code that’s dependent on environment settings or operating system specifics
Repaired: tests to reproduce bugs, tests for functionality that has been recently repaired.
Chronic: functionality that frequently breaks
Links:A heuristic for regression testing, by Karen Nicole Johnson@karennjohnsoncards on githubcards on Travis CIcards on AppVeyor

Mar 8, 2018 • 21min
37: What tests to write first
This episode starts down the path of test strategy with the first tests to write in either a legacy system or a project just getting off it's feet.
We cover:
My approach to testing existing systems.
Put names to strategies so we can refer to them later.
Explain the strategies in general terms and explain why they are useful.
Discuss how these strategies are used in an example project. (The code is available on github).
Strategies covered today:
Dog Fooding
Exploratory Testing
Tracer Bullet Tests
Act Like A Customer (ALAC) Tests
Manual Procedures
Initial automated tests at 2 levels, API and UI.

Feb 13, 2018 • 31min
36: Stephanie Hurlburt - Mentoring and Open Office Hours
Stephanie is a co-founder and graphics engineer at Binomial.
She works on Basis, an image compressor, and has customers in games, video, mapping, and any application that has lots of image data.
Stephanie has also been encouraging experienced engineers to open up their twitter DMs to questions from anyone, to help mentor people not only in technical questions, but in career questions as well.
She also sets aside some time to mentor people through skype when written form just doesn't cut it.
That's the primary reason I have Stephanie on today, to talk about mentoring and open office hours.
But we also talk about
Binomial
image compression
texture mapping
the use of both manual and automated testing for complex systems
sane work hours
work life balance
and how long hours have led her to the opinions she holds today
Special Guest: Stephanie Hurlburt.Links:BinomialList of Engineers Willing to Mentor You — Stephanie HurlburtStephanie Hurlburt (@sehurlburt) | TwitterSlack - Python Testing / Test & Code — A super nice group of folks who are great at answering test related questions.

Feb 1, 2018 • 25min
35: Continuing Education and Certificate Programs at UW
There are lots of ways to up your skills.
Of course, I'm a big fan of learning through reading books, such as upping your testing skills by reading Python Testing with pytest.
And then there are online learning systems and MOOCs.
At the other end of the spectrum is a full blown university degree.
One option kind of in the middle is continuing education programs available through some universities, such as University of Washington.
To discuss this option with me in more depth, we've got Andrew Hoover,
Senior Director, Program Strategy, University of Washington Continuum CollegeSpecial Guest: Andrew Hoover.Links:UW Professional & Continuing EducationUW Career Accelerator CertificatesCertificate in Data AnalyticsCertificate in Data ScienceCertificate in Machine LearningCertificate in Project ManagementCertificate in Python Programming

Dec 31, 2017 • 25min
34: TDD and Test First
An in depth discussion of Test Driven Development (TDD) should include a discussion of Test First. So that's where we start.
Why write tests first?
How do you know what tests to write?
What are the steps for test first?
Isn't this just TDD?
Functional Tests vs Unit Tests
Links:Test First Programming / Test First Development - Python TestingMy reaction to "Is TDD Dead?" - Python TestingEpisode 23: Lessons about testing and TDD from Kent BeckTalk Python, Episode #145 2017 Python Year in ReviewPyCon 2018 in Cleveland, Ohio | May 9-17Python Bytes PodcastPython Testing with pytest: Simple, Rapid, Effective, and Scalable: Brian Okken: 9781680502404: Amazon.com: Books

Nov 30, 2017 • 37min
33: Katharine Jarmul - Testing in Data Science
A discussion with Katharine Jarmul, aka kjam, about some of the challenges of data science with respect to testing.
Some of the topics we discuss:
experimentation vs testing
testing pipelines and pipeline changes
automating data validation
property based testing
schema validation and detecting schema changes
using unit test techniques to test data pipeline stages
testing nodes and transitions in DAGs
testing expected and unexpected data
missing data and non-signals
corrupting a dataset with noise
fuzz testing for both data pipelines and web APIs
datafuzz
hypothesis
testing internal interfaces
documenting and sharing domain expertise to build good reasonableness
intermediary data and stages
neural networks
speaking at conferences
Special Guest: Katharine Jarmul.Links:@kjam on Twitter — Data Magic and Computer SorceryKjamistan: Data Sciencedatafuzz’s Python library — The goal of datafuzz is to give you the ability to test your data science code and models with BAD data.Hypothesis Python library — Hypothesis is a Python library for finding edge cases in your code you wouldn’t have thought to look for.

Oct 3, 2017 • 47min
32: David Hussman - Agile vs Agility, Dude's Law, and more
A wonderful discussion with David Hussman. David and Brian look back at what all we've learned in XP, TDD, and other Agile methodologies, where things have gone awry, how to bring the value back, and where testing fits into all of this.
How to build the wrong thing faster
Agile vs Agility
Product vs Process
Where testing fits into software development practices.
"Integration tests, there's a name that needs to be refactored desperately."
Integration tests are "story tests". They tell the story of the product.
XP and TDD and the relationship with tests
To test for design, use microtests, xUnit style.
User Advocy tests are often lacking, but are needed to learn about the product.
"I just keep writing tests until I'm not scared anymore." - Kent Beck
Dude's Law: Value = Why/How
People often focus so much on the how that they forget about why they are doing something.
Subcutaneous Tests
"The hardest part of programming is thinking."
Refactoring vs Repaving
Agility means being able to quickly change direction
During experimentation and learning, what matters isn't how much you got done, but how much you learn.
"The best way to get automation is to make developers do manual tests."
Special Guest: David Hussman.Links:DevJamPNSQC 2015 How to Build the Wrong Thing Faster and Learn From ItPeople's Front of JudeaTDD on c2The waterfall modelTest First ProgrammingDude's LawSubcutaneous Test

Sep 27, 2017 • 40min
31: I'm so sick of the testing pyramid
What started as a twitter disagreement carries over into this civil discussion of software testing.
Brian and Paul discuss testing practices such as the testing pyramid, TDD, unit testing, system testing, and balancing test effort.
the Testing Pyramid
the Testing Column
TDD
unit testing
balancing unit with system tests, functional tests
API testing
subcutaneous testing
customer facing tests
Special Guest: Paul Merrill.<Links:Episode 34 - Software and Testing Models with Guest Host Brian Okken - Reflection As A Service — Cross posted to RaaSSubcutaneous Test — I use subcutaneous test to mean a test that operates just under the UI of an application.The Forgotten Layer of the Test Automation Pyramid — At the base of the test automation pyramid is unit testing.The Dreyfus model of skill acquisition — The Five-Stage Model of Adult Skill Acquisition

Aug 1, 2017 • 42min
30: Legacy Code - M. Scott Ford
M. Scott Ford is the founder and chief code whisperer at Corgibytes, a company focused on helping other companies with legacy code.
Topics include:
How M. Scott Ford got into forming a company that works on legacy code.
Technical debt
Process debt
Software testing
The testing pyramid
iterative development
kanban
readable code and readable test code
Special Guest: M. Scott Ford.

Jul 1, 2017 • 18min
29: Kobiton & QASymphony - Josh Lieberman
Kobiton is a service to test mobile apps on real devices.
QASymphony offers software testing and QA tools.Special Guest: Josh Lieberman.


