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

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

.
С чего начинаются тесты
24.11.2020 00:00

Оригинальная публикация

Тестов много не бывает. И речь идёт не только о наращивании их количества (что само по себе, конечно, тоже хорошо) — речь идёт о разнообразии самих видов тестов. Даже не напрягая воображение можно вспомнить несколько способов протестировать ваше приложение: Unit-тесты, интеграционные тесты, API-тесты, системные тесты… и это не вспоминая о том, что тесты ещё бывают функциональными, нагрузочными, направленными на отказоустойчивость...

Но с чего же начинать писать тесты для новых проектов? Лично для меня, как для программиста, самый интуитивный ответ — это Unit-тесты. Однако опрометчиво накидываться на сочинение Unit-тестов может не только оказаться бесполезым занятием, но даже нанести вред в будущей разработке проекта.

Поэтому в этой статье я хочу предложить вам альтернативу и расскажу о том, почему лучше всего в самую первую очередь писать самые сложные тесты (системные), а затем уже — все остальные.

Подробнее...
 
4 правила хорошего Gherkin
23.11.2020 00:00

Автор: Энди Найт (Andy Knignt)
Оригинал статьи
Перевод: Ольга Алифанова

Разработка через реализацию поведения (BDD) может помочь команде создавать хорошее ПО через скрупулезную спецификацию поведения продукта на простом языке. Неважно, хотите ли вы улучшить сотрудничество через встречу "трех друзей", или повысить качество автоматизации при помощи фреймворка вроде Cucumber – в центре BDD стоит один язык: Gherkin.

С первого взгляда Gherkin выглядит простым – просто напишите ряд шагов, описывающих желаемое поведение. Однако я сталкивался с командами, которым очень трудно хорошо писать на Gherkin. Начинающие часто страдают от писательского ступора, или же пишут сценарии, которые сложно автоматизировать. Иногда противоречивость заставляет людей по-разному интерпретировать шаги. Еще, бывает, люди слишком детализируют шаги, делая сценарии сложными для понимания. Раздражение от Gherkin даже выливается в плохую репутацию BDD.

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

Подробнее...
 
Система под контролем: как автоматизировать интеграционные тесты
20.11.2020 00:00

Оригинальная публикация
Автор: Ксения Якиль

Привет! Меня зовут Ксения Якиль. Я пишу core-сервисы на C и Go в бэкенд-отделе Badoo и Bumble. Наш бэкенд — это высоконагруженная распределённая система, обслуживающая пользователей по всему миру. Она оперирует большими массивами данных и делает всю ту магию, благодаря которой люди находят друг друга. 

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

Подробнее...
 
Основы JMeter, часть 1: переменные
19.11.2020 00:00

jmeter1Автор: Джуао Фариас (João Farias)
Оригинал статьи
Перевод: Ольга Алифанова

 

В прошлый раз мы заложили фундамент для исследования производительности сервиса orderbook в Mercado Bitcoin, бразильском обменнике криптовалюты.

Скачать код можно здесь.

В этот раз мы начнем разрабатывать более детальный набор тестов.

Подробнее...
 
Какие уроки можно извлечь даже из небольшого бага, как пользоваться PageObjects в Cypress и интегрировать Cypress и Everyqa.io, как начать работать с JMeter, и зачем нужны брейкпойнты в тестировании: самые интересные новости тестирования за начало ноября
18.11.2020 12:38

Опубликован очередной выпуск рассылки за первую половину ноября.

В выпуске собраны ссылки на новые статьи, слайдкасты, отобраны самые интересные публикации в ленте блогов и темы на форуме.

Содержание рассылки доступно по ссылке.

Подписаться на рассылку

 
НАШ ОПЫТ ИНТЕГРАЦИИ CYPRESS И EVERYQA.IO
17.11.2020 00:00

Автор: Новиков Александр, QA engineer at Roowix

Добрый день! Меня зовут Александр, я - QA в компании Roowix.

Мой профиль - автоматизация тестирования, и сегодня я расскажу, как мы разворачивали screenshot-based тестирование на биржевом проекте при помощи Everyqa.io и Cypress.

Специфика проекта заключается в отображении состояния котировок на графике в canvas с большим количеством фильтров и настроек. Использовать стандартные средства для тестирования проекта на canvas было неудобно. Исходя из этого мы начали поиск подходящего инструмента и стратегии написания автотестов.

Подробнее...
 
Чему меня научил один маленький баг
16.11.2020 00:00

