Se PHPUnit funziona come JUnit (per Java) o come in generale questi "tool" di test, allora non fanno tutto in automatico.
Ti mettono a disposizione un "framework" che ti permette di testare i comportamenti di una tua funzione/classe/modulo/etc; il problema è che il test lo devi comunque scrivere tu in rispetto del comportamento e dei vincoli che dovrebbe seguire la tua applicazione.
Quindi se tu scrivi male il test di conseguenza quel test non serve a niente.