Dependencies between tests can be specified. Tests that depend on other tests can be useful. Perhaps you know that if one particular test fails, there's no reason to run any other tests in a particular group. However, this should be explicitly specified to the test suite, so that it will skip dependent tests. Otherwise, many child tests will appear to fail due to one failure in a parent test.
Tests cover specific functionality without covering more than necessary.
Narrowly defined tests help to focus on specific failures and avoid the 500 failure scenario. The downside is that overly narrow tests generally miss failures that occur on a system level. For that reason, specify a combination of narrow and broader tests. Tests can be executed on a similar product or a new version of the product without major modification. Consider that the test suite will need to evolve as the software that it tests evolves.