Санитарное тестирование (sanity testing) — небольшой гайд

Определение 

Разновидность регрессионного тестирования. Санитарное, или санити-тестирование, или «тестирование согласованности» это быстрая проверка работоспособности после добавления новой функции. Санитарное тестирование это «небольшая остановка для проверки», будет ли билд работать. Цель QA-команды — валидация базовой функциональности, без подробного тестирования. Обычно такое тестирование проводится на билдах, развертывание которых нужно здесь и сейчас, например после устранения критикал-бага.

Санитарное тестирование
Санитарное тестирование

О правильном названии санити-тестирования

Данный тип тестирования (быструю проверку работоспособности) наиболее правильно называть «тестом работоспособности»; по крайней мере, такое каноничное определение дает ISTQB — главный авторитет в нашем уютном мире QA.

Однако, в русскоязычном QA-комьюнити уже много лет употребляется «санитарное тестирование»; что явно некорректно, и даже немного комично, как отмечают наши подписчики в Телеграм-канале Тестировщик от Бога; но с этим, наверное, ничего уже не поделать — термин «устоялся».

Имея в виду этот специфический тип тестирования, wannabe-тестировщики ищут в Сети именно «санитарное тестирование» (потому что у них это достаточно часто спрашивают на собеседованиях, как выяснилось). Поскольку мы в своей деятельности больше ориентируемся на поисковые запросы наших любимых пользователей-джунов, чем на мнения педантов-аккуратистов уровня миддл+, то статья о sanity testing называется так как называется («как считает правильным большинство»).

Возмущения по поводу корявой терминологии (вполне обоснованные), с подробным разбором темы, можно почитать, например, здесь; за 5 лет ничего не изменилось.

При этом надо отметить, что даже англоязычный справочник ISTQB (все еще) не дает четкого разделения между санити- и смок-тестированием (несмотря на то, что необходимость как бы назрела уже давно). А в некоторых (более старых) версиях справочник ISTQB вообще объединяет эти понятия, называя sanity- эквивалентом smoke-, и называя санити- «тестом работоспособности». ОК, значит такое определение и мы будем считать самым каноничным, по крайней мере пока; и для собеседования, чтобы «блеснуть», годится такое определение.

Но это справочники; в повседневной жизни QA в англоязычном мире эти понятия уже давно и четко разделены, они не смешиваются — из-за того что процессы уж слишком явно отличаются — об этом ниже. Везде «санитарное тестирование» называется sanity testing; это, в принципе, тоже жаргонный термин, некорректный; но определение прочно устоялось, и оттуда перешло в русский.

Предназначение

Определить, что измененные или добавленные функции работают нормально. Если санити-тест упал, QA-команда вовремя вернет код на доработку, и это экономия времени и денег для компании. Санитарное тестирование проводится после smoke-тестирования.

Иллюстративно, место и роль санитарного тестирования изображается примерно так:

Sanity-тестирование
Санитарное тестирование

Пример 

Есть проект e-commerce, в нем модули страницы входа, домашней страницы, страницы профиля, регистрации и так далее. На странице входа имеем дефект: поле пароля принимает не менее 4 цифр, а в требованиях говорится, что это поле должно содержать не менее 8 цифр. Этот дефект репортится разработчикам, они фиксят его, и отправляют тестировщикам для проверки. QA-команда проверяет, сработали ли изменения; а также проверяет, не повлияли ли эти изменения на другие функции. Таким образом, страница входа и страница профиля валидируются санитарным тестированием.

Характеристики санитарного тестирования

  1. Подвид регрессионного

Как говорилось в начале, санитарное тестирование типологически является разновидностью регрессионного, и направлено на небольшую часть приложения.

  1. Без сценариев

Обычно такое тестирование не подразумевает написания тестовых сценариев

  1. Без документации

Обычно не проводится документирование

  1. Узконаправленное и тщательное

Небольшой объем кода, отвечающий за одну функцию, тщательно исследуется

  1. Выполняется QA-инженерами

Выполняется тестировщиками, в отличие от юнит-тестирования

Преимущества

  • Быстрая идентификация дефектов ключевой функциональности
  • Поскольку не требует оглядки на документацию, делается быстро и просто
  • Экономия усилий и средств на ранних этапах цикла
  • «Дешевая» разновидность тестирования
  • Находит ошибки в зависимостях
  • Выгодно при нехватке времени

Недостатки

  • Ограниченность: сосредоточено только на небольшой части кода
  • Не позволяет покрыть все тест-кейсы в тестовом сценарии
  • Относится только к малой части функциональности
  • Не документируется
  • Не поднимается на структурный уровень дизайна

Дополнительно

Сравнение санитарного и смок-тестирования

Смок-тестирование это «быстрая проверка базовой функциональности». Типологически это подвид приемочного тестирования (тогда как санити-тестирование — регрессионного). «Дымовое» тестирование проверяет всю функциональность системы/продукта.

Санитарное тестирование проверяет отсутствие багов после билда. Часто путают смок- и санити-тестирование, но они имеют отличия, перечисленные далее. 

Отличия между санитарным и smoke- тестированием

