Я просто реализовал слой кэширования в моем веб-приложение, и теперь я'м удивлены, как ОК должен проверить его, так как кэширование прозрачно для пользователя.
Одна идея у меня-поставить лесозаготовки в методах, которые используют код, заполнения кэша и запись, когда объект извлекается из кэша и, когда он требует отдыха от базы данных, а затем тестеров можно посмотреть логи, чтобы увидеть, если, например, некий объект загружается из БД каждые 10 минут, а не каждую страницу просмотреть.
Но кто может предложить лучшие практики для такой ситуации?
Вы внедрили кэш (я предполагаю), потому что система была'т выполняет достаточно хорошо. Что - то, что является актуальным для пользователей. Вот несколько вещей, которые QA можно проверить:
Помните, пользователей (и, соответственно, ОК) Дон'т волнует, как вы решили проблему. Они заботятся только о том, что проблема решена и я'т создать новые проблемы. Это верно ли вы ввели кэширования, улучшена обработка строк, не модернизация оборудования или посыпать волшебной пыли на сервере.
Один вопрос, Является ли сам тайник действительно требование, которое должно быть испытано ОК. Кэширование повышает производительность, чтобы они могли проверить разницу в производительности, чтобы убедиться, что он соответствует некоторым требованиям.
Но хорошая идея, чтобы иметь некоторые испытания вокруг кэширования, кто отвечает за это. Мы использовали счетчики производительности. Если ваш системный кэш воспользуется этим, они являются прямыми. Если есть какой-либо способ, чтобы получить граф из самого кэша, то есть другой вариант.
Используя ваш подход тоже хороший. Если любой из них помещаются в автоматические тесты, которые проверяют результаты, то никто не имеет полистать журналы, чтобы найти ответы.
Тест производительности, как указано в Энди'ы ответ.
Я обнаружил, что самым большим препятствием для реализации кэширования (и производительности) во многих организациях фактически оказывает среда, в которой вы можете сделать хорошее тестирование производительности и тесты на различных реальных нагрузок и эксплуатационных испытаний.
Для этого вы должны создать испытания performance среды, которая, как можно ближе, и учитывая расходы, производство зеркал. Это, вероятно, не будет ваша текущая среда разработки, которая должна быть меньше и более самодостаточным, чтобы разрешить для быстрой разработки приложений. Среды разработки также, как правило, используют кэширование меньше и так Дон'т представлять продукцию для тестирования производительности.
В среда тестирования производительности приложения должны быть запущены в производство 'режим'. Вы должны больше, чем один сервер, если производство делает, пул соединений с базой данных и кэширования должен быть установлен для работы в производственной среде и т. д.
Вы'будете также хотеть рассматривать инструмент, чтобы помочь с тестированием нагрузки.
JMeter-это очень популярный, хотя я считаю его довольно недружелюбно и примитивным в использовании.
Другой путь Я'используется ve-это просто URL-адрес завиток
's с сценарий на Ruby.
Чтобы было понятно
Вам также могут пригодиться следующие ссылки:
Похоронив важных бизнес-логики или государственной системы глубоких в черный ящик делает проверка правильности поведения системы сложно. Это'ы легче исчерпывающе протестировать поведение один компонент в системе, чем всю систему. Я предпочитаю выставляя такие вещи явно через какой-то механизм, поэтому он может быть единица / регрессии / интеграции / испытание качества каким-то значимым образом.
Один вариант с кэш будет выставлять специальная страница, которая дает некоторые подробности о кэше (содержание, состояние и т. д.). Это может помочь с отладкой в развитии и потенциально в производстве. ОК также можете использовать эту страницу для создания тестовых случаев для кэша, если они дают информацию о том, что ожидаемое поведение кэша. Используя счетчики производительности и/или лог-файлы, отражающие поведение кэша-это еще одна менее заметная, но жизнеспособный подход.
Обратите внимание, что этот подход не является заменой для сквозного тестирования производительности. Это механизм, обеспечивающий кэш сам ведет себя правильно. Тестирование производительности должно использоваться, чтобы определить, если кэширование предназначено aeffect на производительность.
Также обратите внимание, что замена компонентов системы на новые, реализующих один и тот же интерфейс, такие как введение кэша может стать дестабилизирующим и обманчиво сложное изменение. На примере кэша, вы вводите состоянии, в каком был ранее без гражданства, которые могут создать ошибки, которые труднее найти и воспроизвести. Такое изменение всегда должно сопровождаться полной регрессионное тестирование для проверки ожидаемого поведения системы.
Помните, чтобы получить тестеры для перезагрузки сервера и проверяем, что данные, которые они ввели до сих пор нет. Я видел систему, которая имела много человеко-месяцев тестирования, не когда это было сделано!
Самая сложная часть испытания заключается в том, что данные обновляются, есть не любым устаревшую результаты из кэша.
Это может быть частично помогали всегда, используя данные в кэше, чтобы заполнить страницу подтверждения, которую видит пользователь после того, как они сделали изменения. Например, не использовать объект, который вы использовали для обновления базы данных, но запрос данных из кэша, то запрос из базы данных. Немного медленнее, но гораздо более вероятно, чтобы показать ошибки быстрее.
Это на самом деле имеет очень простой ответ, и это связано с уровнем кэширования. Что вы будете наблюдать, когда кэширование правильно-это отсутствие запросов на целевые запросы. Итак, все сводится к избитой фразе ОК "и ожидаемые результаты.&и"
Если реализация кэша на веб-сервере, то я ожидаю, что предметы, подлежащие кэширование будет отображаться только один раз для каждого сеанса пользователя (если реализация кэша клиента) или сразу для нескольких пользователей (в случае внедрения стиля в CDN кэш). Если вы реализуете кэширование на уровне данных общих результатов, то я бы ожидал увидеть высокий коэффициент попадания в кэш в вашем уровне кеширования наряду с отсутствием запросов в журнале Профиль для уровня данных.
и т. д...
Некоторые вещи лучше проверенные программист, возможно, тот, кто написал код, используя модульные тесты. Проверка правильности кода кэширования является одной из тех вещей. (От того, как вы зададите этот вопрос, я полагаю, что ваши люди QA обработать приложение как на "черный&весне, и проверить его через свой внешний интерфейс.)
Логика кэширования-это то, что должны быть протестированы разработчиком как ОК в основном делает испытание черного ящика.
ОК будет только заботиться о аспектах производительности или что исправить, таким образом вы реализованы, вы можете предоставить гарантии качества механизм, чтобы включить/отключить кэширование или какой бы механизм вы использовали, чтобы улучшить производительность, и тогда они могут проверить разницу в производительности. Конечно ОК могли бы также просто проверить старый релиз от производительности-улучшена также.
Когда я был тестирования решения для кэширования мы реализовали то, что мы практически проверили работоспособность. Мы сделали это решение для кэширования результатов запросов XML и после того, как кэш занимает очень малое время дать ответ. Также мы проверили его с логом сервера путем проверки записей в журнале.