Разделы портала

Онлайн-тренинги

.
Автоматизация тестирования
Flaky-тесты: Откуда ноги растут. Опыт Uber
19.08.2021 00:00

Перевод: Руслан Ахметзянов, Qameta Software

Автор оригинала: Ravi Agarwal, Lazaro Clapp, Gautam Korlam, Murali Krishna Ramanathan, and Vijay Subramanian

Эта статья является переводом статьи из блога Uber. Обычно мы в Qameta Software не занимаемся переводами, но мимо этой статьи пройти не смогли (спасибо @vbrekelovза то, что подкинул такой хороший пост на почитать!). Хороший и исчерпывающий материал о том, что такое flaky-тесты, какие они бывают и что с ними делать. Часть материала, посвященную переезду Uber с микросервисов на монорепо я опустил, оставив только то, что напрямую связано с отработкой flaky-тестов.

Юнит-тесты лежат в основе любой Continuous Integration (CI) системы. Они позволяют обеспечить контроль над качеством кода при высоких темпах разработки, предупреждая инженеров о багах в новом коде и регрессии в кодовой базе. Кроме того, они снижают стоимость разработки за счет обнаружения ошибок на ранних этапах. Именно поэтому построение стабильной и работающей тестовой инфраструктуры является одним из базовых требований для любой крупной разработки.

К сожалению, flaky-тесты осложняют жизнь тем, кто это требование пытается выполнить. Давайте считать, что мы будем принимать тест как flaky если на любых двух воспроизведениях он возвращает разные результаты: прошел или упал, — без изменения кода. Такие тесты чаще всего возникают в результате одной из двух причин: недетерминированность на уровне кода (порядок исполнения тредов и другие сложности с многопоточностью) или неоднородностью окружений, в которых выполняется тестирование (на одной машине все работает хорошо, а на CI-сервере тесты падают).

Подробнее...
 
.contains() – ценная находка Cypress
10.08.2021 00:00

Автор: Филип Рик (Filip Hric)
Оригинал статьи
Перевод: Ольга Алифанова

.contains() – одна из моих самых любимых команд в Cypress. Ее имя звучит как утверждение, но на самом деле это команда выбора. Конечно, можно поспорить, что все команды выбора убеждаются в существовании элемента, но давайте не будем вдаваться в философские споры)

Это различие меж тем очень важно. Немного двусмысленное имя .contains() может привести к тому, что вы не узнаете об ее мощи. Одна из вечных проблем тестирования – это поиск подходящего селектора с сохранением читабельности теста. .contains() позволяет выбрать элемент по тексту, но она может куда больше.

Разберемся, чем же она хороша. Я использую ряд примеров, которые можно найти в моем GitHub.

Подробнее...
 
Десктопизация по-питоновски. Инструменты для создания автотестов
02.08.2021 00:00

Статья предоставлена компанией SimbirSoft

Автоматизация тестирования – неотъемлемая часть процесса обеспечения качества. Мы в нашей практике чаще всего разрабатываем тесты для веб-, мобильных приложений и API, но сегодня хотим рассказать о более редком направлении – тестировании десктоп-приложений.

Кратко рассмотрим подходы, инструменты, технологии и «грабли», на которые можно наступить при выполнении этой задачи. Статья будет полезна специалистам, которые хотят попробовать автоматизировать ежедневную монотонную работу, а также коллегам по цеху в сфере автоматизации gui-тестирования – как начинающим, так и разработчикам с опытом.

Подробнее...
 
Создание тестов для GraphQL API на Python с использованием requests
15.07.2021 00:00

Автор: Баз Дейкстра (Bas Dijkstra)
Оригинал статьи
Перевод: Ольга Алифанова

На прошлой неделе я проводил двухдневную версию своего мастер-класса по тестированию API на Python. Пока мы выполняли упражнения по созданию автотестов для REST API с использованием requests, один из участников спросил, применимо ли это к GraphQL API. Никогда раньше этого не делал, но после совместного гугления и обсуждения мы постановили, что это небольшая проблема.

Так как мы обсуждали это в первый день курса, я обещал подготовить ряд быстрых упражнений, над которыми можно будет поработать на второй день. В этой статье вы увидите ряд примеров, которые входили в эти упражнения.

Один из участников предложил отличное приложение в качестве тестируемого API: SpaceX GraphQL API. Этот публичный API содержит информацию о компании SpaceX, а также ее истории, космическом флоте, миссиях, запусках, и т. д. Множество данных, есть с чем поработать.

