# Tests
Quote
Human mistake is not a bug, it is a feature, probably... ¯\_(ツ)_/¯
# Buzzwords
Unit Testing Integration Testing Testing Pyramid Functional Requirements Non-Functional Requirements TDD# Test Driven Development
If you're doing something more serious than a pet-project, you should write tests. Tests are the way for programmers to underwrite their work
Check out this list (opens new window) of the most expensive bugs in history to see what that "teeny-tiny bugsy" can lead to
Uncle Bob proposes three rules of TDD:
- Write production code only to pass a failing unit test
- Write no more of a unit test than sufficient to fail (compilation failures are failures)
- Write no more production code than necessary to pass the one failing unit test
They may seem like overkill, but by following the rules you will always be at most within 5 minutes from fully operational software and will never learn how to use a debugger. Actually, "Great debugging skills" should never appear in your CV