Методы, уровни или типы тестирования? А может даже виды и классы?
Классификация тестирования, наверное, один из самых обсуждаемых и вызывающих сложности вопросов как у новичков, так и у экспертов в тестировании.
Мне кажется, что каждый автор хочет как-то извернуться в этом вопросе и изобретает каждый раз уйму новых групп.
Давайте все-таки поговорим о том, на чем сходится большинство стандартов и практик. Я буду ссылаться на глоссарий и программу подготовки к ISTQB CTFL, который в свою очередь использует ISO и проверенные источники.
Сохраните себе эту шпаргалку, чтобы без проблем ориентироваться в классификации! 1️⃣Методы тестирования – процедура, используемая для определения условий тестирования, проектирования сценариев тестирования и формирования тестовых данных.
Методы тестирования помогают тестировщику в тест-анализе (что тестировать) и тест-дизайне (как тестировать).
В программе выделяют методы черного ящика (без знания кода) и белого ящика (со знанием кода) + методы на основе опыта. Также в глоссарии вы можете найти определение серого ящика (как комбинация методов черного и белого), но в программе его нет.
Примеры методов черного ящика:
● эквивалентное разбиение ● анализ граничных значений ● таблица решений ● таблица переходов
Примеры методов белого ящика:
● тестирование операторов ● тестирование ветвей
Примеры методов на основе опыта:
● предположение об ошибках ● исследовательское тестирование ● тестирование на основе чек-листов
2️⃣Уровни тестирования – это группы активностей тестирования, которые организованы и управляются как единое целое. Каждый уровень тестирования – это реализация процесса тестирования ПО, находящегося на конкретном этапе разработки.
В ISTQB выделяют 5 основных уровней тестирования:
● Юнит-тестирование (модульное, компонентное) – тестирует отдельные методы и функции кода. Это делают разработчики.
● Тестирование интеграции компонентов фокусируется на тестировании интерфейсов и взаимодействии между компонентами.
● Системное тестирование фокусируется на поведении и возможностях системы или продукта целиком.
● Системное интеграционное тестирование фокусируется на тестировании интерфейсов тестируемой системы, взаимодействующих с другими системами и внешними сервисами.
● Приемочное тестирование фокусируется на проверке и демонстрации готовности системы к развертыванию, что означает удовлетворение системой пользовательских бизнес-потребностей. Обычно выполняется пользователями а не командой тестирования.
В других источниках системное интеграционное тестирование могут опускать и останавливаются на 4х уровнях: юнит, интеграционное, системное и приемочное.
3️⃣Типы тестирования – группа активностей тестирования, направленных на тестирование характеристик компонента или системы с определенной целью.
Существует две больший группы типов тестирования: функциональное и нефункциональное тестирование.
● Функциональное тестирование оценивает функции, которые компонент или система должны выполнять. Функции дают ответ на вопрос «что делает система».
К этой группе чаще всего относят (в ISTQB нет конкретных примеров, так что руководствуюсь общей практике): дымное, ретест, регрессия, тестирование критического пути.
● Нефункциональное тестирование оценивает признаки компонента или системы, отличные от функциональных характеристик. Нефункциональное тестирование – это проверка того, «насколько хорошо работает система».
Стандарт ISO/IEC 25010 дает следующую классификацию нефункциональных качественных характеристик:
● Производительность ● Совместимость ● Практичность (также известную, как способность к взаимодействию) ● Надежность ● Безопасность ● Сопровождаемость ● Переносимость (также известную, как гибкость) ● Защищенность
К каждому свойству относится отдельный тип, а иногда и несколько.
На самом деле типов гораздо больше, но в этом посте сложно учесть все. Он больше про то, чтобы показать вам различие и дать нужный минимум для понимания.
4️⃣Что касается видов и классов, то обычно это синоним типа, но в стандартах вы не найдете такое обозначение.