TGViewer
Channel Public Channel
QArelia | Блог про тестирование, QA 🧩

QArelia | Блог про тестирование, QA 🧩

@qa_relia

Про Quality Assurance, Quality Assistance, автотесты
💡 Делюсь опытом, лайфхаками и полезными ресурсами

✏️ @prafair
📌 t.me/boost/qa_relia
😊 t.me/addemoji/TestAutomation
Subscribers
956
Photos
42
Videos
0
Links
67

Showing posts older than #50 · Back to latest

Older Posts 20 shown
Post #49 235
#qa #roadmap
🗺 Полезные роадмапы для QA

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

🔹Роадмапа для Software Quality Assurance Engineer и Quality Automation Engineer:
https://github.com/fityanos/awesome-quality-assurance-roadmap

🔹Роадмапа для SDET (Software Development Engineer in Test):
https://github.com/testleaf-software/roadmap.testleaf.in

🔹База знаний и роадмапа для технического лида, подходит и для QA тоже:
https://github.com/tlbootcamp/tlroadmap

🔹Роадмапа QA от Mail:
https://miro.com/app/board/o9J_lXUgVuQ=/

🔹Роадмапа Quality Engineer:
https://link.medium.com/WQ2cxeOaMpb

🔹Роадмапа тестировщика:
https://drive.google.com/file/d/1gl9YKwnaokcJnMMOcpfxoB9Hi4Ce_EfR/view
  • 👍 5
Post #48 225
Post #47 286
#автоматизация #автотесты
🚀 Готовим приложение для автоматизации тестирования

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

0) Готовность приложения

Бывает так, что автоматизируют слишком рано, и в итоге потом нужно всё переписывать. Готовы ли основные фичи? Не поменяется ли логика через неделю? Не поменяется ли вёрстка?

1) Доступность документации

Swagger, Storybook и другие.
Для API тестирования, для создания тестовых данных потребуется документация.
На основе неё можно даже генерировать тесты.

2) Расставляем data-* атрибуты

Для уменьшения количества падающих тестов в случае изменений на фронте, а также для более удобного нахождения элементов в DOM, необходимы надёжные локаторы. Менее подвержены изменениям именно data-* атрибуты у элемента, например, data-test="element".

3) По возможности отключаем все анимации и капчу на время теста

Есть анимация и тест опять "моргнул"? Хорошей практикой является полное отключение подобных анимаций, которые мешают кликам проходить.

4) Параллельный запуск

Рано или поздно придёт время уменьшать время прогона путём параллелизации тестов. Сможет ли приложение поддерживать несколько потоков одновременно? Запустите тесты в парочку потоков и проверьте, не падает ли приложение, не происходит ли ранее не обнаруженных замедлений.

5) Third-party зависимости

Для некоторых случаев автоматизации требуется замокать third-party зависимости, на которые мы никак не можем повлиять, например, стороннее API.

6) Логи

Как вы будете анализировать и разбирать результаты прогона автотестов? У приложения должны быть понятные и доступные логи, в идеале в одном месте и чтоб их можно было подцепить к нужному тесту.

7) Время ответа приложения

На глобальном уровне обычно выставляется таймаут для всех ожиданий в тесте. Какой он будет — решать вам. Время ответа не должно будет превышать заданный таймаут, иначе тесты будут постоянно падать, а вы постоянно разбираться. Надо выяснить в чём именно причина долгих ответов и решить этот вопрос.
  • 🔥 3
  • 👍 2
Post #46 251
📊 Google Testing Blog: Now You're Thinking With Functions
#новости

В новой небольшой статье от Google автор демонстрирует преимущества функций высшего порядка (это такая функция, которая принимает функцию как аргумент или возвращает функцию в виде выходного значения) в JavaScript'е, например:

* уменьшение дублирования кода
* более простой и короткий код
* понятное назначение кода для других

https://testing.googleblog.com/2022/02/code-health-now-youre-thinking-with.html
Google Testing Blog Code Health: Now You're Thinking With Functions This is another post in our Code Health series. A version of this post originally appeared in Google bathrooms worldwide as a Google Testin...
  • 👍 2
Post #45 265
С Новым годом!!!🎉
  • 🎉 7
