What are unit testing and integration testing, and what other types of testing should I know about?
integration-testing, testing, unit-testing
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)
Problem
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.