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

ПО ЦЕЛЯМ
Функциональное тестирование: то что делает система. Проверка на соответствие системы предъявляемым функциональным требованиям. Пример: кликабельность кнопок или ссылок, появление ожидаемого окна после отправки письма и т.д.
Нефункциональное тестирование: как работает система.
Проверка на соответствие системы
предъявляемым количественным показателям. Пример: время отклика при отправке запроса,
время загрузки страницы, нагрузка пользователей в 1200 при разрешенном установленном
1000, и т.д.
- пользовательского интерфейса (UI): то что отображается на экране монитора, телефона, планшета;
- удобства использования (Usability testing): проверка на сколько удобен функционал с точки зрения пользователя;
- инсталяционное: проверка установки/удаления/обновления программы;
- защищённости: проверка на уязвимость ПО на разного рода внешние атаки, несанкционированный доступ;
- конфигурационное: проверка влияния нагрузочных изменений на разные конфигурации оборудования;
- совместимости: проверка на взаимодействие системы с окружением: с сетевыми устройствами, с периферией(принтер, сканер), с базами данных, системным ПО (антивирус, файерволл, почта, мессенджеры);
- надежности восстановления после сбоев: проверка восстановления данных после: потери связи, внезапном прерывании при инсталяции;
- локализации: проверка на поддержку многоязыкового интерфейса, корректность перевода на поддерживаемые языки сайта, элементов интерфейса, всплывающих системных окон с сообщениями и ошибками, FAQ, и другой документации;
- производительности:
-- нагрузочное: проверка автоматизированной нагрузки количеством пользователей на систему, не превышающей допустимую;
-- стабильности: проверка автоматизированной нагрузки количеством пользователей на систему, не превышающей допустимую, в течении длительного промежутка времени;
-- стрессовое: проверка автоматизированной нагрузки количеством пользователей на систему, превышающей допустимую;
-- объемное: проверка производительности системы при изменении обрабатываемых больших объемов данных;
-- масштабируемости: проверка производительности системы при непрерывных возрастающих нагрузках(пользователей, транзакций);
ПО СТЕПЕНИ АВТОМАТИЗАЦИИ
- ручное: проверка функционала без применения средств автоматизации;
- автоматическое: проверка функционала с применением специальных средств для обеспечения автоматического прохождения тестовых сценариев;
ПО ПОЗИТИВНОСТИ СЦЕНАРИЯ
- позитивное: проверка функционала на то что он должен выполнять, с применением валидных входных данных;
- негативное: проверка функционала на то что он не должен выполнять с применением невалидных входных данныx;
ПО ЗНАНИЮ СИСТЕМЫ
- белого ящика: проверка функционала с доступом к коду и внутренней структуре приложения;
- черного ящика: проверка функционала без доступа к коду и внутренней структуре приложения;
- серого ящика: проверка функционала с частичным доступом к коду и внутренней структуре приложения;

ПО РАЗРАБОТКЕ ТЕСТОВЫХ СЦЕНАРИЕВ
- на основе требований: составление и реализация тестовых сценариев на основе документации;
- по вариантам использования (use cases): проверка функционала на основе вариантов использования;
- на основе модели: проверка функционала на основе абстрактной модели;
ПО ХРОНОЛОГИИ ВЫПОЛНЕНИЯ
- комплексное: проверка всех компонентов как единой целой системы;
- входной тест (smoke test): проверка основного функционала компонента или системы;
- основное: проверка всей системы комплекcно;
- повторное: проверка функционала после исправления, доработки, изменения;
- регрессионное: проверка уже проверенного и работоспособного функционала;
- приемочное: проверка функционала всей системы с точки зрения конечного пользователя;
ПО ФОРМАЛЬНОСТИ
- по тестам: проверка функционала на основе тестовых сценариев;
- исследовательское: проверка функционала компонента или системы на основании листа проверки;
- специализированное (свободное): проверка функционала на основании интуиции без применения тестовых сценариев и листов проверок;
ПО ИСПОЛНЕНИЮ КОДА
- статическое: проверка функционала без запуска кода;
- динамическое: проверка функционала с запуском кода;
ПО УРОВНЮ ТЕСТИРОВАНИЯ
- модульное(компонентное): проверка отдельного компонента системы с применением заглушек или без;
- интеграционное: проверка взаимодействия нескольких частей программы между собой либо отдельного компонента с системой;
- системное: проверка системы целостно;
- приемочное: проверка функционала всей системы с точки зрения конечного пользователя;
ПО ИСПОЛНИТЕЛЯМ ТЕСТИРОВАНИЯ
- альфа-тестирование: проверка работоспособности программы внутри организации разработки с привлечением небольшого количества конечных пользователей либо без привлечения;
- бета-тестирование: проверка работоспособности программы вне организации разработки с привлечением конечных пользователей для получения обратной связи;