Ответ
Мой текущий фокус — это углубление в автоматизацию тестирования веб-приложений и API, так как это позволяет эффективно обеспечивать качество на большинстве современных проектов. Я активно работаю со стеком, включающим Selenium WebDriver для UI и RestAssured или аналогичные библиотеки для API-тестирования.
Например, в моей практике это выглядит так:
-
Для UI-тестов: Построение стабильных фреймворков на основе Page Object Model с использованием явных ожиданий (WebDriverWait).
public class LoginPage { @FindBy(id = "username") private WebElement usernameField; public HomePage login(String user, String pass) { usernameField.sendKeys(user); driver.findElement(By.id("password")).sendKeys(pass); driver.findElement(By.tagName("button")).click(); return new HomePage(driver); } } -
Для API-тестов: Проверка не только статус-кодов, но и схемы ответов, бизнес-логики и граничных условий.
@Test public void createUser_Returns201AndValidBody() { User newUser = new User("John Doe", "engineer"); given() .contentType(ContentType.JSON) .body(newUser) .when() .post("/api/users") .then() .statusCode(201) .body("name", equalTo("John Doe")) .body("id", notNullValue()); }При этом я слежу за развитием инструментов (например, переход на Playwright или Cypress) и методологий (например, shift-left testing), чтобы моя специализация оставалась актуальной и эффективной.
Ответ 18+ 🔞
Да ты послушай, на что я сейчас время трачу! Сижу, блядь, углубляюсь в эту автоматизацию тестирования, как будто от этого жизнь моя зависит. Ну а хули делать — на большинстве проектов сейчас без этого нихуя не сдвинешься, качество надо как-то обеспечивать, а не пальцем в небо тыкать.
Вот смотри, у меня сейчас весь фокус на двух вещах висит: на вебе и на этих ваших API. С вебом всё понятно, там Selenium WebDriver — старый, добрый, местами ебаный вротберунчик, но свой. Главное — фреймворк нормальный построить, чтобы не разваливался от каждого чиха. Я, например, Page Object Model впариваю везде, где только можно, и явные ожидания (этот WebDriverWait) — без них просто терпения ноль, ебать, тесты гоняются как угорелые и падают на ровном месте.
Смотри, как это примерно выглядит, чтоб ты понимал масштаб:
public class LoginPage {
@FindBy(id = "username")
private WebElement usernameField;
public HomePage login(String user, String pass) {
usernameField.sendKeys(user);
driver.findElement(By.id("password")).sendKeys(pass);
driver.findElement(By.tagName("button")).click();
return new HomePage(driver);
}
}
Вроде бы ничего сложного, но если архитектуру криво заложить, потом будешь ебись оно конём с поддержкой. А с API вообще отдельная песня — тут уже RestAssured или что-то похожее. И суть же не в том, чтобы просто статус 200 поймать, а чтоб всё по-взрослому: схему ответа проверить, бизнес-логику, все эти граничные условия. Иначе какой смысл?
Вот типа такого:
@Test
public void createUser_Returns201AndValidBody() {
User newUser = new User("John Doe", "engineer");
given()
.contentType(ContentType.JSON)
.body(newUser)
.when()
.post("/api/users")
.then()
.statusCode(201)
.body("name", equalTo("John Doe"))
.body("id", notNullValue());
}
Казалось бы, красота. Но нет, подозрение ебать чувствую ко всему этому! Потому что мир-то не стоит на месте. Вот уже все вокруг про Playwright или Cypress орут, методики новые появляются, типа этого shift-left testing. Сиди и думай, э, бошка, думай, не проще ли на новый инструмент переползти, пока от старого не отстал как хуй с горы.
Так что специализацию эту приходится постоянно шевелить, чтоб не превратиться в манду с ушами, которая знает только одну кнопку. А то будет вам хиросима и нигерсраки на проекте, когда всё посыпется, а ты с архаичными подходами. В общем, работа такая — волнение ебать постоянное, но зато скучно не бывает.