Search code examples
unit-testingtestingintegration-testing

What are unit testing and integration testing, and what other types of testing should I know about?


I've seen other people mention several types of testing on Stack Overflow.

The ones I can recall are unit testing and integration testing. Especially unit testing is mentioned a lot. What exactly is unit testing? What is integration testing? What other important testing techniques should I be aware of?

Programming is not my profession, but I would like it to be some day;stuff about production etc is welcomed too.


Solution

  • Off the top of my head:

    • Unit testing in the sense of "testing the smallest isolatable unit of an application"; this is typically a method or a class, depending on scale.
    • Integration testing do these things talk to each other properly?
    • Feature testing: this may cut across units, and is the focus of TDD.
    • Black-box testing: testing only the public interface with no knowledge of how the thing works.
    • Glass-box testing: testing all parts of a thing with full knowledge of how it works.
    • Regression testing: test-cases constructed to reproduce bugs, to ensure that they do not reappear later.
    • Pointless testing: testing the same basic case more than one way, or testing things so trivial that they really do not need to be tested (like auto-generated getters and setters)