Виды тестирования
Виды тестирования: функциональное, нефункциональное, чёрный и белый ящик
Видов тестирования десятки, и их делят по разным признакам. Главное деление идёт по цели: функциональное тестирование проверяет, что система делает, а нефункциональное проверяет, как она это делает, то есть скорость, удобство, безопасность, совместимость и надёжность. По доступу к коду различают методы чёрного ящика, когда код не виден и проверки идут через интерфейс, белого, когда тестировщик опирается на код и архитектуру, и серого, когда устройство системы известно частично.
- Что и как
- функциональное проверяет, что делает система, нефункциональное – как
- 3 ящика
- чёрный, серый и белый различаются доступом к коду
- Бесплатно
- урок с заданиями в моём базовом курсе
Как устроена классификация
Единого списка видов тестирования нет. Их группируют по признакам, и в разных источниках группы отличаются. То, что входит в урок, я называю верхушкой айсберга: на практике тестировщик работает с небольшим набором видов, но различать основные группы должен уметь.
По программе ISTQB тип тестирования – это группа активностей тестирования, направленных на проверку определённых характеристик компонента или системы с конкретной целью. Чаще всего тестирование делят по таким признакам.
По цели
Функциональное и нефункциональное. Это главное деление, и о нём следующие два раздела.
По доступу к коду
Методы чёрного, серого и белого ящика.
По степени автоматизации
Ручное и автоматизированное. Автоматизируют прежде всего регрессию и смоук, потому что их повторяют на каждой сборке. Ручное тестирование автоматизация не заменит: не всё можно проверить скриптами, и в гибридных командах ручные тестировщики пишут сценарии, а автоматизаторы превращают их в код.
По запуску кода
Статическое тестирование проходит без запуска программы: проверяют требования, макеты, документацию, читают код. Динамическое запускает программу и смотрит, как она себя ведёт.
По степени формализации
По тест-кейсам, исследовательское и свободное (ad hoc). Исследовательское держится на плане без готовой документации, и каждый следующий тест выбирают по результату предыдущего. Свободное обходится вовсе без плана, к нему относят и monkey testing.
По позитивности
Позитивные тесты проверяют штатный сценарий, негативные проверяют реакцию на неверные данные.
Связанное с изменениями
Смоук, ретест и регрессия, которые проводят на каждой новой сборке.
Одна проверка по нескольким признакам
Признаки друг друга не исключают. Тестировщик мобильного банка вручную вводит в перевод сумму больше остатка на счёте и проверяет текст ошибки. Эта проверка функциональная, ручная, динамическая, негативная и идёт методом чёрного ящика, а если её повторяют на каждой сборке, она ещё и часть регрессии.
Функциональное и нефункциональное тестирование
Функциональное тестирование проверяет, что система делает, и сверяет её с функциональными требованиями. Его задача – подтвердить, что в продукте есть всё, что требует заказчик. Пример из урока: в приложении можно купить товар, оформить доставку, создать профиль, написать другу, и каждая такая функция проверяется.
Нефункциональное тестирование проверяет, как система работает, и я называю его обёрткой функций. Зарегистрироваться можно, а дальше важно, как выглядит кнопка входа, как быстро проходит регистрация, безопасно ли работать с системой, открывается ли она в разных браузерах и удобна ли людям с инвалидностью.
Оба типа проводят на всех уровнях, от компонентного до приёмочного. Программа ISTQB отдельно предупреждает, что нефункциональное тестирование напрасно откладывают на конец: нефункциональный дефект, найденный поздно, может поставить под угрозу весь проект. В версии программы 2018 года типов четыре: функциональное, нефункциональное, тестирование методом белого ящика и тестирование, связанное с изменениями. В версии 2023 года к типам отнесены функциональное, нефункциональное, методы чёрного и белого ящика, а ретест и регрессия описаны отдельно.
Что относится к нефункциональному тестированию
Список характеристик я беру из ГОСТ Р ИСО/МЭК 25010, русского перевода международного стандарта качества программ. Тот же стандарт называет и программа ISTQB. Первая характеристика, функциональная пригодность, относится к функциональному тестированию, а остальные семь к нефункциональному.
Локализации, интернационализации и доступности в этом списке нет, хотя их тоже относят к нефункциональному тестированию. Туда же я добавляю проверку графического интерфейса (GUI testing): стоят ли кнопки на своих местах по макету дизайнера и выдержано ли оформление в одном стиле.
О доступности в уроке есть важное уточнение: ограничения бывают не только из-за здоровья. Водитель смотрит на дорогу и не видит экран телефона, мама держит ребёнка и пользуется смартфоном одной рукой, и продукт должен учитывать и такие ситуации.
Уровень производительности
Как быстро работает система и как держит нагрузку. Сюда входят нагрузочное тестирование (ожидаемая нагрузка, например тысяча пользователей на сайте), стрессовое (нагрузка выше ожидаемой), тестирование стабильности (долгая работа) и объёмное (большие объёмы данных). Нагрузку создают инструментами вроде JMeter, и производительностью часто занимаются отдельные специалисты.
Совместимость
Как система работает на разных платформах и в разных браузерах. Сюда относят кроссплатформенное тестирование, например на Android и iOS разных версий, и кроссбраузерное в Chrome, Firefox или Opera.
Удобство использования
Юзабилити: понятна ли навигация, хорошо ли читаются цвета и тексты, быстро ли новичок разберётся в продукте. Неудобным продуктом пользователь пользоваться не станет и уйдёт к конкуренту. Рядом стоит тестирование доступности (accessibility) для людей с ограниченными возможностями.
Надёжность
Как система ведёт себя в непредвиденных ситуациях. Тестирование на отказ и восстановление (failover and recovery testing) проверяет, как она поднимается после ошибок и сбоев. В приложении доставки, например, во время оплаты включают режим полёта и через минуту выключают. Заказ не должен задвоиться, деньги не должны списаться дважды, а приложение должно показать, чем закончилась оплата.
Защищённость
Безопасность системы и данных пользователей: насколько легко постороннему получить доступ к системе или к чужим данным. Это отдельное направление со своими специалистами.
Сопровождаемость
Насколько легко систему изменять и поддерживать.
Переносимость
Насколько легко перенести приложение в другое окружение. Сюда относится тестирование установки, где проверяют установку, настройку, обновление и удаление приложения.
Локализация и интернационализация
Разницу между ними часто спрашивают на собеседовании. Тестирование локализации (L10n) проверяет, насколько приложение адаптировано к конкретной локали, то есть языку и культуре рынка: верен ли перевод, правильны ли валюта, единицы измерения, формат даты и времени, цвета и символика, соблюдены ли местные законы. Пример – китайское приложение для китайского рынка, которое проверяют на перевод, валюту и нормативы Китая.
Тестирование интернационализации (I18n) проверяет готовность к адаптации под новые локали, даже если выходить на эти рынки пока не собираются. Приложение должно поддерживать кодировку Unicode, письмо справа налево, как в арабском, и вертикальный текст, как в части азиатских языков, чтобы потом его можно было локализовать без переделок. Локализация проверяет продукт для страны, где он уже работает, а интернационализация проверяет, что его можно будет туда вывести.
Допустим, интернет-магазин выходит в Казахстан. При тестировании локализации проверяют, что цены показаны в тенге, а казахский перевод помещается на кнопках и не обрезается. Интернационализацию проверяют ещё до выхода на новый рынок: казахские буквы вроде ә и ң должны сохраняться в имени покупателя и адресе доставки, и знаков вопроса на их месте быть не должно.
Число в сокращении показывает, сколько букв стоит между первой и последней буквой английского слова: в internationalization между i и n восемнадцать букв, в localization между l и n десять. Так же сокращают accessibility, и получается a11y.
Чёрный, белый и серый ящик
Методы тестирования различаются тем, есть ли у тестировщика доступ к коду и внутреннему устройству системы и с чьей точки зрения он проверяет. Ниже каждый метод на примере одной формы входа.
В программе ISTQB серого ящика нет. Методы проектирования тестов там делятся на методы чёрного ящика, белого ящика и методы на основе опыта, где тесты строят на знаниях и интуиции тестировщика. Серый ящик встречается в учебниках и на собеседованиях. В моём курсе разбираются чёрный и серый ящик, а белый остаётся для автоматизаторов и разработчиков.
Чёрный ящик (black box)
Код и внутренняя структура не видны. Тестировщик ставит себя на место пользователя, например покупателя интернет-магазина или студента онлайн-школы, и работает через графический интерфейс, а ожидаемый результат берёт из спецификации. На форме входа он вводит верные и неверные логины и смотрит, что показывает экран. Другие названия метода – тестирование на основе спецификации и тестирование поведения.
Серый ящик (grey box)
Устройство системы известно частично. Тестировщик не пишет юнит-тесты и не ревьюит код, но видит HTML и CSS страницы, отправляет запросы к API по документации в Swagger, заходит в DevTools и в базу данных. На той же форме он смотрит, какой запрос ушёл на сервер и что вернулось, и проверяет, появилась ли запись в базе. Проверки при этом всё равно идут с позиции пользователя.
Белый ящик (white box)
Тестировщику известны код, архитектура и потоки данных. Пример из урока: автоматизатор или программист изучает код поля ввода, определяет все верные и неверные значения и сверяет поведение с тем, как должен работать код. Сюда относятся ревью кода и юнит-тесты.
Видеоуроки, шпаргалки и задания
Я разбираю нефункциональное тестирование и методы ящиков в шестом уроке курса "Тестировщик с нуля" на YouTube, которым заканчиваю тему классификации. Короткие ролики 2025 года повторяют её как вопросы с собеседования: типы и методы тестирования, нефункциональное тестирование, локализация и интернационализация. В бесплатном базовом курсе по тестированию тема идёт уроком "Типы тестирования. Часть 1", и после теории в нём есть задания.
Шпаргалка по видам тестирования находит вид по русскому или английскому названию, а шпаргалка по методам показывает, что тестировщику видно в каждом ящике. В тренажёре классификации примеры тестов нужно разложить по категориям.
- Урок курсаЭтот урок с заданиями – бесплатно
- Мой видеоурокнефункциональное тестирование, чёрный, белый и серый ящик
- Мой видеоуроккакие бывают типы тестирования
- Мой видеоурокметоды тестирования за 3 минуты
- Мой видеоурокчто относится к нефункциональному тестированию
- Мой видеоуроклокализация и интернационализация
- Шпаргалкавиды тестирования
- Шпаргалкаметоды чёрного, серого и белого ящика
- Тренажёрклассификация тестов
- СтатьяУровни тестирования, позитивные и негативные тесты
Курсы по теме
Вопросы и ответы
Какие бывают виды тестирования?
Тестирование делят по нескольким признакам. Главные из них – цель (функциональное и нефункциональное) и доступ к коду (чёрный, серый и белый ящик). По степени автоматизации тестирование бывает ручным и автоматизированным, по запуску кода статическим и динамическим. По формализации различают тестирование по тест-кейсам, исследовательское и свободное. Есть ещё позитивные и негативные тесты и тестирование, связанное с изменениями: смоук, ретест, регрессия.
Чем функциональное тестирование отличается от нефункционального?
Функциональное проверяет, что делает система: можно ли зарегистрироваться, купить товар, оформить доставку. Нефункциональное проверяет, как она это делает: насколько быстро, безопасно и удобно, в каких браузерах и на каких платформах работает. Оба типа проводят на всех уровнях тестирования.
Что относится к нефункциональному тестированию?
По ГОСТ Р ИСО/МЭК 25010 это производительность, совместимость, удобство использования, надёжность, защищённость, сопровождаемость и переносимость. На практике это нагрузочное и стрессовое тестирование, кроссбраузерное, юзабилити, тестирование безопасности и установки. Сюда же относят локализацию, интернационализацию, доступность и проверку графического интерфейса.
Чем отличаются методы чёрного, белого и серого ящика?
Доступом к внутреннему устройству системы. В чёрном ящике тестировщик видит только интерфейс и проверяет как пользователь, в белом опирается на код и архитектуру. В сером он знает устройство частично: смотрит запросы, API и базу данных, но код не тестирует.
Есть ли серый ящик в ISTQB?
Нет. В программе ISTQB методы проектирования тестов делятся на методы чёрного ящика, белого ящика и методы на основе опыта. Серый ящик встречается в учебниках и на собеседованиях, поэтому его стоит знать и помнить, что в ISTQB его нет.
Чем локализация отличается от интернационализации?
Тестирование локализации (L10n) проверяет, как приложение адаптировано к конкретной стране и языку: перевод, валюту, формат даты, местные законы. Тестирование интернационализации (I18n) проверяет, готово ли приложение к адаптации под новые рынки: поддерживает ли оно Unicode, письмо справа налево и вертикальный текст.
Посмотреть программы курсов
Программа каждого курса открыта целиком: видны все модули, уроки и число шагов.




