Retour

Explorez tous les épisodes du podcast 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

TitreDateDurée
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 Sep 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

213: Repeating Tests19 Jan 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

122: Better Resumes for Software Engineers - Randall Kanna16 Jul 202000: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:

121: Industrial 3D Printing & Python, Finite State Machines, and Simulating Hardware - Len Wanger10 Jul 202000: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:

120: FastAPI & Typer - Sebastián Ramírez03 Jul 202000: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:

119: Editable Python Installs, Packaging Standardization, and pyproject.toml - Brett Cannon26 Jun 202000: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:

118: Code Coverage and 100% Coverage26 Jun 202000:42:49

Code Coverage or Test Coverage is a way to measure what lines of code and branches in your code that are utilized during testing.
Coverage tools are an important part of software engineering.

But there's also lots of different opinions about using it.

  • Should you try for 100% coverage?
  • What code can and should you exclude?
  • What about targets?

I've been asked many times what I think about code coverage or test coverage.
This episode is a train of thought brain dump on what I think about code coverage.

We'll talk about:

  • how I use code coverage to help me write source code
  • line coverage and branch coverage
  • behavior coverage
  • using tests to ask and answer questions about the system under test
  • how to target coverage just to the code you care about
  • excluding code
  • good reasons and bad reasons to exclude code

