QA Automation: Metrics, Bugs, and Automation

Практический блог об автоматизации тестирования на Playwright и JavaScript. Разбираем метрики качества, баги и эффективные решения для QA-инженеров.

Основные разделы:

«Да, тесты ломаются. Но и сердца тоже. Главное — чинить и идти дальше.»

Галерея Builder Pattern: 7 шедевров создания объектов. Часть II

← Читайте первую часть: Галерея Builder Pattern. Классическое искусство Галерея Builder Pattern: 7 шедевров создания объектов. Часть II Иллюстрация: абстрактное искусство, вдохновлённое темой паттернов. Источник: Freepik 🎭 Зал 2: Современное искусство 3️⃣ «Конфиг-объекты: Супрематизм» (Паттерн статической конфигурации или Static Configuration Pattern) Стиль: Малевич // Минимальный класс для статической конфигурации class ConfigBuilder { static createAdminConfig() { return { name: 'Администратор', permissions: ['all'], role: 'admin' }; } static createUserConfig() { return { name: 'Пользователь', permissions: ['read', 'edit'], role: 'user' }; } static createModeratorConfig() { return { name: 'Модератор', permissions: ['read', 'edit', 'delete'], role: 'moderator' }; } } // Примеры вызова — как готовые картины const adminConfig = ConfigBuilder.createAdminConfig(); const userConfig = ConfigBuilder.createUserConfig(); const moderatorConfig = ConfigBuilder.createModeratorConfig(); console.log(adminConfig); // Результат: { name: 'Администратор', permissions: ['all'], role: 'admin' } 🖌️ Критики говорят: ...

June 19, 2025

Галерея Builder Pattern: 7 шедевров создания объектов. Часть I

Галерея Builder Pattern: 7 шедевров создания объектов. Часть I 🎨 Галерея Builder Pattern: 7 шедевров создания объектов. Часть I Создавать тестовые данные вручную — как рисовать «Чёрный квадрат» пальцами. Возможно, но больно! 💢 Билдеры — ваши кисти и резцы. Выбирайте инструмент как истинный мастер! 🖼️ Моя исповедь куратора Когда-то я писала объекты, как Ван Гог в период безумия — хаотично и страстно. Пока однажды сгенерированные данные не сломали прод… Теперь я создаю данные с изяществом да Винчи. Добро пожаловать на выставку))) ...

June 18, 2025

Тестовое задание: incrementString - Алгоритм инкремента строки для собеседований QA Automation

Тестовое задание: incrementString 💝 НОВОЕ ТЕСТОВОЕ ЗАДАНИЕ: ИНКРЕМЕНТ СТРОКИ Знаете, что общего между выращиванием сада и написанием тестов? И то, и другое требует регулярного ухода, терпения и умения видеть красоту в мелочах. Это задание поможет вам прокачать навыки работы со строками, тест-дизайна и автоматизации. 🌱 Задание Реализовать функцию incrementString, которая принимает строку и возвращает новую строку, увеличивая её на 1. Примеры: incrementString("qamba") // "qamba1" incrementString("qaguru23") // "qaguru24" incrementString("qamba0042") // "qamba0043" incrementString("qaguru9") // "qaguru10" incrementString("qamba099") // "qamba100" 🌱 Требования Написать функцию incrementString. Написать автотесты для этой функции. Тесты должны проверять все граничные случаи (например, отсутствие чисел, ведущие нули, большие числа, пустая строка). 💫 Что проверяем Навыки автоматизации тестирования Умение писать чистый и поддерживаемый код Понимание алгоритмов Навыки работы со строками Навыки тест-дизайна Умение тестировать граничные случаи ✨ Важно Помните, что ревьювер — как садовник: он ценит не только функциональность, но и красоту кода. Пусть ваш код будет таким же чистым и ухоженным, как японский сад камней. ...

June 18, 2025

Тестовый сервис: Идеальный ресторан для практики API-тестирования

🍽 Тестовый сервис: Или как я нашла идеальный ресторан для практики Знаете, что общего между тестовым сервисом и рестораном? И то, и другое должно быть вкусным, быстрым и без сюрпризов в виде тараканов в супе! А еще — это отличное место для практики, как кулинарная школа для поваров! 🎯 Почему этот проект — как кулинарная школа? 1. Готов к работе — как профессиональная кухня: Docker (как плита, которая всегда работает) Swagger (как меню с понятными ценами) Баги (как специи — в меру) База данных (как холодильник с продуктами) 2. Быстрый старт — как заказ навынос: # Не надо так — это как ждать официанта в пустом ресторане npm install npm start # Делайте так — это как заказ через приложение git clone https://github.com/romsper/qa-backend-playground docker compose up -d # Блюдо подано! 3. Что в меню: API-тестирование (как основное блюдо) Работа с БД (как работа с продуктами) Docker (как управление кухней) CI/CD (как система контроля качества) 🍳 Что можно практиковать? 1. Автоматизация тестирования: Написание API-тестов (как приготовление блюд) Работа с базой данных (как управление складом) Настройка Docker (как организация кухни) 2. Портфолио: Найденные баги (как отзывы гостей) Улучшения кода (как улучшение рецептов) Автоматизация процессов (как оптимизация работы кухни) 3. Новые навыки: Подключение к БД (как работа с поставщиками) Настройка CI/CD (как система контроля качества) Работа с Docker (как управление кухней) 🍷 Как начать готовить? 1. Первое знакомство с кухней: Клонируйте репозиторий (как вход в ресторан) Запустите сервис (как включение плиты) Изучите API (как изучение меню) Подключитесь к БД (как проверка склада) 2. Приготовление блюда: Напишите тесты (как готовка) Найдите баги (как дегустация) Улучшите код (как добавление специй) Настройте CI/CD (как система контроля качества) 3. Подача на стол: Стабильные тесты (как горячее блюдо) Найденные баги (как отзывы гостей) Улучшенный код (как улучшение рецепта) Автоматизированные процессы (как отлаженная кухня) 🍰 P.S. Кстати, у меня пока нет портфолио с тестами. Я как шеф, который хранит все рецепты в голове и говорит ‘ну, примерно так’. Но я уже начала записывать! А пока — тренируйтесь на этом проекте, он как хороший учебник по кулинарии! ...

June 18, 2025

Полное руководство: Умный мониторинг тестов Playwright через GitLab CI

Почему стандартные расписания в CI — это боль Личный опыт: Признаюсь честно: я не фанат расписаний в CI. История запусков по таймеру часто превращается в: Ночные падения тестов - “Кто сломал билд в 3:00?” Проблемы окружения - “Это баг или тестовая среда упала?” Ресурсные ограничения - “Почему всё падает при параллельном запуске?” Решение: Два уровня мониторинга Playwright 1. Часовой health-check (термометр системы) # .gitlab-ci.yml hourly_healthcheck: script: - echo "Запуск @health тестов Playwright" - npx playwright test --grep "@health" only: variables: - $TEST_MODE == "HEARTBEAT" 2. Полночный аудит (генеральная уборка) # .gitlab-ci.yml midnight_audit: script: - echo "Полный аудит через Playwright" - npx playwright test --grep "@audit" only: variables: - $TEST_MODE == "FULL_SCAN" 3. Настройка расписания в GitLab CI Создаем новый schedule. Перейдите: CI/CD → Schedules. Нажмите New schedule. ...

April 10, 2025