Существует несколько признаков, по которым принято производить классификацию видов тестирования. Обычно выделяют следующие:
По знанию системы:
■ Тестирование чёрного ящика (black box)
■ Тестирование белого ящика (white box)
■ Тестирование серого ящика (grey box)
По объекту тестирования:
■ Тестирование интерфейса пользователя (UI testing)
■ Тестирование локализации (localization testing)
■ Тестирование производительности (performance testing)
■ Нагрузочное тестирование (load testing)
■ Стресс-тестирование (stress testing)
■ Тестирование стабильности (stability / endurance / soak testing)
■ Юзабилити-тестирование (usability testing)
■ Тестирование безопасности (security testing)
■ Тестирование совместимости (compatibility testing)
■ Функциональное тестирование (functional testing)
По степени автоматизации:
■ Ручное тестирование (manual testing)
■ Автоматизированное тестирование (automated testing)
■ Полуавтоматизированное тестирование (semiautomated testing)
По степени изолированности компонентов:
■ Компонентное (модульное) тестирование (component/unit testing)
■ Интеграционное тестирование (integration testing)
■ Системное тестирование (system/end-to-end testing)
По времени проведения тестирования:
■ Альфа-тестирование (alpha testing)
■ Тестирование новой функциональности (new feature testing)
■ Регрессионное тестирование (regression testing)
■ Бета-тестирование (beta testing)
Но, начнем по порядку.
Черный, белый, серый ящики.
Под черным ящиком имеется ввиду система, механизм которой достаточно сложен, неизвестен или неважен в рамках данной задачи. При этом есть устройство ввода в систему входных данных, механизм обработки входных данных и механизм вывода выходных данных.
Признаки подхода «черный ящик»
1. Тестировшик не знает, как устроен механизм обработки входных данных.
2. Идеи для тестирования идут от предполагаемых паттернов(райегп - образец) поведения пользователей. Поэтому подход «Черный ящик» также называется поведенческим.
Рассмотрим первое. С одной стороны это дает преимущество, т.к если тестирует программист, то он нередко воспринимает код как априорно непогрешимый.
С другой стороны тестирование по методу «Черного ящика» ведется вслепую, т.к. неизвестен внутренний механизм. Вследствие чего, для проверки функциональной единицы может потребоваться несколько тест- кейсов, когда можно было проверить одним.
Рассмотрим второе. Исполнение тестирования может происходить как при наличии, так и без тест-кейсов. Например, рассмотрим следующий тестовый сценарий (Последовательность действий для достижения фактического результата):
1) Открыть сайт ***
2) Ввести текст «привет»
3) Нажать искать
Здесь текст «привет» является данными к тест-кейсу. Основные источники паттернов:
1) Спецификация
2) Найдены путем эксплоринга(использования софта для понимания того, как реальный пользователь будет с ним обращаться).
3) Черный ящик
4) Интуиция
5) Совет программиста
6) Другие источники
В отличие от «Черного ящика» при подходе «Белый ящик» тестировщик основывает идеи для тестирования на знании об устройстве и логиике тестируемой части.
Тестировочное покрытие состоит из двух вещей:
1) Покрытие возможных сценариев
2) Покрытие исполнения тест-кейсов
Покрытие возможных сценариев - величина, показывающая процентное соотношение сценариев, зафиксированных в тест кейсах, ко всем теоритически возможным сценариям.
Покрытие исполнения тест-кейсов - это процентное отношение исполненных тест-кейсов к общему количеству тест-кейсов.
Симбиоз подходов «Черный ящик» и «Белый ящик» увеличивает покрытие возможных сценариев.
«Серый ящик» - подход, сочетающий в себе элементы двух предыдущих подходов
По объекту тестирования.