Тесты
Тестирование проверяет, что программа ведёт себя как ожидается. Пирамида тестов: много быстрых unit, меньше integration, немного E2E. Статический анализ и линтеры ловят ошибки до запуска; нагрузочные тесты — устойчивость под трафиком.
Запускайте 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.
См. также
- Профилировщики · Линтеры
- Тестирование — о разделе — пирамида, виды тестов, стратегия в проекте
- Нагрузочное тестирование — k6, JMeter, метрики под нагрузкой
- Практикум — API-тестер на Groovy и JMeter — desktop HTTP-клиент, embedded JMeter, smoke-тест
- Культура кода — линтеры, форматтеры, pre-commit