Ответ
Виды тестирования классифицируются по цели проверки:
- Функциональное: Проверяет, что система делает (соответствие функциональным требованиям).
- Пример (проверка логина):
# pytest def test_login_with_valid_credentials(): result = login(username="test_user", password="correct_pass") assert result.is_successful() == True assert result.get_session() is not None
- Пример (проверка логина):
- Нефункциональное: Проверяет, как система работает (качества).
- Нагрузочное (Performance): Проверка под нагрузкой.
- Тестирование безопасности (Security).
- Юзабилити-тестирование.
Типы тестирования классифицируются по способу/уровню проведения:
- По уровню (Test Levels):
- Модульное (Unit): Тестирование отдельных функций/классов.
// Jest test('sum function adds numbers', () => { expect(sum(1, 2)).toBe(3); }); - Интеграционное: Тестирование взаимодействия модулей/сервисов.
# Интеграционный тест API def test_create_order_flow(): user_id = create_test_user() # Модуль A item_id = add_item_to_catalog() # Модуль B order = place_order(user_id, item_id) # Интеграция A и B assert order.status == "PAID" - Системное (End-to-End, E2E): Тестирование всей системы как единого целого.
- Модульное (Unit): Тестирование отдельных функций/классов.
- По доступу к коду:
- "Белый ящик" (White-box): С знанием внутренней реализации.
- "Черный ящик" (Black-box): Без знания реализации, только по спецификации.
- "Серый ящик" (Gray-box): Частичное знание (например, структура БД).
Итог: Вид отвечает на вопрос "что тестируем?" (функцию или качество), а тип — "как и на каком уровне?" (модуль, интеграция, E2E).