Пирамида Google и мнемоника SMURF

Пирамида тестов — известная всем эвристика для управления тестовыми наборами, выражающая простую идею: модульных тестов должно быть больше чем интеграционных, а интеграционных больше чем сквозных. 

Несмотря на простоту и полезность, обычная пирамида не дает тестировщику достаточно информации, которая необходима для масштабирования наборов, когда нужно учитывать множество нюансов и идти на компромиссы. Для эффективного масштабирования тестового набора нужно выходить за пределы стандартной пирамиды.

Мнемоника SMURF — простой способ запомнить 5 характеристик, которые необходимо учитывать при балансировке растущего тестового набора:

  • Скорость (Speed): Юнит-тесты намного быстрее других и могут выполняться чаще — так быстрее находятся баги. 
  • Удобство обслуживания (Maintainability): Совокупные затраты на отладку и поддержку тестов (всех типов) быстро растут. В большой системе больше кода, а это значит, что система больше подвержена изменению зависимостей и дрейфу требований, что, в свою очередь, приводит к увеличению объема работ по обслуживанию.
  • Утилизация ресурсов (Utilization): Тесты, использующие меньше ресурсов (память, диск, процессор), обходятся дешевле. Хороший тестовый набор оптимизирует использование ресурсов таким образом, чтобы оно не росло сверхлинейно с увеличением количества тестов. Юнит-тесты обычно обладают отличными характеристиками утилизации, потому что в них используются тестовые дублеры, и проверяются маленькие части системы.
  • Надежность (Reliability): Надежные тесты падают только при обнаружении реальной проблемы. Разбор нестабильных тестов в поисках проблем требует времени и ресурсов на повторное выполнение тестов. По мере роста системы и количества тестов в ней растет неопределенность (и, следовательно, нестабильность тестов), и ваш набор теряет надежность.
  • Точность (Fidelity): Точные тесты соответствуют реальным условиям работы системы (например, реальной нагрузке на БД и реальному трафику) и лучше предсказывают поведение на продакшене. Интеграционные и сквозные тесты лучше отражают реальные условия, в то время как юнит-тесты вынуждены моделировать свое окружение, что приводит к расхождению между ожиданиями от тестов и реальностью.
Диаграмма SMURF

Радарная диаграмма “Типы тестов vs Свойства тестов (то есть SMURF). Чем дальше от центра, тем лучше.

Во многих случаях отношения между осями SMURF противоречивы: улучшение по одной оси может ухудшить другие. Однако если вы видите возможность улучшить одну или несколько осей без ущерба для других, то следует это сделать.

Google Testing Blog


Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас