This lesson is in the early stages of development (Alpha version)

Testing, Documenting, and Reviewing Code: Glossary

Key Points

Test Strategy, Planning, and Running Tests
  • A test plan forms the foundation of any testing.

  • We should write tests to verify that functions generate expected output given a set of specific inputs.

  • The three main types of automated tests are unit tests, functional tests and regression tests.

  • We can use a unit testing framework like pytest to structure and simplify the writing of tests.

  • Testing program behaviour against both valid and invalid inputs is important and is known as data validation.

Development Tools
  • IDEs provide tools and features to help develop increasingly complex code.

  • Debuggers allow you to set breakpoints which pause running code so its state can be inspected.

  • A call stack is a chain of functions that have been executed prior to a certain point.

Reviewing Code
  • Code review is where at least one other person looks at parts of a codebase in order to improve its code readability, understandability, quality and maintainability.

  • The first hour of code review matters the most.

Documenting Code
  • A huge contributor to the ability to reuse any software is documentation.

  • Having only a short documentation document that covers the basics for getting the software up and running goes a long way, and can be amended and added to later.

  • Documentation helps make your code reproducible.

  • By default, software code released without a licence conveys no rights for reuse.

  • Open source licences fall into two key categories: copyleft and permissive.

Survey

Glossary

The glossary would go here, formatted as:

{:auto_ids}
key word 1
:   explanation 1

key word 2
:   explanation 2

({:auto_ids} is needed at the start so that Jekyll will automatically generate a unique ID for each item to allow other pages to hyperlink to specific glossary entries.) This renders as:

key word 1
explanation 1
key word 2
explanation 2