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

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.

Solution Video

Additional Resources

Testing

Documentation

Licensing

Additional Tools