Методы, уровни или типы тестирования? А может даже виды и классы?

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

Мне кажется, что каждый автор хочет как-то извернуться в этом вопросе и изобретает каждый раз уйму новых групп.

Давайте все-таки поговорим о том, на чем сходится большинство стандартов и практик. Я буду ссылаться на глоссарий и программу подготовки к ISTQB CTFL, который в свою очередь использует ISO и проверенные источники.

Сохраните себе эту шпаргалку, чтобы без проблем ориентироваться в классификации! 1️⃣Методы тестирования – процедура, используемая для определения условий тестирования, проектирования сценариев тестирования и формирования тестовых данных.

Методы тестирования помогают тестировщику в тест-анализе (что тестировать) и тест-дизайне (как тестировать).

В программе выделяют методы черного ящика (без знания кода) и белого ящика (со знанием кода) + методы на основе опыта. Также в глоссарии вы можете найти определение серого ящика (как комбинация методов черного и белого), но в программе его нет.

Примеры методов черного ящика:

● эквивалентное разбиение ● анализ граничных значений ● таблица решений ● таблица переходов

Примеры методов белого ящика:

● тестирование операторов ● тестирование ветвей

Примеры методов на основе опыта:

● предположение об ошибках ● исследовательское тестирование ● тестирование на основе чек-листов

2️⃣Уровни тестирования – это группы активностей тестирования, которые организованы и управляются как единое целое. Каждый уровень тестирования – это реализация процесса тестирования ПО, находящегося на конкретном этапе разработки.

В ISTQB выделяют 5 основных уровней тестирования:

● Юнит-тестирование (модульное, компонентное) – тестирует отдельные методы и функции кода. Это делают разработчики.

● Тестирование интеграции компонентов фокусируется на тестировании интерфейсов и взаимодействии между компонентами.

● Системное тестирование фокусируется на поведении и возможностях системы или продукта целиком.

● Системное интеграционное тестирование фокусируется на тестировании интерфейсов тестируемой системы, взаимодействующих с другими системами и внешними сервисами.

● Приемочное тестирование фокусируется на проверке и демонстрации готовности системы к развертыванию, что означает удовлетворение системой пользовательских бизнес-потребностей. Обычно выполняется пользователями а не командой тестирования.

В других источниках системное интеграционное тестирование могут опускать и останавливаются на 4х уровнях: юнит, интеграционное, системное и приемочное.

3️⃣Типы тестирования – группа активностей тестирования, направленных на тестирование характеристик компонента или системы с определенной целью.

Существует две больший группы типов тестирования: функциональное и нефункциональное тестирование.

Функциональное тестирование оценивает функции, которые компонент или система должны выполнять. Функции дают ответ на вопрос «что делает система».

К этой группе чаще всего относят (в ISTQB нет конкретных примеров, так что руководствуюсь общей практике): дымное, ретест, регрессия, тестирование критического пути.

● Нефункциональное тестирование оценивает признаки компонента или системы, отличные от функциональных характеристик. Нефункциональное тестирование – это проверка того, «насколько хорошо работает система».

Стандарт ISO/IEC 25010 дает следующую классификацию нефункциональных качественных характеристик:

● Производительность ● Совместимость ● Практичность (также известную, как способность к взаимодействию) ● Надежность ● Безопасность ● Сопровождаемость ● Переносимость (также известную, как гибкость) ● Защищенность

К каждому свойству относится отдельный тип, а иногда и несколько.

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

4️⃣Что касается видов и классов, то обычно это синоним типа, но в стандартах вы не найдете такое обозначение.

подробнее на моем курсе