Beta
Logo of the podcast Test & Code

Test & Code (Brian Okken)

Explorez tous les épisodes de Test & Code

Plongez dans la liste complète des épisodes de Test & Code. Chaque épisode est catalogué accompagné de descriptions détaillées, ce qui facilite la recherche et l'exploration de sujets spécifiques. Suivez tous les épisodes de votre podcast préféré et ne manquez aucun contenu pertinent.

Rows per page:

1–50 of 222

DateTitreDurée
18 Jun 2020117: Python extension for VS Code - Brett Cannon00:51:18

The Python extension for VS Code is most downloaded extension for VS Code.
Brett Cannon is the manager for the distributed development team of the Python extension for VS Code.

In this episode, Brett and I discuss the Python extension and VS Code, including:

  • pytest support
  • virtual environment support
  • how settings work, including user and workspace settings
  • multi root projects
  • testing Python in VS Code
  • debugging and pydevd
  • jump to cursor feature
  • upcoming features

Special Guest: Brett Cannon.

Sponsored By:

Links:

09 Feb 2022Exploratory Testing00:10:09

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 framework of relying on automated tests for most of our testing.

Full Transcript


18 Jan 2022SaaS Side Projects00:26:09

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 customers.

 Eventually have it make enough revenue so you can turn it into your primary source of income. 

There's a lot of software talent out there. We could solve lots of problems. 
 But going from idea to product to first customer is non-trivial. 
 Especially as a side hustle. 
 This episode discusses some of the hurdles from idea to first customer. 

Brandon Braner is building Released.sh. It's a cool idea, but it's not done yet. 

Brandon and I talk about building side projects:

  • finding a target audience
  • limiting scope to something doable by one person
  • building a great looking landing page
  • finding time to work on things
  • prioritizing and planning
  • learning while building
  • even utilizing third party services to allow you to launch faster
  • and last, but not least, having fun

Full Transcript

Special Guest: Brandon Braner.


Links:

28 Sep 2020132: mocking in Python - Anna-Lena Popkes00:40:50

Using mock objects during testing in Python.

Anna-Lena joins the podcast to teach us about mocks and using unittest.mock objects during testing.

We discuss:

  • the different styles of using mocks
  • pros and cons of mocks
  • dependency injection
  • adapter pattern
  • mock hell
  • magical universe
  • and much more

Special Guest: Anna-Lena Popkes.

Sponsored By:

Links:

24 May 2020114: The Python Software Foundation (PSF) Board Elections - Ewa Jodlowska / Christopher Neugebauer00:30:46

"The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers."

That's a lot of responsibility, and to that end, the PSF Board Directors help out quite a bit.

If you want to be a part of the board, you can. There's an election coming up right around the corner and you gotta get your nomination in by May 31. You can also join the PSF if you want to vote for who gets to be part of the board.

But what does it really mean to be on the Board, and what are some of the things the PSF does?

To help answer those questions, I've got Ewa Jodlowska, the PSF Executive Director, and Christopher Neugebauer, a current board member, on the show today. I've also got some great links in the show notes if we don't answer your questions and you want to find out more.

Special Guests: Christopher Neugebauer and Ewa Jodlowska.

Sponsored By:

Links:

22 Oct 2021 React, TypeScript, and the Joy of Testing - Paul Everitt00:36:53

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 Python.
 We also discuss what lessons that we can bring from front end testing to Python testing.

Full Transcript

Special Guest: Paul Everitt.


Links:

03 Oct 201732: David Hussman - Agile vs Agility, Dude's Law, and more00:47:28

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.

Sponsored By:

Links:

20 Oct 201992: 9 Steps to Crater Quality & Destroy Customer Satisfaction - Cristian Medina00:35:06

Cristian Medina wrote an article recently called "Test Engineering Anti-Patterns: Destroy Your Customer Satisfaction and Crater Your Quality By Using These 9 Easy Organizational Practices"

Of course, it's sarcastic, and aims to highlight many problems with organizational practices that reduce software quality.

The article doesn't go out of character, and only promotes the anti-patterns.
However, in this interview, we discuss each point, and the corollary of what you really should do. At least, our perspectives.

Here's the list of all the points discussed in the article and in this episode:

  1. Make the Test teams solely responsible for quality
  2. Require all tests to be automated before releasing
  3. Require 100% code coverage
  4. Isolate the Test organization from Development
  5. Measure the success of the process, not the product.
    • Metrics, if rewarded, will always be gamed.
  6. Require granular projections from engineers
  7. Reward quick patching instead of solving
  8. Plan for today instead of tomorrow

Special Guest: Cristian Medina.

Sponsored By:

Links:

13 Feb 2021144: TDD in Science - Martin Héroux00:53:51

Test Driven Development, TDD, is not easy to incorporate in your daily development.

Martin and Brian discuss TDD and testing and Martin's experience with testing, TDD, and using it for code involved with scientific research.

We discuss lots of topics around this, including:

  • What is TDD?
  • Should research software be tested in order to be trusted?
  • Time pressure and the struggle to get code done quickly. How do you make time for tests also?
  • Is testing worth it for code that will not be reused?
  • Sometimes it's hard to know how to test something.
  • Maybe people should learn to test alongside learning how to code.
  • A desire for a resource of testing concepts for non-CS people.
  • Are the testing needs and testing information needs different in different disciplines?
    • Biology, Physics, Astrophysics, etc. Do they have different testing needs?
    • Do we need a "how to test" resource for each?

Full Transcript

Special Guest: Martin Héroux.

Sponsored By:

Links:

18 Nov 201994: The real 11 reasons I don't hire you - Charity Majors00:34:26

You've applied for a job, maybe lots of jobs.
Depending on the company, you've gotta get through:

  • a resume review
  • a coding challange
  • a phone screen
  • maybe another code example
  • an in person interview

If you get the job, and you enjoy the work, awesome, congratulations.

If you don't get the job, it'd be really great to know why.

Sometimes it isn't because you aren't a skilled engineer.

What other reasons are there?

Well, that's what we're talking about today.

Charity Majors is the cofounder and CTO of Honeycomb.io, and we're going to talk about reasons for not hiring someone.

This is a very informative episode both for people who job hunt in the future and for hiring managers and people on the interview team.

Special Guest: Charity Majors.

Sponsored By:

Links:

25 May 2023201: Avoid merge conflicts on your CHANGELOG with scriv - Ned Batchelder00:33:41

Last week we talked about the importance of keeping a changelog.
 This week we talk with Ned Batchelder about scriv, a tool to help maintain that changelog.

Scriv "is a command-line tool for helping developers maintain useful changelogs. It manages a directory of changelog fragments. It aggregates them into entries in a CHANGELOG file."


Links:


 Learn pytest

07 Oct 2021pytest xfail policy and workflow00:09:45

A discussion of how to use the xfail feature of pytest to help with communication on software projects.

The episode covers:

  • What is xfail
  • Why I use it
  • Using reason effectively by including issue tracking numbers
  • Using xfail_strict
  • Adding --runxfail when transitioning from development to feature freeze
  • What to do about test failures
  • How all of this might help with team communication

Full Transcript


15 May 2020113: Technical Debt - James Smith00:30:03

Technical debt has to be dealt with on a regular basis to have a healthy product and development team.

The impacts of technical debt include emotional drain on engineers and slowing down development and can adversely affect your hiring ability and retention.

