Для контроля корректности кода рекомендуется почаще использовать assert. Но есть и риск появление ошибок в самих assert. Чем больше assert'ов, тем больше в них ошибок, в том числе и не выявленных на тестировании. Это может быть проблемой для критических областей, если assert послужит причиной ошибочной аварийной остановки, которой бы не было без него - инструмента борьбы с ошибками.

Что-то можно было бы предпринять, например, игнорирование assert, внутри которого произошло обращение по нулевому указателю или выход за границы массива, но, в целом, проблема остаётся для таких assert, в которых нет очевидной ошибки, но условие составлено неправильно.

Какие есть соображения по этому поводу? Часто ли вы сталкиваетесь с ошибочными assert'ами? Проводил ли кто сопоставление пользы и вреда assert'ов?