Ответ
Модульное тестирование (Unit Testing) — это уровень тестирования, направленный на проверку корректности работы минимальных изолированных единиц кода (юнитов), таких как функции, методы или классы.
Основные принципы:
- Изоляция: Тест проверяет только логику самого юнита. Все внешние зависимости (база данных, файловая система, другие модули) заменяются заглушками (stubs) или имитаторами (mocks).
- Скорость: Unit-тесты должны выполняться очень быстро (миллисекунды), что позволяет запускать их тысячи раз в день.
- Детерминированность: Результат теста (успех/провал) должен зависеть только от тестируемого кода, а не от внешних факторов.
Пример unit-теста для функции валидации email (на Python с использованием pytest и unittest.mock):
import re
from unittest.mock import patch
def is_valid_email(email):
"""Проверяет валидность формата email."""
pattern = r'^[w.-]+@[w.-]+.w+$'
return re.match(pattern, email) is not None
# Сам тест
def test_is_valid_email():
# Позитивные кейсы
assert is_valid_email("user@example.com") == True
assert is_valid_email("first.last@company.co.uk") == True
# Негативные кейсы (граничные условия)
assert is_valid_email("invalid-email") == False
assert is_valid_email("user@.com") == False
assert is_valid_email("@example.com") == False
assert is_valid_email("") == False # Пустая строка
Практическая польза для QA: Модульные тесты, написанные разработчиками, создают "безопасную сетку". Это позволяет QA-инженерам быть уверенными, что базовые компоненты работают, и сосредоточиться на интеграционном, системном и приемочном тестировании.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