But really, what is technical debt? Can we measure it? How do we reduce it, and when?

James Smith, the CEO of Bugsnag, joins the show to talk about technical debt and all of these questions.

Special Guest: James Smith.

Sponsored By:

17 Aug 2020126: Data Science and Software Engineering Practices ( and Fizz Buzz ) - Joel Grus00:32:18

Researches and others using data science and software need to follow solid software engineering practices. This is a message that Joel Grus has been promoting for some time.

Joel joins the show this week to talk about data science, software engineering, and even Fizz Buzz.

Topics include:

  • Software Engineering practices and data science
  • Difficulties with Jupyter notebooks
  • Code reviews on experiment code
  • Unit tests on experiment code
  • Finding bugs before doing experiments
  • Tests for data pipelines
  • Tests for deep learning models
  • Showing researchers the value of tests by showing the bugs found that wouldn't have been found without them.
  • "Data Science from Scratch" book
    • Showing testing during teaching Data Science
  • "Ten Essays on Fizz Buzz" book
    • Meditations on Python, mathematics, science, engineerign and design
    • Testing Fizz Buzz
    • Different algorithms and solutions to an age old interview question.
  • If not Fizz Buzz, what makes a decent coding interview question.
  • pytest
  • hypothesis
  • Math requirements for data science

Special Guest: Joel Grus.

Sponsored By:

Links:

30 Aug 2022The Good Research Code Handbook - Patrick Mineault00:42:39

I don't think it's too much of a stretch to say that software is part of most scientific research now.
 From astronomy, to neuroscience, to chemistry, to climate models. 
 If you work in research that hasn't been affected by software yet, just wait.

But how good is that software? 

How much of common best practices in software development are making it to those writing software in the sciences?

Patrick Mineault has written "The Good Research Code Handbook". 
 It's a website. It's concise. 
 And it will put you on the right path to writing better software.
 Even if you don't write science based software, and even if you already have a CS degree, there's some good information worth reading.

Special Guest: Patrick Mineault.


Links:

11 Apr 2024217: Podcasting / SaaS / Work Life Balance - Justin Jackson00:56:07

If you've ever thought about starting a podcast or a SaaS project, you'll want to listen to this episode.
 
Justin is one of the people who motivated me to get started podcasting.
He's also running a successful SaaS company, transistor.fm, which hosts this podcast.

Topics:

  • Podcasting
  • Building new SaaS (software as a service) products
  • Balancing work, side hustle, and family
  • Great places to snowboard in British Columbia

BTW. This episode was recorded last summer before I switched to transistor.fm.
I'm now on Transistor for most of a year now, and I love it.

Links from the show:


 Learn pytest

25 Nov 201854: Python 1994 - Paul Everitt00:29:25

Paul talks about the beginning years of Python.
Talking about Python's beginnings is also talking about the Python community beginnings.
Yes, it's reminiscing, but it's fun.

Special Guest: Paul Everitt.

Sponsored By:

Links:

03 Aug 2021162: Flavors of TDD00:22:45

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 instead of Detroit. Oh well.)
  • Static vs Behavior
  • Inside Out vs Outside In
  • Double Loop TDD
  • BDD
  • FDD
  • Tracer Bullets
  • Rules of TDD
  • Team Structure
  • Lean TDD

This is definitely an episode I'd like feedback on. Reach out to me @brianokken or via the contact form for further questions or if I missed some crucial variant of TDD that you know and love.

Full Transcript

Sponsored By:

Links:

18 Nov 2021pytest for Data Science and Machine Learning - Prayson Daniel00:45:13

Prayson Daniel, a principle data scientist, discusses testing machine learning pipelines with pytest.

Prayson is using pytest for some pretty cool stuff, including:

  • unit tests, of course
  • testing pipeline stages
  • counterfactual testing
  • performance testing

All with pytest. So cool.

Full Transcript

Special Guest: Prayson Daniel.


Links:

20 Mar 2020106: Visual Testing : How IDEs can make software testing easier - Paul Everitt00:49:59

IDEs can help people with automated testing.

In this episode, Paul Everitt and Brian discuss ways IDEs can encourage testing and make it easier for everyone, including beginners. We discuss features that exist and are great, as well as what is missing.

The conversation also includes topics around being welcoming to new contributors for both open source and professional projects.

We talk about a lot of topics, and it's a lot of fun. But it's also important. Because IDEs can make testing

Some topics discussed:

  • Making testing more accessible
  • Test First vs teaching testing last
  • TDD workflow
  • Autorun
  • Rerunning last failures
  • Different ways to run different levels of tests
  • Command line flags and how to access them in IDEs
  • pytest.ini
  • zooming in and out of test levels
  • running parametrizations
  • running tests with coverage and profiling
  • parametrize vs parameterize
  • parametrization identifiers
  • pytest fixture support
  • global configurations / configuration templates
  • coverage and testing and being inviting to new contributors
  • confidence in changes and confidence in contributions
  • navigating code, tests, fixtures
  • grouping tests in modules, classes, directories
  • BDD, behavior driven development, cucumber, pytest-bdd
  • web development testing
  • parallel testing with xdist and IDE support
  • refactor rename

Special Guest: Paul Everitt.

Links:

26 Jun 2020119: Editable Python Installs, Packaging Standardization, and pyproject.toml - Brett Cannon00:36:07

There's stuff going on in Python packaging and pyproject.toml.

Brett and I talk about some upcoming work on Python packaging, such as:

  • editable installs
  • the need for standardization
  • configuration of other tools in pyproject.toml

And then get off on tangents and talk about:

  • why it's good to have packages like pip, toml, setuptools, wheel, etc not part of the standard library
  • should we remove some stuff from the standard library
  • the standard library using unittest for testing the standard library
    • why not hypothesis
    • I didn't bring up "why not pytest?" but you know I was thinking it.
  • why CPython and not C++Python
  • and more

Special Guest: Brett Cannon.

Sponsored By:

Links:

21 Dec 2018Genesynth, nox, urllib3, & PyCascades - Thea Flowers00:31:06

Thea Flowers is a Pythonista and open source advocate. She helps empower developers of all backgrounds and experience levels using Python and open source software and hardware.

Thea is the creator of Nox, the co-chair of PyCascades 2019, the lead maintainer of urllib3, and a member of the Python Packaging Authority and Packaging Working Group.

Thea works on Google Cloud Platform's wonderful Developer Relations team where she works on API client libraries and community outreach.

All of that is definitely cool enough. But she is also building a synthesiser based on Sega Genesis chips. So of course, that's where we'll start the conversation.

Special Guest: Thea Flowers.

Sponsored By:

Links:

08 Mar 201837: What tests to write first00:20:56

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.
01 Mar 2022Boost Your Django DX - Adam Johnson00:26:51

We talk with Adam Johnson about his new book, "Boost Your Django DX". 

Developer experience includes tools and practices to make developers more effective and efficient, and just plain make software development more fun and satisfying. 
 One of the things I love about this book is that it's not just for Django devs. 
 I'd guess that about half the book is about topics that all Python developers would find useful, from virtual environments to linters to testing. 
 But of course, also tons of tips and tools for working with Django.


Links:

03 Jul 2020120: FastAPI & Typer - Sebastián Ramírez00:43:55

FastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints.
Typer is a library for building CLI applications, also based on Python type hints.
Type hints and many other details are intended to make it easier to develop, test, and debug applications using FastAPI and Typer.

The person behind FastAPI and Typer is Sebastián Ramírez.

Sebastián is on the show today, and we discuss:

  • FastAPI
  • Rest APIs
  • Swagger UI
  • Future features of FastAPI
  • Starlette
  • Typer
  • Click
  • Testing with Typer and Click
  • Typer autocompletion
  • Typer CLI

Special Guest: Sebastián Ramírez.

Sponsored By:

Links:

27 Feb 2020102: Cosmic Python, TDD, testing and external dependencies - Harry Percival00:41:45

Harry Percival has completed his second book, "Architecture Patterns with Python".
 So of course we talk about the book, also known as "Cosmic Python".
 We also discuss lots of testing topics, especially related to larger systems and systems involving third party interfaces and APIs.

Topics 

  • Harry's new book, "Architecture Patterns with Python". a.k.a. Cosmic Python 
  • TDD : Test Driven Development
  • Test Pyramid
  • Tradeoffs of different architectural choices
  • Mocks and their pitfalls
  • Avoiding mocks
  • Separating conceptual business logic
  • Dependency injection
  • Dependency inversion
  • Identifying external dependencies
  • Interface adapters to mimize the exposed surface area of external dependencies
  • London School vs Classic/Detroit School of TDD
  • Testing strategies for testing external REST APIs

Links:

26 Oct 2020136: Wearable Technology - Sophy Wong00:31:45

Wearable technology is not just smart consumer devices like watches and activity trackers.

Wearable tech also includes one off projects by designers, makers, and hackers and there are more and more people producing tutorials on how to get started. Wearable tech is also a great way to get both kids and adults excited about coding, electronics, and in general, engineering skills.

Sophy Wong is a designer who makes really cool stuff using code, technology, costuming, soldering, and even jewelry techniques to get tech onto the human body.

Sophy joins the show to answer my many questions about getting started safely with wearable tech.

Some of the questions and topics:

  • Can I wash my clothing if I've added tech to it?
  • Is there any danger in wearing technology or building wearable tech?
  • Are there actual wires and cables conductive thread in the fabric and textiles of some wearable tech projects?
  • What's a good starter project? Especially if I want to do a wearable tech project with my kids?
  • Dealing with stretch with clothing and non-bendy electronics.
  • Some questions around the Sophy Wong and HackSpace "Wearable Tech Projects" book.
  • How did you get into wearable tech?
  • Do you have a favorite project?
  • Can I get into wearable tech if I don't know how to code or solder?
  • Are these projects accessible to people with limited budgets?
  • Making projects so you can reuse the expensive bits on multiple projects.

Special Guest: Sophy Wong.

Sponsored By:

Links:

12 May 2022Developer and Team Productivity00:51:08

Being productive is obviously a good thing.
 Can we measure it?
 Should we measure it?
 There's been failed attempts, like lines of code, etc. in the past.
 Currently, there are new tools to measure productivity, like using git metrics.

Nick Hodges joins the show to discuss the good and the bad of developer and team productivity, including how we can improve productivity.


12 Jan 2022Who Should Do QA?00:13:07
  • 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 Transcript


Links:

31 Oct 201993: Software Testing, Book Writing, Teaching, Public Speaking, and PyCarolinas - Andy Knight00:30:25

Andy Knight is the Automation Panda.

Andy Knight is passionate about software testing, and shares his passion through public speaking, writing on automationpanda.com, teaching as an adjunct professor, and now also through writing a book and organizing a new regional Python conference.

Topics of this episode include:

  • Andy's book on software testing
  • Being an adjunct professor
  • Public speaking and preparing talk proposals
    • including tips from Andy about proposals and preparing for talks
  • PyCarolinas

Special Guest: Andy Knight.

Sponsored By:

Links:

06 Sep 201986: Teaching testing best practices with 4 testing maxims - Josh Peak00:22:41

You've incorporated software testing into your coding practices and know from experience that it helps you get your stuff done faster with less headache.

Awesome.

Now your colleagues want in on that super power and want to learn testing.

How do you help them?

That's where Josh Peak is. He's helping his team add testing to their workflow to boost their productivity.

That's what we're talking about today on Test & Code.

Josh walks us through 4 maxims of developing software tests that help grow your confidence and proficiency at test writing.

Special Guest: Josh Peak.

Sponsored By:

Links:

01 Feb 201963: Python Corporate Training - Matt Harrison00:33:35

I hear and I forget.
I see and I remember.
I do and I understand.
-- Confucius

Matt Harrison is an author and instructor of Python and Data Science. This episode focuses on his training company, MetaSnake, and corporate training.

Matt's written several books on Python, mostly self published. So of course we talk about that.

But the bulk of the conversation is about corporate training, with Brian playing the role of someone considering starting a corporate training role, and asking Matt, an experienced expert in training, how to start and where to go from there.

I think you'll learn a lot from this.

Special Guest: Matt Harrison.

Sponsored By:

Links:

07 Sep 2020129: How to Test Anything - David Lord00:42:09

I asked people on twitter to fill in "How do I test _____?" to find out what people want to know how to test.
Lots of responses. David Lord agreed to answer them with me.
In the process, we come up with lots of great general advice on how to test just about anything.

Specific Questions people asked:

  • What makes a good test?
  • How do you test web app performance?
  • How do you test cookie cutter templates?
  • How do I test my test framework?
  • How do I test permission management?
  • How do I test SQLAlchemy models and pydantic schemas in a FastAPI app?
  • How do I test warehouse ETL code?
  • How do I test and mock GPIO pins on hardware for code running MicroPython on a device?
  • How do I test PyQt apps?
  • How do I test web scrapers?
  • Is it the best practice to put static html in your test directory or just snippets stored in string variables?
  • What's the best way to to test server client API contracts?
  • How do I test a monitoring tool?

We also talk about:

  • What is the Flask testing philosophy?
  • What do Flask tests look like?
  • Flask and Pallets using pytest
  • Code coverage

Some of the resulting testing strategies:

  • Set up some preconditions. Run the function. Get the result.
  • Don't test external services.
  • Do test external service failures.
  • Don't test the frameworks you are using.
  • Do test your use of a framework.
  • Use open source projects to learn how something similar to your project tests things.
  • Focus on your code.
  • Focus on testing your new code.
  • Try to architect your application such that actual GUI testing is minimal.
  • Split up a large problem into smaller parts that are easier to test.
  • Nail down as many parts as you can.

Special Guest: David Lord.

Sponsored By:

23 Aug 2023206: TDD in Context00:20:13

TDD (Test Driven Development) started from Test First Programming, and has been around at least since the 90's.

However, software tools and available CI systems have changed quite a bit since then.
Maybe it's time to re-examine the assumptions, practices, processes, and principles of TDD.
 
At least in the context of my software engineering career, modifications to TDD, at least the version of TDD as it's frequently taught, have been necessary.

This is the start of a series focused on examining TDD and related lightweight practices and processes.

Links from the show:


 Learn pytest

13 Feb 2020100: A/B Testing - Leemay Nassery00:36:31

Let's say you have a web application and you want to make some changes to improve it.
You may want to A/B test it first to make sure you are really improving things.

But really what is A/B testing?

That's what we'll find out on this episode with Leemay Nassery.

Special Guest: Leemay Nassery.

Sponsored By:

31 Dec 201734: TDD and Test First00:25:01
18 Jun 2021158: TDD in Swift - Gio00:43:21

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 code with the help of testing can learn from each other, regardless of programming language.

Today we step outside our normal Python comfort zone and talk with Gio about TDD in Swift.

Gio Lodi, author of TDD in Swift, joins the show to discuss Test Driven Development, software workflows, bottom up vs top down, rapid feedback, developer vs customer facing tests, and more.

Full Transcript

Special Guest: Gio Lodi.

Sponsored By:

Links:

08 Jun 2020116: 15 amazing pytest plugins - Michael Kennedy00:51:28

pytest plugins are an amazing way to supercharge your test suites, leveraging great solutions from people solving test problems all over the world. In this episode Michael and I discuss 15 favorite plugins that you should know about.

We also discuss fixtures and plugins and other testing tools that work great with pytest

  • tox
  • GitHub Actions
  • Coverage.py
  • Selenium + splinter with pytest-splinter
  • Hypothesis

And then our list of pytest plugins:

  1. pytest-sugar
  2. pytest-cov
  3. pytest-stress
  4. pytest-repeat
  5. pytest-instafail
  6. pytest-metadata
  7. pytest-randomly
  8. pytest-xdist
  9. pytest-flake8
  10. pytest-timeout
  11. pytest-spec
  12. pytest-picked
  13. pytest-freezegun
  14. pytest-check
  15. fluentcheck

That last one isn't a plugin, but we also talked about pytest-splinter at the beginning. So I think it still counts as 15.

Special Guest: Michael Kennedy.

Sponsored By:

Links:

11 Mar 2024216: ruff, uv, and Astral: Python tooling, much faster, with Rust00:47:46

Charlie Marsh and team are using Rust to make Python tooling faster.

  • Ruff can take the place of Flake8, isort, and Black, and so much more.
  • uv can take the place of pip, pip-tools, and virtualenv
  • Astral is Charlie's venture backed company, and what they have with `ruff` and `uv` is just the start.

Since uv is the newest tool, there's quite a bit of the discussion diving into uv.

Links:


 Learn pytest

03 Jun 2021156: Flake8: Python linting framework with Pyflakes, pycodestyle, McCabe, and more - Anthony Sottile00:22:55

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 allows plugins to extend the checks.
Flake8 will run third-party extensions if they are found and installed.

But what does all of that mean?

Anthony Sottile is a maintainer of flake8 and has kindly offered to explain it to us.

Full Transcript

Special Guest: Anthony Sottile.

Sponsored By:

Links:

17 Feb 201965: one assert per test00:19:53

Is it ok to have more than one assert statement in a test?
I've seen articles that say no, you should never have more than one assert.
I've also seen some test code made almost unreadable due to trying to avoid more than one assert per test.

Where did this recommendation even come from? What are the reasons?
What are the downsides to both perspectives?

That's what we're going to talk about today.

Sponsored By:

Links:

02 May 2020111: Subtests in Python with unittest and pytest - Paul Ganssle00:48:35

In both unittest and pytest, when a test function hits a failing assert, the test stops and is marked as a failed test.

What if you want to keep going, and check more things?

There are a few ways. One of them is subtests.

Python's unittest introduced subtests in Python 3.4.

pytest introduced support for subtests with changes in pytest 4.4 and a plugin, called pytest-subtests.
Subtests are still not really used that much.

But really, what are they? When could you use them?

And more importantly, what should you watch out for if you decide to use them?

That's what Paul Ganssle and I will be talking about today.

Special Guest: Paul Ganssle.

Sponsored By:

Links:

01 Jul 2022Running your own site for fun and absolutely no profit whatsoever - Brian Wisti00:45:28

Having a personal site is a great playground for learning tons of skills. Brian Wisti discusses the benefits of running a his own blog over the years.


Links:

16 Nov 2023209: Testing argparse Applications00:15:53

How do you test the argument parsing bit of an application that uses argparse?

This episode covers:

  • Design for Test: Structuring your app or script so it's easier to test.
  • pytest & capsys for testing stdout
  • Adding debug and preview flags for debugging and testing
  • And reverting to subprocess.run if you can't modify the code under test

Also, there's a full writeup and code samples available:


 Learn pytest

05 Apr 201971: Memorable Tech Talks, The Ultimate Guide - Nina Zakharenko00:48:33

Nina Zakharenko gives some great advice about giving tech talks.
We talk about a blog series that Nina wrote called "The Ultimate Guide To Memorable Tech Talks". This episode is full of great help and encouragement for your own public speaking adventures.

Some of what we discuss:

  • overcoming the fear of public speaking
  • breathing and pausing during talks
  • planning your talk as well as planning your time to get ready for the talk
  • writing proposals and getting feedback on proposals
  • Nina's talk in PyCascades on programming Adafruit chips
  • types of talks that are often rejected
  • pre-recording demos to avoid live demo problems
  • why you should speak, even if you are an introvert
  • benefits of public speaking
  • a super cool announcement at the end

Special Guest: Nina Zakharenko.

Sponsored By:

Links:

11 Jun 2021157: pre-commit - Anthony Sottile00:41:41

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 of languages and actions and manual running of actions. But even at it's core, it's great for letting computers nitpick about whitespace and formatting, so that code reviews can focus on architecture and design.

Anthony Sottile discusses pre-commit, for using locally by developers, and pre-commit.ci, which can run actions during merge requests.

"Git hook scripts are useful for identifying simple issues before submission to code review. We run our hooks on every commit to automatically point out issues in code such as missing semicolons, trailing whitespace, and debug statements. By pointing these issues out before code review, this allows a code reviewer to focus on the architecture of a change while not wasting time with trivial style nitpicks." - pre-commit.com

"Developers spend a fair chunk of time during their development flow fixing relatively trivial problems in their code. pre-commit.ci both enforces that these issues are discovered, which is opt in for each developer workflow via pre-commit, but also fixes the issues automatically, letting developers focus their time on more valuable problems." - A user of pre-commit.ci

Full Transcript

Special Guest: Anthony Sottile.

Sponsored By:

Links:

21 Jan 202098: pytest-testmon - selects tests affected by changed files and methods - Tibor Arpas00:32:59

pytest-testmon is a pytest plugin which selects and executes only tests you need to run. It does this by collecting dependencies between tests and all executed code (internally using Coverage.py) and comparing the dependencies against changes. testmon updates its database on each test execution, so it works independently of version control.

In this episode, I talk with testmon creator Tibor Arpas about testmon, about it's use and how it works.

Special Guest: Tibor Arpas.

Sponsored By:

Links:

06 Mar 2021147: Testing Single File Python Applications/Scripts with pytest and coverage00:11:25

Have you ever written a single file Python application or script?
Have you written tests for it?
Do you check code coverage?

This is the topic of this weeks episode, spurred on by a listener question.

The questions:

  • For single file scripts, I'd like to have the test code included right there in the file. Can I do that with pytest?
  • If I can, can I use code coverage on it?

The example code discussed in the episode: script.py

def foo(): return 5 def main(): x = foo() print(x) if __name__ == '__main__': # pragma: no cover main() ## test code # To test: # pip install pytest # pytest script.py # To test with coverage: # put this file (script.py) in a directory by itself, say foo # then from the parent directory of foo: # pip install pytest-cov # pytest --cov=foo foo/script.py # To show missing lines # pytest --cov=foo --cov-report=term-missing foo/script.py def test_foo(): assert foo() == 5 def test_main(capsys): main() captured = capsys.readouterr() assert captured.out == "5\n"

Suggestion by @cfbolz if you need to import pytest:

if __name__ == '__main__': # pragma: no cover main() else: import pytest

Full Transcript

Sponsored By:

16 Jul 2020122: Better Resumes for Software Engineers - Randall Kanna00:36:13

A great resume is key to landing a great software job.
There's no surprise there.
But so many people make mistakes on their resume that can very easily be fixed.

Randall Kanna is on the show today to help us understand how to improve our resumes, and in turn, help us have better careers.

Special Guest: Randall Kanna.

Sponsored By:

Links:

17 Jul 2023203: Open Source at Intel00:43:57

Open Source is important to Intel and has been for a very long time.

Joe Curley, vice president and general manager of software products and ecosystem, and Arun Gupta, vice president and general manager for open ecosystems, join the show to discuss open source, OneAPI, and open ecosystems at Intel.

 Learn pytest

28 Sep 201989: Improving Programming Education - Nicholas Tollervey00:42:00

Nicholas Tollervey is working toward better ways of teaching programming. His projects include the Mu Editor, PyperCard, and CodeGrades. Many of us talk about problems with software education. Nicholas is doing something about it.

Special Guest: Nicholas Tollervey.

Sponsored By:

Links:

30 Nov 201733: Katharine Jarmul - Testing in Data Science00:37:15

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.

Sponsored By:

Links:

21 May 2021154: Don't Mock your Database - Jeff Triplett00:31:40

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 don't mock it.

In this episode, we talk with Jeff about testing web applications, specifically Django apps, and of course talk about the downsides of database mocking.

Full Transcript

Special Guest: Jeff Triplett.

Sponsored By:

Links:

23 May 201975: Modern Testing Principles - Alan Page00:40:01

Software testing, if done right, is done all the time, throughout the whole life of a software project. This is different than the verification and validation of a classical model of QA teams. It's more of a collaborative model that actually tries to help get great software out the door faster and iterate quicker.

One of the people at the forefront of this push is Alan Page. Alan and his podcast cohost Brent Jensen tried to boil down what modern testing looks like in the Modern Testing Principles.

I've got Alan here today, to talk about the principles, and also to talk about this transition from classical QA to testing specialists being embedded in software teams and then to software teams doing their own testing.

But that only barely scratches the surface of what we cover. I think you'll learn a lot from this discussion.

The seven principles of Modern Testing:

  1. Our priority is improving the business.
  2. We accelerate the team, and use models like Lean Thinking and the Theory of Constraints to help identify, prioritize and mitigate bottlenecks from the system.
  3. We are a force for continuous improvement, helping the team adapt and optimize in order to succeed, rather than providing a safety net to catch failures.
  4. We care deeply about the quality culture of our team, and we coach, lead, and nurture the team towards a more mature quality culture.
  5. We believe that the customer is the only one capable to judge and evaluate the quality of our product
  6. We use data extensively to deeply understand customer usage and then close the gaps between product hypotheses and business impact.
  7. We expand testing abilities and knowhow across the team; understanding that this may reduce (or eliminate) the need for a dedicated testing specialist.

Special Guest: Alan Page.

Sponsored By:

Links:

27 Jun 201979: Fixing misinformation about software testing00:22:38

Some information about software testing is just wrong.
I'm not talking about opinions. I have lots of opinions and they differ from other peoples opinions. I'm talking about misinformation and old information that is no longer applicable.

I've ran across a few lateley that I want to address.

All of the following are wrong:

  1. Integrated tests can't work. I can prove it with wacky math.
  2. Tests have to be blazing fast or they won't get run.
  3. TDD is about design, not about testing.

This episode discusses why these are wrong.

Sponsored By:

Links:

28 May 2021155: Four Questions to Ask Frequently During Software Projects - Tim Ottinger00:22:49

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 awesome questions to ask during a software project.

We discuss the questions, where they came from, and look at some uses in software.

The questions:

  1. What is it that needs to be done?
  2. What do we need in order to do it?
  3. Where can we get what we need?
  4. How can we tell if we’re doing it right?

Bonus question that can be swapped out for #1:

  1. What's the most important thing that it doesn't do yet?

Full Transcript

Special Guest: Tim Ottinger.

Sponsored By:

Links:

29 Mar 201970: Learning Software without a CS degree - Dane Hillard00:30:37

Dane and Brian discuss skills needed for people that become software developers from non-traditional paths.

Dane is also writing a book to address many of these skill gaps, Code Like a Pro, that's currently in an early access phase. Use code podtest&code19 to get a discount. And, sign up as a Friend of the Show to enter for a chance to win a free copy of the eBook version.

We also discuss the writing process, testing with a multi-language stack, music, art, photography, and more.

Special Guest: Dane Hillard.

Sponsored By:

Links:

07 May 2021152: Python Packaging - Brett Cannon00:49:42
05 Jul 201843: Kelsey Hightower - End to End & Integration Testing00:41:48

I first heard Kelsey speak during his 2017 PyCon keynote.
He's an amazing speaker, and I knew right then I wanted to hear more about what he does and hear more of his story.

We discuss testing, of course, but we take it further and discuss:

  • tests for large systems, like kubernetes
  • Testing in real world scenarios with all the configuration and everything
  • Becoming a complete engineer by thinking about the end to end flow from the users perspective
  • Learning from other roles, and the value of roles to allow focus and expertise
  • We even get into Chaos Engineering and testing live systems.

Special Guest: Kelsey Hightower.

Sponsored By:

03 Jun 2024221: How to get pytest to import your code under test00:07:19

We've got some code we want to test, and some tests.
The tests need to be able to import the code under test, or at least the API to it, in order to run tests against it.
How do we do that? How do we set things up so that our tests can import our code?

In this episode, we discuss two options:

  • Installing the code under test as a pip installable package with `pip install -e /path/to/local/package`.
  • Using the pythonpath pytest setting.

 Learn pytest

31 Mar 2021149: I don't test my code, "crappy Python" is all I write - Corey Quinn00:49:36

Corey Quinn is the Chief Cloud Economist at The Duckbill Group. He's also a podcaster and writes a newsletter. And he also automates things with Python. But he doesn't write tests. Let's find out why.

Reason for the interview. Rough summary of a twitter conversation:

  • Corey: What podcasts should I try to get an invite onto?
  • ToonArmyCaptain: Python Bytes, Test & Code, Talk Python
  • Corey: But... I don't test my code, "crappy Python" is all I write, and I'd feel like a giant imposter. So yeah, I'd be game. link
  • So here we are.

This diagram is referenced in the show, the Last Week In AWS Newsletter Production Pipeline.

Full Transcript

Special Guest: Corey Quinn.

Sponsored By:

Links:

19 Nov 2020138: Mutation Testing in Python with mutmut - Anders Hovmöller00:29:59

Your test suite tells you about the quality of your code under test.

Mutation testing is a way to tell you about the quality of your test suite.

Anders Hovmöller wrote mutmut for mutation testing in Python, and can be used with pytest, unittest, and others.

In this episode, Anders explains mutation testing, how mutation testing with mutmut works, and good workflows.

Special Guest: Anders Hovmöller.

Sponsored By:

Links:

17 Dec 2021Why NOT unittest?00:23:31

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 related question "why NOT unittest?".

unittest is an xUnit style framework. For me, xUnit style frameworks are fatally flawed for software testing.

That's what this episode is about, my opinion of 

  • "Why NOT unittest?", or more broadly, 
  • "What are the fatal flaws of xUnit?"

Full Transcript


Links:

25 Oct 201850: Flaky Tests and How to Deal with Them00:32:21
20 Jul 2021161: Waste in Software Development00:18:50

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 look at value and waste.
This episode looks at lean definitions of waste, so we can see it clearly when we encounter it.

I'm going to use the term waste and value in future episodes. I'm using waste in a Lean sense, so we can look at software processes critically, see the value chain, and try to reduce waste.

Lean manufacturing and lean software development caused people to talk about and examine waste and value, even in fields where we didn't really think about waste that much to begin with.

Software is just ones and zeros. Is there waste?
When I delete a file, nothing goes into the landfill.

The mistake I'm making here is confusing the common English definition of waste when what we're talking about is the Lean definition of waste.

This episode tries to clear up the confusion.

Full Transcript

Links:

07 Feb 201964: Practicing Programming to increase your value00:21:37

I want you to get the most out of being a software developer, or test engineer, or whatever you do that makes this podcast relevant to your life.

By "get the most" I mean:

  • the most fun
  • the most value
  • more career options
  • probably more responsibility
  • maybe even more money, that'd be cool

I want you to start (or continue) studying and practicing your skills.

But not just random practice, I've got a strategy to help you focus what to study.

Why am I talking about this now? Here's some background on how I re-learned how to have fun with code refactoring through code challenges.

I'm going to write up the whole list as a blog post, which I'll share first with my Patreon Supporters, second with my email list and slack channel and then as an actual post somewhere.

Sponsored By:

Links:

20 Aug 201984: CircuitPython - Scott Shawcroft00:35:52

Adafruit enables beginners to make amazing hardware/software projects.
With CircuitPython, these projects can now use Python.

The combination of Python's ease of use and Adafruit's super cool hardware and a focus on a successful beginner experience makes learning to write code that controls hardware super fun.

In this episode, Scott Shawcroft, the project lead, talks about the past, present, and future of CircuitPython, and discusses the focus on the beginner.

We also discuss contributing to the project, testing CircuitPython, and many of the cool projects and hardware boards that can use CircuitPython, and Blinka, a library to allow you to use "CircuitPython APIs for non-CircuitPython versions of Python such as CPython on Linux and MicroPython," including Raspberry Pi.

Special Guest: Scott Shawcroft.

Sponsored By:

Links:

02 Sep 201846: Testing Hard To Test Applications - Anthony Shaw00:42:46

How do you write tests for things that aren’t that easy to write tests for?

That question is a possibly terrible summary of a question sent to me by a listener. And to help me start answering that question, I asked a friend of mine to help, Antony Shaw.

Of course, different types of applications have different test strategies, so there’s not a universal answer. But I know some of you out there have experience and expertise around how to tackle this problem.

Listen to the discussion Anthony and I have about it, and let me know if you have some techniques or tips to add.

Special Guest: Anthony Shaw.

Sponsored By:

22 Dec 2021pseudo-TDD - Paul Ganssle00:39:25

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 with each commit.
 This workflow includes using pytest xfail and some semi-advanced version control features.

Some strict forms of TDD include something like this:

  • write a failing test that demonstrates a lacking feature or defect
  • write the source code to get the test to pass
  • refactor if necessary
  • repeat

In reality, at least for me, the software development process is way more messy than this, and not so smooth and linear.

Pauls workflow allow you to develop non-linearly, but commit cleanly.

Full Transcript


Links:

11 Nov 2021Service and Microservice Performance Monitoring - Omri Sass00:30:15

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 to explain telemetry and monitoring of services and of systems with services. 

Full Transcript

Special Guest: Omri Sass.


13 May 2022Teaching Web Development, including Front End Testing00:39:49

When you are teaching someone web development skills, when is the right time to start teaching code quality and testing practices?

Karl Stolley believes it's never too early. Let's hear how he incorporates code quality in his courses.

Our discussion includes:

  • starting people off with good dev practices and tools
  • linting
  • html and css validation
  • visual regression testing
  • using local dev servers, including https
  • incorporating testing with git hooks
  • testing to aid in css optimization and refactoring
  • Backstop
  • Nightwatch
  • BrowserStack
  • the tree legged stool of learning and progressing as a developer: testing, version control, and documentation

Karl is also writing a book on WebRTC, so we jump into that a bit too.



Links:

25 Jan 2021142: MongoDB - Mark Smith00:35:07

MongoDB is possibly the most recognizable NoSQL document database.
Mark Smith, a developer advocate for MongoDB, answers my many questions about MongoDB.
We cover some basics, but also discuss some advanced features that I never knew about before this conversation.

Full Transcript

Special Guest: Mark Smith.

Sponsored By:

Links:

28 Sep 201847: Automation Panda - Andy Knight00:39:01

Interview with Andy Knight, the Automation Panda.

  • Selenium & WebDriver
  • Headless Chrome
  • Gherkin
  • BDD
  • Given When Then
  • pytest-bdd
  • PyCharm
  • Writing Good Gherkin
  • Overhead of Gherkin and if it's worth it
  • When to use pytest vs pytest-bdd
  • The art of test automation

Special Guest: Andy Knight.

Sponsored By:

Links:

13 Sep 2020130: virtualenv activation prompt consistency across shells - an open source dev and test adventure - Brian Skinn00:36:19

virtualenv supports six shells: bash, csh, fish, xonsh, cmd, posh. Each handles prompts slightly differently. Although the virtualenv custom prompt behavior should be the same across shells, Brian Skinn noticed inconsistencies. He set out to fix those inconsistencies. That was the start of an adventure in open source collaboration, shell prompt internals, difficult test problems, and continuous integration quirks.

Brian Skinn initially noticed that on Windows cmd, a space was added between a prefix defined by --prompt and the rest of the prompt, whereas on bash no space was added.

For reference, there were/are three nominal virtualenv prompt modification behaviors, all of which apply to the prompt changes that are made at the time of virtualenv activation:

  1. If the environment variable VIRTUAL_ENV_DISABLE_PROMPT is defined and non-empty at activation time, do not modify the prompt at all. Otherwise:
  2. If the --prompt argument was supplied at creation time, use that argument as the prefix to apply to the prompt; or,
  3. If the --prompt argument was not supplied at creation time, use the default prefix of "() " as the prefix (the environment folder name surrounded by parentheses, and with a trailing space after the last paren.

Special Guest: Brian Skinn.

Sponsored By:

Links:

24 Aug 2020127: WFH, WTF? - Tips and Tricks for Working From Home - Reuven Lerner & Julian Sequeira00:41:44

Many people have been working from home now that are not used to working from home.
Or at least are working from home more than they ever did before. That's definitely true for me.
Even though I've been working from home since March, I wanted some tips from people who have been doing it longer.

Julian Sequeira, of PyBites fame, has been working from home for about a year.
Reuven Lerner, an amazing Python trainer, has been working from home for much longer.

We originally had a big list of WFH topics. But we had so much fun with the tips and tricks part, that that's pretty much the whole episode.

But there's lots of great tips and tricks, so I'm glad we focused on that.

Special Guests: Julian Sequeira and Reuven Lerner.

Sponsored By:

Links:

01 Aug 2023205: pytest autouse fixtures00:29:15

On a recent episode of PythonBytes, I suggested it's hard to come up with good examples for pytest autouse fixtures, as there aren't very many good reasons to use them.  James Falcon was kind enough to reach out and correct me. 

In this episode, we describe:

  • what fixtures are
  • what autouse fixtures are
  • great reasons to use them

 Learn pytest

10 Apr 201840: On Podcasting - Adam Clark00:48:48

Adam is the host of The Gently Mad podcast, and teaches the steps in creating and growing a podcast in his course Irresistible Podcasting.

He was one of the people who inspired Brian to get the Test & Code podcast started in the first place. Brian took his course in 2015. Adam is in the process of updating the course, and building a community around it.

Warning: This may be an episode to listen to with headphones if you have kids around. There is swearing.

I wanted to get Adam's help to convince many of you to either come on this show as a guest, or start your own podcast. We did some of that. But we also cover a lot of issues like self doubt and the importance of community.

Special Guest: Adam Clark.

Sponsored By:

Links:

14 Dec 2018REST APIs, testing with Docker containers and pytest00:28:10

Let's say you've got a web application you need to test.
It has a REST API that you want to use for testing.

Can you use Python for this testing even if the application is written in some other language? Of course.
Can you use pytest? duh. yes. what else?
What if you want to spin up docker instances, get your app running in that, and run your tests against that environment?
How would you use pytest to do that?
Well, there, I'm not exactly sure. But I know someone who does.

Dima Spivak is the Director of Engineering at StreamSets, and he and his team are doing just that.
He's also got some great advice on utilizing code reviews across teams for test code, and a whole lot more.

Special Guest: Dima Spivak.

Sponsored By:

Links:

30 Oct 201851: Feature Testing00:31:36

Andy Knight joins me in discussing the concept of feature testing.

A feature tests is "a test verifying a service or library as the customer would use it, but within a single process." That was a quote from an article that appeared on the Twitter engineering blog. The article describes a shift away from class tests towards feature tests, the benefits of the shift, and some reactions to it.

Feature tests are similar to something I used to call "functional subcutaneous integration test", but it's a way better name, and I plan to use it more often.

The idea fits well with my testing philosophy. Andy Knight is someone still holding onto the testing pyramid. So I thought it would be fun to ask him to discuss feature testing with me. I think it's a balanced discussion. I hope you enjoy it and learn something.

Special Guest: Andy Knight.

Sponsored By:

Links:

22 Nov 2021How and why I use pytest's xfail - Paul Ganssle00:38:27

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 skeptic of using xfail, and is now an proponent of the feature.
 In this episode, we talk about some open source workflows that are possible because of xfail. 

Full Transcript

Special Guest: Paul Ganssle.


Links:

01 Aug 201730: Legacy Code - M. Scott Ford00:41:48

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.

Sponsored By:

Links:

27 Sep 201731: I'm so sick of the testing pyramid00:39:58

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.

Sponsored By:

Links:

24 Jul 2020123: GitHub Actions - Tania Allard00:22:54

Lots of Python projects are starting to use GitHub Actions for Continous Integration & Deployment (CI/CD), as well as other workflows.

Tania Allard, a Senior Cloud Developer Advocate at Microsoft, joins the show to answer some of my questions regarding setting up a Python project to use Actions.

Some of the topics covered:

  • How to get started with GitHub Actions for a Python project?
  • What are workflow files?
  • Does it matter what the file name is called?
  • Can I have / Should I have more than one workflow?

Special Guest: Tania Allard.

Sponsored By:

Links:

14 May 2021153: Playwright for Python: end to end testing of web apps - Ryan Howard00:31:30

Playwright is an end to end automated testing framework for web apps with Python support and even a pytest plugin.

Full Transcript

Special Guest: Ryan Howard.

Sponsored By:

Links:

15 Oct 201849: tox - Oliver Bestwalter00:55:42

tox is a simple yet powerful tool that is used by many Python projects.

tox is not just a tool to help you test a Python project against multiple versions of Python. In this interview, Oliver and Brian just scratch the surface of this simple yet powerful automation tool.

This is from the tox documentation:

tox is a generic virtualenv management and test command line tool you can use for:

  • checking your package installs correctly with different Python versions and interpreters
  • running your tests in each of the environments, configuring your test tool of choice
  • acting as a frontend to Continuous Integration servers, greatly reducing boilerplate and merging CI and shell-based testing.

Yet tox is so much more. It can help create development environments, hold all of your admin scripts, ...

I hope you enjoy this wonderful discussion of tox with Oliver Bestwalter, one of the core maintainers of tox.

Special Guest: Oliver Bestwalter.

Sponsored By:

Links:

13 Aug 201845: David Heinemeier Hansson - Software Development and Testing, TDD, and exploratory QA00:40:33

David Heinemeier Hansson is the creator of Ruby on Rails, founder & CTO at Basecamp (formerly 37signals). He's a best selling author, public speaker, and even a Le Mans class winning racing driver.

All of that, of course, is awesome. But that's not why I asked him on the show. In 2014, during a RailsConf keynote, he started a discussion about damage caused by TDD. This was followed by a few blog posts, and then a series of recorded hangouts with Martin Fowler and Kent Beck. This is what I wanted to talk with David about; this unconventional yet practical and intuitive view of how testing and development work together.

It's a great discussion. I think you'll get a lot out of it.

Special Guest: David Heinemeier Hansson.

Sponsored By:

Links:

20 Aug 2021pip install ./local_directory - Stéphane Bidoul00:29:40

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 install third party packages from pypi.org
 You can also use pip to install from other indexes (or is it indices?)

You can also use pip to install a package in a local directory.
 That's the part I want to jump in and explore with Stéphane Bidoul.
 The way pip installs from a local directory is about to change, and the story is fascinating.

Full Transcript

Special Guest: Stéphane Bidoul.


Links:

07 Apr 201728: Chaos Engineering & Experimentation at Netflix - Casey Rosenthal00:32:56

Today we have an interview with Casey Rosenthal of Netflix.

One of the people making sure Netflix runs smoothly is Casey Rosenthall.
He is the manager for the Traffic, Intuition, and Chaos teams at Netflix.
He's got a great perspective on quality and large systems.

We talk about

  • Chaos Engineering
  • Experimentation vs Testing
  • Testing Strategy
  • Visualization of large amounts of data representing Steady State

Special Guest: Casey Rosenthal.

Sponsored By:

27 Apr 2023198: Testing Django Web Applications - Carlton Gibson, Will Vincent01:01:25

Django has some built in ways to test your application. There's also pytest-django and other plugins that help with testing. Carlton Gibson and Will Vincent from the Django Chat Podcast join the show to discuss how to get started testing your Django application.


 Learn pytest

07 Jun 2022attrs and dataclasses - Hynek Schlawack00:31:50

In Python, before dataclasses, we had attrs.
 Before attrs, it wasn't pretty.

The story of attrs and dataclasses is actually intertwined. 
 They've built on each other.
 And in the middle of it all, Hynek.

Hynek joins the show today to discuss some history of attrs and dataclasses, and some differences.

If you ever need to create a custom class in Python, you should listen to this episode.

Full Transcript

Special Guest: Hynek Schlawack.


Links:

10 Jul 2020121: Industrial 3D Printing & Python, Finite State Machines, and Simulating Hardware - Len Wanger00:49:22

Len Wanger works on industrial 3D printers. And I was pleased to find out that
there's a bunch of Python in those printers as well.

In this episode we talk about:

  • 3D printers
  • What are the different types of 3D printers?
  • Where are 3D printed industrial parts being used?
  • Why use one type of additive manufacturing over another?
  • Python in 3D printing hardware.
  • What are Finite State Machines, FSMs?
  • Benefits of FSMs for testing, logging, and breaking a complex behavior into small testable parts.
  • Benefits of simulation in writing and testing software to control hardware.

Special Guest: Len Wanger.

Sponsored By:

Links:

28 Feb 2021146: Automation Tools for Web App and API Development and Maintenance - Michael Kennedy00:48:34

Building any software, including web apps and APIs requires testing.
There's automated testing, and there's manual testing.

In between that is exploratory testing aided by automation tools.

Michael Kennedy joins the show this week to share some of the tools he uses during development and maintenance.

We talk about tools used for semi-automated exploratory testing.
We also talk about some of the other tools and techniques he uses to keep Talk Python Training, Talk Python, and Python Bytes all up and running smoothly.

We talk about:

  • Postman
  • ngrok
  • sitemap link testing
  • scripts for manual processes
  • using failover servers during maintenance, redeployments, etc
  • gitHub webhooks and scripts to between fail over servers and production during deployments automatically
  • floating IP addresses
  • services to monitor your site: StatusCake, BetterUptime
  • the affect of monitoring on analytics
  • crash reporting: Rollbar, Sentry
  • response times
  • load testing: Locus

Full Transcript

Special Guest: Michael Kennedy.

Sponsored By:

Links:

07 Feb 2024214: Python Testing in VS Code00:38:25

If you haven't tried running automated tests, especially with pytest,  in VS Code recently, you should take another look.
The Python for VS Code interface for testing, especially for pytest, has changed recently. 
On this episode we discuss the change with the software engineer working on the pytest changes, Eleanor Boyd, and the product manager, Courtney Webster. 

Links from the episode:


 Learn pytest

04 May 2024220: Getting the most out of PyCon, including juggling - Rob Ludwick00:40:11

PyCon US is just around the corner.  I've asked Rob Ludwick to come on the show to discuss how to get the most out of your PyCon experience. There's a lot to do. A lot of activities to juggle, including actual juggling, which is where we start the conversation.

Even if you never get a chance to go to PyCon, I hope this interview helps you get a feel for the welcoming aspect of the Python community.

I recorded this interview as an episode for one of my other podcasts, Python People. But I think it's got some great pre-conference advice, so I'm sharing it here on Python Test as well.

We talk about: 
- Juggling at PyCon
- How to get the most out of PyCon
    - Watching talks
    - Hallway track
    - Open spaces
    - Lightening talks
    - Expo hall / vendor space
    - Poster sessions
    - Job fair
    - A welcoming community
    - Tutorials 
    - Sprints
    - But mostly about the people of Python and PyCon.

"Python enables smart people to work faster" - Rob Ludwick

 Learn pytest

25 Apr 2020110: Testing Django - from unittest to pytest - Adam Parkin00:24:57

Django supports testing out of the box with some cool extensions to unittest. However, many people are using pytest for their Django testing, mostly using the pytest-django plugin.

Adam Parkin, who is known online as CodependentCodr, joins us to talk about migrating an existing Django project from unittest to pytest. Adam tells us just how easy this is.

Special Guest: Adam Parkin.

Sponsored By:

Links:

13 Feb 201836: Stephanie Hurlburt - Mentoring and Open Office Hours00:31:22

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.

Sponsored By:

Links:

08 Mar 2023What would you change about pytest?00:57:15

Anthony Sottile and Brian discuss changes that would be cool for pytest, even unrealistic changes. These are changes we'd make to pytest if we didn't ahve to care about backwards compatibilty.

Anthony's list:

  1. The import system
  2. Multi-process support out of the box
  3. Async support
  4. Changes to the fixture system
  5. Extend the assert rewriting to make it modular
  6. Add matchers to assert mechanism
  7. Ban test class inheritance

Brian's list: 

  1. Extend assert rewriting for custom rewriting, like check
  2. pytester matchers available for all tests
  3. Throw out nose and unittest compatibility plugins
  4. Throw out setup_module, teardown_module and other xunit style functions
  5. Remove a bunch of the hook functions
  6. Documentation improvement of remaining hook functions which include examples of how to use it
  7. Start running tests before collection is done
  8. Split collection and running into two processes
  9. Have the fixtures be able to know the result of the test during teardown


Links:

05 Oct 2020133: Major League Hacking - Jon Gottfried00:28:45

Hackathons have been spreading around the world; many at university campuses. Major League Hacking, MLH, has been encouraging and helping hackathons.

Hacking can be thought of as tinkering. Taking things apart and putting them back together as an interesting experience. There's always been some of this as part of software culture.

The people at Major League Hacking have taken this to a whole new level, bringing together Tech creators who enjoy playing around with and crating new technology, on campuses, and now in virtual spaces, all over the world.

Jonathon Gottfried, one of the cofounders of Major League Hacking, joins the show to talk about:

  • hacker meetups and events
  • hackathons
  • what it's like to go to a hackathon
  • how to help out with hackathons as an experienced engineer, even virtually as a mentor
  • hackathons continuing virtually during the pandemic
  • internships and fellowships on open source projects to help students gain experience, even during the pandemic
  • MLH approach to internships, giving interns a support group, including peers, mentors, and project maintainers
  • and MLH itself

Special Guest: Jon Gottfried.

Sponsored By:

Links:

28 Feb 201967: Teaching Python in Middle School00:34:58

In today's episode we talk with Kelly Paredes & Sean Tibor.
They teach Python in a middle school in Florida, and talk about this experience on the podcast "Teaching Python".

I love that they include physical computing right from the start, and everything else they are doing.

It's a fun interview.

Special Guests: Kelly Paredes and Sean Tibor.

Sponsored By:

Links:

03 Dec 201855: When 100% test coverage just isn't enough - Mahmoud Hashemi00:34:08

What happens when 100% test code coverage just isn't enough.
In this episode, we talk with Mahmoud Hashemi about glom, a very cool project in itself, but a project that needs more coverage than 100%.
This problem affects lots of projects that use higher level programming constructs, like domain specific languages (DSLs), sub languages mini languages, compilers, and db query languages.

Also covered:

  • awesome Python applications
  • versioning: 0-ver vs calver vs semver

Special Guest: Mahmoud Hashemi.

Sponsored By:

Links:

Améliorez votre compréhension de Test & Code avec My Podcast Data

Chez My Podcast Data, nous nous efforçons de fournir des analyses approfondies et basées sur des données tangibles. Que vous soyez auditeur passionné, créateur de podcast ou un annonceur, les statistiques et analyses détaillées que nous proposons peuvent vous aider à mieux comprendre les performances et les tendances de Test & Code. De la fréquence des épisodes aux liens partagés en passant par la santé des flux RSS, notre objectif est de vous fournir les connaissances dont vous avez besoin pour vous tenir à jour. Explorez plus d'émissions et découvrez les données qui font avancer l'industrie du podcast.
© My Podcast Data