Я думаю, что есть три способа справиться с этим, если таковые имеются, я мог бы предложить полный набор интеграционных тестов для этих различных кусков кода, используя внедрение зависимостей или фабричные объекты для создания неработающих действий во время этих интеграций.
Во-вторых, запуск приложения со случайным уничтожением -9 и отключение сетевых интерфейсов может быть хорошим способом проверки этих вещей.
Я бы также предложил проверить сбой файловой системы. То, как вы это сделаете, зависит от вашей ОС, от Solaris или FreeBSD. Я бы создал файловую систему zfs в файле, а затем запустил файл во время работы приложения.
Если вы используете код базы данных, я бы посоветовал также проверить сбой базы данных.
Другой альтернативой внедрению зависимостей и, вероятно, решением, которое я бы использовал, являются перехватчики, вы можете включить перехватчики краш-тестов в вашем коде, они будут знать состояние приложения и вводить перечисленные выше сбои в нужное время, или любые другие, которые вы можете захотеть создать. Это не потребует изменений в вашем существующем коде, просто некоторый дополнительный код, чтобы обернуть его.