Today, I heard an interesting suggestion from a colleague during a pair-programming session. After we finished writing the first test for a particular web action and making the test pass, he suggested that we do a functional end-to-end test before writing the next test. The reasoning behind that was to make sure that our idea for the functionality is solid before we commit to writing more tests. So, not only was the first test used to test-drive code for better reliability, but also to explore different designs for the functionality. In a way, that first test served as something in between a spike and driving actual functionality.
What do you think of that? Has anybody done testing this way before?