Статическое - без запуска кода, тестирование требований, code review
Динамическое - проводится при помощи запуска продукта, например юнит тестирование
По знанию внутренностей системы:
Черный ящик - пользовательское тестирование, когда тестировщик не знает внутренний код
Белый ящик - используется тестировщиком, который знает програмный код
Серый ящик - это подход, сочетающий элементы черного и белого ящика. Тестировщик имеет частичный доступ к данным, допустим имеет доступ к базе данных, и может создать тестового пользователя или тестовый платеж
По объекту (цели) тестирования:
Функциональное тестирование - проверяет, правильно ли выполняет ПО функции, описанные в требованиях, а также как выполняется взаимодействие с другими системами. К этому виду тестирования относятся модульное, интеграционное и системное тестирование:
Тестирование безопасности - это множество вещей, суть которых заключается в том, чтобы усложнить условия для кражи данных, денег, информации
Тестирование взаимодействия - это проверка взаимодействия ПО с различными внешними компонентами и системами. Например, можно ли использовать сервис авторизации «Вконтакте» для регистрации на сторонних сайтах
Нефункциональное тестирование - описывает тесты, необходимые для определения характеристик программного обеспечения, которые могут быть измерены различными величинами. В целом это тестирование того, как система работает:
Нагрузочное тестирование - как быстро работает сайт под нагрузкой
Стресс-тестирование - тестирование, которое позволяет проверить, насколько приложение и система в целом работоспособны в условиях стресса. Оценивается и способность к регенерации, то есть возвращению к нормальному состоянию после стресса (повышения интенсивности выполнения операций до очень высоких значений)
Тестирование стабильности и надежности - проверка работоспособности приложения при длительном (многочасовом) тестировании со средним уровнем нагрузки
Юзабилити-тестирование - оценка ПО с точки зрения удобства использования пользователями
Связанное с изменениями в коде - после внесения изменений (исправления бага/дефекта) программное обеспечение должно быть протестировано заново для подтверждения, что проблема действительно решена. Например фиксится 1 баг, и нужно проверить что фикс этого бага не сломал всю остальную систему:
Дымовое тестирование - проверка основного функционала, чтобы убедиться, что дальнейшее тестирование возможно(регистрация и вход на сайт)
Регрессионное тестирование - это вид тестирования, направленный на проверку изменений, сделанных в приложении или окружающей среде (починка дефекта, слияние кода, миграция на другую операционную систему, базу данных, веб-сервер или сервер
По степети автоматизации:
Ручное тестирование - это исполнение тест-кейсов без помощи каких-либо программ, автоматизирующих вашу работу
Автоматизированное тестирование - используются программные средства для выполнения тестов и проверки результатов. Применение автоматизированных тестов позволяет сократить время тестирования и упростить сам процесс. Однако не стоит думать, что автоматизация - это просто, и все тесты нужно сделать автоматизированными
По степени важности тестируемых функций:
Дымовое тестирование - это минимальный набор тестов на явные ошибки. Его успешное прохождение говорит о том, что ПО можно тестировать более глубоко и основательно. Если ПО не прошло smoke-тестирование - то проверять дальше нет смысла
Тестирование критического пути - это проверка функциональности, используемой пользователями повседневно, наиболее часто используемых функций ПО
Расширенное тестирование - направлено на исследование всей заявленной в требованиях функциональности - даже той, которая низко проранжирована по степени важности. При этом здесь также учитывается, какая функциональность является более важной, а какая - менее важной
По критерию позитивности сценариев:
При позитивном тестировании - проверяются функции ПО строго по требованиям и инструкциям, только с допустимыми действиями и корректными данными
Негативное тестирование - это проверка поведения ПО при вводе некорректных данных. Рассматривается то, что не предусмотрено требованиями или типом данных