В прошлом уроке мы разобрали уровни тестирования — ОТКУДА проверка смотрит на продукт (изнутри модуля или снаружи, через интерфейс целиком). Сейчас разберём другой вопрос: ЧТО именно проверяет тестировщик и КАКИМ способом он к этому подходит. Это две отдельные классификации, и важно не путать их между собой.
Чему научишься за этот урок:
— различать функциональное и нефункциональное тестирование;
— различать 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 делений, ближе к концу.
Проверить ответ →
Реальная проверка — на нашей платформе, бесплатно и без регистрации. Открыть задачу и ввести ответ →
Задание. Проверили, что промокод 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) Проверил, что интерфейс формы оплаты остаётся отзывчивым (не зависает) при вводе некорректного номера карты, не обращаясь к коду.
Подсказка: Для каждой проверки задай себе два раздельных вопроса: (а) она проверяет результат работы функции или качество выполнения этой работы? (б) тестировщик пользовался кодом или только экраном?
Онлайн-проверка ответа появится позже
Что дальше
Мы научились классифицировать проверки по тому, ЧТО они проверяют и КАКИМ способом тестировщик к ним подходит. Но есть ещё один важный вопрос: сколько и каких именно проверок делать, когда времени в обрез — прямо перед релизом? Этим займёмся в следующем уроке: разберём смоук-, санити- и регрессионное тестирование, ретест и идею пирамиды тестирования.
