Тесты
1. Unit-тестирование
Проверка корректности работы отдельных функций, методов или классов.
| Инструмент | Язык / Экосистема | Установка / Ссылка |
|---|---|---|
| JUnit | Java | https://junit.org; mvn dependency:resolve или добавление в pom.xml |
| TestNG | Java | https://testng.org; Maven/Gradle |
| Pytest | Python | pip install pytest |
| unittest | Python (встроенный) | Входит в стандартную библиотеку |
| Jest | JavaScript / TypeScript | npm install --save-dev jest |
| Mocha | JavaScript | npm install --save-dev mocha |
| NUnit | C# / .NET | Через NuGet: dotnet add package NUnit |
| xUnit.net | C# / .NET | dotnet add package xunit |
| Go testing | Go | Встроен в go test |
| Catch2 | C++ | https://github.com/catchorg/Catch2; vcpkg install catch2 |
| Rust test | Rust | Встроено в Cargo: cargo test |
2. Интеграционное тестирование
Проверка взаимодействия между компонентами системы (например, API и база данных).
| Инструмент | Описание | Установка / Ссылка |
|---|---|---|
| Postman | REST-клиент с поддержкой коллекций и тестов | https://www.postman.com/downloads |
| Insomnia | Альтернатива Postman, с открытым исходным кодом | brew install --cask insomnia (macOS) |
| Cypress | Интеграционные и E2E-тесты для веб-приложений | npm install cypress --save-dev |
| TestCafe | Интеграционные тесты без WebDriver | npm install testcafe --save-dev |
| RestAssured | REST-тестирование в Java | Maven/Gradle зависимость |
| Karate DSL | BDD-ориентированные API-тесты | https://github.com/karatelabs/karate |
| Supertest | Тестирование HTTP-серверов на Node.js | npm install supertest --save-dev |
3. End-to-End (E2E) тестирование
Имитация действий пользователя в полном рабочем окружении.
| Инструмент | Описание | Установка / Ссылка |
|---|---|---|
| Selenium | Кросс-браузерное автоматизированное тестирование | pip install selenium (Python), npm install selenium-webdriver (JS) |
| Playwright | Современный инструмент от Microsoft | npm install @playwright/test |
| Puppeteer | Управление Chrome/Chromium через DevTools | npm install puppeteer |
| WebDriverIO | E2E-фреймворк поверх WebDriver | npm install @wdio/cli |
| Robot Framework | Обобщённый фреймворк с поддержкой E2E | pip install robotframework + библиотеки (SeleniumLibrary и др.) |
4. Статический анализ и линтинг
Выявление потенциальных ошибок, проблем со стилем и уязвимостей без запуска кода.
| Инструмент | Язык | Установка / Ссылка |
|---|---|---|
| ESLint | JavaScript | npm install eslint --save-dev |
| JSHint | JavaScript | npm install jshint --save-dev |
| Pylint | Python | pip install pylint |
| Flake8 | Python | pip install flake8 |
| Black | Python (форматирование) | pip install black |
| Checkstyle | Java | Maven/Gradle плагин |
| PMD | Java | https://pmd.github.io |
| SonarQube | Мультиязычный | https://www.sonarqube.org; Docker: docker run -d --name sonarqube -p 9000:9000 sonarqube |
| Semgrep | Мультиязычный | pip install semgrep или brew install semgrep |
| Clang-Tidy | C/C++ | Входит в состав LLVM; apt install clang-tidy (Debian/Ubuntu) |
| Cppcheck | C/C++ | apt install cppcheck или https://cppcheck.sourceforge.io |
| golangci-lint | Go | go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest |
5. Инструменты нагрузочного и стресс-тестирования
Оценка производительности и устойчивости системы под нагрузкой.
| Инструмент | Описание | Установка / Ссылка |
|---|---|---|
| JMeter | Нагрузочное тестирование (GUI и CLI) | https://jmeter.apache.org; brew install jmeter |
| k6 | Современный инструмент для нагрузки | https://k6.io; brew install k6 или Docker |
| Locust | Написание сценариев на Python | pip install locust |
| Gatling | Высокопроизводительное тестирование на Scala | https://gatling.io |
| Artillery | Нагрузочное тестирование для Node.js | npm install -g artillery |
6. Фреймворки для моков и заглушек
Имитация внешних зависимостей при тестировании.
| Инструмент | Язык | Установка |
|---|---|---|
| Mockito | Java | Maven/Gradle |
| unittest.mock | Python | Входит в стандартную библиотеку |
| Jest mocks | JavaScript | Встроено в Jest |
| Moq | C# | Через NuGet |
| WireMock | Мультиязычный (HTTP-моки) | http://wiremock.org |
7. Генераторы тестовых данных
Создание реалистичных наборов данных для тестирования.
| Инструмент | Язык / Платформа | Установка |
|---|---|---|
| Faker | Python | pip install faker |
| Faker.js | JavaScript | npm install @faker-js/faker |
| Java Faker | Java | Maven/Gradle |
| Mockaroo | Веб-сервис генерации CSV/JSON | https://mockaroo.com |
8. Визуализация и отчётность
Формирование отчётов и дашбордов по результатам тестов.
| Инструмент | Описание | Ссылка |
|---|---|---|
| Allure Report | Генерация интерактивных HTML-отчётов | https://docs.qameta.io/allure |
| ReportPortal | Централизованное хранение и анализ результатов | https://reportportal.io |
| JUnit XML | Стандартный формат отчётов | Поддерживается большинством CI-систем |