# At least one of the tests may fail

I don’t understand what “at least one of the tests may fail” means, for example created a test with broken uri string that can not be parsed and the test expects Null so I have an assertNull() function. does not that mean that the test will succeed because it expects null? or should a test always expect successful parse or some other function and it fails because of wrong implementation?

You write tests that test whether the program behaves correctly.
Therefore, all tests should succeed on correct implementations.

assertNull(parse garbage);


means: The correct behavior of the tested program would be to return null.

All of your tests have to succeed on our correct implementations as you test for correct behavior (soundness).

\forall \mathrm{test}~t\in\mathrm{Testsuite}. \forall \mathrm{implementation}~i\in \mathrm{implementations}. \mathrm{correct}~i \to i \text{ passes } t

But we also want you to write tests that are comprehensive enough to identify bugs.
Therefore, you need tests that fail on your broken implementations (completeness).
To be precise: For every of our broken implementations we want you to have at least one test that finds the bug.

\forall \mathrm{implementation}~i\in \mathrm{implementations}. \mathrm{broken}~i \to \exists \mathrm{test}~t\in\mathrm{Testsuite}. i \text{ fails on } t

thanks, it’s more clear now