[TIP] Test categories and terminology (was: Declarative style acceptance tests)
Ben Finney
ben+python at benfinney.id.au
Mon Jan 6 17:47:05 PST 2014
Paul Moore <p.f.moore at gmail.com> writes:
> It may be that the reason is that what you're referring to as
> acceptance tests is not what I'm trying to create (see below).
The different levels have different purposes, and are pretty much
exclusive and complementary:
* Unit tests are for isolating smallest-unit pieces to verify they
reliably behave how the programmers need them to behave.
* Integration tests are for testing that larger parts of the system
interact correctly under various conditions.
* Acceptance tests are for testing that the *whole* system does what is
promised. (These are sometimes referred to as “functional tests”, but
that is vague enough to apply to any level, so I prefer the focus on
acceptance by the customer.)
There are also different *aspects* of tests: behaviour tests,
documentation tests, performance tests, stress tests, fuzz tests, etc.
Those can be applied at various levels and are not exclusive.
> Is there a good reference for the differences between unit,
> functional, integration and acceptance tests? (And any other similar
> terms I might not have thought of.)
Here is a good Stack Overflow answer on the different levels of tests,
and what names are usually used to refer to them
<URL:http://stackoverflow.com/a/4904533/70157>.
--
\ “Simplicity and elegance are unpopular because they require |
`\ hard work and discipline to achieve and education to be |
_o__) appreciated.” —Edsger W. Dijkstra |
Ben Finney
More information about the testing-in-python
mailing list