Утверждения PHP (PHP assertions)?
Вообще ассерты не для тестирования или проверки переменных, они больше для избавления от проверок. Ставите ассерт там где «не хотите проверять» код и забываете про него пока не увидете сообщение об ошибке. И ставятся они не там где вы знаете что будет ошибка, а там где _возможно может_ произойти ошибка, но не факт что вообще произойдет. Ассерты можно раскидать по таким местам и просто забыть про них до сообщения об ошибке. Они так же отключаются все глобально, поэтому можно не убирать из даже после выпуска проекта, а лишь отключать на живом.
Мы в качестве утверждений используем конструкцию вида if($unforseenCondition) trigger_error('Unforseen happened'). В зависимости от непредвиденности или внештатности ситуации это могут быть разные уровни оповещений.

Ошибки на тестовых средах превращаются в исключения с помощью set_error_handler(), а на производстве — собираются с помощью NewRelic (подробнее тут).