The Test Automation Pyramid is an analogy that is often referred when discussing test automation:
I believe the origin of this analogy is referred to Mike Cohn. At least he discussed it in the agile context in his post The Forgotten Layer of the Test Automation Pyramid.
If you google for "testing pyramid" you find many derivations of the original pyramid picture.
While preparing for our BDD presentations at the NDC, Gaspar and I were discussing the pyramid once again. And we also came to the conclusion that we want to redraw it:
We found that we want to decouple test automation from architectural layering.
On the one hand we found that the tip of the pyramid is not always UI testing. Of course this depends on your definition of UI. But in a lot of systems I have seen interactive testing that is not really going through a UI (e.g. checking the print-layout of a report, checking if files are delivered on a share ...)
On the other hand we feel that with modern approaches (and tooling) automated UI testing can also be done efficiently in the middle layer of the pyramid to perform functional tests. The Rails/Capybara/Cucumber stack is a good example for this.
The next question is, if the functional slice of the pyramid should once again divided in different sub-slices. On the lower level there are automated Scenarios that usually fit to one feature of the system.
The ThoughTworks technology Radar from January 2011 mentions Journeys as a more holistic approach that describe and verify coherent functionality overarching individual scenarios. This will be an interesting concept to explore ...
Of course we were not the first to discuss this, there are other posts about this.