The Test Pyramid

The diagram and link are from Martin Fowler's article on "The Test Pyramid", a concept developed by Mike Cohn, described in his book Succeeding with Agile.

I've summarized the article to the below excerpts:

"...the pyramid argues that you should do much more automated testing through unit tests than you should through traditional GUI based testing."

"The pyramid also argues for an intermediate layer of tests that act through a service layer of an application, what I refer to as SubcutaneousTests. These can provide many of the advantages of end-to-end tests but avoid many of the complexities of dealing with UI frameworks"

"In particular I always argue that high-level tests are there as a second line of test defense. If you get a failure in a high level test, not just do you have a bug in your functional code, you also have a missing unit test. Thus whenever you fix a failing end-to-end test, you should be adding unit tests too."