On Mon, 14 Jul 2008 12:39:48 am Antoine Pitrou wrote:
Let's split hairs a little...
Steve Holden <steve <at> holdenweb.com> writes:
"Fail" isn't a negative. As Guido said, it's a description of the test behavior under particular circumstances.
In most circumstances, "fail" is a negative word defined as the contrary of something else (that is, as the "failure to pass/succeed/perform/achieve/..."), while the reverse is not true (few people would define "success" or "passing a test" as the negative of "failure", except in desperate circumstances).
"Few people"? Do you have studies to support your claim, or are you just projecting your own opinion as if it were an objective fact?
I often consider "success" as the negative of failure: my code didn't fail. The bridge didn't fall down. The invasion didn't get bogged down in a long and pointless guerrilla war. The medicine didn't have massive side-effects. These are all successes.
assert_bridge_not_collapsed() assert_no_guerrilla_war() assert_if_no_side-effects()
fail_if_bridge_collapsed() fail_if_guerrilla_war() fail_if_side_effects()
Speaking for myself, the last three are far more natural to me.
I'll also point out that in science, success is often considered the opposite of failure. You design your experiments to disprove the theory, to fail, and if they don't fail, the theory is considered successful. A theory is considered "correct" when it has failed to fail. Some philosophers of science, like the late Karl Popper, consider this falsification to be the defining characteristic of science.
In other words, if you express a requirement, you intent to say how the implementation under test is supposed to behave for it to be considered successful, not the conditions under which its behaviour constitutes a failure.
Please don't tell me what my intent is. Unless you are a mind-reader, you have no way of telling what my intent is.
When I write tests, my intent is often to specify the conditions that constitute a failure. I don't want to negate it to specify a success just to satisfy you.