Типы тестирования: функциональное, нефункциональное, black-box, white-box

В прошлом уроке мы разобрали уровни тестирования — ОТКУДА проверка смотрит на продукт (изнутри модуля или снаружи, через интерфейс целиком). Сейчас разберём другой вопрос: ЧТО именно проверяет тестировщик и КАКИМ способом он к этому подходит. Это две отдельные классификации, и важно не путать их между собой.

Чему научишься за этот урок:
— различать функциональное и нефункциональное тестирование;
— различать black-box и white-box подходы;
— классифицировать конкретную проверку сразу по двум независимым осям и обосновывать выбор.

Функциональное и нефункциональное тестирование

Функциональное тестирование — проверяет ЧТО делает система: соответствует ли её поведение функциональным требованиям. Например: «промокод SUMMER2026 уменьшает сумму к оплате на правильную величину» или «форма регистрации сохраняет нового пользователя в системе» — это проверки самой ФУНКЦИИ, результата работы.

Нефункциональное тестирование — проверяет не ЧТО делает система, а КАК она это делает. Результат формально может быть правильным, но нефункциональное тестирование смотрит на другие качества работы системы:

  • Производительность — насколько быстро система отвечает.
  • Нагрузка — как система ведёт себя при большом числе одновременных пользователей.
  • Безопасность — насколько система защищена от несанкционированного доступа.
  • Юзабилити — насколько удобно пользоваться системой.

Например: «страница каталога курсов открывается быстрее 2 секунд при 500 одновременных пользователях» — здесь не про правильность результата, а про то, КАК быстро и при какой нагрузке система его выдаёт. Это нефункциональное тестирование, конкретно — производительность и нагрузка.

Black-box и white-box

Black-box (тестирование чёрного ящика) — подход, при котором тестировщик не смотрит и не опирается на внутренний код программы: он проверяет только связь «вход → выход» относительно требований — ввёл данные, посмотрел на результат на экране. Это ОСНОВНОЙ подход ручного тестировщика: не нужно уметь программировать, чтобы находить дефекты таким способом.

White-box (тестирование белого ящика) — подход, при котором тестировщик знает и учитывает внутреннюю структуру кода при проектировании проверок: например, находит в коде редко достижимую условную ветку и специально придумывает данные, чтобы её вызвать. Такой подход обычно требует навыков программирования — чаще им пользуются разработчики или QA-automation инженеры, а не ручной тестировщик начального уровня.

Не путай две классификации между собой: функциональное/нефункциональное — это ЧТО проверяется (сама функция или её качество), а black-box/white-box — это КАКИМ способом тестировщик к этому подошёл (смотрел в код или нет). Это две НЕЗАВИСИМЫЕ оси: одна и та же проверка может быть, например, одновременно функциональной И black-box.

Тестирование изменений

Есть ещё одна категория — тестирование изменений: проверки, которые делаются именно ПОСЛЕ правок в коде, чтобы понять, не сломалось ли что-то ещё. Это отдельная большая тема со своими терминами — разберём её подробно в следующем уроке.

                     | Black-box               | White-box
---------------------+--------------------------+---------------------------
Функциональное       | вход/выход проверяется,  | вход/выход проверяется,
                     | код не используется      | код используется
---------------------+--------------------------+---------------------------
Нефункциональное     | скорость/нагрузка/       | скорость/нагрузка/
                     | удобство без взгляда     | удобство с учётом
                     | в код                     | внутренней структуры кода

Итог:
— функциональное тестирование — проверяет ЧТО делает система (соответствие функциональным требованиям);
— нефункциональное тестирование — проверяет КАК система это делает (производительность, нагрузка, безопасность, юзабилити);
— black-box — тестировщик не опирается на код, проверяет только «вход → выход» — основной подход ручного тестировщика;
— white-box — тестировщик учитывает внутреннюю структуру кода, обычно требует навыков программирования;
— обе классификации независимы: применяются к одной и той же проверке одновременно, а не взаимоисключают друг друга;
— тестирование изменений — отдельная категория, разберём её в следующем уроке.

Контрольный вопрос. Что проверяет функциональное тестирование?

АСоответствие поведения системы функциональным требованиям — то, ЧТО делает система
БСкорость и поведение системы под большой нагрузкой
ВВнутреннюю структуру кода программы

Подсказка: Подумай про слово «функция» — про что оно говорит: про сам результат работы или про качество его выполнения.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Контрольный вопрос. Что проверяет нефункциональное тестирование?

АКАК система выполняет свою работу — например скорость, поведение под нагрузкой, безопасность, удобство
БСоответствие результата функции бизнес-требованию
ВПравильность конкретной бизнес-логики

Подсказка: Смотри на приставку «не-» перед словом «функциональное» — она указывает, что проверяется НЕ сама функция.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Контрольный вопрос. Что характерно для black-box тестирования?

АТестировщик не опирается на внутренний код программы и проверяет только связь «вход → выход»
БТестировщик обязательно читает исходный код перед каждой проверкой
ВЭто подход, доступный только разработчикам

