| Unit Test |
Also known as "white-box" testing (distinguishing known internals from unknown, "black box" internals), a test of the smallest, atomic, testable fragment of a system. Excludes use of external interfaces. |
| Module Test |
Also known as "black box" test, reflecting the unknown - hence "black" - implementation of the DUT's internals, test a unified collection of units with a common purpose (e.g. an executable process). Excludes use of external interfaces |
| Integration Test |
Tests an aggregate of modules, including external interfaces, e.g. network operations, database access, IPC and file os transactions. |
| Acceptance Test |
|
| Smoke Test |
A brief, superficial test to ensure DUT is in basic working order and therefore in a position to undergo further, more detailed testing. Akin to Hardware bringup testing, where it is pointless running e.g. LCD tests before ensuring the microprocessor's oscillator and system voltage regulators are functioning correctly. |
| Load Test |
Subject the DUT |
| Stress Test |
A Load Test that pushes the DUT to the point of failure. This gives insight to the product's limit of operation, which helps to indicate how likely it is to withstand nominal, maximum etc. loading. |
| unittest |
Python's de facto testing framework. |
| Test Case |
The smallest test scenario |
| Test Harness |
|
| Test Fixture |
|
| Test Suite |
A collection of tests with a common goal - e.g. regression_test_suite may comprise a collection of just those tests derived as a result of bug discoveries, corner_case_test_suite may comprise just those tests that exercise the limits of valid input stimuli |
| Test Driven Development (TDD) |
A philosophy of project development that places testing at the core of development. The first step following requirements definition is to write a corresponding test, that is before code to address the requirement is written. Being a short cycle of defining a requirement, deriving a test, designing the solution of the smallest, atomic piece of the system, TDD is a core aspect of Agile development |
| Behaviour Driven Development |
|
| Sequence Diagram |
A design tool showing timelines for associated processes, objects and/or threads, showing message transactions between them and their relative timing. |
| Use Case |
|
| System Requirements Specification |
|
| Acceptance Test Specification |
Definition of tests used as a milestone and often forming part of the contract to verify that the customer's requirements have been met. |
| Traceability Matrix |
A single repository of many-to-many relationships defined between requirements and tests, thereby showing clearly that a requirement has at least one test, and specifying which. |