Let's say you have a large distributed system in the cloud that's got dozens of developers working on it and actively adding code to. Your job is to make sure all of the quality gates are used and the system is continuously tested at and after checkin for potential malfunctions. Assume you're also working in Agile and do TDD.
I'm honestly only personally familiar with tests such as unit-testing (which I myself use for TDD) and with integration testing, which is also mandatory if your piece of code has any sort of dependencies. I unfortunately do not have a good understanding of all of the other layers of tests which the test team at my organization has historically taken ownership of. I heard of build verification tests, smoke test, validation tests, acceptance tests, smoke tests, system tests, scenario tests and so on, but I'm not familiar with the specifics, and would like to learn more about them!
More importantly, I would like to understand which of the abovementioned tests are crucial for a successful development flow in projects of different sizes, and how beneficial one test is over another. For example, in a small 5-developers project, how many of the test types should I worry about having? Are UT and integration enough? How critical would it be to have a more advanced / broad test?
Thanks!