Interesting post, I assume you'd only use this approach for a legacy application that doesn't have any tests? Or do you think it has a wider use case?
By and large, yes. It's never the best solution and it's no substitute for proper tests. The only other scenario I can think of is one of those urgent cases we all get where functionality needs to be added at short notice and refactored later - it could be handy to make sure that the refactored version produces the same result.
I've actually pulled it out into a package if you want to play with the concept- it's at packagist.org/packages/matthewbdal...
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.