Заметки о QA
3.55K subscribers
16 photos
4 files
72 links
Семь раз погугли, один раз ответь

Сборник всех постов📁: https://tlabchuk.tilda.ws/useful
Boost🚀: https://t.me/boost/notes_about_QA

Админ @lilovaya_korova
Download Telegram
Что мне оказалось дополнительно нужно на работе Auto QA на java, имея за спиной только курс на stepic?

- знание тестового фреймворка
jUnit/testNG. Тут в целом все понятно - это основной инструмент тестирования, его нужно пройти в первую очередь после базы. Вот удобный шаблон-статья для автоматизации UI.

- знание spring и lombok (статья с хабра)
По сути, сейчас уже не используется чистый java без упрощение жизни с помощью внешних плагинов/библиотек. Нужно знать общеиспользуемые инструменты, чтобы упростить себе написание кода и чтение кода других. Честно, до прихода на работу я не знала, что такое spring и сразу с разбегу оказалось сложно его понять (а еще и статьи простые так и не нашла, но если вам сильно нужно будет, постараюсь покопаться). Но теперь я не представляю жизнь без него.
Из полезных аннотаций lobmok
- @Data/getter/setter (для того, чтобы не писать/не генерировать get/set для полей)
- @SneakyThrows (для упрощения работы с проверяемыми исключениями)
- @Slf4j (для логирования, по сути, заменяет строку Logger log = Logger.getClass(.class)

- библиотека для работы с REST
У нас используется retrofit (хотя в моей репе вообще feign client), также очень популярный restAssured
Сильно проще разбираться на примере чужого кода (особенно, если он хороший). Я бы посидела и посмотрела на гитхабе примеры тестовых проектов.

- POJO (если честно, не помню, была ли я именно сознательно знакома с этим понятием, но добавлю в этот список)
Зачем нужен? Построение объектов для быстрой сериализации/десериализации тела для запроса и ответа сервера. Например, получаешь ответ и не просто работаешь с ним, как со строчкой, а обращаешься просто к полям класса.
А если хотите превратить ваш POJO в зверя, используйте аннотации! Например, что делать, если из json нужно только два поля, а их 100? Использовать аннотации для POJO-объекта (точно применимо для библиотеки jackson и rest-assured)
в статье про POJO также подробно описаны аннотации

- gradle(или вот ссылка на официальную документацию)/maven
Работаю только с gradle. В целом в процессе работы не составляют труда разобраться, но я бы немного предварительно почитала/посмотрела, что это за звери такие.

- JPA
Самый популярный инструмент для работы с БД в java. Простая в понимании и использовании.

На самом деле список можно увеличивать и увеличивать. Но пока остановимся на этих пунктах💐

#автоматизация #java #программирование
13👍4🔥4
Полезное для автоматизации на java

Сегодня немного полезного для автоматизации на java, с чем я столкнулась за последние пару месяцев.

Про best practies
Передовой опыт тестирования Java: на почитать и подумать, какие вы могли использовать антипаттерны и какие идеи еще можно почерпнуть, чтобы улучшить свои тесты.
Из той же серии еще одна статья (на английском) про лучшие практики в написании тестов на java
Еще из best practies рекомендую к прочтению статья про softAssertions (особенно, если эти слова вы слышите впервые)

Про ускорение запуска
Параллельный запуск JUnit5: так, думаю, бывалые уже давно запускают свои тесты параллельно и сохраняют себе кучу времени. А если вы, как и я в прошлом, обходили это стороной, то пора задуматься и прочитать эту мини-статью. Только не забывайте: при параллельном запуске у вас может все сломаться, если вы используете классовую переменную в тестах (и еще при многих других кейсах, поэтому внимательнее 🧚‍♀️)

Прочее
Полезные аннотации Spring для junit и поподробнее про две аннотации EnabledIf и DisabledIf
Карточки quizlet для повторения java core: случайно найденные, но такие прикольные. Можно попроверять себя перед техническим интервью.

#автоматизация #java #программирование
🔥9👍8
☕️Полезное для Java-автоматизаторов☕️

Построение тестовой архитектуры

- Автоматизация тестирования с нуля часть 1 и часть 2 (RestAssured + TestNg)
- Обзорно архитектура автотестов с нуля на стеке JUnit, Selenide, Allure, Jenkins: вдруг вы начинаете писать автотесты и не знаете, с какой стороны к ним подойти, то эта статья для вас. Обзорно, поверхностно, но очень вкусно!
- Еще один туториал на стеке allure report + selenium + Test NG (🇬🇧)
- Архитектура для UI тестов: если вы только сталкиваетесь с тем, как организовать ваш тестовый фреймворк или поняли, что текущий вам только мешает, а не упрощает жизнь, то круто прочитать эту статью и вдохновиться!
- Простой и удобный шаблон тестового фреймворка на selenide для UI автотестов

Работа с REST

- Туториал-пример использования Retrofit в качестве REST клиента в своих тестах. Еще можно почитать вот тут
- Базовые вещи для работы с Retrofit: я знакомилась с данной библиотекой именно благодаря этой статье
- REST Assured: большой гайд

Работа с фреймворками

- Большой гайд по TestNG (и рекомендую данный сайт 🇬🇧)
- Шпаргалка с аннотациями TestNG
- Цикл статей туториалов по JUnit 5: расскажут вам про жизненный цикл, аннотации и много чего еще
- JUnit (🇬🇧): обзор того, из чего состоит фреймворк. На этом же сайте можно найти много других полезных вещей.

Cucumber

Если вам вдруг нужно применить BDD в своем коде, то бегом ближе знакомиться с внедрением:
- Cucumber + Java
- Руководство: Cucumber + Java
- Руководство по Akita (библиотека для BDD на русском)

#автоматизация #java
🔥19👍1😁1
Советы для автоматизации [2]
Первую часть советов можно почитать тут, также рекомендую полезные советы по инструментам для программирующих на Java.

- Автоматизация тестирования - это инструмент для достижения цели, а не сама цель.
Часто, когда работаешь full-stack QA, легко увлечься автоматизацией и улучшением кода, забывая о главном — обеспечении качества функционала.
Поэтому хочется напомнить, что автоматизировать нужно для того, чтобы это приносило пользу бизнесу и помогало улучшить качество продукта, а не просто для того, чтобы писать код.

- Чаще учите и используйте горячие клавиши в своей IDE.
Не ленитесь запоминать сочетания клавиш в ваших средах разработки. Это поможет ускорить процесс написания кода и облегчить вам ежедневные повторяющиеся действия.

Мои любимые сочетания клавиш (macOS, IntelliJ IDEA):
cmd + click (либо b) - отображение, где метод/класс/прочее используется в коде
double shift - быстрый переход к классу/функции
option + cmd + l - форматирование кода (сделать по всему классу правильные отступы)
cmd + w - закрытие вкладки
control + options + o - удаление неиспользуемых импортов (также рекомендую включить автоматическое удаление таких импортов)
shift + options + click - курсор на несколько строк
cmd + d - дублирование строки без ее выделения и копирования
(буду рада увидеть ваши любимые горячие клавиши в комментариях)

- Тэгируйте автотесты для гибкого управления.
Последнее время я стала больше ценить тэгирование и кастомизацию запуска прогонов. Чем больше становится тестов, тем проще запускать не все подряд, а только те, с которыми ты сейчас работаешь.
На помощь приходят аннотации для тэгов, которые можно найти практически для любого фреймворка тестирования.

- Разрабатывайте тестовые сценарии, учитывая реальных пользователей API.
Покрывать тесты и придумывать варианты использования - это хорошо. Но иногда эффективнее заглянуть к тем, кто использует бэкенд. Например, фронтенд.
Изучите, какие данные отправляются, какие запросы участвуют в работе и как происходит обработка ответа. Есть ли вариации, которые не описаны в ваших автотестах? Ведь именно реальные пользователи бэкенда находят баги, а не тесты в вакууме.

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

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

See you soon

#автоматизация #java #советы
119👍7🔥5