Тесты

Тестирование проверяет, что программа ведёт себя как ожидается. Пирамида тестов: много быстрых unit, меньше integration, немного E2E. Статический анализ и линтеры ловят ошибки до запуска; нагрузочные тесты — устойчивость под трафиком.

CI/CD

Запускайте unit и линтеры на каждый push; integration — на merge;

E2E и нагрузку — по расписанию или перед релизом. Отчёты в формате JUnit XML подхватывают GitHub Actions, GitLab CI, Jenkins.


Unit-тестирование

Проверка функций, методов и классов изолированно (моки зависимостей).

Инструмент Экосистема Установка
pytest Python pip install pytest
unittest Python (stdlib) встроен
Jest JavaScript / TypeScript npm install --save-dev jest
JUnit / TestNG Java Maven / Gradle
NUnit / xUnit.net C# NuGet
Go testing Go go test
Catch2 C++ vcpkg / Conan
Rust test Rust cargo test

Интеграционное тестирование

Взаимодействие модулей: API + БД, сервис + брокер.

Инструмент Описание
Postman / Insomnia REST-коллекции и тесты
curl CLI-запросы без GUI — утилита curl, curl / fetch — примеры
Supertest HTTP-сервер Node.js без браузера
RestAssured REST в Java
Karate DSL BDD для API
Cypress / TestCafe Веб с реальным браузером (часто ближе к E2E)

End-to-End (E2E)

Сценарий пользователя в полном окружении.

Инструмент Особенность
Playwright Современный API, auto-wait, trace
Selenium WebDriver, широкая поддержка браузеров
Puppeteer Chromium через DevTools Protocol
WebDriverIO Обёртка над WebDriver
Robot Framework Ключевые слова + библиотеки

Статический анализ

Инструмент Язык
ESLint, Semgrep JS/TS, мульти
Pylint, Ruff, mypy Python
SonarQube Мульти, дашборд качества
golangci-lint Go
Clang-Tidy, Cppcheck C/C++

Нагрузка и стресс

Инструмент Описание
k6 Сценарии на JavaScript, CLI
JMeter GUI + CLI, HTTP/JDBC; embedded из Groovy — практикум
Locust Сценарии на Python
Gatling Scala, высокая производительность
Artillery Node.js, HTTP/WebSocket

Моки и тестовые данные

Инструмент Назначение
Mockito Java
unittest.mock Python
Moq C#
WireMock HTTP-стабы
Faker / Mockaroo Генерация данных

Отчёты

Allure Report, ReportPortal — визуализация прогонов; большинство CI понимают JUnit XML.


См. также