и посмотреть медиа
Preguntas de la entrevista del testador
и посмотреть медиа
Preguntas de entrevista para los evaluadores.
Preguntas de entrevista para los evaluadores.
bot de IA para clonar texto a voz y voz en Telegram. Cree audio utilizando la red neuronal de forma rápida y fácil.
Preguntas de prueba: ISTQB, Selenio, API. Con ejemplos.
🤔 Как бы провел автоматизацию валидации имейла (кейса)? Автоматизация валидации email-адреса — это важная задача в тестировании, так как неправильный ввод email может привести к проблемам с регистрацией, авторизацией или отправкой уведомлений. Я бы провел автоматизацию следующим образом: 🟠Определение требований и правил валидации Прежде чем писать тесты, нужно понять, какие требования предъявляются к email. Обычно email должен: Содержать "@" и "." Иметь корректную структуру ([email protected]) Не содержать запрещенные символы (например, пробелы, кириллицу) Не быть слишком коротким ([email protected] — невалидно) Не быть слишком длинным (например, > 320 символов) Соответствовать формату регулярного выражения (RFC 5322) Пример регулярного выражения для валидации email: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ 🟠Написание автоматических тестов Я бы реализовал тестирование с помощью Selenium + Pytest или JUnit/TestNG в Java. import pytest from selenium import webdriver from selenium.webdriver.common.by import By @pytest.fixture def driver(): driver = webdriver.Chrome() driver.get("Ссылка скрыта # Открываем страницу регистрации yield driver driver.quit() @pytest.mark.parametrize("email, expected", [ ("[email protected]", True), # Валидный email ("invalid-email.com", False), # Нет "@" ("@nodomain.com", False), # Нет имени ("[email protected]", False), # Нет домена ("[email protected]", False), # Двойная точка ("[email protected]", False), # Слишком короткое доменное расширение ]) def test_email_validation(driver, email, expected): email_input = driver.find_element(By.NAME, "email") submit_button = driver.find_element(By.NAME, "submit") email_input.clear() email_input.send_keys(email) submit_button.click() error_message = driver.find_element(By.ID, "email-error") if expected: assert error_message.is_displayed() is False, f"Ошибка для валидного email: {email}" else: assert error_message.is_displayed() is True, f"Нет ошибки для невалидного email: {email}" 🟠Проверка на сервере (API-тестирование) Помимо UI, нужно проверять валидацию на сервере через API-запросы. Пример API-теста с Postman + Newman или RestAssured в Java import pytest import requests BASE_URL = "Ссылка скрыта @pytest.mark.parametrize("email, expected_status", [ ("[email protected]", 200), ("invalid-email.com", 400), ("[email protected]", 400), ]) def test_email_validation_api(email, expected_status): response = requests.post(BASE_URL, json={"email": email}) assert response.status_code == expected_status 🟠Интеграция тестов в CI/CD Чтобы автоматические тесты запускались регулярно, их можно интегрировать в Jenkins, GitHub Actions, GitLab CI. name: Run Email Validation Tests on: push: branches: - main jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v3 with: python-version: '3.9' - name: Install dependencies run: pip install -r requirements.txt - name: Run tests run: pytest tests/ Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Какие направления данных используются у REST? В REST (Representational State Transfer) используются три основных направления передачи данных между клиентом и сервером. Эти направления определяют, как данные передаются и используются в процессе взаимодействия. 🚩Передача данных от клиента к серверу (Request Data) Клиент отправляет данные серверу для выполнения определенных операций, таких как создание, обновление или удаление ресурсов. GET /products?category=electronics&sort=price_asc 🟠Пути запроса (Path Parameters) - Данные передаются как часть URL. - Используются для указания конкретного ресурса. GET /products/123 🟠Тело запроса (Request Body) - Данные передаются в основном для POST, PUT, PATCH запросов. - Используются для передачи сложных структур данных. - Форматы: JSON, XML, форматы форм (form-data, x-www-form-urlencoded). POST /users { "name": "John Doe", "email": "[email protected]" } 🚩Передача данных от сервера к клиенту (Response Data) Сервер возвращает данные клиенту в ответ на его запрос. 🟠Способы передачи данных - Тело ответа (Response Body): - Основной способ передачи данных. - Формат обычно JSON или XML. { "id": 123, "name": "Smartphone", "price": 499.99 } 🟠Заголовки ответа (Response Headers): - Передают метаинформацию о запросе или ответе. - Примеры: Content-Type, Authorization, Cache-Control. Content-Type: application/json 🟠Статус ответа (Response Status) - HTTP-коды состояния указывают результат операции. - Примеры: - 200 OK — успешный запрос. - 201 Created — ресурс успешно создан. - 404 Not Found — ресурс не найден. - 500 Internal Server Error — внутренняя ошибка сервера. 🚩Двусторонняя передача данных (Real-time Communication) В REST взаимодействие обычно происходит по запросу-ответу, но в некоторых случаях требуется поддерживать двустороннюю связь между клиентом и сервером. 🟠Long Polling Клиент отправляет запрос и ожидает ответа от сервера. Сервер отвечает только при наличии новых данных. Используется для чатов, уведомлений. 🟠WebSockets (не REST, но часто совместно используется): Устанавливается постоянное соединение между клиентом и сервером. Сервер может отправлять данные клиенту без явного запроса. Пример: уведомления, онлайн-игры. 🟠Server-Sent Events (SSE): Сервер отправляет данные клиенту в режиме реального времени через HTTP. Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что будет в билде на альфа-тестировании? Альфа-тестирование – это первая фаза тестирования перед бета-релизом, которая проводится внутри компании. Билд на этом этапе может быть нестабильным, но уже включает основные функции для тестирования. 🚩Что включает билд на альфа-тестировании? Основной функционал – ключевые функции уже работают, но могут быть недочёты. Отладочная информация – логирование, дебаг-панели, метрики для диагностики багов. Известные баги – разработчики могут оставить список проблем, которые ещё не исправлены. Тестовые данные – могут быть заглушки вместо реальных данных (фейковые платежи, тестовые аккаунты). Функции в разработке – некоторые части могут быть недоделаны или отключены. Инструменты отладки – иногда включаются специальные команды для тестирования. 🚩Что тестируется на альфа-версии? Критические баги – краши, зависания, ошибки работы системы. Основной функционал – соответствие требованиям, корректность логики. Производительность – скорость работы, потребление памяти, нагрузка. Интеграции – взаимодействие с API, базами данных, сторонними сервисами. UI/UX – базовая проверка интерфейса, удобство использования. 🚩Кто тестирует альфа-билд? QA-инженеры – проводят основное тестирование. Разработчики – могут тестировать функции перед передачей QA. Менеджеры, аналитики – проверяют соответствие требованиям. Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Чем отличается тестирование монолитного бэкенда и тестирование схемы веб сервисов? Тестирование монолитного бэкенда и сети веб-сервисов (микросервисной архитектуры) сильно различается из-за их архитектурных особенностей. 🚩Тестирование монолитного бэкенда Монолит – это единое приложение, где вся логика, база данных и API находятся в одном коде. 🟠Фокус на функциональном тестировании Проверяем, работает ли бэкенд как единое целое (API, БД, бизнес-логика). 🟠Юнит-тестирование (Unit Tests) Проверяем отдельные функции и классы (обычно через pytest, JUnit). 🟠Интеграционные тесты (Integration Tests) Проверяем связь между слоями (БД, API, бизнес-логика). 🟠Проще дебажить Весь код в одном месте, можно легко найти ошибку. def test_login(api_client): response = api_client.post("/login", json={"user": "admin", "pass": "123"}) assert response.status_code == 200 🚩Тестирование схемы веб-сервисов (микросервисов) В микросервисной архитектуре каждый сервис – отдельное приложение, взаимодействующее через API. 🟠Тестирование API-коммуникаций Проверяем REST или gRPC-запросы между сервисами. 🟠Контрактное тестирование (Contract Testing, Pact) Проверяем, что микросервисы обмениваются данными по заданному контракту. 🟠End-to-End (E2E) тестирование Проверяем, что все сервисы вместе работают корректно. 🟠Мониторинг и логирование Используем Jaeger, Prometheus для отслеживания ошибок между сервисами. 🟠Тестирование отказоустойчивости Проверяем, что система работает при сбоях (Chaos Monkey). import requests def test_order_service(): response = requests.get("Ссылка скрыта assert response.status_code == 200 Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Как составлять traceability matrix? Матрица трассируемости — таблица, показывающая связь требований и тестов: - строки: требования; - столбцы: тест-кейсы; - на пересечениях — метки (покрыто/не покрыто); Она помогает убедиться, что все требования протестированы. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Сгенерируй тесты тестирования поля ввода телефона 🚩Позитивные тесты (валидные данные) TC-01 Ввод корректного номера в формате +7 999 123-45-67 → Должен приниматься TC-02 Ввод номера без пробелов и дефисов +79991234567 → Должен приниматься TC-03 Ввод номера в международном формате +1 650-555-1234 → Должен приниматься TC-04 Ввод номера с кодом страны без + (например, 79991234567) → Должен приниматься 🚩Негативные тесты (невалидные данные) TC-05 Ввод букв (+7 ABC DEFGHIJ) → Должно быть сообщение об ошибке TC-06 Ввод специальных символов (+7 999 @#$%^&*()) → Ошибка валидации TC-07 Ввод номера без кода страны (9991234567) → Ошибка валидации TC-08 Ввод слишком короткого номера (+7 999 12) → Ошибка "недостаточно символов" TC-09 Ввод слишком длинного номера (+7 999 123-45-6789) → Ошибка "слишком много символов" TC-10 Ввод только пробелов (" ") → Ошибка "номер обязателен" TC-11 Ввод пустого значения → Ошибка "номер обязателен" 🚩Граничные значения (Boundary Value Analysis) TC-12 Ввод номера с минимально допустимой длиной (+7 999 1) → Ошибка "слишком короткий" TC-13 Ввод номера с максимально допустимой длиной (+7 999 123-45-67) → Должен приниматься TC-14 Ввод номера на 1 символ длиннее допустимого (+7 999 123-45-678) → Ошибка "слишком длинный" 🚩Проверка локализации TC-15 Ввод номера в другом национальном формате (например, UK +44 20 7946 0958) → Должно приниматься или отклоняться (в зависимости от требований) TC-16 Ошибка должна отображаться на языке интерфейса ("Некорректный номер" для RU, "Invalid phone number" для EN) Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что лежит под доменным именем? Под доменным именем находится IP-адрес сервера, на котором размещён сайт или приложение. DNS-система преобразует доменное имя в IP-адрес, чтобы браузер мог установить соединение с нужным хостом. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Какая вместимость SringBuilder? В классе StringBuilder есть понятие вместимости (capacity) — это количество символов, которые объект StringBuilder может вместить без необходимости выделения новой памяти. 🟠Как работает `capacity`? Когда создается объект StringBuilder, у него есть внутренняя буферная строка, которая может расти по мере добавления новых символов. Однако, чтобы не выделять память слишком часто, StringBuilder создает буфер с запасом. 🟠Как посмотреть текущую вместимость? Для этого есть метод StringBuilder sb = new StringBuilder("Hello"); System.out.println(sb.capacity()); // 21 (16 + 5) 🟠Как увеличить `capacity` вручную? Можно задать вместимость заранее через конструктор: StringBuilder sb = new StringBuilder(50); System.out.println(sb.capacity()); // 50 А если нужно увеличить уже существующий StringBuilder, можно использовать: sb.ensureCapacity(100); // Гарантирует вместимость 100 🟠Что происходит при превышении `capacity`? Когда длина строки превышает текущую вместимость, StringBuilder автоматически увеличивает размер буфера. Новая вместимость рассчитывается так: новая_вместимость = (текущая_вместимость * 2) + 2 Пример StringBuilder sb = new StringBuilder(10); sb.append("12345678901"); // 11 символов → превышает 10 System.out.println(sb.capacity()); // (10 * 2) + 2 = 22 Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Как открыть гибридное приложение? Гибридные приложения открываются как обычные нативные, но содержат внутри WebView. Тестировать можно через инструменты, совместимые с веб и мобильной средой — например, Appium. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиаSolo los usuarios registrados pueden compartir su opinión.
¡Sé el primero en compartir tu experiencia con este recurso!