in reply to Testing my tests (mutation testing)

"Devel::Cover can easily show if a certain function or expression was executed during the test run, but it cannot tell if there was an assertion checking the validity of the result."

It doesn't have to, that is not its job. That is the job of the test itself. You seem to be unclear on how this works: you write tests that call your interfaces and they confirm that the return value is what you expect. Code coverage shows you which branches your tests did not cause to be executed. Don't overthink things.