Виды тестирования

Введение

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

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

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

Процесс тестирования включает в себя следующие этапы:

  1. Планирование тестирования
  2. Анализ требований
  3. Дизайн тестов (разработка тест-кейсов и тест-сценариев)
  4. Подготовка к тестированию (настройка тестового окружения и тестовых данных)
  5. Выполнение тестов
  6. Запись и анализ результатов тестирования
  7. Отчетность и закрытие дефектов
  8. Регрессионное тестирование после исправления дефектов

Вид тестирования определяется в зависимости от этапа разработки, характера проверяемого объекта, и задач тестирования.

Категории видов тестирования

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

По запуску кода на исполнение:

a) Статическое тестирование:

  • Тестирование требований
  • Code review

b) Динамическое тестирование:

  • Модульное тестирование
  • Интеграционное тестирование
  • Приемочное тестирование

По доступу к коду и архитектуре приложения:

a) Метод белого ящика:

  • Юнит-тестирование

b) Метод черного ящика:

  • Тестирование через интерфейс пользователя

c) Метод серого ящика:

  • Частичный доступ к структуре приложения

По степени автоматизации:

a) Ручное тестирование

b) Автоматизированное тестирование

По уровню детализации:

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

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

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

По степени важности тестируемых функций:

a) Smoke тестирование

b) Тестирование критического пути

c) Расширенное тестирование

По принципам работы с приложением:

a) Позитивное тестирование

b) Негативное тестирование

По цели тестирования:

a) Функциональные виды тестирования:

  • Функциональное тестирование
  • Тестирование безопасности
  • Тестирование взаимодействия

b) Нефункциональные виды тестирования:

  • Нагрузочное тестирование
  • Стресс-тестирование
  • Тестирование стабильности и надежности
  • Объемное тестирование
  • Инсталляционное тестирование
  • Юзабилити-тестирование
  • Тестирование на отказ и восстановление
  • Конфигурационное тестирование

c) Связанные с изменениями в коде:

  • Регрессионное тестирование
  • Тестирование изменений

Нагрузочное тестирование vs тестирование производительности

Нагрузочное тестирование направлено на определение отказа системы при определенном уровне нагрузки. Целью является определение пределов производительности системы и устойчивости при увеличении нагрузки.

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