I like to see how software reacts when I step off the happy path and make a mistake. Today I found this interesting difference with an unknown (or misspelled) command line option: “–derp”:
An interesting difference! Personally, Django is reacting like I’d expect. And so for me it’s following the principle of least astonishment. Rails, on the other hand, doesn’t give any indication that it didn’t understand the –derp instruction. It simply goes ahead and creates myapp. I see it as producing a false negative (whereas Django delivered a true positive).
False negatives and false positives is a really interesting area in medical testing as well as software development. Consensus seems to be that false negatives are the more severe problem:
False negatives … are given when the test case passes, but there is in fact a bug present in the system and/or the functionality is not working as it should.
Paul C, Watching Out for False Positives and False Negatives in Software Testing
Though both are an annoyance, it’s safe to say that a false negative is more damaging than a false positive, as it creates a false sense of security.