Какие основные виды тестирования вы знаете?

«Какие основные виды тестирования вы знаете?» — вопрос из категории Основы тестирования, который задают на 42% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

1. По уровню (пирамида тестирования):

  • Модульное (Unit): Проверка отдельных функций или методов. Пишутся разработчиками или тестировщиками. Пример на Java/JUnit:
    @Test
    public void testCalculateDiscount() {
        Cart cart = new Cart();
        cart.addItem(new Item("Book", 100));
        double discount = cart.calculateDiscount();
        assertEquals(10.0, discount, 0.01); // Проверка скидки 10%
    }
  • Интеграционное: Проверка взаимодействия между модулями, сервисами или БД.
  • Системное (End-to-End / E2E): Проверка работы всей системы как единого целого (например, через Selenium).

2. По целям:

  • Функциональное: Проверка соответствия требованиям (Smoke, Регрессионное, Приемочное).
  • Нефункциональное:
    • Нагрузочное/Производительности: Оценка поведения под нагрузкой (использую JMeter, k6).
    • Безопасность: Поиск уязвимостей (SQL-инъекции, XSS).
    • Юзабилити: Удобство интерфейса для пользователя.
    • Совместимость: Работа в разных браузерах, ОС, устройствах.

3. По степени автоматизации: Ручное, автоматизированное (автотесты на Python/pytest, Java/Selenium) и полуавтоматическое.

Видео-ответы