Подсказка: Название подхода — «чёрный ящик»: подумай, видно ли тестировщику, что происходит ВНУТРИ этого ящика.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Контрольный вопрос. Что характерно для white-box тестирования?

АТестировщик знает и учитывает внутреннюю структуру кода при проектировании проверок
БТестировщик работает только с интерфейсом, не заглядывая внутрь программы
ВЭто единственный подход, который используют ручные тестировщики начального уровня

Подсказка: Название подхода — «белый ящик»: подумай, что противоположно ситуации, когда внутреннее устройство скрыто.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Контрольный вопрос. Какие из утверждений верны (выбери все подходящие)?

Выберите все верные варианты.

АФункциональное/нефункциональное и black-box/white-box — это две независимые классификации одной и той же проверки
БBlack-box — основной подход ручного тестировщика
ВНефункциональное тестирование проверяет, ЧТО делает система, а не КАК
ГWhite-box обычно требует навыков программирования

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

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Контрольный вопрос. Как называется подход к тестированию, при котором тестировщик проверяет только связь «вход → выход», не заглядывая в код? Ответь по-английски, через дефис.

Подсказка: Это название уже встречалось в уроке рядом с описанием ОСНОВНОГО подхода ручного тестировщика.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Контрольный вопрос. Какая отдельная категория тестирования проверяется именно ПОСЛЕ правок в коде, чтобы понять, не сломалось ли что-то ещё?

АТестирование изменений
БФункциональное тестирование
ВWhite-box тестирование

Подсказка: Урок называет эту категорию отдельно от функционального/нефункционального и black-box/white-box делений, ближе к концу.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Задание. Проверили, что промокод SUMMER2026 уменьшает сумму к оплате на правильную величину. К какому из двух видов тестирования из этого урока относится такая проверка? Ответь одним словом.

Подсказка: Подумай, что именно здесь проверяется — сам РЕЗУЛЬТАТ работы функции или качество её выполнения.

✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Задание. Проверили, что промокод EXPIRED2025 отклоняется системой с сообщением «промокод истёк» — тестировщик только вводил данные в поле и смотрел на результат на экране, в код не заглядывал. Классифицируй эту проверку по ОБЕИМ осям сразу. Ответь двумя словами через запятую: сначала функциональное/нефункциональное, потом black-box/white-box.

Подсказка: Разбери проверку по двум отдельным вопросам: что именно проверяется (сам результат или качество) и смотрел ли тестировщик в код.

✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.

Проверить ответ →

Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →

Задание. Объясни в 2-3 предложениях: почему black-box считается ОСНОВНЫМ подходом именно для РУЧНОГО тестировщика начального уровня, а не white-box?

Критерий приёмки: объяснено, что black-box не требует знания и чтения кода программы — достаточно проверять связь «вход → выход» через интерфейс, тогда как white-box обычно требует навыков программирования, которые не являются обязательными для ручного тестировщика начального уровня.

Подсказка: Сопоставь требование к навыкам программирования из описания white-box с тем, какими навыками обычно обладает ручной тестировщик без опыта в разработке.

✅ Готово, если: ответ раскрывает то, что просит критерий приёмки в задании выше.

Онлайн-проверка ответа появится позже

Задание. Классифицируй каждую из четырёх проверок по ДВУМ независимым осям: (а) функциональное или нефункциональное; (б) black-box или white-box. Для каждой проверки укажи оба ответа.

Критерий приёмки: для проверки 1 — функциональное, black-box; для проверки 2 — нефункциональное (производительность/нагрузка), black-box; для проверки 3 — функциональное, white-box; для проверки 4 — нефункциональное (юзабилити), black-box. Засчитывается, если по каждой проверке названы обе оси верно и видно, что это независимые классификации, а не взаимоисключающие варианты.

На полигоне курса (сайт с курсами, промокодами, оплатой и каталогом) тестировщик выполнил четыре проверки:

1) Ввёл промокод BLACKFRIDAY в поле на экране (не заглядывая в код) и увидел, что сумма к оплате уменьшилась на заявленный процент.

2) Замерил время ответа страницы каталога курсов при 300 одновременных пользователях, не касаясь кода.

3) Прочитал код функции расчёта скидки, нашёл в нём условную ветку для комбинации двух промокодов сразу и специально подобрал данные, чтобы её вызвать.

4) Проверил, что интерфейс формы оплаты остаётся отзывчивым (не зависает) при вводе некорректного номера карты, не обращаясь к коду.

Подсказка: Для каждой проверки задай себе два раздельных вопроса: (а) она проверяет результат работы функции или качество выполнения этой работы? (б) тестировщик пользовался кодом или только экраном?

Онлайн-проверка ответа появится позже

Что дальше

Мы научились классифицировать проверки по тому, ЧТО они проверяют и КАКИМ способом тестировщик к ним подходит. Но есть ещё один важный вопрос: сколько и каких именно проверок делать, когда времени в обрез — прямо перед релизом? Этим займёмся в следующем уроке: разберём смоук-, санити- и регрессионное тестирование, ретест и идею пирамиды тестирования.

Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева