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

Ответ

Стек инструментов для тестирования:

  • Ручное тестирование:
    • Управление тест-кейсами и чек-листами в TestRail, Qase.
    • Отслеживание дефектов в Jira, YouTrack.
  • Автоматизация UI:
    • Selenium WebDriver с использованием Python (pytest) или Java (JUnit/TestNG).
    • Playwright для надежных кросс-браузерных тестов.
  • API-тестирование:
    • Ручные проверки и коллекции в Postman.
    • Автоматизация с помощью REST Assured (Java) или requests + pytest (Python).
    • Работа со спецификациями OpenAPI/Swagger.
  • Работа с базами данных:
    • Написание SQL-запросов для валидации данных (PostgreSQL, MySQL).
  • Интеграция в CI/CD:
    • Запуск автотестов в пайплайнах Jenkins, GitHub Actions, GitLab CI.
  • Мобильное тестирование:
    • Использование эмуляторов/симуляторов (Android Studio, Xcode).
    • Автоматизация с Appium.

Пример автотеста на Python (pytest + Selenium WebDriver):

import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By

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

    driver.find_element(By.ID, "username").send_keys("valid_user")
    driver.find_element(By.ID, "password").send_keys("valid_pass123")
    driver.find_element(By.ID, "submit-btn").click()

    welcome_message = driver.find_element(By.CSS_SELECTOR, ".welcome-header").text
    assert "Welcome, valid_user!" in welcome_message

    driver.quit()

Ответ 18+ 🔞

Вот, смотри, как это всё на самом деле выглядит, если без этих ваших красивых презентаций. Стек инструментов, блядь, который реально работает, а не просто для галочки в резюме.

Чем я, сука, обычно воюю:

  • Ручное тестирование (старая добрая ручка):
    • Тест-кейсы и чек-листы — TestRail или Qase, чтобы не превратиться в обезьяну с бананом, которая всё держит в голове и потом нихуя не помнит.
    • Баги — Jira или YouTrack. Главное, чтобы тикет не выглядел как «всё сломалось, почините». А то чувствуешь себя идиотом, когда начинаешь разбираться.
  • Автоматизация UI (чтобы не кликать одно и то же 300 раз):
    • Selenium WebDriver — классика, как мамин борщ. На Python с pytest или на Java. Работает, но иногда ведёт себя как пьяный мартышлюшка в хромовом зоопарке.
    • Playwright — вот это, блядь, свежая струя. Поувереннее себя чувствует, особенно с этими вашими современными одностраничными приложениями.
  • API-тестирование (там, где вся магия творится):
    • Postman — для быстрых пинков по API, чтобы понять, жива ли эта штука вообще.
    • Автоматизация — REST Assured (Java) или requests + pytest (Python). Когда надо проверить, что бэкенд не гонит хуйню вместо JSON.
    • Swagger/OpenAPI — святое писание. Если его нет, то подозрение ебать чувствую.
  • Базы данных (чтобы знать, куда данные деваются):
    • SQL. Просто SQL. Написал запрос, получил ответ, понял, что данные не там, где должны быть. PostgreSQL, MySQL — да похуй, главное, чтобы запрос работал.
  • CI/CD (чтобы всё само бегало):
    • Jenkins, GitHub Actions, GitLab CI. Настроил пайплайн — и пусть эти автотесты сами себе ебут мозг по ночам, а ты спишь.
  • Мобилка (отдельный вид ада):
    • Эмуляторы — Android Studio, Xcode. Иногда тормозят так, что хочется комп в окно выкинуть.
    • Appium — для автоматизации. Мощная штука, но настроить её — это тот ещё квест, ёпта.

А вот, смотри, как выглядит типичный автотест. Просто, без наворотов, но рабочий.

import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By

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

    driver.find_element(By.ID, "username").send_keys("valid_user")
    driver.find_element(By.ID, "password").send_keys("valid_pass123")
    driver.find_element(By.ID, "submit-btn").click()

    welcome_message = driver.find_element(By.CSS_SELECTOR, ".welcome-header").text
    assert "Welcome, valid_user!" in welcome_message

    driver.quit()

Вот и вся магия. Сделал — запустил — получил зелёную галочку. А если нет — ну, значит, пора искать, кто из разработчиков опять что-то сломал, пока ты не видел.