Этот дайджест создан совместно с телеграм-каналом QA Live | тестирование ПО. Подпишитесь, чтобы получать дайджесты прямо в телеграм!
Почитать:
QA по идее должен предотвращать баги и быть своего рода хранителем качества, к которому стоит прислушиваться, а у нас это ручной регрессивный шлёпальщик или автомат-кодоукладчик.
Реализация интерфейса Webdriver в Playwright/Java. Позволяет запускать тесты Selenide с помощью Playwright, не переписывая код.
«Интервьюеры уделяют больше внимания умению кандидатов решать проблемы, а теоретические знания сейчас не проблема.»
Абсолютные пути, динамические и автогенерируемые IDшки и прочие враги стабильности.
Быстрый практикум для джунов.
На других платформах:
С примерами кода.
Вопросы серьезные: Rendezvous Point в JMeter используется для выполнения нагрузочного тестирования с резким увеличением числа пользователей (spike testing). Это реализуется с помощью элемента “Synchronizing Timer”, который ожидает, пока число активных пользователей не достигнет заданного значения.
Вводной практикум для джунов.
Cassandra H. Leung (she / they) — a Quality Coach, Certified Scrum Master, UX enthusiast and international speaker:
Разработчики обычно не просят коллег писать программы. Владельцы продукта обычно не просят других людей определить, в каком направлении продукту двигаться. Почему же тестировщики просят коллег тестировать? О чем мы действительно их просим?
Угадайте, где сейчас настоящая каша варится из подходов и трендов? Подсказка: на «тес-» начинается, на «-тирование» заканчивается. В сети всё больше новых взглядов на нашу сферу. Каждый матёрый специалист пишет о тенденциях и подходах, исходя их своего опыта {что неплохо}. Только далеко не каждый из авторов учитывает {что плохо}, что его опыт характеризует только его проекты.
Подход QAOps возник там, где мелькнул хвост кометы, то есть идеи, что тестировщики и разработчики могут работать вместе на каждом этапе. Там все друг друга понимают с полувздоха, работа идёт быстро, релизы вовремя, на митах всех только хвалят… К сожалению, на практике это что-то вроде «кто в лес, кто по дрова».
Каковы источники нестабильности тестов? Я бы разделил их на три категории:
- Категория #1: Нестабилен тестовый код.
- Категория #2: Нестабилен код в продакшене.
- Категория #3: Или всё остальное.
Категории #1 и #2 включают состояния гонки (race conditions), типичные проблемы многопоточности и недетерминированное поведение. Но, в конце концов, вы отвечаете за свой тестовый код и за свой код в продакшене, а значит, управляете своей судьбой. Поэтому исправьте их!
Меня больше всего беспокоит категория #3 — она представляет собой огромную свалку проблем, которые в основном находятся за пределами моего контроля, из-за чего чувствуешь себя немного беспомощным. Это проблемы инфраструктуры, которые вы сами не можете исправить. Обычно это вообще не ваша ответственность. Однако в Google, так как я работаю в команде, отвечающей за инфраструктуру, которой пользуются тысячи сотрудников для запуска интеграционных тестов, эти проблемы — очень даже наша забота.
Увы, волшебного средства от нестабильности интеграционных тестов не существует. Эта проблема преследует нашу отрасль уже десятилетиями, даже в таких компаниях, как Google, Amazon или Microsoft. Однако есть ряд мер, которые можно предпринять.
В Google мы используем герметичные (полностью изолированные) и временные тестовые среды, чтобы смягчить эту проблему. Это, в свою очередь, вызвало собственный набор сложностей, которые нам пришлось решать, а также усложнило нашу инфраструктуру. Тем не менее…
Наш продукт — это API, предназначенный для внутренних команд компании с целью повышения их продуктивности. Пользователи интегрируют API на свои веб-страницы в виде скрипта и настраивают сами. У продукта нет фронтовой составляющей, для тестирования создана специальная тестовая страница, где подключен сервис. Стек проекта — JavaScript/TypeScript. Используется микросервисная архитектура — примерно 10 микросервисов.
Быстрый практикум.
Когда речь заходит о истории формирования видеоигрового жанра FPS на ум всегда приходят такие шутеры как Doom и Wolfenstein 3D. Но был еще один тайтл находящийся на рубеже становления жанра о котором может помнить юный обладатель 16‑битной приставки Sega Mega Drive и Genesis в далеких 90‑х и нулевых годах. Многие называют его как «Doom моего детства».
Изучив документацию по библиотеке AssertJ, мы предприняли попытку создать свои кастомные проверки. Оказалось, все довольно просто: наследуемся от абстрактного класса AbstractAssert и дело в шляпе (ну почти).
Для большего удобства, чтобы всем на проекте было понятно, где искать нужный класс проверок для своего объекта, мы добавили единую точку входа для наших кастомных проверок – класс AssertionsUtil.
Изначально на нашем курсе для освоения создания итераций в прогонах использовался формат CSV. Однако Postman может работать и с JSON. Тестируя API с помощью Postman, многие задаются вопросами о том, как сделать этот процесс быстрее и удобнее. В своих поисках люди приходят к пониманию, что для этого им нужно научиться работе с переменными, а затем освоить режим прогонов коллекций.
Вроде все стало удобнее: ввод данных за счет переменных гибче, а исполнение тестов быстрее благодаря прогонам. Однако хочется сделать работу с вводом еще удобнее, чтобы не приходилось каждый раз вносить значения вручную для каждой вариации тестов или не создавать под каждый случай свою коллекцию тестов, отличающихся только вводимыми значениями.
Поиски решений приводят интересующихся к возможности подключать к прогонам коллекций тестовые данные из внешних файлов. Postman позволяет делать это в форматах CSV и JSON.
Комментарий на Хабре:
Ну пока в голове не щелкнет и не перестанете «воевать», так и будет, да. А у нормальных людей собеседование — это общая беседа с двумя или несколькими участниками. Где люди разговаривают. Словами через рот. Обсуждают, в чем потребность нанимателя и особенности позиции, оценивают насколько эти потребности и особенности близки кандидату, вот это все…
YandexGPT.
В большом мире QA (англоязычное):
The difference between a test case and a requirement is the moment of discovery.”
Some general advice. Keep any test you write as simple as possible. It will help with both the technical side and communication.
Get PHPStan and Rector rules on board, and let them work for you. There is more than meets the eye when it comes to mocks.
На примере в TestGrid.
«This response educates the PM, aligns with the project’s goals, and sets realistic expectations while highlighting my expertise as a QA professional.»
Test execution is expensive, and most times it goes unnoticed because there isn’t a physical invoice at the end of the month.
UI Coverage provides visual insights into how well your app’s UI elements are tested, helping teams identify gaps, prioritize critical flows, and optimize their test suites. With features like a dynamic visual overlay and customizable metrics tracking, UI Coverage makes it easier than ever to achieve meaningful coverage and avoid over-testing.
Посмотреть:
Мобильные игры в приложении ритейла — что может пойти не так? Конечно же что угодно!
- Fuzzing начинающих специалистов ⏱️40 минут
Две точки зрения — специалиста с 10-летним опытом, который давно погружен в тему автоматизации, и специалиста, который делает первые шаги в этой области.
- Русский Linux ⏱️15 минут
Доклад посвящен тестированию совместимости в отечественном линуксостроении. Обзорно поговорим о различных дистрибутивах Linux, особенностях их тестирования и совместимости с приложениями и продуктами Рутокен, а также рассмотрим методы решения потенциальных проблем, возникающих при использовании отечественных ОС.
- What Is Test Design? ⏱️1 час
Очень простым английским без акцента. В том числе How to apply SFDIPOT to test design.
Презентация команды Playwright.
- Нужно ли тебе в тестирование ⏱️1 час
Кому стоит идти в QA , кому лучше в другую профессию в IT, а кому вообще не надо в IT.
AI-driven Playwright scripting, using tools like the language models ChatGPT and Claude. Watch as he demonstrates the capabilities of Playwright’s ‘codegen’ command and pits it against AI-generated test scripts.
- Playgrounds For Testers ⏱️15 минут
Playgrounds you can use for automation but also to train your skills.
👉 https://demo.applitools.com/
👉 https://automationbookstore.dev/
👉 https://practice-automation.com/
👉 https://testsheepnz.github.io/BasicCa…
👉 https://github.com/cypress-io/cypress…
👉 https://bonigarcia.dev/selenium-webdr…
👉 https://www.lambdatest.com/selenium-p…
👉 https://ecommerce-playground.lambdate…
👉 https://owasp.org/www-project-juice-s…
👉 https://parabank.parasoft.com/paraban…
👉 https://github.com/saucelabs/sample-a…
👉 https://the-internet.herokuapp.com/
👉 http://uitestingplayground.com/
Хорошей недели!