Post #44 264
#истории #opencv #хакатон
Как однажды я в CV 👁‍🗨 хакатоне участвовал

Весной я с коллегой (кстати, он тоже не разработчик) решили поучаствовать в хакатоне по компьютерному зрению iVision 2021. У меня опыта в этой сфере не было, поэтому я готовился изучать что-то новое на предстоящем мероприятии 💫

В нашей категории была дана задача на распознавание свободных парковочных мест 🚗 Организаторы дали видеопотоки нескольких камер и нужно было показывать свободные места в live-режиме 🖥
На втором этапе, на который мы прошли и это было уже достижение, мы дорабатывали раннее созданное нечто 😂 Теперь надо было стать фронтенд-разработчиком и создать веб-приложение в виде карты 🗺, на которой можно наглядно увидеть свободные места, а также бота 🤖 для Telegram, оповещающего о наличии свободного места на конкретной парковке.

Начали думать и искать хотя бы какие-то зацепки, что и как делать. Что-то находилось, но оно не совсем то и не работало в нашем случае 👀 Посмотрели как работает пример с Хабра — работал он откровенно криво и долго.
Затем попробовали библиотеку ImageAI, которая давала уже хоть какие-то результаты по распознаванию автомобилей, но даже она с какой-то большой погрешностью еле-еле могла различить автомобиль 🚗 на некоторых камерах из-за угла наклона. Количество автомобилей сложно было даже глазами посчитать, особенно вдалеке.
Исходя из этого было решено дообучать модель под наши условия 🚴‍♂️

Следующий этап выборки и разметки данных занимал от 6 до 12 часов и проделывался дважды из-за размеров картинок, влияющих на скорость обработки.
Получилась на время работающая модель с плюс-минус хорошим результатом 🎯
И ещё это дело куда-то задеплоить надо было, тут пришлось стать девопсом 🧙‍♂️

Я перепробовал 3 сервиса для деплоя: Heroku, Google App Engine и DigitalOcean.
С Heroku было сложно разобраться из-за внутреннего движка и непонятных ошибок, хотя там есть отдельный план для AI/ML приложений, но он платный разумеется.
Google App Engine отказался обрабатывать долгие запросы, такое он увы не поддерживает 🤷‍♂️
Спасибо DigitalOcean, что не тупил и всё поднял с первого раза 👌 Но ресурсов это съедало много.

Но вскоре нас поджидал главный подвох 🗿

На финальном этапе наша модель поплыла 🚣‍♀️, потому что растаял мартовский снег, а дело было в апреле уже.
По сути цель задания осталась та же, просто надо было всё красиво оформить в виде веб-странички с картой, на которой видны парковки и свободные места. А с помощью телеграм бота оповещать 📣 о наличии свободного места на определённой парковке.
Надо было что-то быстро создать, поэтому всё было написано в HTML файле, юзая jQuery, и даже ни капли не стыдно, зато что-то работало и удалось разобраться с Google Maps 📈
Telegram бот на Python вполне свои функции выполнял: подписался на парковку, получил уведомление, побежал парковать машину 👍
Только вот с точностью была проблема, модель подвела 🤔

Но несмотря на сложности, это был интересный челлендж 🙌 Мне понравилось пробовать разные решения с их плюсами и минусами, тестировать работу сервиса и получать наглядный результат. Разбивать задачи на подзадачи 🧩 Демонстрировать ход решения в Jupyter Notebook 📝 Вспоминать Python и JavaScript 😊

Извлёк некоторые уроки для себя на будущее, что надо больше изучать и понимать работу алгоритмов, в каких случаях лучше применять. И улучшать работу с фронтенд фреймворками 📚
  • 🔥 3
Post #43 237
Test as Text Approach в IntelliJ IDEA

Недавно IntelliJ IDEA добавила нативную поддержку для подхода "test cases as code":
https://blog.jetbrains.com/qa/2021/08/test-as-text-approach-in-intellij-idea/

Данный подход позволяет держать тест-кейсы в репозитории, рядом с кодом приложения.

В релизе 2021.3 добавили поддержку многоуровневого запуска тестов, а также возможность использования общих шагов. К слову, в этом же релизе добавили возможность добавления таблицы в Markdown.

