Detailed
Compact
Art
Reverse
September 11, 2019
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:PyCharm Professional: Try PyCharm Pro before Sept 25 with a 4 month free trial. With amazing pytest support and now super awesome Jupyter Notebook support, PyCharm boosts your productivity. Promo Code: TESTNCODE2019Support Test & Code - Python Testing & DevelopmentLinks:git branch — -a : list all branches, -r : just remotespytest changelogpytest deprecations and removalsPython Testing with pytest — Test function parametrization is in chapter 2. Fixture parametrization is in chapter 3.Parametrizing test functions — pytest documentationpytest fixtures — pytest documentation
September 6, 2019
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:Raygun: Detect, diagnose, and destroy Python errors that are affecting your customers. With smart Python error monitoring software from Raygun, you can be alerted to issues affecting your users the second they happen.Support Test & Code - Python Testing & DevelopmentLinks:From Zero to Test: Turning hurdles into steps. Advanced Python Testing — Postspytest-vcrVCR.pypytest-randomly
August 26, 2019
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:Azure Pipelines: Automate your builds and deployments with pipelines so you spend less time with the nuts and bolts and more time being creative. Many organizations and open source projects are using Azure Pipelines already. Get started for free at azure.com/pipelinesSupport Test & Code - Python Testing & DevelopmentLinks:Profiling and improving the runtime of a large pytest test suite | Niklas Meinzer
August 20, 2019
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:Patreon Supporters: Help support the show with as little as $1 per month and be the first to know when new episodes come out.Support Test & Code - Python Testing & DevelopmentLinks:CircuitPythonDownloads — All the products that run CircuitPythonLearning Guides with CircuitPythonLoading CircuitPython on Circuit Playground ExpressAdafruit Discord ServerScott Shawcroft (@tannewt) / TwitterAdafruit-Blinka
August 16, 2019
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:PyCharm Professional: PyCharm is designed by programmers, for programmers, to provide all the tools you need for productive Python development.Support Test & Code - Python Testing & DevelopmentLinks:PyBitesPyBites Code Challenges coding platformLearning PathsJulian's article on whiteboard interviewsSelenium running on CodeChalleng.es
July 31, 2019
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:Azure Pipelines: Many organizations and open source projects are using Azure Pipelines already. Get started for free at azure.com/pipelinesSupport Test & Code - Python Testing & DevelopmentLinks:pytest documentationpytest Changelogpytest API Referencesponsor pytestgetting started contributing to pytestthe book: Python Testing with pytest — The fastest way to learn pytest
July 17, 2019
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:PyCharm Professional: PyCharm is designed by programmers, for programmers, to provide all the tools you need for productive Python development.Support Test & Code - Python Testing & DevelopmentLinks:submark · PyPIsubmark on GitHubThe pyproject.toml config file — Flit 1.3 documentationFlit install — Flit 1.3 documentationTest & Code 80: From Python script to Maintainable Package
July 4, 2019
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:Pantheon: Pantheon makes building, managing, and optimizing websites simpler. Get started for free at pantheon.io/testandcode.Support Test & Code - Python Testing & DevelopmentLinks:submark repo: A Subset of MarkdownFlit documentationCoverage.py documentationtox documentation
June 27, 2019
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: Integrated tests can't work. I can prove it with wacky math. Tests have to be blazing fast or they won't get run. TDD is about design, not about testing. This episode discusses why these are wrong.Sponsored By:Pantheon: Pantheon makes building, managing, and optimizing websites simpler. Get started for free at pantheon.io/testandcode.Support Test & Code - Python Testing & DevelopmentLinks:Why should you write tests? - A Question of Code PodcastBoundaries talk by Gary BernhardtIntegrated Tests Are A Scam - J B RainsbergerUnitTest - Solitary or Sociable - and speed - Martin FowlerPremature optimization is the root of all evil -- DonaldKnuthMy reaction to "Is TDD Dead?" - Python TestingTest-induced design damage - DHHSlow database test fallacy - DHHRailsConf 2014 - Keynote: Writing Software - DHHManifesto for Agile Software DevelopmentApache Beam Contrib Guide, including post commit testing
June 19, 2019
Roadblocks to writing tests, and what to do about it. Some developers either don't write tests, or don't like writing tests. Why not? I love writing tests. In this episode we examine lots of roadblocks to testing, and start coming up with solutions for these.Sponsored By:Pantheon: Pantheon makes building, managing, and optimizing websites simpler. Get started for free at pantheon.io/testandcode.Support Test & Code - Python Testing & DevelopmentLinks:"I don’t write tests because ____. " twitter questionepisode 75: Modern Testing Principlesepisode 76: TDD: Don’t be afraid of Test-Driven Development "A QA engineer walks into a bar"
June 11, 2019
Creating maintainable test suites for complex systems. The episode describes some complexities involved with hardware testing, then shares techniques for shifting complexity out of the test cases. quick overview of what test instruments are discussion of API and communication with instruments techniques for shifting complexity out of test cases These techniques should apply to all test suites dealing with complex systems: Creating test cases that are easy to read and debug and tell a story about what is being tested. Pushing setup complexity into fixtures. Pushing lengthy repetitive API call sets into helper functions. Using stable, documented, interfaces. Sponsored By:Pantheon: Pantheon makes building, managing, and optimizing websites simpler. Get started for free at pantheon.io/testandcode.Support Test & Code - Python Testing & DevelopmentLinks:VoltmeterOscilloscopeSpectrum analyzerFunction generatorArbitrary waveform generatorWireless Communications Testers & SystemsR&S CMW PlatformSCPI - Standard Commands for Programmable InstrumentsVISA - Virtual instrument software architecturePyVISA: Control your instruments with Pythonpytestpytest book
May 29, 2019
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
May 23, 2019
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
May 21, 2019
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: communication problem solving coding verification 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
May 3, 2019
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
April 29, 2019
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. She recommends: 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 stereotype threat diversity interview hazing white boards coding challenges unconscious bias emotional intelligence myth of talent shortage pair programming and collaboration during interviews mirrortocracy cultural add vs cultural fit empathy mentoring 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
April 5, 2019
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!
March 29, 2019
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
March 21, 2019
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. Topics: 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. Playing music. 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
March 13, 2019
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.
February 28, 2019
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
February 26, 2019
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
February 17, 2019
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.
February 7, 2019
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:PyBites Code Challenges: Self-contained Python Code Challenges you can code and verify in the browser. Support Test & Code - Python Testing & DevelopmentLinks:practicing-programming - Steve Yegge — essayThe Ultimate Code Kata - Jeff AtwoodTeach Yourself Programming in Ten Years - Peter NorvigPyBites Code Challenges — Hone your Python Skills, in the browserCheckiO — JavaScript & Python challengesExercism — code practiceCodewars — Train with Programming Challenges/Kata Python Morsels — Challenges emailed to you once a weeksubreddit of code challenges
February 1, 2019
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: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:MetaSnake — Python Consultant and TrainingIllustrated Guide to Python 3 — A Complete Walkthrough of Beginning Python with Unique Illustrations Showing how Python Really WorksLearning the Pandas Library — Python Tools for Data Munging, Analysis, and VisualizationBeginning Python Programming — Learn Python in 7 Days
January 13, 2019
There are a lot of learning styles and a lot of ways to learn Python. If you started Python through a class at work, or through an online course, or maybe an email series, it's possibly you may have learned from Reuven Lerner. If your first encounter with pytest was reading an article in Linux Journal recently, that would be the writing of Reuven. Reuven Lerner teaches Python. This interview definitely falls into the category of talking with interesting people doing interesting things with Python. We talk about how incorporating testing into teaching can add a level of clarity to the interaction and help people duirng the learning process. I'm also fascinated by people who teach and train because it's a skill I'm trying to improve.Special Guest: Reuven Lerner.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:Reuven's siteReuven's blogReuven's online storeReuven's newsletternewsletter for trainersWeekly Python Exercise: Newbie edition — a 10% discount code for Test & Code listeners for the late January cohort.
December 31, 2018
A look back on 3 years of podcasting, and a bit of a look forward to what to expect in 2019. Top 5 episodes: 2: Pytest vs Unittest vs Nose 33: Katharine Jarmul - Testing in Data Science 18: Testing in Startups and Hiring Software Engineers with Joe Stump 45: David Heinemeier Hansson - Software Development and Testing, TDD, and exploratory QA 27: Mahmoud Hashemi : unit, integration, and system testing Honorable mention: 32: David Hussman - Agile vs Agility, Dude's Law, and more This episode also went through lots of: what went well what was lacking what's next Please listen and let me know where I should take this podcast.Sponsored By:DigitalOcean: Get started with a free $100 credit Support Test & Code - Python Testing & Development
December 28, 2018
Julian Sequeira is Co-Founder of PyBit.es (a blog/platform created to teach and learn Python) and a Python Trainer at Talk Python Training. He's also a survivor of the 100DaysOfCode in Python Challenge. We talk about the 100 days challenge, about learning Python, and about how cool it is to learn within a community.Special Guest: Julian Sequeira.Sponsored By:DigitalOcean: Get started with a free $100 credit Support Test & Code - Python Testing & DevelopmentLinks:PyBites BlogPyBites Code Challenges PlatformTalkPython + PyBites 100 Days of Code in Python CoursePyBites 100 Days of Code RepoPybit.es Slack Community
December 21, 2018
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:DigitalOcean: Get started with a free $100 credit Support Test & Code - Python Testing & DevelopmentLinks:Genesynth part 1: idea and researchGenesynth part 2: basic communicationGenesynth part 3: proper audio amplificationnoxurllib3PyCascades 2019thea.codes
December 14, 2018
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:DigitalOcean: Get started with a free $100 credit Support Test & Code - Python Testing & DevelopmentLinks:Introducing the StreamSets Test Frameworkpytest-benchmark · PyPIStreamSets Test Framework-based tests for StreamSets Data CollectorStreamSets: Where DevOps Meets Data Integrationslack channel for Test & Code
December 11, 2018
Data science, data engineering, data analysis, and machine learning are part of the recent massive growth of Python. But really what is data science? Vicki Boykis helps me understand questions like: No really, what is data science? What does a data pipeline look like? What is it like to do data science, data analysis, data engineering? Can you do analysis on a laptop? How big does data have to be to be considered big? What are the challenges in data science? Does it make sense for software engineers to learn data engineering, data science, pipelines, etc? How could someone start learning data science? Also covered: A type work (analysis) vs B type work (building) data lakes and data swamps predictive models data cleaning development vs experimentation Jupyter Notebooks Kaggle ETL pipelines I learned a lot about the broad field of data science from talking with Vicki.Special Guest: Vicki Boykis.Sponsored By:DigitalOcean: Get started with a free $100 credit Support Test & Code - Python Testing & DevelopmentLinks:How to Lie with Statistics : Darrell HuffShould you replace Hadoop with your laptop?KaggleProject JupyterSoviet Art Bot — A bot that finds socialist realism paintings and tweets them out
December 7, 2018
Michael Kennedy of Talk Python and Python Bytes fame joins Brian to talk about being a great guest and what to expect. Even if you have never wanted to be on a podcast, you might learn some great tips. A few of the things we talk about will be helpful for other endeavors, like public speaking, guest blog posts, look for unsolicited job opportunities. Some people have never been on a podcast before, and are possibly freaked out about some of the unknowns of being on a podcast. That's why we did this episode. Michael and I discuss a bunch of the niggly details so that you can be relaxed and know what to expect. Topics include: If you want to be on a podcast How to stand out and be someone a podcast would want to have on a show. How to suggest yourself as a guest and the topic you want to discuss. Picking a topic for a podcast What to do before the show to prepare Helping the host out with some information Some hardware (not much) Some software (all free) Sending info like bio, headshot, links, etc. What to expect the host or show to do before the recording. Where to record Sketching out some show topics with the host, maybe on a shared document. What to expect and do Right before the show During the conversation After the recording When it goes live (help promote it) Special Guest: Michael Kennedy.Sponsored By:DigitalOcean: Get started with a free $100 credit Support Test & Code - Python Testing & Development
December 3, 2018
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:DigitalOcean: Get started with a free $100 credit Support Test & Code - Python Testing & DevelopmentLinks:Announcing glom — Restructured Data for PythonDomain-specific language - Wikipediaawesome-python-applications — Free software that works great, and also happens to be open-source Python.Meld — a visual diff and merge tool targeted at developers.ZeroVer: 0-based Versioning SemVer: Semantic Versioning CalVer: Calendar Versioningepisode 27: unit, integration, and system testing - Mahmoud Hashemi
November 25, 2018
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:DigitalOcean: Get started with a free $100 credit Support Test & Code - Python Testing & DevelopmentLinks:Python 1994 Panel Discussion PyCon 2017"Python 1994", PyBay2017Spam, Spam, Spam, ...
November 19, 2018
Luc Perkins joins the show to talk about "Seven Databases in Seven Weeks: A guide to modern databases and the NoSQL movement." We discuss a bit about each database: Redis, Neo4J, CouchDB, MongoDB, HBase, Postgres, and DynamoDB.Special Guest: Luc Perkins.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:Seven Databases in Seven Weeks, Second Edition: A Guide to Modern Databases and the NoSQL MovementPostgreSQLRedisNeo4j Graph DatabaseCouchDBMongoDBHBaseDynamoDB
November 5, 2018
Brett Cannon discusses the changes afoot in Python packaging as a result of PEP 517, PEP 518, starting with "How did we get here?" and "Where are we going?" Discussed: flit Poetry tox Continuous Integration setup.py, MANIFEST.in, etc. pipenv what's with lock files applications (doesn't go on PyPI) vs libraries (goes on PyPI) workflows dependency resolution deployment dependencies vs development dependencies will lock files be standarized multiple lock files requirements.txt Special Guest: Brett Cannon.Sponsored By:DigitalOcean: Get started with a free $100 credit Support Test & Code - Python Testing & DevelopmentLinks:FlitPoetryPython Bytes #100 : The big 100 with special guests PEP 517 -- A build-system independent format for source trees | Python.orgPEP 518 -- Specifying Minimum Build System Requirements for Python Projects | Python.org
October 30, 2018
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: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 engineering blog article describing Feature Testing : The testing renaissance
October 25, 2018
Anthony Shaw joins Brian to discuss flaky tests and flaky test suites. What are flaky tests? Is it the same as fragile tests? Why are they bad? How do we deal with them? What causes flakiness? How can we fix them? How can we avoid them? Proactively rooting out flakiness Test design GUI tests Sharing solutions Special Guest: Anthony Shaw.Sponsored By:DigitalOcean: Get started with a free $100 credit Support Test & Code - Python Testing & DevelopmentLinks:Dropbox article on flaky testsMicrosoft article on flaky testspytest-rerunfailures: a py.test plugin that re-runs failed tests up to -n times to eliminate flakey failurespytest-randomly: Pytest plugin to randomly order tests and control random.seedpytest-random-order: pytest plugin to randomise the order of tests with some control over the randomnessmath.isclose()numpy.isclose()pytest.approx() — approxAnthony's testing article on RealPythonGhost Inspectorwily: A Python application for tracking, reporting on timing and complexity in tests
October 15, 2018
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: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:tox project documentationtox recreate : "Have you turned it off and on again?" for tox"Hello world" of toxtox also has pluginstalk by Bernát Gábor about a tox based workflow at EuroPython 2018adding a description to your environmentsdetox - distributed toxdevpi: private package indexPyCharm plugin to easily set the project interpreter via context menu: PyVenvmanagepower mode in atomPower Mode for PyCharm
October 8, 2018
The story of how I came to find a good user interface for running and debugging automated tests is interleaved with a multi-year effort of mine to have a test workflow that’s works smoothly with product development and actually speeds things up. It’s also interleaved with the origins of the blog pythontesting.net, this podcast, and the pytest book I wrote with Pragmatic. It’s not a long story. And it has a happy ending. Well. It’s not over. But I’m happy with where we are now. I’m also hoping that this tale of my dedication to, or obsession with, quality and developer efficiency helps you in your own efforts to make your daily workflow better and to extend that to try to increase the efficiency of those you work with.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:pythontesting.net
September 28, 2018
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: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:Automation Panda | A blog for software development and testingKarate REST API test frameworkBDD | Automation PandaTesting | Automation PandaThe pytest Book
September 2, 2018
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: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
August 13, 2018
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:PyCharm Professional: If you value your time, you owe it to yourself to try PyCharm. The team has set up a link just for Test & Code listeners. If you use the link [testandcode.com/pycharm](http://testandcode.com/pycharm), you can try PyCharm Professional for free for 3 months. This offer is only good until Sept 1, so don't forget. Plus using the link (I'll also have it in the show notes) lets PyCharm know that supporting Test & Code is a good thing.Support Test & Code - Python Testing & DevelopmentLinks:Is TDD dead? - Part 1My reaction to "Is TDD Dead?", including links to the other parts of the video seriesRailsConf 2014 - Keynote: Writing Software by David Heinemeier Hansson - YouTubeTDD is dead. Long live testing. (DHH)Test-induced design damage (DHH)Slow database test fallacy (DHH)
July 21, 2018
Nina Zakharenko is a cloud developer advocate at Microsoft focusing on Python. She's also an excellent public speaker. We talk about her experience with mentoring, both being a mentor, and utilizing mentors. We also talk about public speaking, her move to Microsoft, and to Portland, and the Microsoft/GitHub merge.Special Guest: Nina Zakharenko.Sponsored By:PyCharm Professional: If you value your time, you owe it to yourself to try PyCharm. The team has set up a link just for Test & Code listeners. If you use the link [testandcode.com/pycharm](http://testandcode.com/pycharm), you can try PyCharm Professional for free for 3 months. This offer is only good until Sept 1, so don't forget. Plus using the link (I'll also have it in the show notes) lets PyCharm know that supporting Test & Code is a good thing.Support Test & Code - Python Testing & DevelopmentLinks:The Recurse CenterWhy I joined Microsoft – Hacker NoonBootstrap · The most popular HTML, CSS, and JS library in the world.Brian Holt on Twitter: "“Fullstack” developer.… "
July 17, 2018
After I had wrapped up the interview with Kelsey Hightower for episode 43, I asked him one last question. You see, I admire the his presentation style. So I asked him if he would share with me how he prepared for his presentations. His answer is so thoughtful and makes so much sense, I couldn't keep it to myself. I'm releasing this as a bonus mini-episode so that it's easy to refer back to the next time you or I have a chance to do a technical talk.Special Guest: Kelsey Hightower.Support Test & Code - Python Testing & Development
July 5, 2018
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:PyCharm Professional: If you value your time, you owe it to yourself to try PyCharm. The team has set up a link just for Test & Code listeners. If you use the link [testandcode.com/pycharm](http://testandcode.com/pycharm), you can try PyCharm Professional for free for 3 months. This offer is only good until Sept 1, so don't forget. Plus using the link (I'll also have it in the show notes) lets PyCharm know that supporting Test & Code is a good thing.Support Test & Code - Python Testing & Development
June 28, 2018
This interview with Trey Hunner discusses his use of automated tests to help teach programming. Automated testing is a huge part of developing great software. But many new developers don't get exposed to testing for quite a while. But this is changing. New ways to teach programming include automated tests from the beginning. Trey Hunner is one of the PSF directors and a Python and Django team trainer, and he has been using automated tests to help people learn Python.Special Guest: Trey Hunner.Sponsored By:Python Bytes: Get the latest Python news with the Python Bytes Podcast.Talk Python to Me: Get the back story and hear about the human side of the Python things you love with the Talk Python to Me PodcastSupport Test & Code - Python Testing & DevelopmentLinks:Trey HunnerPython Morsels - write better Python codeTrey's Weekly Python ChatTrey's Training business: Truthful Technologyexercism.ioPyBites Code Challenges CheckiO
April 18, 2018
We talk with Anthony Shaw about some of the testing problems facing both DevOps teams, and Agile teams. We also talk about his recent pull request accepted into pytest.Special Guest: Anthony Shaw.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:Anthony Shaw on github.ioSupport for the new builtin breakpoint function in Python 3.7 by tonybaloney · Pull Request #3331 · pytest-dev/pytest
April 10, 2018
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: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:Irresistible Podcasting – A Step by Step Guide to Launching and Growing a Podcast that Can’t Be IgnoredThe Gently Mad – Life, business & entrepreneurship without the bullshit.avclark.comJustin Jacksons episodes on minimal podcasting | Build and LaunchDan Benjamin's Podcast Method podcastPython Bytes PodcastATR2100 MicShure SM57 MicShure SM7B micdbx 286s Microphone Preamp ProcessorFocusrite Scarlett 2i2 USB Audio Interface
March 29, 2018
Complete and exhaustive testing is not possible. Nor would it be fun, or maintainable, or a good use of your time. However, some functionality is important enough to make sure the test behavior coverage is thorough enough to have high confidence in it's quality. In this episode, we discuss 3 techniques that can be combined to quickly generate test cases. We then talk about how to implement them efficiently in pytest. The techniques covered are: equivalence partitioning boundary value analysis decision tables We discuss how to use these to generate test cases for a new list filter functionality in the cards application. The resulting tests: 1 UI test to make sure the options are able to be passed in correctly. 1 small parametrized test function with 16 single line parameter sets representing the different test cases. 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:github cards project (version 0.1.11)Equivalence partitioning - WikipediaBoundary-value analysis - WikipediaDecision table - WikipediaSlack Channel for Test and CodeDJ YANiC - The awesome listener that contributed our theme music.
March 13, 2018
RCRCRC was developed by Karen Nicole Johnson. In this episode we discuss the mnemonic/heuristic and use it to prioritize tests for the cards application. Recent: new features, new areas of code Core: essential functions must continue to work, your products USPs (Unique Selling Propositions) Risk: some areas of an application pose more risk, perhaps areas important to customers but not used regularly by the development team. Configuration sensitive: code that’s dependent on environment settings or operating system specifics Repaired: tests to reproduce bugs, tests for functionality that has been recently repaired. Chronic: functionality that frequently breaks 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:A heuristic for regression testing, by Karen Nicole Johnson@karennjohnsoncards on githubcards on Travis CIcards on AppVeyor
March 8, 2018
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. Support Test & Code - Python Testing & Development
February 13, 2018
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: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:BinomialList of Engineers Willing to Mentor You — Stephanie HurlburtStephanie Hurlburt (@sehurlburt) | TwitterSlack - Python Testing / Test & Code — A super nice group of folks who are great at answering test related questions.
February 1, 2018
There are lots of ways to up your skills. Of course, I'm a big fan of learning through reading books, such as upping your testing skills by reading Python Testing with pytest. And then there are online learning systems and MOOCs. At the other end of the spectrum is a full blown university degree. One option kind of in the middle is continuing education programs available through some universities, such as University of Washington. To discuss this option with me in more depth, we've got Andrew Hoover, Senior Director, Program Strategy, University of Washington Continuum CollegeSpecial Guest: Andrew Hoover.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:UW Professional & Continuing EducationUW Career Accelerator CertificatesCertificate in Data AnalyticsCertificate in Data ScienceCertificate in Machine LearningCertificate in Project ManagementCertificate in Python Programming
December 31, 2017
An in depth discussion of Test Driven Development (TDD) should include a discussion of Test First. So that's where we start. Why write tests first? How do you know what tests to write? What are the steps for test first? Isn't this just TDD? Functional Tests vs Unit Tests 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:Test First Programming / Test First Development - Python TestingMy reaction to "Is TDD Dead?" - Python TestingEpisode 23: Lessons about testing and TDD from Kent BeckTalk Python, Episode #145 2017 Python Year in ReviewPyCon 2018 in Cleveland, Ohio | May 9-17Python Bytes PodcastPython Testing with pytest: Simple, Rapid, Effective, and Scalable: Brian Okken: 9781680502404: Amazon.com: Books
November 30, 2017
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: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:@kjam on Twitter — Data Magic and Computer SorceryKjamistan: Data Sciencedatafuzz’s Python library — The goal of datafuzz is to give you the ability to test your data science code and models with BAD data.Hypothesis Python library — Hypothesis is a Python library for finding edge cases in your code you wouldn’t have thought to look for.
October 3, 2017
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:Talk Python Training: Online video courses for Python developersPython 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:DevJamPNSQC 2015 How to Build the Wrong Thing Faster and Learn From ItPeople's Front of JudeaTDD on c2The waterfall modelTest First ProgrammingDude's LawSubcutaneous Test
September 27, 2017
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:Patreon Supporters: Help support the show with as little as $1 per month. Funds help pay for expenses associated with the show.Nerdlettering: Love Python? Show It With Some Python Swag Custom-made Mugs and Accessories for Pythonistas, by Pythonistas. Promo Code: TESTCODESupport Test & Code - Python Testing & DevelopmentLinks:Episode 34 - Software and Testing Models with Guest Host Brian Okken - Reflection As A Service — Cross posted to RaaSSubcutaneous Test — I use subcutaneous test to mean a test that operates just under the UI of an application.The Forgotten Layer of the Test Automation Pyramid — At the base of the test automation pyramid is unit testing.The Dreyfus model of skill acquisition — The Five-Stage Model of Adult Skill Acquisition
August 1, 2017
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:Nerdlettering: Love Python? Show It With Some Python Swag Custom-made Mugs and Accessories for Pythonistas, by Pythonistas. Promo Code: TESTCODEPatreon 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:Corgibyteswaffle.io
July 1, 2017
Kobiton is a service to test mobile apps on real devices. QASymphony offers software testing and QA tools.Special Guest: Josh Lieberman.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
April 7, 2017
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:Nerdlettering: Love Python? Show It With Some Python Swag Custom-made Mugs and Accessories for Pythonistas, by Pythonistas. Promo Code: TESTCODEKobiton: Test your Mobile App on Real Devices for Free with Kobiton. Sign up at kobiton.com/testandcode to start testing in minutes.Support Test & Code - Python Testing & Development
February 26, 2017
What is the difference between a unit test, an integration test, and a system test? Mahmoud Hashemi helps me to define these terms, as well as discuss the role of all testing variants in software development. What is the difference between a unit test, an integration test, and a system test? TDD testing pyramid vs testing column the role of testing in software development web frameworks listen to wikipedia hatnote the world’s largest photo competition Enterprise Software with Python Links: Mahmoud on twitter: @mhashemi Mahmoud on sedimental hatnote listen to wikipedia Montage, the web platform used to help judge the world’s largest photo competition clastic 10 Myths of Enterprise Python Enterprise Software with Python course Enterprise Software with Python blog post. Special Guest: Mahmoud Hashemi.Sponsored By:Nerdlettering: Love Python? Show It With Some Python Swag Custom-made Mugs and Accessories for Pythonistas, by Pythonistas. Promo Code: TESTCODETalk Python Training: Online video courses for Python developersPatreon 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
December 1, 2016
Interview with Sam Van Oort about pyresttest, "A REST testing and API microbenchmarking tool" pyresttest A question in the Test & Code Slack channel was raised about testing REST APIs. There were answers such as pytest + requests, of course, but there was also a mention of pyresttest, https://github.com/svanoort/pyresttest, which I hadn't heard of. I checked out the github repo, and was struck by how user friendly the user facing test definitions were. So I contacted the developer, Sam Van Oort, and asked him to come on the show and tell me about this tool and why he developed it. Here's the "What is it?" section from the pyresttest README: A REST testing and API microbenchmarking tool Tests are defined in basic YAML or JSON config files, no code needed Minimal dependencies (pycurl, pyyaml, optionally future), making it easy to deploy on-server for smoketests/healthchecks Supports generate/extract/validate mechanisms to create full test scenarios Returns exit codes on failure, to slot into automated configuration management/orchestration tools (also supplies parseable logs) Logic is written and extensible in Python Support Special thanks to my wonderful Patreon supporters and those who have supported the show by purchasing Python Testing with unittest, nose, pytestSponsored 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
December 1, 2016
Interview with Dave Hunt @davehunt82. We Cover: Selenium Driver pytest pytest plugins: pytest-selenium pytest-html pytest-variables tox Dave Hunt’s “help wanted” list on github Mozilla Also: fixtures xfail CI and xfail and html reports CI and capturing pytest code sprint working remotely for Mozilla 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
November 10, 2016
pytest is an extremely popular test framework used by many projects and companies. In this episode, I interview Raphael Pierzina (@hackebrot), a core contributor to both pytest and cookiecutter. We discuss how Raphael got involved with both projects, his involvement in cookiecutter, pytest, "adopt pytest month", the pytest code sprint, and of course some of the cool new features in pytest 3. Links: Raphael Pierzina on twitter (@hackebrot) pytest - http://doc.pytest.org cookie cutter - https://github.com/audreyr/cookiecutter cookiecutter-pytest-plugin - https://github.com/pytest-dev/cookiecutter-pytest-plugin 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
September 30, 2016
Kent Beck's twitter profile says "Programmer, author, father, husband, goat farmer". But I know him best from his work on extreme programming, test first programming, and test driven development. He's the one. The reason you know about TDD is because of Kent Beck. I first ran across writings from Kent Beck as started exploring Extreme Programming in the early 2000's. Although I don't agree with all of the views he's expressed in his long and verbose career, I respect him as one of the best sources of information about software development, engineering practices, and software testing. Along with Test First Programming and Test Driven Development, Kent started an automated test framework that turned into jUnit. jUnit and it's model of setup and teardown wrapping test functions, as well base test class driven test frameworks became what we know of as xUnit style frameworks now, which includes Python's unittest. He discussed this history and a lot more on episode 122 of Software Engineering Radio. The episode is titled "The History of JUnit and the Future of Testing with Kent Beck", and is from Sept 26, 2010. http://www.se-radio.net/2010/09/episode-167-the-history-of-junit-and-the-future-of-testing-with-kent-beck/ I urge you to download it and listen to the whole thing. It's a great interview, still relevant, and applicable to testing in any language, including Python. What I've done in this podcast is take a handful of clips from the interview (with permission from IEEE and SERadio), and discuss the clips and my opinions a bit. The lessons are: You're tests should tell a story. Be careful of DRY, inheritance, and other software development practices that might get in the way of keeping your tests easy to understand. All test should help differentiate good programs from bad programs and not be redundant. Test at multiple levels and multiple scales where it makes sense. Differentiating between TDD, BDD, ATDD, etc. isn't as important as testing your software to learn about it. Who cares what you call it. 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
September 24, 2016
How do you convert manual tests to automated tests? This episode looks at the differences between manual and automated tests and presents two strategies for converting manual to automated.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
August 31, 2016
A listener requested that I start covering some terminology. I think it's a great idea. Covered in this episode: Test Fixtures Subcutaneous Testing End to End Testing (System Testing) I also discuss: A book rewrite Progress on transcripts A story from the slack channel 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
July 29, 2016
I talk with Michael about: Episodes of his show having to do with testing. His transition from employee to podcast host and online training entrepreneur. His Python training courses. The Pyramid Web framework. Courses by Michael Explore Python Jumpstart by Building 10 Apps Explore Write Pythonic Code Like a Seasoned Developer Python for Entrepreneurs Testing related podcast Episodes from Talk Python To Me: episode 10: Harry Percival, TDD for the Web in Python, and PythonAnywhere PythonAnywhere Harry's book, TDD with Python episode 45: Brian Okken, Pragmatic testing and the Testing Column Talk Python To Me podcast episode 63: Austin Bingham, Mutation Testing, Cosmic Ray Cosmic Ray episode 67: David MacIver, Hypothesis Hypothesis 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
June 15, 2016
Interview with Robert Collins, current core maintainer of Python's unittest module. Some of the topics covered How did Robert become the maintainer of unittest? unittest2 as a rolling backport of unittest test and class parametrization with subtest and testscenarios Which extension to unittest most closely resembles Pytest fixtures? Comparing Pytest and unittest Will unittest ever get assert rewriting? Future changes to unittest I've been re-studying unittest recently and I mostly wanted to ask Robert a bunch of clarifying questions. This is an intermediate to advanced discussion of unittest. Many great features of unittest go by quickly in this talk. Please let me know if there's something you'd like me to cover in more depth as a blog post or a future episode. Links unittest unittest2 pip mock testtools fixtures testscenarios subunit pipserver devpi testresources TIP (testing in python) mailing list 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
April 20, 2016
In this episode, I interview with Joe Stump, cofounder of Sprintly (https://sprint.ly), to give the startup perspective to development and testing. Joe has spent his career in startups. He's also been involved with hiring and talent acquisition for several startups. We talk about testing, continuous integration, code reviews, deployment, tolerance to defects, and how some of those differ between large companies and small companies and startups. Then we get into hiring. Specifically, finding and evaluating good engineers, and then getting them to be interested in working for you. If you ever want to grow your team size, you need to listen to this.Sponsored By:Rollbar: Full-stack error tracking for all apps in any language.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
April 11, 2016
The Travis Foundation. Interview with Laura Gaetano Links and things we talked about: Travis Foundation Open Source Grants The Foundation's support of Katrina Owen from exercism.io Exercism.io Rails Girls summer of code Diversity Tickets Conference support Speakerinnen Prompt Sponsored By:Patreon Supporters: Help support the show with as little as $1 per month. Funds help pay for expenses associated with the show.Rollbar: Full-stack error tracking for all apps in any language.Support Test & Code - Python Testing & Development
March 31, 2016
This is a small episode. I'm changing the name from the "Python Test Podcast" to "Test & Code". I just want to discuss the reasons behind this change, and take a peek at what's coming up in the future for this podcast. Links The Waterfall Model and "Managing the Development of Large Software Systems" Josh Kalderimis from Travis CI Support Test & Code - Python Testing & Development
March 9, 2016
An introduction to Lean Software Development This is a quick intro to the concepts of Lean Software Development. I'm starting a journey of trying to figure out how to apply lean principles to software development in the context of 2016/2017. Links Lean Software Development book by Mary & Tom Poppendieck wikipedia entry for Lean Software Development Patreon supporters of the show Talk Python to Me Podcast Python Jumpstart by Building 10 Apps - video course pytest sprint pytest.org pytest/tox indiegogo campaign Support Test & Code - Python Testing & Development
February 25, 2016
Interview with Josh Kalderimis from Travis CI. Josh is a co-founder and Chief Post-It Officer at Travis CI. Topics What is Continuous Integration, CI What is Travis CI Some history of the company travis-ci.org vs travis-ci.com and merging the two Enterprise and the importance of security Feature questions Travis vs Jenkins Travis notification through Slack Reporting history of Travis results Dealing with pytest results status other than pass/fail Capturing std out and stderr logging from tests Build artifacts Tox and Travis Using Selenium What does a Chief Post-It Officer do Differentiation between Travis and other CI options Using Slack to keep remote teams communicating well Travis team Funding open source projects Travis Foundation Rails Girls Summer of Code Open source grants Mustaches and beards Shite shirts New Zealand What does Team Periwinkle do Links Jeff Knupp's Open Sourcing a Python Project the Right Way Sven's blog post when Travis started Sven's mustache and Josh's beard Travis CI for open source Travis CI for private repositories and enterprise Slack Travis Foundation Rails Girls Summer of Code Talk Python to Me Podcast Support Test & Code - Python Testing & Development
February 17, 2016
Testing apps that use requests without using mock. Interview with Ian Cordasco (@sigmavirus24) Topics: Betamax - python library for replaying requests interactions for use in testing. requests github3.py Pycon 2015 talk: Ian Cordasco - Cutting Off the Internet: Testing Applications that Use Requests - PyCon 2015 Pytest and using Betamax with pytest fixtures The utility (or uselessness) of teaching programming with Java (My own rant mainly) Rackspace and Ian’s role at Rackspace and OpenStack Python Code Quality Authority: flake8, pep8, mccabe, pylint, astroid, … Static code analysis and what to use which tool when. Raymond Hettinger - Beyond PEP 8 -- Best practices for beautiful intelligible code - PyCon 2015 Links: Testing Python-Requests with Betamax Cutting Off the Internet: Testing Applications that Use Requests - PyCon 2015 github3.py requests Rackspace Openstack Python Code Quality Authority and documentation GitLab Raymond Hettinger - Beyond PEP 8 -- Best practices for beautiful intelligible code - PyCon 2015 Other Betamax resources: Betamaxing Boto3 Using Betamax with pytest fixtures Isolated @memoize Support Test & Code - Python Testing & Development
February 10, 2016
In this episode I interview Ned Batchelder. I know that coverage.py is very important to a lot of people to understand how much of their code is being covered by their test suites. Since I'm far from an expert on coverage, I asked Ned to discuss it on the show. I'm also quite a fan of Ned's 2014 PyCon talk "Getting Started Testing", so I definitely asked him about that. We also discuss edX, Python user groups, PyCon talks, and more. Some of what's covered (pun intended) in this episode: coverage.py types of coverage Line coverage branch coverage Behavior coverage Data coverage How Ned became the owner of coverage.py Running tests from coverage.py vs running coverage from test runner. edX what is it what Ned's role is Ned's blog Ned's PyCon 2014 talk "Getting Started Testing" Teaching testing and the difficulty of the classes being part of unittest fixtures package some of the difficulties of teaching unittest because of it's class based system. the history of classes in unittest coming from java's jUnit implementation Boston's Python Group PyCon in Portland Ned to do a talk here "Machete mode debugging". Practicing PyCon talks at local group meetings. At the very least, practice it in front of a live audience. Links: Ned Batchelder Coverage Coverage documentation django-nose pytest-django edX open edX Boston Python User Group Portland Python User Group - I need to go to these PyCon 2016 - Planning on attending, it's in Portland. Yay! Getting Started Testing - Ned's 2014 Pycon talk Support Test & Code - Python Testing & Development
February 4, 2016
How pytest, unittest, and nose deal with assertions. The job of the test framework to tell developers how and why their tests failed is a difficult job. In this episode I talk about assert helper functions and the 3 methods pytest uses to get around having users need to use assert helper functions.Support Test & Code - Python Testing & Development
January 31, 2016
Given-When-Then is borrowed from BDD and is my favorite structure for test case design. It doesn’t matter if you are using pytest, unittest, nose, or something completely different, this episode will help you write better tests. The Given-When-Then structure for test method/function development. How and why to utilize fixtures for your given or precondition code. Similarities with other structure discriptions. Setup-Test-Teardown Setup-Excercise-Verify-Teardown. Arrange-Act-Assert Preconditions-Trigger-Postconditions. Benefits Communicate the purpose of your test more clearly Focus your thinking while writing the test Make test writing faster Make it easier to re-use parts of your test Highlight the assumptions you are making about the test preconditions Highlight what outcomes you are expecting and testing against. Links discussed in the show: Mechanics of pytest, unittest, nose unittest fixture reference nose fixture reference pytest fixtures (series of posts starting here) pytest style fixtures pytest parameterized fixtures Support Test & Code - Python Testing & Development
January 19, 2016
Intro to Harry Percival, his background and story of how he got into TDD and ended up writing a book Comparing using unittest and pytest with applicability to testing django projects. Functional end to end testing with selenium. The django test client for middle level tests. test isolation django and isolated unit tests unit tests vs integration tests Testing done by the development team without an external QA Double loop TDD: Functional test first, then unit tests Spikes: investigations without tests Harry's experience with having a freely available web version of a book that is also intended to be sold. Update: Comment from Harry Percival on 19-Jan-2014 I might have been a bit down on unit tests vs functional tests in that "unit tests never fail comment". Not true at all, particularly as we've just been thru upgrading django on our core system, and the unit tests really saved our bacon on that one... Links Test-Driven Development with Python Obey the Testing Goat - Harry's site dedicated to the book and related posts. Python Testing with unittest, nose, pytest Gary Bernhardt's talk, Boundaries talk including a discussion of "Functional Core, Imperative Shell". Video of Boundaries talk on youtube Support Test & Code - Python Testing & Development
December 15, 2015
In today's podcast, I dodge the question of "What do you think of Agile?" by reading an essay from Dave ThomasSupport Test & Code - Python Testing & Development
October 21, 2015
The waterfall model has been used and modified and changed and rebelled against since before I started programming. Waterfall such an important character in the story of software development that we should get to know it a better.Support Test & Code - Python Testing & Development
October 20, 2015
My experience with writing software comes from my experience: where I grew up, what eras I lived through, what my economical and geographical experiences have been, when I learned to code, and what projects I've worked on.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
September 23, 2015
Setup and Teardown Benefits of Test Fixtures code reuse cleanup of resources errors vs failures focusing your thinking on what you are testing and what you are not scoping for efficiency Brief look at pytest named fixtures References pytest fixtures series pytest fixtures nuts & bolts pytest session scoped fixtures unittest fixtures nose fixtures mentioned in introduction nose fixture reference post how to run a single class Support Test & Code - Python Testing & Development
September 11, 2015
Setup and Teardown Benefits of Test Fixtures code reuse cleanup of resources errors vs failures focusing your thinking on what you are testing and what you are not scoping for efficiency Brief look at pytest named fixtures References pytest fixtures series pytest fixtures nuts & bolts pytest session scoped fixtures unittest fixtures nose fixtures mentioned in introduction nose fixture reference post 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
September 2, 2015
Answering a listener question. Why testing? What are the benefits? Why automated testing over manual testing? Why test first? Why do automated testing during development? Why test to the user level API? After describing my ideal test strategy and project, I list: Business related, practical benefits of testing Personal reasons to embrace testing Pragmatic, day to day, developer benefits of testing Support Test & Code - Python Testing & Development
August 20, 2015
I list my requirements for a framework and discuss how Pytest, Unittest, and Nose measure up to those requirements. Mentioned: pytest unittest nose delayed assert pytest-expect doctest I did the audio processing differently for this episode. Please let me know how it sounds, if there are any problems, etc.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
    15
    15
      0:00:00 / 0:00:00