Unit testing
The most basic type of tests we can create are called unit tests. As the name suggests, unit tests are designed to test a unit of work (whether that be a single method, function, or a larger work unit), and then check a single assumption about that unit of work. A good unit test will be composed of the following components:
Fully automated: A good unit test is a test that can be fully automated without human intervention.
Thorough: Thorough unit tests provide good coverage of the code block they are testing.
Independent: Good unit tests can be run in any order, and their output should have no effect or side effect on other tests that occur. Furthermore, each unit test should only test a single logical unit of code. Tests that fail should pinpoint the exact section of code that failed.
Consistent and repeatable: Unit tests should always produce the same result and should be dependent upon static data as opposed to generated or random data.
Fast: Unit tests need to execute quickly...