Какие методологии и практики тестирования вы применяли на последнем проекте?

Ответ

На последнем проекте использовался гибкий подход Agile/Scrum с интеграцией тестирования на всех этапах жизненного цикла (Shift-Left Testing).

Ключевые практики и методологии:

  1. Гибкая разработка (Agile/Scrum):

    • Участие QA в планировании спринтов и уточнении требований.
    • Ежедневные стендапы для синхронизации команды.
    • Демонстрация готового функционала в конце спринта.
  2. Ручное тестирование:

    • Исследовательское тестирование для изучения нового функционала.
    • Составление и выполнение тест-кейсов в TestRail.
    • Тестирование пользовательского интерфейса (UI), юзабилити и кросс-браузерной совместимости.
  3. Автоматизация тестирования:

    • UI-автоматизация: Для регрессионного тестирования использовался стек Selenium WebDriver + Python (pytest).
    • Пример автотеста на вход в систему:
      
      import pytest
      from selenium import webdriver
      from selenium.webdriver.common.by import By
      from selenium.webdriver.common.keys import Keys

def test_successful_login(): driver = webdriver.Chrome() driver.get("https://app.example.com/login")

driver.find_element(By.ID, "username").send_keys("standard_user")
driver.find_element(By.ID, "password").send_keys("secret_sauce")
driver.find_element(By.ID, "login-button").click()

# Проверка успешного входа
assert driver.current_url == "https://app.example.com/inventory.html"
assert "Products" in driver.page_source

driver.quit()

    *   **API-тестирование:** Для проверки бэкенд-логики использовались **Postman** (для ручных проверок и коллекций) и **pytest** с библиотеками `requests` для автоматизации.
    *   **Нагрузочное тестирование:** Для оценки производительности использовался **JMeter** (создание сценариев, анализ отчетов).

4.  **BDD (Behavior-Driven Development):**
    *   Использовался фреймворк **Behave** для Python.
    *   Написание сценариев на языке **Gherkin** (`Given-When-Then`) для лучшего понимания требований между бизнес-аналитиками, разработчиками и тестировщиками.

**Общий процесс:** Новый функционал сначала проверялся вручную, затем для стабильных и критичных частей писались автоматизированные тесты, которые интегрировались в CI/CD пайплайн (например, Jenkins/GitLab CI) для прогона при каждом коммите.

Ответ 18+ 🔞

А, ну рассказываю, как мы там на последнем проекте работали, а то у некоторых, блядь, представление, что тестировщик — это такой человек, который в конце приходит и говорит: «Всё хуёво, переделывайте». Хуй там плавал! У нас был Agile/Scrum, с интеграцией тестирования на всех этапах, эта самая Shift-Left Testing. То есть мы лезли везде, как назойливые мухи, с самого начала, чтобы потом не охуевать от сюрпризов.

Ключевые практики и методологии, которые мы там городили:

  1. Гибкая разработка (Agile/Scrum):

    • QAшник (то есть я, сука) сидел на планировании спринтов и уточнял требования. Чтобы потом не вышло, что «ой, а мы думали, кнопка должна быть зелёной, а она, блядь, красная и ещё криво стоит».
    • Ежедневные стендапы, где все друг другу рассказывали, что вчера сделали и что сегодня будем делать. Главное — не затягивать, а то терпения ноль, ебать.
    • В конце спринта — демо. Показываем, что получилось. Если всё работает — хорошо. Если нет — все дружно делаем вид, что так и задумано.
  2. Ручное тестирование:

    • Сначала — исследовательское тестирование. Берёшь новую фичу и начинаешь её щупать со всех сторон, как хитрая жопа. Смотришь, где она сломается.
    • Потом — составление тест-кейсов в TestRail. Чтобы потом не было: «А мы это проверяли?» — «Нет, блядь, забыли».
    • И, конечно, UI, юзабилити, кросс-браузерность. Чтобы в одном браузере всё летало, а в другом — пизда, картинки плывут.
  3. Автоматизация тестирования:

    • UI-автоматизация: Для регресса, чтобы каждый раз не тыкать в одни и те же кнопки руками, использовали Selenium WebDriver + Python (pytest). Скучная хуйня, но необходимая.
    • Вот, смотри, пример автотеста на вход в систему. Код не трогаю, оставляю как есть, но суть ясна:
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

def test_successful_login():
    driver = webdriver.Chrome()
    driver.get("https://app.example.com/login")

    driver.find_element(By.ID, "username").send_keys("standard_user")
    driver.find_element(By.ID, "password").send_keys("secret_sauce")
    driver.find_element(By.ID, "login-button").click()

    # Проверка успешного входа
    assert driver.current_url == "https://app.example.com/inventory.html"
    assert "Products" in driver.page_source

    driver.quit()
*   **API-тестирование:** Бэкенд — это святое. Ручные проверки в **Postman**, а для автоматизации — **pytest** и библиотека `requests`. Чтобы знать, что сервер не гонит нам хуйню вместо JSON.
*   **Нагрузочное тестирование:** **JMeter**. Надо же понимать, выдержит ли наше творение, когда на него навалится овердохуища пользователей, или оно накроется медным тазом.
  1. BDD (Behavior-Driven Development):
    • Использовали Behave для Python. Писали сценарии на Gherkin (Given-When-Then).
    • Это чтобы бизнес-аналитики, разработчики и мы, тестировщики, говорили на одном языке. А то получается: «Хочу, чтобы было удобно» — «Что такое "удобно", блядь?».

Общий процесс, если коротко: Сначала всё щупаем руками. Потом, для самых важных и стабильных штук, пишем автотесты. Эти автотесты потом встраиваем в CI/CD пайплайн (типа Jenkins или GitLab CI), чтобы они сами запускались при каждом новом коммите. Если всё зелёное — ок. Если нет — все бегут разбираться, чья тут, блядь, вина. Вот так вот, без красивостей, но зато работало.