Найти в Дзене
QA инженер

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

Я продолжаю изучать новые темы и простыми словами стараюсь рассказать вам то, что сам понял. Чем глубже погружаюсь в профессию тестировщика, тем интереснее становится. Начав изучать новую объемную тему, решил не спешить и разложить всё по полочкам — так лучше усваивается. Сегодня хочу поговорить о классификациях видов тестирования. Их действительно много, но начать я решил с самого базового: функциональное и нефункциональное тестирование. Функциональное тестирование Это проверка того, что должно делать приложение, в соответствии с требованиями. Мы смотрим, работает ли функционал, как было задумано. Пример: Если у нас есть форма регистрации, то функциональное тестирование — это проверка, что: Всё, что связано с действиями пользователя и ожидаемым поведением системы — это функциональное тестирование. Нефункциональное тестирование А вот нефункциональное — это проверка как работает система, а не что она делает. Здесь нас интересуют такие вещи, как скорость, удобство, стабильность и безо

Я продолжаю изучать новые темы и простыми словами стараюсь рассказать вам то, что сам понял. Чем глубже погружаюсь в профессию тестировщика, тем интереснее становится. Начав изучать новую объемную тему, решил не спешить и разложить всё по полочкам — так лучше усваивается.

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

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

Это проверка того, что должно делать приложение, в соответствии с требованиями. Мы смотрим, работает ли функционал, как было задумано.

Пример:

Если у нас есть форма регистрации, то функциональное тестирование — это проверка, что:

  • пользователь может ввести имя, почту и пароль,
  • по нажатию на кнопку "Зарегистрироваться" создается новый пользователь,
  • если ввести неправильный email — появится ошибка.

Всё, что связано с действиями пользователя и ожидаемым поведением системы — это функциональное тестирование.

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

А вот нефункциональное — это проверка как работает система, а не что она делает. Здесь нас интересуют такие вещи, как скорость, удобство, стабильность и безопасность.

Нефункциональное тестирование включает в себя множество направлений. Расскажу про самые основные, которые я изучил:

1. Тестирование производительности

Здесь проверяется, насколько система справляется с нагрузкой и как она себя ведёт в разных условиях.

  • Нагрузочное тестирование — проверяем, выдержит ли система большую нагрузку.
  • Пример: 1000 пользователей одновременно оформляют заказ на сайте.
  • Тестирование стабильности (или долговременное) — система работает длительное время без перезапуска.
  • Пример: оставить приложение работать сутки и проверить, не начнет ли оно "течь" (например, по памяти).
  • Стресс-тестирование — создаём экстремальные условия и смотрим, не "упадет" ли система.
  • Пример: резко увеличить количество запросов в 10 раз.
  • Объемное тестирование — проверяем работу при большом количестве данных.
  • Пример: база данных содержит миллион пользователей — работает ли поиск?

2. UI-тестирование (тестирование пользовательского интерфейса)

Здесь мы проверяем внешний вид интерфейса:

  • правильные ли цвета,
  • нет ли наложений элементов,
  • корректно ли отображается на разных устройствах и экранах.

Пример: кнопка "Оформить заказ" съехала за границу экрана на маленьком телефоне — это баг интерфейса.

3. Тестирование юзабилити (удобства)

Смотрим, насколько удобно и понятно пользоваться приложением.

Пример: пользователь не может найти кнопку "Оплатить" — значит, интерфейс не интуитивен, и это проблема.

4. Инсталляционное тестирование

Проверка установки и удаления приложения.

Пример: приложение устанавливается без ошибок, создаёт нужные папки, и после удаления ничего не остаётся в системе.

5. Тестирование локализации

Проверка перевода и адаптации интерфейса под конкретный язык или регион.

Пример: в английской версии сайта написано "Total", а в русской вместо "Итого" написано "Totally" — ошибка локализации.

6. Тестирование интернационализации

Это проверка, насколько система готова к добавлению новых языков или регионов, ещё до фактического перевода.

Пример: система не поддерживает отображение арабского текста справа налево — значит, не подготовлена к интернационализации.

7. Тестирование безопасности

Проверяем, насколько защищена система от внешних и внутренних угроз.

Пример: можно ли зайти в админ-панель без авторизации? Если да — серьёзная уязвимость.

Вывод

Теперь я понял, что тестирование — это не только "работает/не работает", но и "как работает".

Функциональное тестирование отвечает на вопрос: "Что делает система?"

А нефункциональное — "Насколько хорошо она это делает?"

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

Если было полезно — напиши, что бы ты хотел узнать в следующем посте?