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)