21.09.2021 00:00 |
Оригинальная публикация
ВступлениеСегодня я расскажу вам про Record-and-Replay подход к тестированию т. к. я его понимаю. Оговорка про мое понимание не случайна. Про этот подход не так много общедоступных материалов, чтобы иметь некий common agreement относительно значения этого термина. Многое из того, что я опишу, является моими личными оригинальными находками, но, тем не менее, фраза record-and-replay, на мой взгляд, наилучшим образом описывает применяемые мной решения. Так что я буду использовать именно ее. Чтобы было проще понять, какие проблемы решает RnR, в ходе этого разговора мы сначала обсудим некоторые другие подходы к написанию тестов (юнит-тестирование, интеграционное тестирование и т. д.). И отталкиваясь от их недостатков перейдем к варианту с RnR, я расскажу, что же это собственно такое, как это работает, и каким образом решает озвученные ранее проблемы. Поговорим про подводные камни, которые могут свести пользу от внедрения всего этого дела к нулю. Ну и, конечно, обсудим недостатки или границы применимости этого подхода. Примеры кода в статье на Java, но язык простой, так что на чем бы вы не программировали, у вас вряд ли возникнут проблемы с их пониманием. Тем более что они несут больше иллюстративную функцию. Сама философия статьи применима ко многим стэкам. |
Подробнее...
|
13.09.2021 00:00 |
Автор: Ольга Кабанова, Senior Mobile QA Engineer, hh.ru Оригинальная публикация
Всем привет! Я Оля, тестировщик мобильных приложений в hh.ru. У нашей команды есть влог на ютюбе, где мы рассказываем о том, как разрабатывается наша мобилка. Теперь мы начинаем рассказывать еще и о том, как все эти разработки тестируются. Для заинтересованных мы создали отдельный плейлист, в котором будем рассказывать о тестировании и автоматизации. В этой статье мы отвечаем на 5 самых популярных вопросов ручных тестировщиков про автоматизацию. Видеоверсию можно посмотреть тут. |
Подробнее...
|
09.09.2021 00:00 |
Автор: Филип Рик (Filip Hric) Оригинал статьи Перевод: Ольга Алифанова При тестировании приложения с Cypress вам в первую очередь может понадобиться проверка присутствия элемента. В этой статье я хочу рассмотреть, как проверить, существует ли элемент и видим ли он, а также обсудить некоторые хитрости таких тестов.
В ходе статьи я буду использовать мое приложение-клон Trello. Его можно скачать с GitHub и следовать за мной. |
Подробнее...
|
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-сервере тесты падают). |
Подробнее...
|
10.08.2021 00:00 |
Автор: Филип Рик (Filip Hric) Оригинал статьи Перевод: Ольга Алифанова .contains() – одна из моих самых любимых команд в Cypress. Ее имя звучит как утверждение, но на самом деле это команда выбора. Конечно, можно поспорить, что все команды выбора убеждаются в существовании элемента, но давайте не будем вдаваться в философские споры)
Это различие меж тем очень важно. Немного двусмысленное имя .contains() может привести к тому, что вы не узнаете об ее мощи. Одна из вечных проблем тестирования – это поиск подходящего селектора с сохранением читабельности теста. .contains() позволяет выбрать элемент по тексту, но она может куда больше.
Разберемся, чем же она хороша. Я использую ряд примеров, которые можно найти в моем GitHub. |
Подробнее...
|
02.08.2021 00:00 |
Статья предоставлена компанией SimbirSoft Автоматизация тестирования – неотъемлемая часть процесса обеспечения качества. Мы в нашей практике чаще всего разрабатываем тесты для веб-, мобильных приложений и API, но сегодня хотим рассказать о более редком направлении – тестировании десктоп-приложений. Кратко рассмотрим подходы, инструменты, технологии и «грабли», на которые можно наступить при выполнении этой задачи. Статья будет полезна специалистам, которые хотят попробовать автоматизировать ежедневную монотонную работу, а также коллегам по цеху в сфере автоматизации gui-тестирования – как начинающим, так и разработчикам с опытом. |
Подробнее...
|
15.07.2021 00:00 |
Автор: Баз Дейкстра (Bas Dijkstra) Оригинал статьи Перевод: Ольга Алифанова На прошлой неделе я проводил двухдневную версию своего мастер-класса по тестированию API на Python. Пока мы выполняли упражнения по созданию автотестов для REST API с использованием requests, один из участников спросил, применимо ли это к GraphQL API. Никогда раньше этого не делал, но после совместного гугления и обсуждения мы постановили, что это небольшая проблема.
Так как мы обсуждали это в первый день курса, я обещал подготовить ряд быстрых упражнений, над которыми можно будет поработать на второй день. В этой статье вы увидите ряд примеров, которые входили в эти упражнения.
Один из участников предложил отличное приложение в качестве тестируемого API: SpaceX GraphQL API. Этот публичный API содержит информацию о компании SpaceX, а также ее истории, космическом флоте, миссиях, запусках, и т. д. Множество данных, есть с чем поработать. |
Подробнее...
|
01.07.2021 00:00 |
Автор: Филип Рик (Filip Hric) Оригинал статьи Перевод: Ольга Алифанова Привет, и с вами снова цикл статей по основам Cypress!
Получение текста элемента
Чтобы получить правильные атрибуты элемента, хорошо бы понимать основы различных HTML-элементов. Приведу пример. Допустим, у нас два элемента:
<div>Пожалуйста, введите имя:</div> <input type="text"></input> |
Подробнее...
|
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). Они помогают организовать и улучшить процесс автоматизации тестирования. Без дальнейших предисловий перейдём к трудностям, с которыми мы боролись, и рекомендациям по их преодолению с помощью тех самых паттернов. Замечу, что это не единственные проблемы, которые у нас были и есть. Но в рамках данной статьи я решил остановиться именно на них. |
Подробнее...
|
|