Smoke-тестированиеСанити-тестирование
Самая базовая функциональность — работает лиБаги устранены после билда
Подвид приемочногоПодвид регрессионного
ДокументируетсяНе документируется
Выполняется разработчиками и/или тестировщикамиТестировщиками
Могут создаваться тестовые сценарииБез сценариев
Оценка стабильности и работоспособности системыОценка работоспособности измененного/исправленного модуля
Тестируется функциональность «в общем»Тестируется измененная/дефектная функция
Вручную или возможна автоматизацияВручную, без автоматизации
Когда есть новый билдПосле завершения регрессионного тестирования
Затрагивает все модулиТолько измененный модуль
Тестируется промежуточный билдТестируется стабильный билд / билд с новыми функциями
Возможна сквозная автоматизацияБез автоматизированных тест-кейсов и сценариев
End-to-end верификация системыВерификация только исправленного компонента
Билд может быть стабильным или нестабильнымБилд преимущественно стабильный
Каждый новый релиз билда проходит смок-тестированиеКогда тщательное тестирование невозможно по недостатку времени

Сравнение санитарного и регрессионного тестирования

Санитарное тестирование

Санити-тестирование представляет собой анализ (части) продукта после его модификации. Оно является подвидом регрессионного тестирования. Регрессионное тестирование касается многих областей приложения; санитарное — только некоторой части, определяя качество продукта в этой части и готовность продукта к дальнейшему тестированию.

Санитарное тестирование проверяет функцию в продукте после ее добавления/модификации, проверяется стабильный билд.

Регрессионное тестирование

Тщательная проверка всей функциональности приложения, после багфиксов, модификаций, обновления, и подобное. Цель: проверить, что модификации не ухудшили имеющуюся функциональность.

Полная проверка функциональности, выполняемая после частичной проверки санитарным тестированием. Проверятся стабильный билд.

Отличия между санити- и регрессионным

СанитарноеРегрессионное
Тестирование новой функциональности в имеющемся билдеОценка функциональности всего что затронуто после изменения/добавления кода
Подвид регрессионногоОтдельный вид тестирования
Выполняется до регрессионного и после смок-тестированияВремя выполнения зависит от особенностей приложения, доступности персонала и запаса времени
«Поверхностное» тестирование«Глубинное» тестирование
Проверяет новую функциональностьПроверяет (почти) всю функциональность
Не используются сценарии (скрипты)Предпочтительно использовать сценарии
ВручнуюВозможна автоматизация
Увеличивает стоимость продукта/бюджет проектаТоже увеличивает 
Сквозные тест-кейсы не делаютсяЧасто сквозные тест-кейсы
«Узкое» тестирование«Глубокое» тестирование
Не рутинное, часто специфическое тестирование, длящееся мало времени«Регрессы» делают даже для самых небольших модулей
Иногда бывают базовые тест-кейсыПочти всегда пишут большой набор тест-кейсов

Разница между повторным и санитарным тестированием

Повторное тестирование

Называемое также re-testing; это повторная проверка модуля после устранения дефекта; повторное выполнение тест-кейсов, упавших ранее и исправленных. Процесс идет так:

  • Дефект найден
  • Разработчики устраняют его
  • Тестировщики тестируют исправленный код, снова, почему и называется повторным

Санитарное тестирование

Проводимое при получении билда с (часто небольшими) изменениями кода/функциональности, с целью убедиться, что баги устранены, и что в «старом» коде не создалось проблем связанных с этими изменениями. Процесс такой:

  • QA-команда получает билд
  • Проверяют, что функциональность, в общем, сохранилась
  • Проводят санити-тест; если он падает, билд возвращается на доработку
  • Если санити-тест проходит, то далее продолжается «обычное» тестирование

Таблица отличий: sanity-тестирование vs повторное тестирование

Повторное (re-testing)Санитарное (sanity testing)
Проверяет, что тест-кейсы, упавшие ранее — теперь, после устранения дефектов, успешно проходятПроверяет, что сохранилась функциональность после багфикса / просто изменений в коде
Предусмотрена верификация дефектовНе предусмотрена верификация дефектов
Проводится до санитарного и регрессионногоПроводится до регрессионного и после дымового
Тест-кейсы трудно автоматизироватьТоже — все делается вручную
Завершается после устранения баговПодтверждает «общую работоспособность» перед дальнейшим тестированием
Выполняется с ранее запускавшимися тест-кейсами (повторно)Выполняется без тест-кейсов, на своем понимании особенностей системы
Приоритетнее, чем санитарноеНиже приоритет, чем у повторного
Плюсы
— Верификация найденных дефектов
— Быстрая верификация — дефектов мало, масштаб ограничен
— Повышение общего качества
— Используется существующее окружение и наборы данных на новом билде
Плюсы
— Экономится время, фокус на небольших участках кода
— Верификация, что функциональность сохраняется после небольших изменений
— Без тестовых сценариев и документации
— Поэтому быстрое
Минусы
— Для верификации дефектов нужен новый билд
— Нет автоматизации тест-кейсов
— Иногда много времени на повторное упавших тест-кейсов
— Тест-кейсы только после начала тестирования
Минусы
— Иногда сложно устранить дефекты без консультации с разработчиками, не зная структуры приложения
— Проверка только некоторых функций, если в остальных есть баги, останутся незамеченными
Не документируется

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

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

1 КОММЕНТАРИЙ

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

1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Никита
Никита
4 месяцев назад

Отличная статья.

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

В другой статье на вашем сайте, посвященной Smoke-тестированию, говориться, что оно являются подмножеством регрессионных.
https://testengineer.ru/chto-takoe-smok-testirovanie/

Не удается корректно отнести данное тестирование к определенному виду? Или где-то ошибка?

Мы в Telegram

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

? Популярное

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

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

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

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

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

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

live

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