Дайджест материалов по тестированию за неделю c 18 по 24 марта

Этот дайджест создан совместно с телеграм-каналом QA Live ? тестирование ПО. Подпишитесь, чтобы получать дайджесты прямо в телеграм!

Почитать:


Как провели тестирование и обновление юзабилити крупнейшего в мире стримингового сервиса.


Зарплата тестировщика в разных странах мира — State of Testing ‘2024

PractiTest State of Testing report for 2024.


На других русскоязычных платформах:

Указанная ниже шпаргалка помогала моим менти составлять тестовую документацию при выполнении тестовых заданий и проектных задач. Все глаголы я использовала на своих англоязычных проектах и указанные примеры взяла из написанных тестовых сценариев и оформленных баг‑репортов.


Меня зовут Виктория и я много лет занимаюсь автоматизацией. В этой статье я хотела бы рассказать о паттернах автоматизации, которые использую, а также о такой штуке, как архитектура проекта. Я разворачивала проекты на разных языках программирования и для различных типов проектов (мобильные, веб, как чистый фронтенд, так и бэкенд). Для себя я выделила 6 паттернов.


А в коментах по теме Docker на Хабре только двое душнил, удивительно.



В статье я попытаюсь погрузить вас в проблемы, с которыми нам, инженерам YADRO, приходится сталкиваться при отладке программного обеспечения СХД. Также покажу особенности работы с такими системами. Расскажу, какие инструменты, а иногда и решения, которые мы пишем сами, приходится для этого применять. А еще постараюсь сформулировать условия, которые необходимы для нахождения причин возникновения ошибок обработки данных в системе.


А здесь старая статья про Яндекс Колхоз (да, так и назвали).


Все началось с того, что я в очередной раз немного поменял структуры БД, и в некоторых SQL-запросах добавилась новая колонка. Нормальная ситуация — взять и легким движением руки сломать половину unit test’ов, потому что БДшные моки ожидают определенный текст запроса. Хрупкость тестов раздражала меня давно, но в тот раз я был не в настроении, и решил, что хватит, пора что-то с этим сделать. Ясное дело, если я меняю запрос в функции, это ломает тесты для этой функции, но поправить пару кейсов — не проблема, надо сделать так, чтобы при это не ломались все тесты бизнес-логики, которая эту функцию вызывает. Самое очевидное — чтобы бизнес-логика вместо вызова функции с запросом дергала мок. Но как это реализовать? Передавать функции по работе с БД как параметры, через dependency injection? Таких функций много, десятки. Обернуть их в один объект? Вариант, но это уже будет сильно напоминать божественный объект. Ну и не очень хочется перелопачивать всю кодовую базу. А если попробовать как-то на лету подменить функцию моком? Я тогда не знал такого термина, как monkey patching, и думал, что иду по непроторенной дороге. Если бы я сразу нашел gomonkey, то наверно на этом бы и остановился, или пробовал бы его и забросил (потому что мне не нравится его API). Но мне помогло мое невежество. Можно сказать, повезло.


Часто случается так что на необходимом сайте установлена защита от ботов. Например: QRATOR, Cloudflare, Akamai Bot Manager и пр. Можно потратить множество ресурсов на обход этих систем, но если у вашего ресурса есть мобильное приложение, то можно пойти другим путём. В подавляющем большинстве случаев мобильное приложение остается без защиты т.к. методы актуальные в браузерной разработке в мобильной не актуальны. В этой статье мы совершим атаку MITM на приложение [скрыто], узнаем эндпоинты по которым приложение получает данные и получим данные сами.

Бэкенд для стримингового продукта использует высокораспределённую архитектуру микросервисов, поэтому миграции также происходят в разных точках графа вызовов службы. Они могут происходить на пограничной API-системе, обслуживающей клиентские устройства, между пограничными и среднеуровневыми сервисами или со среднеуровневых сервисов в хранилища данных. Ещё одним важным фактором является то, что миграция может происходить на API с отслеживанием состояния или на тех API, которые не фиксируют данные о запросах и являются идемпотентными. Мы разделили инструменты и методы, которые использовались для облегчения этих миграций, на две высокоуровневые фазы. Первая фаза включает в себя проверку функциональной корректности, масштабируемости и производительности, а также обеспечение устойчивости новых систем перед миграцией. Вторая фаза включает в себя перенос трафика на новые системы таким образом, чтобы снизить риск возникновения инцидентов, а также обеспечить постоянный мониторинг и подтверждение того, что мы выполняем важнейшие показатели, отслеживаемые на нескольких уровнях. К ним относятся измерения качества пользовательского опыта (Quality-of-Experience, QoE) на уровне клиентских устройств, соглашения об уровне обслуживания (Service-Level-Agreements, SLA) и ключевые показатели эффективности (KPI) на уровне бизнеса.

Догфудинг отлавливает неизвестные баги способом, недоступным для автоматизированных тестов. 


В мире QA на других платформах (англоязычных):

PAM — альтернативный подход к организации кода автоматизации, здесь «акцент на абстракцию, ориентированную на действия, а не на инкапсуляцию, ориентированную на страницу». В отличие от POM, который фокусируется на представлении отдельных веб-страниц как объектов, PAM опирается на инкапсуляцию общих взаимодействий и действий на нескольких страницах в многократно используемые компоненты.»


«Боковая пирамида» может дать нам представление, сколько тестов должно быть в конвейере, например большинство тестов должно быть на первом шаге, затем еще какая-то часть, и наконец меньше всего в конце. А также это дает представление, где эти тесты должны выполняться; однако это касается так называемых «уникальных тестов», а в стандартном пайплайне обычно выполняется несколько тестовых наборов для валидации в различных окружениях.»


«Assertions — основа автоматизации на JavaScript. Хотя базовые ассерты (типа проверки равенства), важны и нужны и доступны в других библиотеках, специализированная assertion-библиотека Chai дает возможность использовать более продвинутые техники обработки сложных сценариев и условий ошибок. Рассмотрим эти техники на примерах кода.»

«В прошлом мы регулярно проводили митинги по bug triage, но по разным причинам никто не горел желанием возобновлять эти собрания.»


По результатам опроса PractiTest State of Testing report for 2024 (ссылка, PDF).


Демонстрация возможностей.

А взгляд на Копилот с точки зрения QA-лида у нас здесь: «Не давать в руки стажерам/джуниорам.»


Ознакомительный практикум.


The problem statement is that iterating features during production or development are expensive. The proposed was to iterate instead in the theoretical hammock, which involves: 1.) Focusing and stepping away from the keyboard and 2.) Evaluate and test each idea through deep reflection

Видеолекция:


Formal verification is a technique used to prove the correctness of a program against a given specification. (Ру-Википедия подробнее).In formal verification, as the name suggests, we deal with formal specifications of our programs. A formal specification is a more mathematical and rigorous description of what our program does. Formal specifications are written in what’s called a specification language; the specifications we write might look like code written in a conventional programming language, but specification languages are usually much limited in their expressive power.


How to deal with all versions from JUnit and how to organize your tests.


Традиционно грандиозный туториал от ЛамбдаТест, видеоверсия:


While Percy offers substantial benefits, it doesn’t replace traditional tools like XCUITest, Appium etc, which are crucial for validating functionalities and serving as a foundation for tools like Percy. Thus, a synergistic approach combining Percy and traditional tools is vital for effective automation in quality engineering.


Проблема: Slow CI with Comprehensive UI Testing. Решение:


Практикум.


I still use Jest on some smaller repositories that I maintain, and I’m not mad enough to migrate them until they become a problem. However, for future projects, I’ll definitely opt for Mocha or the Node.js test runner.


Посмотреть:

Александр Хвастович призывает успокоиться. ИТ-система саморегулируется.


«Все мы знаем, что тесты Selenium нестабильны по своей природе, медленно выполняются, дороги в обслуживании, а найти причину проблем не всегда просто. Хотел бы показать вам, как мы перенесли наши UI-тесты влево. Это резко сократило количество Selenium-тестов, что позволило нам сфокусироваться на тех областях, где они действительно приносили пользу, а не создавали головную боль.»


Сравним эти способы по нескольким критериям и определим, какой из способов использовать предпочтительнее.


Доклад главного инженера.


Гости выпуска: Иван Морщагин из E-legion. Более 15 лет в IT, трекер и методолог хакатонов по ИИ. Никита Селенков, CTO LavaLane. Больше 20 лет в разработке ПО и IT-консалтинге, интересуется ML и блокчейном, запускает и развивает стартапы. Ведущая: Софья Селезнёва из компании Гранч — ведущий инженер-тестировщик в компании с полным циклом разработки оборудования для безопасных шахт.


⬅️ Предыдущий QA-дайджест

Хорошей недели!

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас