variedthoughts
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
From Python Script to Maintainable Package – Podcast
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.
78: I don't write tests because – podcast
* 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.
Testing Complex Systems with Maintainable Test Suites – Podcast
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
Ultimate Guide to Memorable Tech Talks – Nina Zackarenko [audio]
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.
Interview with the Pragmatic Programmer, Andy Hunt
I talk about: - statistics for the show, including download counts, etc. - how many episodes are about testing, how many about non-testing topics. - Python vs language agnostic topics - solo vs guest episodes - the top 5 episodes - stuff like that
And then a retrospective like:
- what went well - what was lacking - what's next
I'd like feedback on what you think went well, was lacking, and where to take the podcast.
Test and Code Podcast #61: A Retrospective
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
Pyproject.toml: the future of Python packaging – Brett Cannon (podcast)
Test and Code 45: DHH – Software Testing, TDD, and QA – Podcast
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.
End to End and Integration Testing – Kelsey Hightower – Podcast
New ways to teach programming include automated tests from the beginning.
Trey Hunner is a former PSF director, a Python and Django team trainer, and he has been using automated tests to help people learn Python.
Using Automated Tests to Help Teach Python with Trey Hunner – Podcast
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.
What tests to write first with legacy system – podcast
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
Testing in Data Science with Katharine Jarmul (podcast)
Test and Code 32: David Hussman – Agile vs. Agility, Dude's Law, and More (podcast)
* the Testing Pyramid * the Testing Column * TDD * unit testing * balancing unit with system tests, functional tests * API testing * subcutaneous testing * customer facing tests
Test and Code 31: I'm so sick of the Testing Pyramid
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