Блог седого тестировщика

говориМ о тестировании
простым языком

Основы тестирования. Виды тестирования по критерию уровня

Время на прочтение: 5 мин.
Существует множество видов тестирования. И в них иногда очень легко заблудиться. Поэтому с этой статьи мы с вами начинаем разбираться в видах тестирования.

Что за уровни тестирования? Что тестируется на каждом из них? Какие у них цели? Разберем в статье.

Чтобы было проще разбираться во всех терминах, давайте упростим изучение и разобьем виды тестирования на две составляющие:
1. Уровни тестирования
2. Типы тестирования

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

Схематичное разделение уровней и типов тестирования
Схематичное разделение уровней и типов тестирования

В первую очередь рассмотрим уровни тестирования. Выделяют 4 основных уровня тестирования:
1. Компонентное/модульное тестирование (Component/Unit Testing).
2. Интеграционное тестирование (Integration Testing).
3. Системное тестирование (System Testing).
4. Приемочное тестирование (Acceptance Testing).

Каждый уровень тестирования направлен на определенную часть программы и выполняет свои цели.

Компонентное/модульное тестирование

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

Как видно из названия, модульное тестирование направлено на тестирование отдельных модулей и компонентов программы, которые изолированы от других модулей и компонентов. Поэтому его стоит совмещать с другими видами тестирования, сам по себе он малоэффективен.

Модульное тестирование
Модульное тестирование

Для этого уровня тестирования характерно несколько целей:
1. Проверка компонента на соответствие требованиям,
2. Обнаружение ошибок в компоненте,
3. Предотвращение пропуска ошибок на более высокие уровни тестирования.

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

Интеграционное тестирование

Интеграционное тестирование необходимо для того ,чтобы тестировать взаимосвязь между чем-либо.

В общем случае различают два вида интеграционного тестирования:

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

Компонентное интеграционное тестирование
Компонентное интеграционное тестирование

— Системноеинтеграционное тестирование. Если с предыдущим уровнем тестирования все понятно, то с системным интеграционным тестирование все несколько сложнее. Этот уровень необходим для тестирования систем друг с другом.

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

Системное интеграционное тестирование
Системное интеграционное тестирование

Для этого уровня тестирования также характерно несколько целей:
1. Проверка интерфейсов на соответствие требованиям.
2. Обнаружение ошибок в интерфейсах.
3. Предотвращение пропуска ошибок на более высокие уровни тестирования.

С помощью интеграционного тестирования мы снижаем риски и укрепляем свою уверенность в качестве продукта.

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

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

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

Для этого уровня тестирования также характерно несколькоцелей:
1. Проверка системы на соответствие требованиям.
2. Обнаружение ошибок в системе.
3. Предотвращение пропуска ошибок на более высокие уровни тестирования.

С помощью системного тестирования мы снижаем риски и укрепляем свою уверенность в качестве продукта.

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

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

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

Этот уровень тестирования используется для подтверждения готовности продукта и проводится преимущественно в самом конце цикла разработки программы.

У приемочного тестирования есть также несколько целей:
1. Показать, что программа завершена и готова к использованию так, как от нее ожидалось.
2. Проверить, что работа программы соответствует установленному ТЗ или требованиям.

Также, на этом уровне тестирования мы показываем уверенность в качестве системы.

По версии ISTQB существует несколько форм приемочного тестирования:
1. Пользовательское приемочное тестирование.
2. Эксплуатационное приемочное тестирование.
3. Контрактное и нормативное приемочное тестирование.
4. Альфа- и Бета-тестирование.

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

С другой стороны стоит эксплуатационное приемочное тестирование. Его отличие заключается в том, что мы проводим тестирование не с позиции пользователей, а с позиции тех, кто будет поддерживать работу программы. Наша задача — убедиться в работоспособности таких аспектов, как:
1. Возможность резервного копирования и восстановления данных.
2. Установка, удаление и обновление программы.
3. Восстановление после полного падения системы.
4. Управление пользователями.
5. Возможность сопровождения (обслуживания).
6. Возможность загрузки и миграции данных.
7. Отсутствия уязвимостей.
8. Хорошая производительность.

Если программа разрабатывается у сторонней компании, то иногда заключается контракт, в котором оговорены условия приемки. Проверка на соответствие таким критериям проводится при контрактном приемочном тестировании.

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

***

Для наглядности все уровни тестирования можно представить следующим образом:

Уровни тестирования
Уровни тестирования

В реальной жизни рисунок может быть и другой формы, например, прямоугольник или перевернутая пирамида.

Share on vk
Vkontakte
Share on facebook
Facebook
Share on linkedin
LinkedIn
Share on twitter
Twitter

Автор статьи:

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Ближайшие события

Вам также может понравится