
Test & Code
237 episodes — Page 4 of 5
Ep 8787: Paths to Parametrization - from one test to many
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.Links: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
Ep 8686: Teaching testing best practices with 4 testing maxims - Josh Peak
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.Links:From Zero to Test: Turning hurdles into steps. Advanced Python Testing — Postspytest-vcrVCR.pypytest-randomly
Ep 8585: Speed Up Test Suites - Niklas Meinzer
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. Links:Profiling and improving the runtime of a large pytest test suite | Niklas Meinzer
Ep 8484: CircuitPython - Scott Shawcroft
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. Links:CircuitPythonDownloads — All the products that run CircuitPythonLearning Guides with CircuitPythonLoading CircuitPython on Circuit Playground ExpressAdafruit Discord ServerScott Shawcroft (@tannewt) / TwitterAdafruit-Blinka
Ep 8383: PyBites Code Challenges behind the scenes - Bob Belderbos
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.Links:PyBitesPyBites Code Challenges coding platformLearning PathsJulian's article on whiteboard interviewsSelenium running on CodeChalleng.es
Ep 8282: pytest - favorite features since 3.0 - Anthony Sottile
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.Links:pytest documentationpytest Changelogpytest API Referencesponsor pytestgetting started contributing to pytestthe book: Python Testing with pytest — The fastest way to learn pytest
Ep 8181: TDD with flit
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 Links: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
Ep 8080: From Python script to Maintainable Package
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 Links:submark repo: A Subset of MarkdownFlit documentationCoverage.py documentationtox documentation
Ep 7979: Fixing misinformation about software testing
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.Links: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
Ep 7878: I don't write tests because ...
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.Links:"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"
Ep 7777: Testing Complex Systems with Maintainable Test Suites
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. Links: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
Ep 7676: 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. Links:Don't be afraid of Test-Driven DevelopmentEveryday Superpowers
Ep 7575: Modern Testing Principles - Alan Page
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.Links: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
Ep 7474: 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: 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.Links:72: Technical Interview Fixes - April WenselPathrise
Ep 7373: PyCon 2019 Live Recording
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.
Ep 7272: Technical Interview Fixes - April Wensel
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.Links:Compassionate CodingLeave Your “Gut” Out of Hiring DecisionsIf You Can Use a Fork, You’re “Technical” — April WenselProject Include
Ep 7171: 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.Links: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!
Ep 7070: 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.Links: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
Ep 6969: Andy Hunt - The Pragmatic Programmer
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.
Ep 6868: 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.Links: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.
Ep 6767: Teaching Python in Middle School
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.Links:Teaching Python
Ep 6666: Brian is interviewed by Phil Burgess
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.Links:IT Career Energizer Podcast
Ep 6565: one assert per test
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.Links: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.
Ep 6464: Practicing Programming to increase your value
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.Links: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
Ep 6363: Python Corporate Training - Matt Harrison
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.Links: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
Ep 6262: Python Training - Reuven Lerner
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.Links: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.
Ep 61A retrospective
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.
Ep 60100 Days of Code - Julian Sequeira
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.Links:PyBites BlogPyBites Code Challenges PlatformTalkPython + PyBites 100 Days of Code in Python CoursePyBites 100 Days of Code RepoPybit.es Slack Community
Ep 59Genesynth, nox, urllib3, & PyCascades - Thea Flowers
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.Links:Genesynth part 1: idea and researchGenesynth part 2: basic communicationGenesynth part 3: proper audio amplificationnoxurllib3PyCascades 2019thea.codes
Ep 58REST APIs, testing with Docker containers and pytest
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.Links:Introducing the StreamSets Test Frameworkpytest-benchmark · PyPIStreamSets Test Framework-based tests for StreamSets Data CollectorStreamSets: Where DevOps Meets Data Integrationslack channel for Test & Code
Ep 57What is Data Science? - Vicki Boykis
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.Links: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
Ep 56Being a Guest on a Podcast - Michael Kennedy
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.
Ep 5555: When 100% test coverage just isn't enough - Mahmoud Hashemi
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.Links: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
Ep 5454: Python 1994 - Paul Everitt
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.Links:Python 1994 Panel Discussion PyCon 2017"Python 1994", PyBay2017Spam, Spam, Spam, ...
Ep 5353: Seven Databases in Seven Weeks - Luc Perkins
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.Links:Seven Databases in Seven Weeks, Second Edition: A Guide to Modern Databases and the NoSQL MovementPostgreSQLRedisNeo4j Graph DatabaseCouchDBMongoDBHBaseDynamoDB
Ep 5252: pyproject.toml : the future of Python packaging - Brett Cannon
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.Links: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
Ep 5151: Feature Testing
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.Links:Twitter engineering blog article describing Feature Testing : The testing renaissance
Ep 5050: Flaky Tests and How to Deal with Them
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.Links: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
Ep 4949: tox - Oliver Bestwalter
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.Links: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
Ep 4848: A GUI for pytest
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.Links:pythontesting.net
Ep 4747: Automation Panda - Andy Knight
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.Links:Automation Panda | A blog for software development and testingKarate REST API test frameworkBDD | Automation PandaTesting | Automation PandaThe pytest Book
Ep 4646: Testing Hard To Test Applications - Anthony Shaw
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.
Ep 4545: David Heinemeier Hansson - Software Development and Testing, TDD, and exploratory QA
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.Links: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)
Ep 4444: Mentoring - Nina Zakharenko
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.Links: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.… "
Ep 44Preparing for Technical Talks with Kelsey Hightower - bonus episode
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.
Ep 4343: Kelsey Hightower - End to End & Integration Testing
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.
Ep 4242: Using Automated Tests to Help Teach Python - Trey Hunner
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.Links:Trey HunnerPython Morsels - write better Python codeTrey's Weekly Python ChatTrey's Training business: Truthful Technologyexercism.ioPyBites Code Challenges CheckiO
Ep 4141: Testing in DevOps and Agile - Anthony Shaw
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.Links:Anthony Shaw on github.ioSupport for the new builtin breakpoint function in Python 3.7 by tonybaloney · Pull Request #3331 · pytest-dev/pytest
Ep 4040: On Podcasting - Adam Clark
EAdam 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.Links: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
Ep 3939: Thorough software testing for critical features
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. Links: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.