And also the Pareto Principle or 80/20 rule, and the law of diminishing returns and how that applies (or doesn't) to test coverage.

Sponsored By:

Links:

117: Python extension for VS Code - Brett Cannon18 Jun 202000: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:

116: 15 amazing pytest plugins - Michael Kennedy08 Jun 202000: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:

115: Catching up with Nina Zakharenko30 May 202000:42:22

One of the great things about attending in person coding conferences, such as PyCon, is the hallway track, where you can catch up with people you haven't seen for possibly a year, or maybe even the first time you've met in person.

Nina is starting something like the hallway track, online, on twitch, and it's already going, so check out the first episode of Python Tea.

Interesting coincidence is that this episode is kind of like a hallway track discussion between Nina and Brian.

We've had Nina on the show a couple times before, but it's been a while.

In 2018, we talked about Mentoring on episode 44.
In 2019, we talked about giving Memorable Tech Talks in episode 71.

In this episode, we catch up with Nina, find out what she's doing, and talk about a bunch of stuff, including:

  • Live Coding
  • Online Conferences
  • Microsoft Python team
  • Python Tea, an online hallway track
  • Q&A with Python for VS Code team
  • Python on hardware
  • Adafruit
  • Device Simulator Express
  • CircuitPython
  • Tricking out your command prompt
  • Zsh and Oh My Zsh
  • Emacs vs vi key bindings for shells
  • Working from home

Special Guest: Nina Zakharenko.

Sponsored By:

Links:

114: The Python Software Foundation (PSF) Board Elections - Ewa Jodlowska / Christopher Neugebauer24 May 202000: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:

113: Technical Debt - James Smith15 May 202000: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:

212: Canon TDD - by Kent Beck13 Jan 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

112: Six Principles of Readable Tests - David Seddon08 May 202000:45:03

"Code is read much more often than it is written." - Guido van Rossum
This is true for both production code and test code.

When you are trying to understand why a test is failing, you'll be very grateful to the test author if they've taken the care to make it readable.

David Seddon came up with 6 principles to help us write more readable tests.
We discuss these, as well as more benefits of readable tests.

David's 6 Principles of Readable Tests:

  1. Profit from the work of others
  2. Put naming to work
  3. Show only what matters
  4. Don’t repeat yourself
  5. Arrange, act, assert
  6. Aim high

Special Guest: David Seddon.

Sponsored By:

Links:

111: Subtests in Python with unittest and pytest - Paul Ganssle02 May 202000: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:

110: Testing Django - from unittest to pytest - Adam Parkin25 Apr 202000: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:

109: Testing in Financial Services - Eric Bergemann14 Apr 202000:29:35

Financial services have their own unique testing development challenges. But they also have lots of the same challenges as many other software projects.

Eric Bergemann joins Brian Okken to discuss:

  • Specific testing challenges in the financial services domain
  • CI/CD : Continuous Integration, Continuous Deployment
  • TDD : Test Driven Development
  • Confidence from testable applications
  • Testing strategies to add coverage to legacy systems
  • Testing the data and test cases themselves
  • DevOps
  • Continuous testing
  • Manual testing procedures
  • BDD & Gherkin
  • Hiring in vs training industry knowledge

Special Guest: Eric Bergemann.

Sponsored By:

Links:

108: PySpark - Jonathan Rioux09 Apr 202000:32:02

Apache Spark is a unified analytics engine for large-scale data processing.
PySpark blends the powerful Spark big data processing engine with the Python programming language to provide a data analysis platform that can scale up for nearly any task.

Johnathan Rioux, author of "PySpark in Action", joins the show and gives us a great introduction of Spark and PySpark to help us decide how to get started and decide whether or not to decide if Spark and PySpark are right you.

Special Guest: Jonathan Rioux.

Sponsored By:

Links:

107: Property Based Testing in Python with Hypothesis - Alexander Hultnér27 Mar 202000:36:19

Hypothesis is the Python tool used for property based testing.
Hypothesis claims to combine "human understanding of your problem domain with machine intelligence to improve the quality of your testing process while spending less time writing tests."

In this episode Alexander Hultnér introduces us to property based testing in Python with Hypothesis.

Some topics covered:

  • What is property based testing
  • Thinking differently for property based testing
  • Using hypothesis / property based testing in conjunction with normal testing
  • Failures saved and re-run
  • What parts of development/testing is best suited for hypothesis / property based testing
  • Comparing function implementations
  • Testing against REST APIs that use Open API / Swagger with schemathesis
  • Changing the number of tests in different test environments
  • System, integration, end to end, and unit tests

Special Guest: Alexander Hultnér.

Sponsored By:

Links:

106: Visual Testing : How IDEs can make software testing easier - Paul Everitt20 Mar 202000: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:

105: TAP: Test Anything Protocol - Matt Layman11 Mar 202000:30:14

The Test Anything Protocol, or TAP, is a way to record test results in a language agnostic way, predates XML by about 10 years, and is still alive and kicking.

Matt Layman has contributed to Python in many ways, including his educational newsletter, and his Django podcast, Django Riffs.

Matt is also the maintainer of tap.py and pytest-tap, two tools that bring the Test Anything Protocol to Python.

In this episode, Matt and I discuss TAP, it's history, his involvement, and some cool use cases for it.

Special Guest: Matt Layman.

Sponsored By:

Links:

104: Top 28 pytest plugins - Anthony Sottile04 Mar 202000:47:14

pytest is awesome by itself. pytest + plugins is even better.
In this episode, Anthony Sottile and Brian Okken discuss the top 28 pytest plugins.

Some of the plugins discussed (we also mention a few plugins related to some on this list):

  1. pytest-cov
  2. pytest-timeout
  3. pytest-xdist
  4. pytest-mock
  5. pytest-runner
  6. pytest-instafail
  7. pytest-django
  8. pytest-html
  9. pytest-metadata
  10. pytest-asyncio
  11. pytest-split-tests
  12. pytest-sugar
  13. pytest-rerunfailures
  14. pytest-env
  15. pytest-cache
  16. pytest-flask
  17. pytest-benchmark
  18. pytest-ordering
  19. pytest-watch
  20. pytest-pythonpath
  21. pytest-flake8
  22. pytest-pep8
  23. pytest-repeat
  24. pytest-pylint
  25. pytest-randomly
  26. pytest-selenium
  27. pytest-mypy
  28. pytest-freezegun

Honorable mention:

  • pytest-black
  • pytest-emoji
  • pytest-poo

Special Guest: Anthony Sottile.

Sponsored By:

Links:

103: Django - Lacey Williams Henschel01 Mar 202000:27:18

Django is without a doubt one of the most used web frameworks for Python. Lacey Williams Henschel is a Django consultant and has joined me to talk about Django, the Django community, and so much more.

Topics:

  • Django
  • The Django Community
  • Django Girls
  • Django Girls Tutorial
  • DjangoCon
  • Software Testing
  • Using tests during learning
  • pytest-django
  • testing Django
  • Wagtail

Special Guest: Lacey Williams Henschel.

Sponsored By:

Links:

211: Stamp out test dependencies with pytest plugins15 Dec 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

102: Cosmic Python, TDD, testing and external dependencies - Harry Percival27 Feb 202000: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:

101: Application Security - Anthony Shaw19 Feb 202000:46:17

Application security is best designed into a system from the start.
Anthony Shaw is doing something about it by creating an editor plugin that actually helps you write more secure application code while you are coding.

On today's Test & Code, Anthony and I discuss his security plugin, but also application security in general, as well as other security components you need to consider.

Security is something every team needs to think about, whether you are a single person team, a small startup, or a large corporation.

Anthony and I also discuss where to start if it's just a few of you, or even just one of you.

Topics include:

  • Finding security risks while writing code.
  • What are the risks for your applications.
  • Thinking about attack surfaces.
  • Static and dynamic code analysis.
  • Securing the environment an app is running in.
  • Tools for scanning live sites for vulnerabilities.
  • Secret management.
  • Hashing algorithms.
  • Authentication systems.
  • and Anthony's upcoming cPython Internals book.

Special Guest: Anthony Shaw.

Sponsored By:

Links:

100: A/B Testing - Leemay Nassery13 Feb 202000: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:

99: Software Maintenance and Chess30 Jan 202000:16:09

I play a form of group chess that has some interesting analogies to software development and maintenance of existing systems. This episode explains group chess and explores a few of those analogies.

Sponsored By:

98: pytest-testmon - selects tests affected by changed files and methods - Tibor Arpas21 Jan 202000: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:

97: 2019 Retrospective, 2020 Plans, and an amazing decade31 Dec 201900:24:02

This episode is not just a look back on 2019, and a look forward to 2020.
Also, 2019 is the end of an amazingly transofrmative decade for me, so I'm going to discuss that as well.

top 10 episodes of 2019

  • 10: episode 46, Testing Hard To Test Applications - Anthony Shaw
  • 9: episode 64, Practicing Programming to increase your value
  • 8: episode 70, Learning Software without a CS degree - Dane Hillard
  • 7: episode 75, Modern Testing Principles - Alan Page
  • 6: episode 72, Technical Interview Fixes - April Wensel
  • 5: episode 69, Andy Hunt - The Pragmatic Programmer
  • 4: episode 73, PyCon 2019 Live Recording
  • 3: episode 71, Memorable Tech Talks, The Ultimate Guide - Nina Zakharenko
  • 2: episode 76, TDD: Don’t be afraid of Test-Driven Development - Chris May
  • 1: episode 89, Improving Programming Education - Nicholas Tollervey

Looking back on the last decade
Some amazing events, like 2 podcasts, a book, a blog, speaking events, and teaching has led me to where we're at now.

Looking forward to 2020 and beyond
I discussed what's in store in the next year and moving forward.

A closing quote
Software is a blast. At least, it should be.
I want everyone to have fun writing software.
Leaning on automated tests is the best way I know to allow me confidence and freedome to:

  • rewrite big chunks of code
  • play with the code
  • try new things
  • have fun without fear
  • go home feeling good about what I did
  • be proud of my code I want everyone to have that.

That's why I promote and teach automated testing.

I hope you had an amazing decade.
And I wish you a productive and fun 2020 and the upcoming decade.
If we work together and help eachother reach new heights, we can achieve some pretty amazing things

Sponsored By:

Links:

96: Azure Pipelines - Thomas Eckert16 Dec 201900:26:10

Pipelines are used a lot in software projects to automated much of the work around build, test, deployment and more. Thomas Eckert talks with me about pipelines, specifically Azure Pipelines. Some of the history, and how we can use pipelines for modern Python projects.

Special Guest: Thomas Eckert.

Sponsored By:

Links:

95: Data Science Pipeline Testing with Great Expectations - Abe Gong30 Nov 201900:22:49

Data science and machine learning are affecting more of our lives every day. Decisions based on data science and machine learning are heavily dependent on the quality of the data, and the quality of the data pipeline.

Some of the software in the pipeline can be tested to some extent with traditional testing tools, like pytest.

But what about the data? The data entering the pipeline, and at various stages along the pipeline, should be validated.

That's where pipeline tests come in.

Pipeline tests are applied to data. Pipeline tests help you guard against upstream data changes and monitor data quality.

Abe Gong and Superconductive are building an open source project called Great Expectations. It's a tool to help you build pipeline tests.

This is quite an interesting idea, and I hope it gains traction and takes off.

Special Guest: Abe Gong.

Sponsored By:

Links:

94: The real 11 reasons I don't hire you - Charity Majors18 Nov 201900: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:

93: Software Testing, Book Writing, Teaching, Public Speaking, and PyCarolinas - Andy Knight31 Oct 201900: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:

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

92: 9 Steps to Crater Quality & Destroy Customer Satisfaction - Cristian Medina20 Oct 201900: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:

91: Python 3.8 - there's a lot more new than most people are talking about16 Oct 201900:21:01

Python 3.8.0 final is live and ready to download.

On todays episode, we're going to run through what's new, picking out the bits that I think are the most interesting and affect the most people, including

  • new language features
  • standard library changes
  • optimizations in 3.8

Not just the big stuff everyone's already talking about. But also some little things that will make programming Python even more fun and easy.

I'm excited about Python 3.8. And really, this episode is to my way to try to get you excited about it too.

Sponsored By:

Links:

90: Dynamic Scope Fixtures in pytest 5.2 - Anthony Sottile11 Oct 201900:34:00

pytest 5.2 was just released, and with it, a cool fun feature called dynamic scope fixtures. Anthony Sottile so tilly is one of the pytest core developers, so I thought it be fun to have Anthony describe this new feature for us.

We also talk about parametrized testing and really what is fixture scope and then what is dynamic scope.

Special Guest: Anthony Sottile.

Sponsored By:

Links:

89: Improving Programming Education - Nicholas Tollervey28 Sep 201900: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:

88: Error Monitoring, Crash Reporting, Performance Monitoring - JD Trask21 Sep 201900:48:17

Tools like error monitoring, crash reporting, and performance monitoring are tools to help you create a better user experience and are fast becoming crucial tools for web development and site reliability. But really what are they? And when do you need them?

You've built a cool web app or service, and you want to make sure your customers have a great experience.

You know I advocate for utilizing automated tests so you find bugs before your customers do. However, fast development lifecycles, and quickly reacting to customer needs is a good thing, and we all know that complete testing is not possible. That's why I firmly believe that site monitoring tools like logging, crash reporting, performance monitoring, etc are awesome for maintaining and improving user experience.

John-Daniel Trask, JD, the CEO of Raygun, agreed to come on the show and let me ask all my questions about this whole field.

Special Guest: John-Daniel Trask.

Sponsored By:

87: Paths to Parametrization - from one test to many11 Sep 201900:19:02

There's a cool feature of pytest called parametrization.
It's totally one of the superpowers of pytest.

It's actually a handful of features, and there are a few ways to approach it.
Parametrization is the ability to take one test, and send lots of different input datasets into the code under test, and maybe even have different output checks, all within the same test that you developed in the simple test case.

Super powerful, but something since there's a few approaches to it, a tad tricky to get the hang of.

Sponsored By:

Links:

86: Teaching testing best practices with 4 testing maxims - Josh Peak06 Sep 201900: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:

85: Speed Up Test Suites - Niklas Meinzer26 Aug 201900:26:33

Good software testing strategy is one of the best ways to save developer time and shorten software development delivery cycle time.

Software test suites grow from small quick suites at the beginning of a project to larger suites as we add tests, and the time to run the suites grows with it.

Fortunately, pytest has many tricks up it's sleave to help shorten those test suite times.

Niklas Meinzer is a software developer that recentely wrote an article on optimizing test suites. In this episode, I talk with Niklas about the optimization techniques discussed in the article and how they can apply to just about any project.

Special Guest: Niklas Meinzer.

Sponsored By:

Links:

84: CircuitPython - Scott Shawcroft20 Aug 201900: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:

83: PyBites Code Challenges behind the scenes - Bob Belderbos16 Aug 201900:24:04

Bob Belderbos and Julian Sequeira started PyBites a few years ago.
They started doing code challanges along with people around the world and writing about it.

Then came the codechalleng.es platform, where you can do code challenges in the browser and have your answer checked by pytest tests. But how does it all work?

Bob joins me today to go behind the scenes and share the tech stack running the PyBites Code Challenges platform.

We talk about the technology, the testing, and how it went from a cool idea to a working platform.

Special Guest: Bob Belderbos.

Sponsored By:

Links:

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

82: pytest - favorite features since 3.0 - Anthony Sottile31 Jul 201900:36:36

Anthony Sottile is a pytest core contributor, as well as a maintainer and contributor to
many other projects. In this episode, Anthony shares some of the super cool features of pytest that have been added since he started using it.

We also discuss Anthony's move from user to contributor, and how others can help with the pytest project.

Special Guest: Anthony Sottile.

Sponsored By:

Links:

81: TDD with flit17 Jul 201900:25:21

In the last episode, we talked about going from script to supported package.
I worked on a project called subark and did the packaging with flit.

Today's episode is a continuation where we add new features to a supported package and how to develop and test a flit based package.

Covered:

  • viewing stages of a project with git tags
  • flit support for editable installs
  • flit description entry in pyproject.toml to put README on pypi.
  • development dependencies in pyproject.toml
  • editor layout for optimal TDD-ing
  • test case grouping
  • modifications to traditional TDD that helps me develop faster.

code and command snippets from episode:

For git checkout of versions:

$ git clone https://github.com/okken/submark.git $ cd submark $ python3 -m venv venv --prompt submark $ source ./bin/activate (submark) $ git checkout v0.1 ... etc ... (submark) $ git checkout v0.7

To grab the latest again:

(submark) $ git checkout master

pyproject.toml change for README to show up on pypi:

[tool.flit.metadata] ... description-file = "README.md" ...

Adding dev dependencies to pyproject.toml:

[tool.flit.metadata.requires-extra] test = ["pytest", "pytest-cov", "tox"]

Installing in editable mode (in top level repo directory). works in mac, linux, windows:

(submark) $ flit install --pth-file

or for mac/linux:

(submark) $ flit install -s

Sponsored By:

Links:

80: From Python script to Maintainable Package04 Jul 201900:21:52

This episode is a story about packaging, and flit, tox, pytest, and coverage.
And an alternate solution to "using the src".

Python makes it easy to build simple tools for all kinds of tasks.
And it's great to be able to share small projects with others on your team, in your company, or with the world.

When you want to take a script from "just a script" to maintainable package, there are a few steps, but none of it's hard.

Also, the structure of the code layout changes to help with the growth and support.

Instead of just talking about this from memory, I thought it'd be fun to create a new project and walk through the steps, and report back in a kind of time lapse episode. It should be fun.

Here are the steps we walk through:

  • 0.1 Initial script and tests
  • 0.2 build wheel with flit
  • 0.3 build and test with tox
  • 0.4 move source module into a package directory
  • 0.5 move tests into tests directory

Sponsored By:

Links:

© My Podcast Data