Module 4: Software Testing, Documentation, and Licensing
Module Overview
You've written your code using OOP; it runs and works, it's in a package, and you can even run it in a reproducible container. You're done, right? Nope!
To effectively share your code in a way that will be lastingly useful, you also need to test and document. These are not just "overhead" tasks - they are a core part of software engineering, and code that lacks these properties is essentially impossible to maintain or build on in the long term.
Last but not least, you need to choose an appropriate license for your code and make sure you understand the licenses of your dependencies and the ecosystem in general. You don't need a law degree, but there are significant differences between licenses you should understand, even ones that all count as "open source."
Learning Objectives
- Understand the purpose of software testing, and be able to write basic unit tests
- Read and write quality comments and READMEs
- Recognize major open-source licenses and their significance for personal and professional use
Guided Project
In this guided project, we'll learn how to write effective tests, documentation, and choose appropriate licenses for our code. Open guided-project.md in the GitHub repository below to follow along with the guided project.
Module Assignment
For this assignment, you'll implement software testing, documentation, and licensing practices to create professional-quality code that follows industry standards.