Подробнее...
 
Основы Cypress: проверка атрибутов, значений и текста
01.07.2021 00:00

Автор: Филип Рик (Filip Hric)
Оригинал статьи
Перевод: Ольга Алифанова

Привет, и с вами снова цикл статей по основам Cypress!

Получение текста элемента

Чтобы получить правильные атрибуты элемента, хорошо бы понимать основы различных HTML-элементов. Приведу пример. Допустим, у нас два элемента:

<div>Пожалуйста, введите имя:</div>
<input type="text"></input>
Подробнее...
 
Создание рандомного пользователя в Cypress-тесте
29.06.2021 00:00

Автор: Филип Рик (Filip Hric)
Оригинал статьи
Перевод: Ольга Алифанова

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

Как обычно, я использую приложение-клон Trello в репозитории, в который вы можете заглянуть и следовать за мной предметно. Я старался сделать статью простой, поэтому создание пользователя в моем приложении – это единичный http-запрос. Однако в целом вы должны быть способны применить эти подходы и в вашем приложении.

Подробнее...
 
Три паттерна для улучшения работы с автотестами
28.06.2021 00:00

Автор оригинала: Uladzislau Ramanenka

Меня зовут Владислав Романенко, я старший iOS QA Engineer в Badoo и Bumble. Несколько лет назад мы начали активнее использовать автотесты в разработке, но столкнулись с некоторыми трудностями. 

Логичный вопрос: почему мы занялись автоматизацией тестирования? Ответ кроется в еженедельном выпуске новых версий наших мобильных приложений. QA-отделу приходится тестировать новые фичи, их интеграцию в сервисы и заниматься регрессионным тестированием. За неделю комплексное регрессионное тестирование нужно проводить как минимум один раз, что довольно утомительно. Автоматизация помогла нам выпускать новые версии быстрее и без потери качества. Подробнее об автоматизации мобильного тестирования — в докладе моих коллег

В разработке проблемы часто решаются с помощью паттернов — обобщённых решений для часто возникающих проблем в заданном контексте. То же и с автоматизацией тестирования, есть даже хорошее wiki-описание. В этой статье мы поговорим о паттернах процессов (Process Patterns). Они помогают организовать и улучшить процесс автоматизации тестирования. 

Без дальнейших предисловий перейдём к трудностям, с которыми мы боролись, и рекомендациям по их преодолению с помощью тех самых паттернов. Замечу, что это не единственные проблемы, которые у нас были и есть. Но в рамках данной статьи я решил остановиться именно на них.

Подробнее...
 
Управление тестами в TestOps: храните информацию, а не выводы
24.06.2021 00:00

Автор: Руслан Ахметзянов, Qameta Software

Обеспечить представление данных из любой большой системы так, чтобы человек мог спокойно с этими данными работать — задача нетривиальная, но давно решенная. В этой гонке уже давно победило "дерево". Папочные структуры в операционных системах знакомы всем и каждому и исторически простое дерево в UI/UX становится первым решением для упорядочивания и хранения данных. Сегодня поговорим о тестировании, так что в нашем случае объектами хранения будут выступать тест-кейсы. Как их хранят чаще всего? Верно, в папочках!

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

Подробнее...
 
Как оценить покрытие автоматизации
21.05.2021 00:00

Автор: Алан Ричардсон (Alan Richardson)
Оригинал статьи
Перевод: Ольга Алифанова

Краткое содержание: покрытие требует моделирования. Мы можем организовать код так, чтобы его можно было оценить на основании ментальной модели, и некоторые из моделей исполнимы. Другие модели мы сравниваем с результатами прогона тестов.

Мне задали ряд вопросов: как задокументировать, что делает и что покрывает автотест, не затрачивая кучу времени и сил? Как узнать, что не покрыто автоматизацией?

Подробнее...
 
ПОДЗАПРОСЫ
11.05.2021 12:09

Автор: Роман Буданов, тренер курса “Первый Онлайн ИНститут Тестировщиков” (компания “Лаборатория Качества”)

Всем доброго времени суток, мои маленькие (и не очень) любители (и не очень) SQL! На курсе ПОИНТ мы с нуля разбираем построение запросов, обучаемся основным операторам, работе с разными типами данных, но сейчас я хочу с вами поговорить про один из полезных инструментов, увы, оставшихся  за рамками ПОИНТ сегодня я хочу рассказать вам про такую полезную штуку, как подзапросы и показать несколько вариантов их приготовления.

Подробнее...
 



Страница 9 из 41