Кажется, что почти всё сделано и готово к использованию. Было бы здорово иметь интеграции не только с TestRail, а также с Zephyr Squad, Zephyr Scale, Xray.
На ютреке JetBrains уже есть эти задачи, думаю скоро реализуют👍

#ide #intellijidea #idea
The JetBrains Blog Test as Text Approach in IntelliJ IDEA | The Quality Assurance Blog In this article, we’ll give an overview of how IntelliJ IDEA can help Agile teams manage test cases and keep them synchronized with automated tests and feature branches. The approach that we follow co
  • 👍 2
Post #42 201
Post #40 338
Как автоматизируют в Твиттере

Небольшое интервью с Kalisha Campbell, Software Engineer из Твиттера:
https://medium.com/@MHendersog/how-twitter-does-automated-testing-e27bce0b947e

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

Ещё одним интересным моментом я бы отметил, что они предпочитают тулы, которые не требуют написания кода, например, Postman и Endtest.

Несколько пунктов, как проверить, что с вашими автотестами всё хорошо:
— автотесты запускаются где-то на удалённом сервере или в облаке
— используется параллельный запуск тестов
— полная регрессия занимает меньше 15 минут
— есть интеграция с CI/CD
— тесты запускаются автоматически
— результаты генерируются автоматически

#статьи #автоматизация
  • 👍 2
Post #39 225
🚀 Как разрабатывают API в Slack

На днях вышла бомбическая статья в инженерном блоге компании Slack:

https://slack.engineering/how-we-design-our-apis-at-slack/

После прочтения захотелось выделить главные мысли:

1⃣ Создавайте API методы, которые решают одну проблему, а не несколько одновременно (старайтесь возвращать ограниченное количество объектов, разбейте на пагинацию)

2⃣ Упростите работу с API
Например, добавьте возможность отправить запрос прямо с браузера, добавьте сниппеты кода.
Всегда спрашивайте себя, что важно для вашей платформы, которую вы делаете.

3⃣ Создайте правила именования методов, переменных и т.д.

4⃣ Возвращайте понятные и подробные сообщения об ошибках (например, со ссылками на документацию и т.д.)

5⃣ Делайте эндпоинты перформансными и масштабируемыми
— пагинация больших коллекций
— не вкладывайте одни большие коллекции в другие
— добавьте ограничение на частоту запросов
Если API работает «достаточно хорошо» для вас — это не значит, что этого достаточно для остальных. Часть удовольствия от использования API заключается в том, что мы никогда не знаем, как другой разработчик собирается его использовать. И всё же вам всё ещё предстоит предвидеть множество возможностей, о которых вы можете не знать.

6⃣ Избегайте ломающих совместимость изменений
Или другими словами — то, что работало вчера, должно работать и сегодня.

Процесс проектирования API:
1) написать API спецификацию
2) провести внутреннее ревью API в специальном канале
3) собрать ранние отзывы от партнёров
4) провести бета-тестирование

#новости #статьи
slack.engineering How We Design Our APIs at Slack More than five years ago, we launched the Slack Platform, giving developers an easy way to build apps in Slack and publish them in our App Directory. Today, millions of users bring their work into Slack, and those apps built by over 885,000 active developers…
Post #38 184

Forwarded from Грейдап

Айтишная пятница в Петрозаводске!

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

Встреча пройдет в формате митап — несколько докладов, неформальное общение и питч-сессия.

Питч-сессия — это крутая возможность презентовать свой стартап, продукт, идею или задачу для аудитории встречи за 5 минут!

Для участников питч-сессии вход свободный.

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

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

Место: коворкинг «CreatePtz», Петрозаводск, ул. Казарменская 4
Время: 27 августа, пятница 19:00 — 22:00

Регистрация по ссылке: https://lorety.com/e/LY1ATxXV
Количество мест ограничено.
Post #36 181
​​Про ISTQB
ISTQB — международная некоммерческая независимая организация по сертификации в сфере тестирования.
ISTQB разработала программу "ISTQB® Certified Tester", которая является лидером в сфере сертификации компетенций в тестировании.

Сертификация делится на 3 уровня:
🔹Базовый
🔹Продвинутый
🔹Экспертный

Более подробную схему можно посмотреть здесь.

Подготовка
Года 2 назад я заинтересовался темой сертификации. Было интересно почитать, узнать что-то новое для себя.
В первую очередь я прочитал основной документ — Syllabus. В нём содержится вся информация, которая может потребоваться на экзамене. Затем я подробно ознакомился с официальными терминами. В документе их много, но достаточно выучить только те, которые относятся к Foundation.
Так как я решил сдавать на русском языке, то пришлось более внимательно обратить на это внимание, т.к. порой значение термиов отличаются одним словом (например, каверзная валидация и верификация). Также я пообщался с опытным человеком, который помог сориентироваться по подготовке, на что заострить внимание и т.д.. Важно соотнести свой опыт с документом, потому что не всегда ваши знания соответствуют написанному в документе.
Также мне помог при подготовке набор заданий с сайта https://istqb-training.ru (возможно уже старые задания, но в целом задания похожи на реальные).

Сдача экзамена
Проходила удалённо в офисе. Лучше заранее подготовить всё, что вас просят в присланном e-mail с объяснениеми. Например, это касается настройки плагина, настройки телефона. Продумайте заранее место, где вы будете сдавать. В комнате не должно быть никакой техники от слова совсем (вас попросят убрать всё или закрыть чем-нибудь, даже просто неработающее радио или телевизор).
За 48 часов необходимо пройти системный тест компьютера и телефона, она проходится достаточно быстро, проблем не должно возникать)
На самом экзамене попросят показать все открытые программы, так лучше оставить один браузер, а всё-всё-всё закрыть (все вкладки и все программы).
Камера телефона должна располагаться так, как это разрешено в инструкции, то есть на достаточном расстоянии, чтобы увидеть вас и компьютер было полностью видно) Я решал эту проблему прям на самом экзамене, потому что думал, что всё нормально, но меня попросили настроить чуть ниже камеру) Лучше купите штатив или нормальную подставку для телефона.
В самом экзамене меня напрягло долгое подключение к самому экзамену. Я уже было собрался писать им в чат, но всё прогрузилось и я начал решать экзамен. 40 вопросов, 60 минут на всё, 1,5 минуты на вопрос.
По ходу пьесы на странице с экзаменом я сразу открыл текстовое модальное окно, в которое можно использовать, как черновик.
Можно спокойно перемещаться между заданиями, главное на всё ответить)
Конкретно новых и сложных заданий не появилось. Как обычно, всё дело в мелочах и внимательности, особенно к цифрам, потому что счёт идёт порой на десятитысячные.
Неудобно было работать с табами в модалке для задания, там было 2 таблицы в одной модалке на двух разных табах. То есть постоянно надо переключаться туда-сюда.
Ну и в конце, после того выходишь из режима тестирования сразу появляется сообщение, что вы сдали экзамен и небольшая статистика.

Послемыслие
Опыт удалённой сдачи экзамена — интересный и незабываемый. Да и в целом, полученные знания в ходе подготовки и сдачи очень ценны. Конечно, всё и не всегда достижимо на практике, а зачастую недостижимо вовсе. ISTQB не даёт 100% готовых решений. Но что-то применить всегда полезно и нужно, например, какие-то определённые подходы к тестированию. Следующий уровень Advanced тоже действует неограниченное количество времени, но экзамен посложнее, требуется более тщательная подготовка.

#статьи@qa_relia #istqb@qa_relia #qa@qa_relia
Post #35 158

Forwarded from Грейдап

Йоу, готов драфт программы предстоящего IT мероприятия 🥷

(Нетворкинг + 2 спикера + Питч-сессия)

18:45 — 19:00 Встре­ча гостей
19:00 — 19:20 Нетворкинг для интровертов (20 минут)
19:20 — 20:00 Выступление первого спикера (40 минут)
20:00 — 20:20 Питч-сессия (20 минут)
20:20 — 21:00 Выступление второго спикера (40 минут)

Получилась на 2 часа активность. Можно придумать организованное афтерпати, но я пока не придумал.


Нетворкинг для интровертов:
Можно сделать по классике — Меня зовут Миша, я фронтент разработчик. И так по кругу.
Либо докрутить до чего-то более концептуального.

