Back

Explore every episode of the podcast Test & Code

Dive into the complete episode list for Test & Code. Each episode is cataloged with detailed descriptions, making it easy to find and explore specific topics. Keep track of all episodes from your favorite podcast and never miss a moment of insightful content.

Rows per page:

1–50 of 222

TitlePub. DateDuration
223: Writing Stuff Down is a Super Power17 nov. 202400:21:05

Taking notes well can help to listen better, remember things, show respect, be more accountable, free up mind space to solve problems.

This episode discusses

  • the benefits of writing things down
  • preparing for a meeting
  • taking notes in meetings
  • reviewing notes for action items, todo items, things to follow up on, etc.
  • taking notes to allow for better focus
  • writing well structured emails
  • writing blog posts and books

 Learn pytest

222: Import within a Python package07 sept. 202400:12:02

In this episode we're talking about importing part of a package into another part of the same package.


We'll look at: `from . import module` and `from .module import something`

and also:  `import package` to access the external API from with the package.


Why would we use `import package` if `from . import api` would work fine?


 Learn pytest

221: How to get pytest to import your code under test03 juin 202400: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

220: Getting the most out of PyCon, including juggling - Rob Ludwick04 mai 202400: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

219: Building Django Apps & SaaS Pegasus - Cory Zue24 avr. 202400:47:44

I'm starting a SaaS project using Django, and there are tons of decisions right out of the gate.
To help me navigate these decisions, I've brought on Cory Zue.   
Cory is the creator of SaaS Pegasus, and has tons of experience with Django.

Some of the topics discussed:

  • Building Django applications
  • SaaS Pegasus
  • placecard.me
  • What boilerplate projects are
  • Django cookiecutter
  • Cookiecutter
  • Which database to use, probably PostgreSQL
  • Authentication choises, probably Allauth
  • Docker, Docker for development, Docker for deployment
  • Deployment targets / hosting services. Render, Heroku, Fly.io, for PaaS options.
  • Front end frameworks. Bootstrap, Tailwind, DaisyUI, TailwindUI
  • HTMX vs React vs straight Django templates
  • Rockets
  • Font Awesome
  • and of course, SaaS Pegasus

 Learn pytest

218: Balancing test coverage with test costs - Nicole Tietz-Sokolskaya18 avr. 202400:27:31

Nicole is a software engineer and writer, and recently wrote about the trade-offs we make when deciding which tests to write and how much testing is enough.

We talk about:

  • Balancing schedule vs testing
  • How much testing is the right about of testing
  • Should code coverage be measured and tracked
  • Good refactoring can reduce code coverage
  • Is it worth testing error conditions?
  • Are rare error codes ok to just monitor?
  • API drift and autospec
  • Mitigating risk
  • Deciding what to test and what not to test
  • Focus testing on key money-making features 
  • If there's a bug in this part of the code, how much business impact is there?
  • Performance testing needs to approximately match real world workloads
  • Cost of a service breaking vs the cost of creating, maintaining, and running tests
  • Keeping test suites quick to minimize getting distracted


Links:


 Learn pytest

217: Podcasting / SaaS / Work Life Balance - Justin Jackson11 avr. 202400: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

216: ruff, uv, and Astral: Python tooling, much faster, with Rust11 mars 202400: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

215: Staying Technical as a Manager25 févr. 202400:39:23

Software engineers that move into leadership roles have a struggle between learning leadership skills, maintaining technical skills, and learning new leadership and technical skills. 
Matt Makai went from individual contributor to developer relations to leadership in devrel. 
We discuss how to stay technical, as well as dive into some results of his studies in how companies use developer relationship channels.


 Learn pytest

214: Python Testing in VS Code07 févr. 202400: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

213: Repeating Tests19 janv. 202400:13:22

If a test fails in a test suite, I'm going to want to re-run the test. I may even want to re-run a test, or a subset of the suite, a bunch of times.  
There are a few pytest plugins that help with this:

We talk about each of these in this episode.


 Learn pytest

212: Canon TDD - by Kent Beck13 janv. 202400:07:31

In 2002, Kent Beck released a book called  "Test Driven Development by Example".
In December of 2023, Kent wrote an article called "Canon TDD".
With Kent's permission, this episode contains the full content of the article.

Brian's commentary is saved for a followup episode.

Links:


 Learn pytest

211: Stamp out test dependencies with pytest plugins15 déc. 202300:18:01

We want to be able to run tests in a suite, and debug them in isolation, and have the behavior be the same.  
If the behavior is different in isolation vs in a suite, it's a nightmare to debug. 

In this episode, we'll talk about:

  • Causes of dependence
  • Testing for dependencies using plugins
  • Debugging test dependencies

Plugins discussed:

  • pytest-randomly
  • pytest-reverse
  • pytest-random-order



 Learn pytest

210: TDD - Refactor while green30 nov. 202300:15:43

Test Driven Development. Red, Green, Refactor. 

  • Do we have to do the refactor part? 
  • Does the refactor at the end include tests? 
  • Or can I refactor the tests at any time?
  • Why is refactor at the end? 

This episode is to talk about this with a an example.


 Learn pytest

209: Testing argparse Applications16 nov. 202300: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

208: Tests with no assert statements30 oct. 202300:12:14

Why on earth would you want to write a test with no assert statements?
After all, aren't assert statements how you decide wether a test passes or fails?

In this episode, we walk through a handful of useful examples of test code without asserts.
We also talk about how these types of tests are a great way to dip your toe into testing.


 Learn pytest

207: pytest course, pytest-repeat and pytest-flakefinder26 sept. 202300:13:26

 Learn pytest

206: TDD in Context23 août 202300: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

205: pytest autouse fixtures01 août 202300: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

204: Free Your Inner Nonfiction Writer - Johanna Rothman18 juil. 202300:37:52

Learn how to write nonfiction fast and well.
Johanna Rothman joins the show to discuss writing nonfiction.

Johanna's book: Free Your Inner Nonfiction Writer


 Learn pytest

203: Open Source at Intel17 juil. 202300: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

202: Using Towncrier to Keep a Changelog - Hynek Schlawack31 mai 202300:48:36

Hynek joins the show to discuss towncrier. 

At the top of the towncrier documentation, it says "towncrier is a utility to produce useful, summarized news files (also known as changelogs) for your project."

Towncrier is used by "Twisted, pytest, pip, BuildBot, and attrs, among others."

This is the last of 3 episodes focused on keeping a CHANGELOG. 

Episode 200 kicked off the series with keepachangelog.com and Olivier Lacan
In 201 we had Ned Batchelder discussing scriv.

Special Guest: Hynek Schlawack.


Links:


 Learn pytest

201: Avoid merge conflicts on your CHANGELOG with scriv - Ned Batchelder25 mai 202300: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

200: Keep a CHANGELOG19 mai 202300:46:22

A changelog is a file which contains a curated, chronologically ordered list of notable changes for each version of a project.
 This episode is about what a changelog is, with an interview with Olivier Lacan, creator of keepachangelog.com.
The next two episodes talk about some tools to help software project teams keep changelogs while avoiding merge conflicts. 

Special Guest: Olivier Lacan.


Links:


 Learn pytest

199: Is Azure Right for a Side Project? - Pamela Fox04 mai 202300:50:39

For a web side project to go from "working on desktop" to "live in the cloud", one decision that needs to be made is where to host everything. One option is Microsoft Azure. Lots of corporate sites use it. Is it right for side projects? 

Pamela Fox, a Cloud Advocate for Python at Microsoft, joins the show to help us with that question.


Links:


 Learn pytest

198: Testing Django Web Applications - Carlton Gibson, Will Vincent27 avr. 202301: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

Python project trove classifiers - Do you need this bit of pyproject.toml metadata?05 avr. 202300:32:51

Classifiers are one bit of Python project metadata that predates PyPI.

 Classifiers are weird.

 They were around in setuptools days, and are still here with pyproject.toml. 

  • What are they? 
  • Why do we need them? 
  • Do we need them?
  • Which classifiers should I include?
  • Why are they called "trove classifiers" in the Python docs

Brett Cannon joins the show to discuss these wacky bits of metadata.

Here's an example, from pytest-crayons:

[project] ... classifiers = [ "License :: OSI Approved :: MIT License", "Framework :: Pytest" ]

Special Guest: Brett Cannon.

Links:

I am not a supplier31 mars 202300:36:02

Should we think of open source components the same way we think of physical parts for manufactured goods?

 There are problems with supply chain analogy when applied to software.

 Thomas Depierre discusses some of those issues in this episode. 


Links:

What would you change about pytest?08 mars 202300: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:

The Good Research Code Handbook - Patrick Mineault30 août 202200: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:

Learn to code through game development with PursuedPyBear - Piper Thunstrom06 août 202200:41:53

The first game I remember coding, or at least copying from a magazine, was in Basic. It was Lunar Lander. 

Learning to code a game is a way that a lot of people get started and excited about programming. 

Of course, I don't recommend Basic. Now we've got Python. And one of the game engines available for Python is PursuedPyBear, a project started by Piper Thunstrom. 

Piper joins us this episode and we talk about PursuedPyBear, learning to code, and learning CS concepts with game development. 

PursuedPyBear, ppb, is a game framework great for learning with, with goals of being fun, education friendly, an example of idiomatic Python, hardware library agnostic, and built on event driven and object oriented concepts.

Special Guest: Piper Thunstrom.


Links:

Running your own site for fun and absolutely no profit whatsoever - Brian Wisti01 juil. 202200: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:

Testing PyPy - Carl Friedrich Bolz-Tereick21 juin 202200:50:45

PyPy is a fast, compliant alternative implementation of Python.
 cPython is implemented in C.

 PyPy is implemented in Python.
 What does that mean?

 And how do you test something as huge as an alternative implementation of Python?

Special Guest: Carl Friedrich Bolz-Tereick.


Links:

attrs and dataclasses - Hynek Schlawack07 juin 202200: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:

Python's Rich, Textual, and Textualize - Innovating the CLI17 mai 202200:35:04

Will McGugan has brought a lot of color to CLIs within Python due to Rich. 
 Then Textual started rethinking full command line applications, including layout with CSS.
 And now Textualize, a new startup, is bringing CLI apps to the web.



Links:

Teaching Web Development, including Front End Testing13 mai 202200: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:

Developer and Team Productivity12 mai 202200: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.


Python + Django + Rich + Testing == Awesome11 mai 202200:20:56

Django has a handful of console commands to help manage and develop sites.
 django-rich adds color and nice formatting. Super cool.
In a recent release, django-rich also adds nice colorized tracebacks to the Django test runner. 


Links:

Twisted and Testing Event Driven / Asynchronous Applications - Glyph21 mars 202200:40:34

Twisted has been supporting asynchronous / event driven applications way before asyncio. Twisted, and Glyph, have also been encouraging automated tests for a very long time.

Twisted uses a technique that should be usable by other applications, even those using asyncio or other event driven architectures.



Links:

Managing Software Teams - Ryan Cheley17 mars 202200:47:07

Ryan Cheley joins me today to talk about some challenges of managing software teams, and how to handle them.
 We end up talking about a lot of skills that are excellent for software engineers as well as managers.

Some topics discussed:

  • handling code reviews
  • asking good questions
  • being honest about what you can't do with current resources and data
  • discussing tradeoffs and offering solutions that can be completed faster than the ideal solution
  • balancing engineering and managing
  • making sure documentation happens
  • remote teams 
    • encouraging collaboration
    • encouraging non-work-related conversations
    • watching out for overworking


An Unorthodox Technical Interview and Hiring Process - Nathan Aschbacher08 mars 202200:47:08

Don't you just love technical interviews, with someone who just saw your resume or CV 5 minutes ago asking you to write some code on a whiteboard. Probably code that has nothing to do with anything you've done before or anything you will do at the company.

No? Neither does Nathan Aschbacher. 
 So when he started building the team at his company, he decided to do things differently.

Hiring is one of the essential processes for building a great team.
 However, it's a high noise, low signal process.

Nathan Aschbacher has a relatively unorthodox tech hiring approach. 
 He's trying to make it very humane, with a better signal to noise ratio. 

Nathan is not intereseted in bizarre interview processes where the interviewer doesn't know anything about the interviewee beforehand, all people are asked the same questions, and people are asked to code on white boards.

Instead, he states "if the goal is to try to figure out if the person can do the work with your team, and your trying to build the team that you are adding this person to, they need to know what the team is like, and determine if they want to be part of the team, and the team needs to know what the person is like and if they would be addititve to the team.

So what's Nathan's process:

  • Screening resumes and CVs, looking for internal motivation to become an expert at something.
  • Basic phone screen, very informal.
  • A couple 2-3 hour pairings with someone on the team with whatever they are working on.
  • Debriefing both the candidate and the team afterwords.
  • Giving the candidate an opportunity for a second impression and following up on difficulties during the pairings.

We discuss the process, and also:

  • trying to remove the barriers to team integration 
  • treating people as humans 

And of course, there's the story of how Nathan ended up interviewing someone with Zoo experience an no technical experience for a technical role. Of course, it was a misunderstanding of a job requirement around experience with ZooKeeper. But it's a good story.


Boost Your Django DX - Adam Johnson01 mars 202200: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:

Lean TDD21 févr. 202200:25:21

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 times and even tried to do a quick outline at the end of episode 162.

This episode is a more complete outline, or at least a first draft.

If you feel you've got a good understanding of TDD, and it's working awesome for you, that's great. Keep doing what you're doing. There are no problems.

For me, the normal way TDD is taught just doesn't work. So I'm trying to come up with a spin on some old ideas to make it work for me. I'm hoping it works for you as well.

I'm calling the new thing Lean TDD. It's inspired by decades of experience writing software and influence from dozens of sources, including Pragmatic Programmer, Lean Software Development, Test-Driven Development by Example, and many blog posts and wiki articles. 

The main highlights, however, come from the collision of ideas between Lean and TDD and how I've tried to resolve the seemingly opposing processes.

Full Transcript


Links:

Exploratory Testing09 févr. 202200: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


The Five Factors of Automated Software Testing31 janv. 202200:09:00

"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 of these reasons." - Sarah Mei

This episode discusses the factors.

Sarah's order:

  1. Verify the code is working correctly
  2. Prevent future regressions
  3. Document the code’s behavior
  4. Provide design guidance
  5. Support refactoring

Brian's order:

  1. Verify the code is working correctly
  2. Prevent future regressions
  3. Support refactoring
  4. Provide design guidance
  5. Document the code’s behavior

The episode includes reasons why I've re-ordered them.

Full Transcript


Links:

Unit Test vs Integration Test and The Testing Trophy28 janv. 202200:21:40

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 unit and integration tests, what those terms mean, and where we should spend our testing time.

Full Transcript


Links:

SaaS Side Projects18 janv. 202200: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:

Who Should Do QA?12 janv. 202200: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:

pseudo-TDD - Paul Ganssle22 déc. 202100: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:

Why NOT unittest?17 déc. 202100: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:

© My Podcast Data · Independent project · Data from Apple & Spotify