Test & Code is a weekly podcast hosted by Brian Okken. The show covers a wide array of topics including software development, testing, Python programming, and many related topics. When we get into the implementation specifics, that's usually Python, such as Python packaging, tox, pytest, and unittest. However, well over half of the topics are language agnostic, such as data science, DevOps, TDD, public speaking, mentoring, feature testing, NoSQL databases, end to end testing, automation, continuous integration, development methods, Selenium, the testing pyramid, and DevOps.
76: TDD: Don’t be afraid of Test-Driven Development - Chris May
Test Driven Development, TDD, can be intimidating to try.
Why is that? And how can we make it less scary?
That's what this episode is about.
Chris May is a Python developer and the co-founder of PyRVA, the Richmond Virginia Python group.
In this episode, Chris shares his experience with adding testing and TDD to his work flow.
I really enjoyed talking with Chris, and I think his story will help lots of people overcome testing anxiety.Special Guest: Chris May.Sponsored By:PyCharm Professional: Try PyCharm Pro for 4 months. Offer good through June 10.
Try out Pro features like integrated coverage and profiling, and extended support for Django, Flask, Pyramid, Cython, and more. Promo Code: TESTNCODE2019Support Test & Code - Python Testing & DevelopmentLinks:Don't be afraid of Test-Driven DevelopmentEveryday Superpowers
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:
Our priority is improving the business.
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.
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.
We care deeply about the quality culture of our team, and we coach, lead, and nurture the team towards a more mature quality culture.
We believe that the customer is the only one capable to judge and evaluate the quality of our product
We use data extensively to deeply understand customer usage and then close the gaps between product hypotheses and business impact.
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:Patreon Supporters: Help support the show with as little as $1 per month.
Funds help pay for expenses associated with the show.Support Test & Code - Python Testing & DevelopmentLinks:Tooth of the Weasel – notes and rants about software and software qualityAB Testing – Alan and Brent talk about Modern Testing – including Agile, Data, Leadership, and more.Modern Testing PrinciplesThe Lean Startup
74: Technical Interviews: Preparing For, What to Expect, and Tips for Success - Derrick Mar
In this episode, I talk with Derrick Mar, CTO and co-founder of Pathrise.
This is the episode you need to listen to to get ready for software interviews.
We discuss four aspects of technical interviews that interviewers are looking for:
How to practice for the interview.
Techniques for synchronizing with interviewer and asking for hints.
Even how to ask the recruiter or hiring manager how to prepare for the interview.
If you or anyone you know has a software interview coming up, this episode will help you both feel more comfortable about the interview before you show up, and give you concrete tips on how to do better during the interview.Special Guest: Derrick Mar.Sponsored By:Python Testing with pytest: Simple, Rapid, Effective, and Scalable
The fastest way to learn pytest. From 0 to expert in under 200 pages.Patreon Supporters: Help support the show with as little as $1 per month.
Funds help pay for expenses associated with the show.Support Test & Code - Python Testing & DevelopmentLinks:72: Technical Interview Fixes - April WenselPathrise
This is a "Yay! It's PyCon 2019" episode.
PyCon is very important to me.
But it's kinda hard to put a finger on why.
So I figured I'd ask more people to help explain why it's important.
I ask a few simple questions to people about Python and PyCon and get some great insights into both the language popularity and the special place this conference holds to many people.Sponsored By:Patreon Supporters: Help support the show with as little as $1 per month.
Funds help pay for expenses associated with the show.Support Test & Code - Python Testing & Development
Some typical technical interview practices can be harmful and get in the way of hiring great people. April Wensel offers advice to help fix the technical interview process.
hire for mindset and attitude
look for empathy and mentorship skills
allow candidates to show their strengths instead of hunting for weaknesses
have the candidate leave feeling good about themselves and your company, regardless of the hiring decision
Some topics discussed:
interview questions to bring out stories of skills and successes
myth of talent shortage
pair programming and collaboration during interviews
cultural add vs cultural fit
This episode is important for anyone going into a technical interview, as a candidate, as a hiring manager, or as a member of an interview team.Special Guest: April Wensel.Sponsored By:Patreon Supporters: Help support the show with as little as $1 per month.
Funds help pay for expenses associated with the show.Support Test & Code - Python Testing & DevelopmentLinks:Compassionate CodingLeave Your “Gut” Out of Hiring DecisionsIf You Can Use a Fork, You’re “Technical” — April WenselProject Include
71: Memorable Tech Talks, The Ultimate Guide - Nina Zakharenko
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:PyBites Code Challenges: Self-contained Python Code Challenges you can code and verify in the browser. Support Test & Code - Python Testing & DevelopmentLinks:The Ultimate Guide To Memorable Tech Talks — Nina's series of posts with lots of advice on giving excellent tech talks.Azure for Python developers — Tutorials, API Reference | Microsoft DocsHow to Do a Deep, Diaphragmatic Belly BreathingExample accepted and rejected conference talk proposals — Nina's examplesAllison Kaptur's PyCon Proposal examplesEmily Morehouse's proposal examples.Brandon Rhodes' example PyCon talk proposalsNina's PyCascades talk on Python and LEDs — PyCascades – Light Up Your Life – With Python and LEDs, starts at 13:26.Nina has a keynote at PyCon 2019 — woohoo!
70: Learning Software without a CS degree - Dane Hillard
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:Python Morsels: Expand your knowledge of Python at your pace, with expertly curated problems and solutions.Support Test & Code - Python Testing & DevelopmentLinks:Dane HillardCode Like a Pro — Dane's bookNoiselyLittle Leviathan — Dane's musicDane Hillard Photography — Dane's photographyNvidia AI turns sketches into photorealistic landscapes in seconds
Andy Hunt and Dave Thomas wrote the seminal software development book, The Pragmatic Programmer. Together they founded The Pragmatic Programmers and are well known as founders of the agile movement and authors of the Agile Manifesto. They founded the Pragmatic Bookshelf publishing business in 2003.
The Pragmatic Bookshelf published it's most important book, in my opinion, in 2017 with the first pytest book available from any publisher.
The Pragmatic Programmer, the book
The Manifesto for Agile Software Development
Agile methodologies and lightweight methods
Some issues with "Agile" as it is now.
The GROWS Method
Pragmatic Bookshelf, the publishing company
How Pragmatic Bookshelf is different, and what it's like to be an author with them.
Reading and writing sci-fi novels, including Conglommora, Andy's novels.
Special Guest: Andy Hunt.Sponsored By:PyCharm Professional: Try PyCharm Pro for an extended 4 month trial before deciding which version you need. If you value your time, you owe it to yourself to try PyCharm. Promo Code: TESTNCODE2019Support Test & Code - Python Testing & Development
68: test && commit || revert (TCR) - Thomas Deniffel
With conventional TDD, you write a failing test, get it to pass, then refactor.
Then run the tests again to make sure your refactoring didn't break anything.
But what if it did break something?
Kent Beck has been recommending to commit your code to revision control after every green test run.
Oddmund Strømme suggested a symmetrical idea to go ahead and revert the code when a test fails.
Kent writes that he hated the idea, but had to try it.
Then wrote about it last September.
And now we have TCR, "(test && commit) || revert".
What's it feel like to actually do this?
Well, Thomas Deniffel has been using it since about a month after that article came out.
In this episode, we'll hear from Thomas about his experience with it.
It's a fascinating idea. Have a listen and let me know what you think.Special Guest: Thomas Deniffel.Sponsored By:PyCharm Professional: Try PyCharm Pro for an extended 4 month trial before deciding which version you need. If you value your time, you owe it to yourself to try PyCharm. Promo Code: TESTNCODE2019Support Test & Code - Python Testing & DevelopmentLinks:test && commit || revert — Kent Beck's original articleTCR: (test && commit || revert). How to use? Alternative to TDD? — Thomas Deniffel's articleTCR Variants (test && commit || revert)TCR: A pulverizer for coding tasks — Another interesting opinion from someone else trying TCR - Jason Crawford(test && commit || revert) Questions Answered — Written after this interview.
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:PyCharm Professional: Try PyCharm Pro for an extended 4 month trial before deciding which version you need. If you value your time, you owe it to yourself to try PyCharm. Promo Code: TESTNCODE2019Support Test & Code - Python Testing & DevelopmentLinks:Teaching Python
I was recently interviewed on a podcast called "IT Career Energizer Podcast".
Phil Burgess is the host of the podcast, and it was a lot of fun.
I think it turned out well, and I wanted to share it with you here, with Phil's permission, of course.Special Guest: Phil Burgess.Support Test & Code - Python Testing & DevelopmentLinks:IT Career Energizer Podcast
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:PyCharm Professional: Try PyCharm Pro for an extended 4 month trial before deciding which version you need. If you value your time, you owe it to yourself to try PyCharm. Promo Code: TESTNCODE2019Support Test & Code - Python Testing & DevelopmentLinks:Twitter survey about multiple asserts/checks — Are multiple asserts/checks ok in an automated test?Multiple Asserts Are OK - Bill Wakepytest-check: A pytest plugin that allows multiple failures per test.