Скрытие важной бизнес-логики или состояния системы глубоко в черном ящике затрудняет проверку правильности поведения системы. Проще провести тщательное тестирование поведения одного компонента в системе, чем всей системы. Я предпочитаю выставлять такие вещи явно через какой-то механизм, чтобы он мог быть проверен юнитом / регрессией / интеграцией / QA каким-то осмысленным образом.
Один из вариантов с кешем - открыть специальную страницу, которая дает некоторые подробности о кеше (содержимое, состояние и т. Д.). Это может помочь с отладкой в разработке и, возможно, в производстве. QA также может использовать эту страницу для создания тестовых случаев для кеша, если им сообщают подробности относительно ожидаемого поведения кеша. Использование счетчиков производительности и / или файлов журналов для явного документирования поведения кэша - еще один менее заметный, но жизнеспособный подход.
Обратите внимание, что этот подход не является заменой сквозного тестирования производительности. Это механизм для обеспечения правильной работы самого кэша. Тестирование производительности должно использоваться, чтобы определить, оказывает ли кэширование предполагаемое влияние на производительность.
Также обратите внимание, что замена компонентов системы на новые, реализующие тот же интерфейс, что и введение кеша, может быть дестабилизирующим и обманчиво сложным изменением. В примере с кешем вы вводите состояние в состояние, в котором ранее не было состояния, что может создавать ошибки, которые сложнее найти или воспроизвести. Такое изменение всегда должно сопровождаться полным регрессионным тестированием для проверки ожидаемого поведения системы.