Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
1020 - Telegram Web
Telegram Web
Мы начинаем!

Вводное
занятие курса «Автоматизация тестирования на JavaScript + Playwright».

🔗 Подключайтесь по ссылке.
От чего зависит эффективность автотестов?

От их правильного написания и поддерживаемости!

Поэтому сегодня — немного о практиках, которые помогут вам создавать качественные автотесты на Java.

1. Используйте понятные и описательные названия тестов

Названия тестов должны четко отражать их цель. Это упрощает понимание кода всеми членами команды.

Например:

// Хорошо
public void verifyLoginWithValidCredentials() { ... }


// Плохо
public void test1() { ... }


Описательные названия помогают быстро понять, что проверяет тест, без необходимости изучения его внутренней логики.

2. Применяйте Page Object Model (POM)

Page Object Model позволяет отделить логику теста от структуры веб-страницы, что делает код более модульным и удобным для поддержки при изменениях интерфейса.

Пример использования:

// Класс

Page Object
public class LoginPage {
private By usernameField = By. id("username");
private By passwordField = By. id("password");
private By loginButton = By. id("loginBtn");

public void enterUsername(String username) {
driver.findElement(usernameField).sendKeys(username);
}

public void enterPassword(String password) {
driver.findElement(passwordField).sendKeys(password);
}

public void clickLoginButton() {
driver.findElement(loginButton).click();
}
}


// Тестовый сценарий

LoginPage loginPage = new LoginPage(driver);
loginPage.enterUsername("john.doe");
loginPage.enterPassword("password123");
loginPage.clickLoginButton();


POM способствует повторному использованию кода и улучшает читаемость тестов.

3. Используйте параметризацию и data-driven подход

Параметризованные тесты позволяют запускать один и тот же сценарий с различными входными данными, что увеличивает охват тестирования без дублирования кода.

@ ParameterizedTest
@ CsvSource({"john.doe, password123", "jane.smith, test@123"})
public void verifyLogin(String username, String password) {
LoginPage loginPage = new LoginPage(driver);
loginPage.enterUsername(username);
loginPage.enterPassword(password);
loginPage.clickLoginButton();
}


Этот подход делает тесты более гибкими и масштабируемыми.

4. Следуйте принципу AAA (Arrange, Act, Assert)

Структурируйте тесты в три этапа:

Arrange: подготовка данных и окружения.

Act: выполнение действия.

Assert: проверка результата.

Пример:

@ Test
public void testAddition() {
// Arrange
Calculator calculator = new Calculator();

// Act
int result = calculator.add(2, 3);

// Assert
assertEquals(5, result);
}


Этот подход делает тесты более организованными и легко читаемыми.

5. Логирование и отчетность

Добавляйте логирование в тесты для диагностики проблем:

log. info("Entering username: " + username);
log. info("Clicking on the login button");

Интеграция инструментов отчетности (например, Allure) помогает визуализировать результаты тестов и быстро выявлять ошибки.

6. Регулярные ревью кода

Проводите регулярные ревью автотестов для повышения качества кода. Это помогает выявить потенциальные проблемы, улучшить читаемость и обеспечить соблюдение стандартов кодирования.

7. Автоматизация и CI/CD

Используйте инструменты автоматизации (Maven, Gradle) для запуска тестов в рамках CI/CD пайплайнов. Это ускоряет процесс разработки и обеспечивает стабильность приложения на всех этапах.

Следуйте этим практикам и создавайте эффективные автотесты, которые легко поддерживаются в долгосрочной перспективе.

Этому и многому другому научим вас на базовом курсе по автоматизации на Java.

🔗 Зарегистрируйтесь на первый открытый урок по ссылке.
📱 Обучая Java, мы всегда начинаем с базовых концепций, необходимых для создания качественных автотестов

1. Основы синтаксиса и типы данных

Для начала важно освоить базовый синтаксис Java: переменные, операторы (арифметические, логические и сравнения), условные конструкции (if-else, switch) и циклы (for, while, do-while).

Эти элементы — фундамент для написания простых программ и автотестов.

Пример: проверка статуса элемента на веб-странице с использованием цикла:

for (WebElement element : elements) {
if (element.isDisplayed()) {
System.out.println("Элемент отображается.");
}
}


2. Объектно-ориентированное программирование (ООП)

Java — это объектно-ориентированный язык, поэтому понимание принципов ООП крайне важно:

Классы и объекты. Классы описывают сущности, а объекты являются их экземплярами.

Наследование: позволяет переиспользовать код.

Полиморфизм: дает возможность использовать один интерфейс для различных реализаций.

Инкапсуляция: помогает скрыть детали реализации.

Для тестировщиков эти принципы особенно полезны при работе с паттерном Page Object Model (POM), где каждый веб-элемент представляется как объект.

3. Коллекции

Коллекции в Java (например, List, Set, Map) необходимы для работы с большими объемами данных. Например, вы можете хранить данные тест-кейсов или результаты выполнения тестов в коллекциях.

Пример использования:

List<String> testCases = new ArrayList<>();
testCases.add("Login Test");
testCases.add("Registration Test");
System.out.println("Всего тестов: " + testCases.size());


4. Исключения и обработка ошибок

В автоматизации важно уметь обрабатывать исключения, чтобы тесты не прерывались из-за ошибок. Конструкции try-catch позволяют перехватывать ошибки и выполнять альтернативные действия.

Пример:

try {
driver.findElement(By.id("nonexistent")).click();
} catch (NoSuchElementException e) {
System.out.println("Элемент не найден.");
}


5. Юнит-тестирование

Для проверки корректности кода используются фреймворки юнит-тестирования, такие как JUnit или TestNG. Они позволяют структурировать тесты, задавать предусловия (@Before), постусловия (@After) и объединять тестовые сценарии в группы.

Пример простого теста:

@Test
public void testAddition() {
int result = Calculator.add(2, 3);
assertEquals(5, result);
}


6. Работа с потоками

Многопоточность в Java позволяет запускать несколько тестов параллельно, что ускоряет выполнение автотестов.

Например, в Selenium, Selenide и Playwright можно использовать потоки для одновременного запуска тестов на разных браузерах.

7. Генерики

Генерики позволяют писать универсальный код, который может работать с различными типами данных. Это повышает читаемость и повторное использование кода.

Пример:

public class TestData<T> {
private T data;
public void setData(T data) {
this.data = data;
}
public T getData() {
return data;
}
}

Java для тестировщика — это больше, чем просто инструмент. Это язык, который позволяет создавать мощные и гибкие фреймворки.

Приходите на первое занятие, даже если никогда не писали код. Программа подходит новичкам 🙂

🔗 Буду на вводном!
Please open Telegram to view this post
VIEW IN TELEGRAM
Отзыв Каида на курс «Java Base» 🤍

«..Несмотря на рекомендацию коллег, оставались сомнения: вдруг не подойдет формат? Вдруг не получится?

Однако очень быстро все сомнения развеялись: обучение проходит в гибком графике, можно учиться в любое время, пересматривать материалы и сочетать с работой. А практика с первого дня и поддержка менторов позволяют быстро закрепить материал..»

Каид, спасибо за отзыв! Наши студенты и их успешное обучение — наша сама большая мотивация.

Кстати, уже завтра в 20:00 (мск) ждем вас на старте 35 потока по направлению «Java Base».

🔗 Зарегистрируйтесь, чтобы не пропустить встречу.
Please open Telegram to view this post
VIEW IN TELEGRAM
Мы начинаем!

Вводное
занятие курса «Автоматизация тестирования на Java».

🔗 Подключайтесь по ссылке.
Forwarded from LikeaDuck🦆
This media is not supported in your browser
VIEW IN TELEGRAM
#selenide #selenoid #docker

Хочу рассказать историю потерянного выходного дня.

Часть 1: Пролог

Начиналось все, как обычно, хорошо - я просто решил добавить пару скриншотных тестов на canvas, который отрисовывается с анимацией библиотекой chart.js, в наш учебный проект qa.guru - Niffler.

Канвас - это такая штука, содержимое которой можно проверить только скриншотом - что там будет нарисовано, одному chart.js (в моем случае) известно. Т.к. отрисовка происходит с анимацией, то добавляем классический Thread.sleep на пару секунд, делаем скриншот, сравниваем с expected. Здесь передаем привет докладам про "антипаттерны автотестов", где минут 10 говорят, что Thread.sleep в тестах быть не должно🤌

Но, я не об этом.

Этот тест прекрасно работает локально, вот, буквально, 10 из 10 попыток - passed

И 10 из 10 падает при попытках запустить в Selenoid (как на официальном selenoid/vnc_chrome:127.0, так и на неофициальном twilio/selenoid:chrome_stable_135) 🔴

Почему? Читай далее, а пока накидывай варианты ⬇️
Allure Reports | зачем отчетность в автотестировании

Расскажет разработчик Allure Reports и Allure TestOps Артем Ерошенко 👀

Узнайте все об эффективной работе с инструментом у его создателя на курсе «Java Base». Поселение места на апрельский поток 👉 здесь.

Allure Reports — это open-source фреймворк, ставший стандартом для создания отчетов в индустрии QA.

Он создает визуально привлекательные, интерактивные отчеты о выполнении тестов. Поддерживает множество языков программирования и интегрируется с большинством популярных тестовых фреймворков (JUnit, TestNG, Pytest и др.) и CI/CD инструментов (Jenkins, TeamCity, GitHub Actions).

За что инженеры выбирают Allure

Детализация тестов

Отображение шагов, статусов, временных меток и продолжительности выполнения.

Визуализация данных

Графики, диаграммы и временные линии для наглядного анализа.

Исторический анализ

Сравнение текущих результатов с предыдущими запусками.

Гибкость

Возможность кастомизации отчетов под нужды проекта.

Интерактивность

Группировка по категориям, историям пользователей или функциональным модулям.

А как вы визуализируете результаты тестов?
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Vitalii Kotov
Привет, коллеги.

Сегодня и послезавтра в LearnQA пройдут два вебинара на тему: «Основы Go для тестировщиков».

Узнайте, как использовать Go для эффективной автоматизации тестирования!

🌐 Ссылка на мероприятие: https://www.learnqa.ru/go_webinar

❗️ Вебинар разделен на две части, каждая по два с половиной часа.
🗓 Даты проведения: 22 и 24 апреля в 20:00 (UTC+3)

За два вебинара мы успеем:
Разобраться, зачем вообще тестировщику изучать Go и чем он отличается от других языков
Настроить с нуля рабочую среду для разработки на Go
Изучить основы синтаксиса: переменные, функции, условия и циклы
Понять, как устроена система типов в Go и какие особенности есть у типизации
Поработать с указателями и разобраться с обработкой ошибок
Освоить тестирование в Go: табличные тесты, subtests, setup/teardown
Познакомиться с популярными библиотеками для тестов: testify, gomock, ginkgo
Понять, как в Go реализована асинхронность: горутины, каналы, поработать с пакетом sync
Разобраться с дженериками и узнать, как они используются в тестах
Выложить на свой Github и добавить в свое портфолию проект на Go

Стек: Go, Go Modules, testify, gomock, ginkgo

Для кого будет полезен вебинар:
для QA-инженеров, которые хотят добавить Go в свой стек
для автоматизаторов, которым нужно писать тесты на Go или работать с микросервисами на этом языке
для тех, кто изучал Python, Java или JavaScript и хочет попробовать строгую, но простую альтернативу
для инженеров, которым интересна асинхронность и работа с многопоточностью без боли

Мы обязательно сделаем видеозапись — она будет доступна всем зарегистрированным участникам. Если не получится присоединиться в прямом эфире, вы сможете посмотреть запись в удобное для вас время. Главное — не забудьте зарегистрироваться!

Промокод на скидку 15% для участников группы: LQAGOGURU

Узнать больше и записаться на вебинар можно по ссылке: https://www.learnqa.ru/go_webinar
Please open Telegram to view this post
VIEW IN TELEGRAM
Для новичков в QA без опыта в ручном тестировании 🔥🔥🔥

Запускаем второй поток курса «Вход в IT: основы ручного тестирования».

Погружаемся в QA под чутким руководством автора программы Ивана Тебенькова.

Иван — наш наставник на курсах по Python и Python Advanced и соавтор программ для многих наших занятий.

Иван любит преподавать и знает, как сделать занятие веселым и запоминающимся ⚡️

За 8 недель обучения:

- Вы узнаете, как устроено тестирование в IT-командах.

- Научитесь составлять чек-листы и баг-репорты.

- Освоите Jira, AllureTestOps и работу с TMS-системами.

- Разберётесь в том, как устроены веб-приложения, как работает браузер, HTML, CSS и JavaScript.

Стартуем 12 мая, успейте зарегистрироваться.

🔗 Программа курса и запись по ссылке ▶️
Please open Telegram to view this post
VIEW IN TELEGRAM
QA.GURU | Автоматизация, ручное тестирование, карьера в QA pinned «Для новичков в QA без опыта в ручном тестировании 🔥🔥🔥 Запускаем второй поток курса «Вход в IT: основы ручного тестирования». Погружаемся в QA под чутким руководством автора программы Ивана Тебенькова. Иван — наш наставник на курсах по Python и Python…»
Это база: HTML как фундамент фронтенда

На курсе «Вход в IT: основы ручного тестирования» отдельный блок посвящен HTML. Почему?

Мы изучаем язык разметки, на котором строится структура любой веб-страницы. Всё, что видит пользователь в браузере, от заголовков до изображений, описывается с помощью HTML.

Для тестировщика знание HTML — реальный инструмент для качественной проверки веб-приложений. Без него сложно анализировать причины багов, формулировать отчёты и предложения по улучшению.

Примеры HTML-элементов

Заголовок:
<h1>Добро пожаловать!</h1>


Кнопка:
<button>Отправить</button>


Форма:
<form>
<label for="email">Email:</label>
<input type="email" id="email" name="email">
<button type="submit">Отправить</button>
</form>


Ссылка:
<a href="https://example. com">Перейти на сайт</a>


Изображение:
<img src="logo.png" alt="Логотип">


Тестировщику нужно быть уверенным в том, что интерфейс работает корректно: элементы отображаются правильно, они доступны и реагируют на действия пользователя.

Для этого важно понимать, как устроена страница изнутри.

▶️ Проверка верстки

Зная HTML, QA сможет быстро найти ошибки в расположении и отображении элементов, увидеть, где нарушена структура.

Например, если кнопка
<button>

оказалась вне формы
<form>

это может повлиять на её работу.

▶️ Работа с DevTools

Инструменты разработчика в браузере позволяют смотреть и изменять HTML-код страницы. Это удобно для поиска багов, проверки стилей и поведения элементов. Например, можно проверить, что у всех изображений есть важный для доступности атрибут alt.

▶️ Тестирование доступности

Понимание тегов и атрибутов HTML помогает оценить, насколько сайт доступен для разных людей. Например, правильно ли размечены кнопки, есть ли alt-тексты у изображений.

▶️ Автоматизация тестирования

Для написания автотестов важно уметь выбирать корректные локаторы элементов (например, по тегу, классу или id), это невозможно без понимания структуры HTML.

Навыки HTML помогут вам эффективнее находить и описывать баги, выстраивать грамотную коммуникацию с разработчиками и автоматизировать рутинные проверки.

Ждем вас на старте потока 12 мая. Подробнее о тарифах здесь ▶️
Please open Telegram to view this post
VIEW IN TELEGRAM
Майские скидки на курсы Java и Python 🌸

Прокачайтесь за лето и ворвитесь в осенний найм с новыми знаниями!

Займите места на ближайших потоках Java и Python со скидкой до 25%.

🔜 Акция до 15 мая, но может закончиться раньше — как только все места займут.

1️⃣ Классический курс по автоматизации тестирования на Java, 10 мест со скидкой 25% 

Для ручных тестировщиков и новичков в автоматизации. Автотестировщикам на любом языке для расширения стека.

Научитесь разрабатывать автотесты на Java для веб, мобильных приложений и API. Составите портфолио из реальных кейсов, освоите навыки самопрезентации на собеседованиях.

2️⃣ Классический курс по автоматизации тестирования на Python, 10 мест со скидкой 25% 

Для ручных тестировщиков и начинающих автоматизаторов. Автотестировщикам на любом языке для расширения стека.

Научитесь разрабатывать автотесты на Python для веб, мобильных приложений, API и строить инфраструктуру. Упаковывать кейсы и проходить собеседования.

3️⃣ Продвинутый курс по автоматизации тестирования «Java Advanced 2.0», 25 мест со скидкой 15%

Для автотестировщиков на Java, готовых выйти на уровень Senior+.

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

Усилите резюме и потренируетесь в прохождении собеседований.

4️⃣ Продвинутый курс по автоматизации тестирования «Python Advanced», 20 мест со скидкой 20%

Для автотестировщиков на Python
, готовых выйти на уровень Senior+.

Прокачаете знания: освоите архитектуру и дизайн на продвинутом уровне, будете работать с базами данных и Kafka из тестов.

Усилите резюме и потренируетесь в прохождении собеседований.

Обучение с нами:

👉 Создание и запуск рабочих проектов на GitHub.

👉 Постоянная поддержка кураторов и других студентов в закрытом чате потока. Теперь вы часть комьюнити!

👉 Бессрочный доступ к материалам.

А еще активная работа над резюме, практика собеседований и многое другое!

Занять места со скидкой ▶️
Please open Telegram to view this post
VIEW IN TELEGRAM
Реальные примеры тестирования с Python

От умения строить тесты по принципу «от простого к сложному» и грамотно применять инструменты языка зависит качество и надежность кода.

Проще всего освоить работу с любым языком, включая Python, через реальные примеры. Мы начнём с простых проверок и шаг за шагом покажем, как перейти к более продвинутому тестированию на Python.

1. Начинаем с простых unit-тестов

Unit-тесты проверяют отдельные функции и методы. В Python для этого отлично подходит встроенный модуль unittest.

Пример:

python
import unittest

def add(a, b):
return a + b

class TestMath(unittest.TestCase):
def test_add(self):
self.assertEqual(add(2, 3), 5)


Такой тест быстро выявляет ошибки в логике отдельных функций.

2. Переходим к параметризации с pytest

Чтобы не дублировать код, используйте параметризацию — это позволяет запускать один тест с разными входными данными.

Пример с использованием pytest:

python
import pytest

@ pytest.mark.parametrize("a, b, expected", [
(2, 3, 5),
(0, 0, 0),
(-1, 1, 0),
])
def test_add(a, b, expected):
assert add(a, b) == expected


Параметризация делает тесты гибкими и расширяет покрытие.

3. Тестируем API с requests и pytest

Python подходит для автоматизации API-тестов. Используем библиотеку requests и pytest:

python
import requests

def test_status_code():
response = requests.get("https://api. example. com/status")
assert response.status_code == 200

Такой подход позволяет быстро проверять работоспособность внешних сервисов.

4. Автоматизируем UI с Selenium

Для тестирования веб-интерфейсов используем Selenium WebDriver.

Применяйте паттерн Page Object для структурирования кода.

python
from selenium import webdriver

class LoginPage:
def init(self, driver):
self.driver = driver

def login(self, username, password):
self.driver.find_element_by_id("username").send_keys(username)
self.driver.find_element_by_id("password").send_keys(password)
self.driver.find_element_by_id("loginBtn").click()

def test_login():
driver = webdriver.Chrome()
login_page = LoginPage(driver)
login_page.login("user", "pass")
# Добавьте проверки успешного входа
driver.quit()


Page Object повышает читаемость и удобство поддержки тестов.

5. Добавляем отчётность и интеграцию с CI/CD

Внедряйте инструменты для генерации отчётов (например, Allure) и запускайте тесты в CI/CD пайплайне. Это ускоряет обратную связь и стабилизирует процесс разработки.

Эти и многие другие приёмы вы освоите на курсе по автоматизации тестирования на Python.

Зарегистрируйтесь на открытый урок по Python по этой ссылке
Только начинаете путь в IT?👨🏼‍💻

Мы знаем, как это страшно:
— непонятно, с чего начать
— кажется, что знаний не хватит
— боязнь провалить собеседование

Этот курс создан, чтобы снять страхи и уверенно ввести вас в профессию QA-инженера.

Что вы получите:

🎯 Практику, приближенную к реальной работе
С первого модуля вы начнёте выполнять задачи, как в настоящей IT-компании.

🧠 Только нужные навыки для старта:
Тест-кейсы — научитесь писать инструкции, которые ждут от новичков

Поиск и описание багов — так, чтобы разработчики легко поняли суть

Отчёты — покажете, что сделано и что требует внимания

Понимание процессов — увидите, как работает проект изнутри

Коммуникация — будете уверенно общаться в команде

💡 Результат: вы не просто узнаете, что делает тестировщик, а почувствуете, что сами можете им стать.
И да — после курса вам будет не страшно идти на первую работу.


🚀 Старт уже скоро — присоединяйтесь!
Начните карьеру в IT с поддержкой и понятным планом.
2025/06/14 17:54:42
Back to Top
HTML Embed Code: