Brian Okken

Brian Okken

Software Engineer, also on Python Bytes and Python People podcasts

Appears in 210 Episodes

Lean TDD

Lean TDD is an attempt to reconcile some conflicting aspects of Test Driven Development and Lean Software Development.I've mentioned Lean TDD on the podcast a few time...

Exploratory Testing

Exploratory testing is absolutely an essential part of a testing strategy. This episode discusses what exploratory testing is, its benefits, and how it fits within a f...

The Five Factors of Automated Software Testing

"There are five practical reasons that we write tests. Whether we realize it or not, our personal testing philosophy is based on how we judge the relative importance o...

Unit Test vs Integration Test and The Testing Trophy

A recent Twitter thread by Simon Willison reminded me that I've been meaning to do an episode on the testing trophy. This discussion is about the distinction between u...

SaaS Side Projects

The idea of having a software as a service product sound great, doesn't it? Solve a problem with software. Have a nice looking landing page and website. Get paying cus...

Who Should Do QA?

Who should do QA?How does that change with different projects and teams?What does "doing QA" mean, anyway?Answering these questions are the goals of this episode.Full ...

pseudo-TDD - Paul Ganssle

In this episode, I talk with Paul Ganssle about a fun workflow that he calls pseudo-TDD. Pseudo-TDD is a way to keep your commit history clean and your tests passing w...

Why NOT unittest?

In the preface of "Python Testing with pytest" I list some reasons to use pytest, under a section called "why pytest?". Someone asked me recently, a different but rela...

Designing Better Software with a Prototype Mindset

A prototype is a a preliminary model of something, from which other forms are developed or copied. In software, we think of prototypes as early things, or a proof of c...

How and why I use pytest's xfail - Paul Ganssle

Paul Ganssle, is a software developer at Google, core Python dev, and open source maintainer for many projects, has some thoughts about pytest's xfail. He was an early...

pytest for Data Science and Machine Learning - Prayson Daniel

Prayson Daniel, a principle data scientist, discusses testing machine learning pipelines with pytest.Prayson is using pytest for some pretty cool stuff, including:unit...

Service and Microservice Performance Monitoring - Omri Sass

Performance monitoring and error detection is just as important with services and microservices as with any system, but with added complexity. Omri Sass joins the show...

Understanding Complex Code by Refactoring into Larger Functions

To understand complex code, it can be helpful to remove abstractions, even if it results in larger functions. This episode walks through a process I use to refactor co...

React, TypeScript, and the Joy of Testing - Paul Everitt

Paul has a tutorial on testing and TDD with React and TypeScript.  We discuss workflow and the differences, similarities between testing with React/TypeScript and Pyth...

unittest expectedFailure and xfail

xfail isn't just for pytest tests. Python's unittest has @unittest.expectedFailure.In this episode, we cover:using @unittest.expectedFailurethe results of passing and ...

pytest xfail policy and workflow

A discussion of how to use the xfail feature of pytest to help with communication on software projects.The episode covers:What is xfailWhy I use itUsing reason effecti...

Debugging Python Test Failures with pytest

An overview of the pytest flags that help with debugging. From Chapter 13, Debugging Test Failures, of Python Testing with pytest, 2nd edition.pytest includes quite a ...

pip install ./local_directory - Stéphane Bidoul

pip : "pip installs packages" or maybe "Package Installer for Python" pip is an invaluable tool when developing with Python. A lot of people know pip as a way to insta...

162: Flavors of TDD

What flavor of TDD do you practice? In this episode we talk about: Classical vs Mockist TDD Detroit vs London (I actually refer to it in the episode as Chicago ins...

161: Waste in Software Development

Software development processes create value, and have waste, in the Lean sense of the word waste. Lean manufacturing and lean software development changed the way we l...

160: DRY, WET, DAMP, AHA, and removing duplication from production code and test code

Should your code be DRY or DAMP or something completely different? How about your test code? Do different rules apply? Wait, what do all of these acronyms mean? We'll...

159: Python, pandas, and Twitter Analytics - Matt Harrison

When learning data science and machine learning techniques, you need to work on a data set. Matt Harrison had a great idea: Why not use your own Twitter analytics data...

158: TDD in Swift - Gio

Iterative processes that include writing test code and production code together, such as TDD, help make coding fun. All of us that care about developing quality cod...

157: pre-commit - Anthony Sottile

pre-commit started as a framework for running linters and code formatters during git actions via git hooks. It's grown and expanded and now supports an extensive list...

156: Flake8: Python linting framework with Pyflakes, pycodestyle, McCabe, and more - Anthony Sottile

Flake8 is a command-line tool for linting Python projects. By default, it includes lint checks provided Pyflakes, pycodestyle, and McCabe It's also a platform, and al...

155: Four Questions to Ask Frequently During Software Projects - Tim Ottinger

Tim Ottinger has four questions that work great in many situations, from doing homework, to cooking, to writing code, to entire software projects. They are actually a...

154: Don't Mock your Database - Jeff Triplett

You need tests for your web app. And it has a database. What do you do with the database during testing? Should you use the real thing? or mock it? Jeff Triplett says ...

153: Playwright for Python: end to end testing of web apps - Ryan Howard

Playwright is an end to end automated testing framework for web apps with Python support and even a pytest plugin. Full TranscriptSpecial Guest: Ryan Howard.Sponsored...

152: Python Packaging - Brett Cannon

I always learn a lot when I talk to Brett, and this episode is no exception. We talk about the packaging workflow, tools, changes, pyproject.toml, flit, setuptools, an...

151: Python Adventure - Brandon Rhodes

Adventure, or Colossal Cave Adventure, was written between 1975 and 1977 in Fortran. Brandon Rhodes ported it to Python 3, initial release in 2011, and still maintains...

Broadcast by