View in context in the libbitcoin Slack #general mirror.
We use these terms (sort of informally): Unit Test - smallest unit possible/practical (e.g. lowest level method/function). Component Test - aggregate of units (e.g. class or aggregating function/method). Functional Test - system function (e.g. endpoint communication over a socket, public API). Acceptance Test - performed over the compiled executable (e.g. customer acceptance). We target full Unit Test coverage and Component and/or Functional as necessary to ensure expected aggregate behavior. No external dependencies (e.g. Python or other tools), just Boost Test in our pattern. Can be data-driven (which is when we allow loops in a test). Acceptance is outside of the build (against the executable or compiled lib).(edited)