Ответ
На последнем проекте использовался гибкий подход Agile/Scrum с интеграцией тестирования на всех этапах жизненного цикла (Shift-Left Testing).
Ключевые практики и методологии:
-
Гибкая разработка (Agile/Scrum):
- Участие QA в планировании спринтов и уточнении требований.
- Ежедневные стендапы для синхронизации команды.
- Демонстрация готового функционала в конце спринта.
-
Ручное тестирование:
- Исследовательское тестирование для изучения нового функционала.
- Составление и выполнение тест-кейсов в TestRail.
- Тестирование пользовательского интерфейса (UI), юзабилити и кросс-браузерной совместимости.
-
Автоматизация тестирования:
- 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. То есть мы лезли везде, как назойливые мухи, с самого начала, чтобы потом не охуевать от сюрпризов.
Ключевые практики и методологии, которые мы там городили:
-
Гибкая разработка (Agile/Scrum):
- QAшник (то есть я, сука) сидел на планировании спринтов и уточнял требования. Чтобы потом не вышло, что «ой, а мы думали, кнопка должна быть зелёной, а она, блядь, красная и ещё криво стоит».
- Ежедневные стендапы, где все друг другу рассказывали, что вчера сделали и что сегодня будем делать. Главное — не затягивать, а то терпения ноль, ебать.
- В конце спринта — демо. Показываем, что получилось. Если всё работает — хорошо. Если нет — все дружно делаем вид, что так и задумано.
-
Ручное тестирование:
- Сначала — исследовательское тестирование. Берёшь новую фичу и начинаешь её щупать со всех сторон, как хитрая жопа. Смотришь, где она сломается.
- Потом — составление тест-кейсов в TestRail. Чтобы потом не было: «А мы это проверяли?» — «Нет, блядь, забыли».
- И, конечно, UI, юзабилити, кросс-браузерность. Чтобы в одном браузере всё летало, а в другом — пизда, картинки плывут.
-
Автоматизация тестирования:
- 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**. Надо же понимать, выдержит ли наше творение, когда на него навалится овердохуища пользователей, или оно накроется медным тазом.
- BDD (Behavior-Driven Development):
- Использовали Behave для Python. Писали сценарии на Gherkin (
Given-When-Then). - Это чтобы бизнес-аналитики, разработчики и мы, тестировщики, говорили на одном языке. А то получается: «Хочу, чтобы было удобно» — «Что такое "удобно", блядь?».
- Использовали Behave для Python. Писали сценарии на Gherkin (
Общий процесс, если коротко: Сначала всё щупаем руками. Потом, для самых важных и стабильных штук, пишем автотесты. Эти автотесты потом встраиваем в CI/CD пайплайн (типа Jenkins или GitLab CI), чтобы они сами запускались при каждом новом коммите. Если всё зелёное — ок. Если нет — все бегут разбираться, чья тут, блядь, вина. Вот так вот, без красивостей, но зато работало.