Good Tests
The testing pyramid and different levels of tests are discussed in "Agree the language you use for tests".
As discussed in that section it is important to maintain a layered strategy with many fast running unit tests and smaller numbers of integration and system tests. The precise proportions that work best will vary from project to project but the pyramid formation will hold.
Although it is important to write tests at all these levels this section mainly concerns itself with unit tests as these are the ones we write most of and run most frequently.