Автор: Майкл Болтон (Michael Bolton)
Оригинал статьи
Перевод: Ольга Алифанова

Почти десять лет назад я написал серию статей об оценке проекта и черных лебедях.

И почти что спустя десять лет Крис НеДжейм сообщил о своем наблюдении об абзаце ближе к концу четвертой части:

Как часто говорил Джерри (Вайнберг), множество компаний становятся жертвами неужач, но в основном всему виной не неудачи, а то, как они реагируют на неудачи.

Заметили проблему? Крис заметил. Он вежливо сообщил – "возможно, что в части 4 опечатка: "неужач"?" После чего я исправил баг.

Какие уроки можно из этого извлечь?

Подробнее...
 
Что такое XML
13.11.2020 00:00

Автор: Ольга Назина (Киселёва)

Если вы тестируете API, то должны знать про два основных формата передачи данных:

  • XML — используется в SOAP (всегда) и REST-запросах (реже);
  • JSON — используется в REST-запросах.

Сегодня я расскажу вам про XML. В списке доп литературы будет ссылка на книгу по XML, у меня нет цели ее дублировать, но я расскажу про этот формат тем, кто XML еще в глаза не видел. А дальше уже гуглим сами ))

XML, в переводе с англ eXtensible Markup Language — расширяемый язык разметки. Используется для хранения и передачи данных. Так что увидеть его можно не только в API, но и в коде.

Этот формат рекомендован Консорциумом Всемирной паутины (W3C), поэтому он часто используется для передачи данных по API. В SOAP API это вообще единственно возможный формат входных и выходных данных!

Подробнее...
 
Как использовать брейкпойнты в инструментах разработчика, часть 1
12.11.2020 00:00

Автор: Кристин Джеквони (Kristin Jackvony)
Оригинал статьи
Перевод: Ольга Алифанова

Современные команды разработки ПО размывают традиционные границы между разработчиком и тестировщиком. Это означает, что разработчики все сильнее вовлекаются в тест-автоматизацию на всех уровнях пирамиды, а тестировщики все глубже погружаются во внутреннюю механику приложения. Разве не здорово бы было найти причины багов JavaScript, а не просто сообщать о них? Это можно сделать при помощи брейкпойнтов инструментов разработчика Chrome!

В этой статье я шаг за шагом проведу вас по использованию Chrome Dev Tools для дебага. Я узнала об этом из этой полезной статьи в блоге Google, но я буду использовать пример приложения, чтобы вы смогли попробовать различные методы самостоятельно.

Важно отметить, что для использования брейкпойнтов вам понадобится локальная установка приложения. Нельзя просто взять релизную версию и дебажить ее. Статья покажет вам, как запустить React-приложение локально, и вы можете уточнить у своих разработчиков, как сделать это с вашим рабочим приложением.

Подробнее...
 
Http-stubs — поиск идеального инструмента
11.11.2020 00:00

Оригинальная публикация
Автор: lowitea
Источник: блог компании Uma.Tech

Всем хорошего дня, я backend-разработчик компании Uma.Tech. Сегодня я хочу рассказать, как однажды нашему отделу разработки поступила задача от отдела тестирования: локально развернуть сервис создания заглушек для http-запросов. Если интересно, как проходил поиск, сравнение разных opensource и не только инструментов, до чего мы в итоге докатились и причём тут попугай на картинке — прошу под кат.

Оговоримся сразу: мы не рекламируем ни один из приведенных ниже инструментов, а просто делимся своим опытом.

TLDR: Если нет желания читать много букв, в конце общая сводная таблица по всем инструментам.

Подробнее...
 
Cypress – использование Page Objects
10.11.2020 00:00

Автор: Тоби Стид (Toby Steed)
Оригинал статьи
Перевод: Ольга Алифанова

В первой статье этого нового цикла мы научились добавлять Cypress в новый проект и настраивать его, и закончили созданием первого теста. Поздравляю, теперь вы находитесь в той точке, в которой нечестные люди пополняют свое резюме в разделе технических навыков. Однако нам еще многому надо научиться, и в этот раз мы улучшим наш тест, внедряя в Cypress Page Objects.

Cypress, как практически все тест-инструменты и фреймворки, поддерживает разные паттерны дизайна. В этой статье, расширяя предыдущую, мы будем использовать Page Objects. Надеюсь, это поможет вам разобраться с парой моментов. Во-первых, вы увидите, как похож код с Page Objects в Cypress на Selenium (помимо синтаксиса), а во-вторых, как здорово Cypress позволяет быстро писать чистый и читабельный код.

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