It's not feasible to write tests to verify all software application to 100% confidence. In fact for most it's not possible. Turing proved this mathematically a long time ago.
You can pose your requirements as tests, but you are basically limiting what can be included in the requirements.
How would you define the behavior of a web-browser as a series of tests? How about even just a SAX parser? Do you really think it would be easier to understand what is required of a program if all you were given were a set of tests to run?