Библиотека тестировщика | QA, тестирование, quality assurance, manual testing, autotesting, ручное тестирование, автотесты
8.79K subscribers
1.2K photos
149 videos
23 files
2.54K links
Все самое полезное для тестировщика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/12538d6f

Работать у нас: https://job.proglib.io/

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Media is too big
VIEW IN TELEGRAM
Как относитесь к созданию своего жпт не через конструктор, а хардкорно через код?

🔥 — я своего завайбкодил

🏃‍♀️ Ссылка на курс
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩5🌚2👏1
😏 Фишка инструмента: кэширование авторизации между тестами

Cypress позволяет сохранять и восстанавливать сессию (cookies, localStorage, sessionStorage) при помощи команды cy.session(), чтобы логин не выполнялся перед каждым it. Это ускоряет тесты и делает их стабильнее.

Что еще полезного:

Ускоряет тесты — логин происходит единожды, остальные кейсы используют сохранённую сессию

Удобно для крупных e2e-сценариев с авторизацией

Поддерживает несколько сессий по разным ключам (пример: для разных ролей пользователя)

Как настроить:


beforeEach(() => {
cy.session(['qa@example.com', '123456'], () => {
cy.visit('/login')
cy.get('input[name="email"]').type('qa@example.com')
cy.get('input[name="password"]').type('123456')
cy.get('button[type="submit"]').click()
cy.url().should('contain', '/dashboard')
}, {
cacheAcrossSpecs: false
})
cy.visit('/dashboard')
})


➡️ cy.session() — кэширует сессию по идентификатору (массив или строка)

➡️ На следующий it Cypress восстановит сессию, минуя повторный логин

➡️ После cy.session() обязательно добавляйте cy.visit(), чтобы перейти на нужную страницу

💡 Дополнительно:

— Используйте cacheAcrossSpecs: true, чтобы сессия сохранялась между spec-файлами при запуске cypress run --browser electron (но могут быть нюансы с Chrome)

— Для валидации сессии можно добавить validate() опцию: при неуспехе — сессия пересоздаётся

— Cypress.session API позволяет отслеживать и очищать, если необходимо

🐸 Библиотека тестировщика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👏6🥰3😁1
💡 Как вывести резюме тестировщика в топ на HeadHunter

Вы знаете, как устроен баг-репорт, умеете писать автотесты и работать с API — но ваше резюме на HH никто не смотрит? Значит, пора перестать ждать и начать играть по правилам алгоритма.

Что в карточках:

Почему важно указать «Москву» даже на удалёнке

Когда лучше обновлять резюме, чтобы быть в топе

Какие ключевые слова повышают шансы QA-кандидата

Что дает кнопка «Хочу здесь работать»

И как видеовизитка может выделить вас среди других

Если хотите больше откликов — научитесь быть видимым для системы.

🔗 Полный текст статьи — по ссылке

🐸 Библиотека тестировщика
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🥰2
😵‍💫 Думает как тестировщик, действует как скрипт

Подсказка: если запускается сам и проверяет, что всё зелёное — это оно.

Что за функционал зашифрован? ✏️

🐸 Библиотека тестировщика

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩4🥰2😁1
📌 Тренажеры и песочницы для прокачки QA-навыков

Если хочется прокачать навыки руками, а не только читать теорию — вот подборка отличных ресурсов для практики:

➡️ Bug Magnet (плагин) — расширение для браузера, которое добавляет готовые edge-кейсы (пустые строки, спецсимволы, длинные значения) прямо в поля ввода.

➡️ Test Automation University — интерактивные курсы по автотестам: Selenium, Cypress, API, визуальное тестирование, BDD и многое другое.

➡️ QA playground — интерактивная песочница с багами и задачами для ручного тестирования.

➡️ Mindmap-тренажёры по тест-дизайну — rоллекция майнд-карт, «чек-листов мышления», ситуационных задач для развития exploratory testing и навыков анализа.

➡️ DemoQA — тестовый сайт с интерактивными элементами: формы, таблицы, алерты, дропдауны, drag-and-drop и др.

🐸 Библиотека тестировщика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰7❤‍🔥2👍2
🧠 Задача: поведение интерфейса

Вы тестируете веб-приложение на разных устройствах.
При ширине окна 768px интерфейс переключается с десктопной версии на мобильную: меню скрывается за иконку, блоки выстраиваются в колонку.

Что с наибольшей вероятностью определяет это поведение

🐸 Библиотека тестировщика

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🤩2🤔1
☝️ Последний шанс купить курсы Proglib Academy с доступом навсегда!

Это не просто летняя распродажа, это финал эпохи. Мы дарим скидку 40% на все курсы, включая полностью обновлённый курс по Python (предложение НЕ ДЕЙСТВУЕТ только на курс по AI-агентам для DS-специалистов).

Но главное: с 1 августа доступ ко всем новым курсам станет ограниченным. Успейте инвестировать в свои знания на самых выгодных условиях!

👉 Выбрать курс
🤩5
👍 Топ-вакансий для тестировщиков за неделю

Senior QA Engineer — 2 500 —‍ 3 500 $, удаленно

Junior QA engineer (нагрузочное тестирование) — офис (Москва)

Senior QA Automation Engineer — от 2 000 $, удаленно (Москва)

Инженер нагрузочного тестирования — 200 000 —‍ 255 000 ₽, гибрид (Москва)

Тестировщик мобильных игр — удаленно (Санкт-Петербург)

➡️ Еще больше топовых вакансий — в нашем канале QA jobs

🐸 Библиотека тестировщика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰5🤩2
⭐️ Как проверить пагинацию и фильтрацию в API

Пагинация и фильтрация — основа работы с большим объёмом данных в API. Неправильная реализация может привести к багам: дубли, пустые страницы.

1. Проверка пагинации по limit/offset (или page/size)

Пример:


GET /api/users?limit=10&offset=20


Проверяем:

🔴 Количество записей соответствует limit

🔴 Первые записи не повторяются с предыдущими страницами

🔴 Последняя страница возвращает < limit элементов, если данных меньше

🔴 Указание offset больше общего количества — пустой массив, не 500

2. Проверка фильтрации по полям

Пример:


GET /api/orders?status=completed&userId=42


Проверяем:

🔴 Все записи в ответе соответствуют status=completed

🔴 Если указать несуществующий userId, получаем пустой массив

🔴 Несколько фильтров работают в связке (AND / OR)

🔴 Поля фильтра чувствительны к регистру или нет — по документации

3. Проверка сочетания пагинации + фильтра


GET /api/orders?status=pending&limit=5&page=2


Проверяем:

🔴 На каждой странице нет дубликатов

🔴 Фильтр не сбрасывается при переключении страниц

🔴 Количество записей соответствует фильтру, а не общему числу

4. Негативные сценарии

*️⃣ limit=-1, offset=999999 — должны возвращать ошибку или пустой массив

*️⃣ status=DROP TABLE — нет SQL-инъекций

*️⃣ limit=10000 — ограничение на максимальное значение (должно быть)

*️⃣ userId=abc — проверка валидации типов

5. Что важно проверить:

Фильтрация отрабатывает точно — ни одной лишней или пропущенной записи

Пагинация не ломает логику — нет дубликатов, всё делится корректно

Ответ соответствует контракту API — есть поля meta.totalPages, items и т. д.

API устойчиво к мусору — не падает на limit=-1, status=aaa

💡 Такие проверки особенно важны при работе с таблицами, админками, отчетами и логами. Пагинация + фильтры = зона, где чаще всего ломаются списки и появляются баги на проде.

🐸 Библиотека тестировщика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124🔥3🥰1
Вопросы по HTTP-методам: PUT, POST и PATCH

На собеседованиях по тестированию веб-приложений вас могут спросить, чем отличаются эти HTTP-методы.
В карточках разберем:

➡️ Как работает метод PUT

➡️ Как POST используется для создания ресурсов

➡️ Когда лучше применять PATCH для частичного обновления

Важно понимать, когда и как использовать каждый из этих методов, так как они влияют на обработку данных на сервере ❗️

🐸 Библиотека тестировщика
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👏5🔥2🥰2