На каком стеке работал?

«На каком стеке работал?» — вопрос из категории Софт-скиллы, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

В своей практике я работал со следующим стеком технологий для автоматизации тестирования:

  • Языки программирования: Основной — Java (сборка Maven/Gradle). Также использовал Python для скриптов и прототипирования.
  • UI-тестирование: Selenium WebDriver 4 (Java) в связке с JUnit 5/TestNG. Для современных веб-приложений применял Playwright (Java/TypeScript) и Cypress.
  • API-тестирование: REST Assured (Java) для REST API, Postman с коллекциями и Newman для запуска в CI, GraphQL через специализированные клиенты.
  • Мобильное тестирование: Appium для нативных и гибридных iOS/Android приложений.
  • Инфраструктура и инструменты:
    • CI/CD: Jenkins, GitLab CI, GitHub Actions.
    • Отчетность: Allure Framework, ExtentReports.
    • Контейнеризация: Docker для изоляции тестового окружения.
    • Управление тестами: TestRail, Zephyr.

Пример базового UI-теста на Java + Selenium + JUnit 5:

import org.junit.jupiter.api.*;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import static org.junit.jupiter.api.Assertions.assertTrue;

public class LoginTest {
    private WebDriver driver;

    @BeforeEach
    void setUp() {
        driver = new ChromeDriver();
    }

    @Test
    void successfulLoginTest() {
        driver.get("https://example.com/login");
        driver.findElement(By.id("username")).sendKeys("test_user");
        driver.findElement(By.id("password")).sendKeys("pass123");
        driver.findElement(By.id("submit")).click();
        assertTrue(driver.getPageSource().contains("Welcome"));
    }

    @AfterEach
    void tearDown() {
        driver.quit();
    }
}