Rusau LearnВойти

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

Виды тестирования: функциональное, нефункциональное, чёрный и белый ящик

Видов тестирования десятки, и их делят по разным признакам. Главное деление идёт по цели: функциональное тестирование проверяет, что система делает, а нефункциональное проверяет, как она это делает, то есть скорость, удобство, безопасность, совместимость и надёжность. По доступу к коду различают методы чёрного ящика, когда код не виден и проверки идут через интерфейс, белого, когда тестировщик опирается на код и архитектуру, и серого, когда устройство системы известно частично.

Мой видеоурок: Урок 6. Нефункциональное тестирование. Черный, белый и серый ящикОткрыть на YouTube
Что и как
функциональное проверяет, что делает система, нефункциональное – как
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", и после теории в нём есть задания.

Шпаргалка по видам тестирования находит вид по русскому или английскому названию, а шпаргалка по методам показывает, что тестировщику видно в каждом ящике. В тренажёре классификации примеры тестов нужно разложить по категориям.

Курсы по теме

Вопросы и ответы

Какие бывают виды тестирования?

Тестирование делят по нескольким признакам. Главные из них – цель (функциональное и нефункциональное) и доступ к коду (чёрный, серый и белый ящик). По степени автоматизации тестирование бывает ручным и автоматизированным, по запуску кода статическим и динамическим. По формализации различают тестирование по тест-кейсам, исследовательское и свободное. Есть ещё позитивные и негативные тесты и тестирование, связанное с изменениями: смоук, ретест, регрессия.

Чем функциональное тестирование отличается от нефункционального?

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

Что относится к нефункциональному тестированию?

По ГОСТ Р ИСО/МЭК 25010 это производительность, совместимость, удобство использования, надёжность, защищённость, сопровождаемость и переносимость. На практике это нагрузочное и стрессовое тестирование, кроссбраузерное, юзабилити, тестирование безопасности и установки. Сюда же относят локализацию, интернационализацию, доступность и проверку графического интерфейса.

Чем отличаются методы чёрного, белого и серого ящика?

Доступом к внутреннему устройству системы. В чёрном ящике тестировщик видит только интерфейс и проверяет как пользователь, в белом опирается на код и архитектуру. В сером он знает устройство частично: смотрит запросы, API и базу данных, но код не тестирует.

Есть ли серый ящик в ISTQB?

Нет. В программе ISTQB методы проектирования тестов делятся на методы чёрного ящика, белого ящика и методы на основе опыта. Серый ящик встречается в учебниках и на собеседованиях, поэтому его стоит знать и помнить, что в ISTQB его нет.

Чем локализация отличается от интернационализации?

Тестирование локализации (L10n) проверяет, как приложение адаптировано к конкретной стране и языку: перевод, валюту, формат даты, местные законы. Тестирование интернационализации (I18n) проверяет, готово ли приложение к адаптации под новые рынки: поддерживает ли оно Unicode, письмо справа налево и вертикальный текст.

Посмотреть программы курсов

Программа каждого курса открыта целиком: видны все модули, уроки и число шагов.

Все курсы

Здесь используются cookies: без них сайт не работает, и по ним видно, откуда о платформе узнают.Cookies нужны для входа и учёта переходов. Подробнее