This week i decided to write a post regarding the article, Testing on the Toilet: What Makes a Good End-to-End Test by Adam Bender.
Of course being fairly new to the software testing industry, End-to-End testing was a new concept to me, although it seemed fairly simple to understand what it would entail. This is actually true, End-to-End tests are simply that, a test that tests an entire suite of software from one end to the other, while treating much of the code in between as a black box. This is especially relevant because i am currently working on black box testing in general and understanding the real world applications of that really helps.
It is true that the concept of End-to-End testing is simple, however the actual work that goes into making and maintaining sustainable End-to-End tests is not. There are a great deal of benefits that outweigh the costs in the right situations. An End-to-End test can “provide confidence about the health of your system in a near production state(Bender 1)”. Again in the right situations this can be an amazing advantage, and deploying the system becomes less of a nightmare.
End-to-End tests are more slow and more expensive than unit or integration testing can be, it is due to this that it is used to test things that those tests would not be able to well. The examples that the article gives are “resource allocation, concurrency issues, and API compatibility(Bender 2)”.
As i myself am not an expert and am just learning of End-to-End testing i thought it would be useful to bullet the author’s main points regarding the issue.
- “For each important use case, there should be one corresponding end-to-end test”
- “allocate at least one week a quarter per test to keep your end-to-end tests stable”
- “Focus your efforts on verifying overall system behavior instead of specific implementation details”
- “Make your end-to-end test easy to debug”
- “It may be more difficult to make an end-to-end test fully hermetic
In case you were wondering, hermetic means complete and airtight(i know i was).
Here are a few other articles that i found to be interesting: