The world of "software testing" is quite a confusing one and it takes several years to understand what's going on and how to do things "right". In no particular order:
- Developers use different words for different types of tests, but also for different types of test doubles.
- Developers are looking to achieve widely varying goals by writing tests.
- Developers have divergent views on the cost of writing and maintaining a test suite.
- Developers don't agree on when to test software (before, during, after writing the code).