Питч-сессия:
Это формат открытого микрофона где можно заявить о себе и своей задаче:
Возможные темы: поиск людей в команду, поиск финансирования, поиск исполнителей для стартапа, поделиться кейсом, что-то другое
4 выступления по 5 минут

Выступления спикеров:
[самое противоречивое направление]
С одной стороны круто получать информацию по конкретному запросу
Frontend / Design / Backend / Тестирование (QA) / DevOps / Project Mangement

С другой стороны есть определенный кайф в том чтобы узнать что-то из нецелевой сферы.

P.S. Напшите в чат — ради чего вы бы пришли в пятницу вечером на мероприятие? Возможно вам интересно узнать про софт-скиллз? 🤷‍♂️
Post #34 174
Post #33 184
Обзор новостей после затишья 🤖 (совсем как у Selenium 4)

⤵️ Что произошло самого интересного за последнее время?

🔹 Playwright продолжает наращивать набор фич: новый Test Runner, который поддерживает контекст браузеров, умеет запускать тесты параллельно и обладает поддержкой фикстур.
Добавили Playwright Trace & TraceViewer, который умеет снимать snapshot страниц для последующего дебага, инспекции элементов и трафика.
Вдобавок реализовали Reporter API, уже готова реализация для Allure.

🔸 Продолжается эпопея с новым стандартом - WebDriver BiDi, обьединяющий лучшее от WebDriver и Chrome DevTools Protocol (CDP). Chrome рассказал более подробно про следующие шаги в этом направлении.

🔹IntelliJ IDEA снова радует нас новыми возможностями — Test Data и Selenium Page Object Generator.
Test Data плагин позволяет генерировать различные рандомные значения для тестов и не только.
Selenium Page Object Generator упрощает написание пейдж обжектов для разных фреймворков и языков. Конечно, плагину ещё необходимы доработки, чтоб быть более юзабельным.

🔸 Конференции: Heisenbug 2021 и Podlodka QA Crew.
Удалось немного посмотреть подлодку, подчерпнул несколько новых идей для себя, например, про мониторинг в продакшене, продуктовые лайфхаки для QA, улучшение взаимодействий с разработчиками с помощью юнит-тестов, правильное проведение нагрузочного тестирования.

#новости
Post #32 1.35K
🆚 Плюсы и минусы тест-кейса и чек-листа

📄 Тест-кейс
➕ легко понять даже новичку
➕ минимальное количество вопросов коллег
➕ при грамотном написании легче для автоматизации

➖ много копипасты
➖ сложно поддерживать
➖ неактуальное состояние через время
➖ постоянное тестирование по шаблонным проверкам

☑️ Чек-лист
➕ легко и быстро создавать
➕ проще поддерживать
➕ меньше текста, меньше копипасты
➕ уменьшение эффекта пестицида

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

#тестирование #тест_кейс #чек_лист
Post #31 248
Post #29 236
Post #28 235
🛠 Полезные инструменты

Помимо упомянутых в статье я бы добавил:

➡️ Postman
➡️ Nimbus
➡️ Recordit
➡️ BugMagnet
➡️ Slothman

#полезности #тулзы

https://link.medium.com/hxrU34I61cb
Medium 🔥 Лучшие Инструменты Тестировщика в 2021 Выбирай качественные, проверенные и бесплатные инструменты тестировщика, которые точно повысят твою эффективность!
Post #27 189
🚀 Moon: поддержка эмуляции для мобильных платформ

Теперь запуск тестов на Chrome на разных мобильных платформах стал проще, благодаря новому API, которое предоставляет Moon:

http://moon.example.com:4444/mobile

В зависимости от выбранного устройства будут выставляться размеры окна и User-Agent. В данный момент поддерживается только Chromium.

📲 Пример реализации на Java:

ChromeOptions options = new ChromeOptions();
options.setCapability("browserVersion", "87.0");
options.setCapability("moon:options", new HashMap<String, Object>() {{
put("mobileDevice", new HashMap<String, Object>(){
{
put("deviceName", "Apple iPhone XR");
put("orientation", "landscape");
}
});
}});
WebDriver driver = new RemoteWebDriver(new URL("http://moon.example.com:4444/mobile"), options);


#полезности #selenoid
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →