Обновить
119.5

Тестирование веб-сервисов *

Семь раз оттесть, один раз деплой

Сначала показывать
Порог рейтинга
Уровень сложности

Отчёт с прошедшего 17 июня QA MeetUp

Время на прочтение3 мин
Количество просмотров5.8K


17 июня в Нижнем Новгороде прошла встреча QA MeetUp для всех, кто имеет отношение к сфере тестирования и просто неравнодушных. На встрече выступили целых шесть докладчиков, и мы предлагаем вам посмотреть видеозаписи и презентации их выступлений.
Читать дальше →

Как мы тестируем взаимодействие с Facebook

Время на прочтение7 мин
Количество просмотров17K


Вступление

Привет, хаброжитель! Уже довольно давно я хотел написать статью о том, как у нас в Badoo устроена автоматизация тестирования. Хотелось написать о чем-то интересном и, в то же время, полезном. Поделиться опытом, который можно было бы легко интегрировать почти в любую систему. И вот, такая тема назрела…

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

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

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

Сегодня я расскажу о том, как на Badoo устроена регистрация и верификация через Facebook и о том, как мы научили selenium-тесты ее проверять.

Читать дальше →

Добавляем произвольный телефон в личном кабинете оператора мобильной связи Киевстар (Украина)

Время на прочтение3 мин
Количество просмотров56K
Я являюсь клиентом украинского оператора сотовой связи Киевстар и пользователем их веб-сервиса my.kyivstar.ua. Как и многие другие операторы, Киевстар предлагает веб-версию личного кабинета, в котором можно просмотреть баланс счёта, детализацию звонков, изменить тариф, заказать или отключить услугу и пр.
Так же у них недавно была запущена новая версия личного кабинета new.kyivstar.ua. В ней появилась интересная функция — добавление другого телефона Киевстар через смс верификацию. Я взялся её проверить на наличие уязвимостей, так как она фактически давала такой же доступ к добавляемому телефону, как и к своему, что меня не особо радовало, как клиента.
Новый сайт имеет следующий интерфейс добавления телефона:

Читать дальше →

Грабли A/B тестирования — встреча с Романом Поборчим, Санкт-Петербург

Время на прочтение2 мин
Количество просмотров3K
В четверг, 7 июля, в 20:00, в петербургском офисе Oracle состоится встреча CodeFreeze с Романом Поборчим, экспертом по Java, качеству поиска и A/B тестированию. Тема встречи — грабли A/B тестирования.

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

Читать дальше →

Учимся на ошибках в организации контроля качества

Время на прочтение13 мин
Количество просмотров35K
Привет, Хабр! Меня зовут Илья Кудинов, и я работаю QA-инженером в компании Badoo. Три года назад я начал посещать различные IT-конференции и рассказывать о процессах и технологиях, применяемых нами при контроле качества. И конечно же, после каждого доклада я общался со слушателями, интересовался, как работают они. В этом деле меня всегда мотивировали отзывы вида «Раньше мы работали вот так, но, послушав твой доклад, мы увидели, как можно сделать лучше», а еще лучше — когда люди не копируют наши приемы, а придумывают что-то сами, иногда даже более интересные варианты. Таких историй у меня накопилось много, и я хочу поделиться с вами некоторыми из них (все имена и названия вымышлены, любые совпадения с реальными лицами являются случайностью). Может быть, что-то из этого поможет вам увидеть направление развития вашего собственного проекта — и это будет самой большой наградой для меня! Разумеется, буду рад после этого выслушать и ваши истории — в комментариях или личных сообщениях.
Читать дальше →

Работа с OZON (Merchants) API средствами PHP

Время на прочтение4 мин
Количество просмотров24K
Работаем над большим интернет-магазином. И вот возникла необходимость из УТ (1С Управление торговлей) управлять заказами на O Ozon.

Смысл такой: есть БД PostgreSQL, 1C'ка работает с этой базой, вносит данные о поступивших заказах, меняет статусы заказов. И есть также скрипт PHP, который лежит на сервере и выполняется по крону каждые 3 минуты. Что этот скрипт должен делать?

  • 1. Получать токен от API ozon;
  • 2. Забирать все новые заказы с Ozon. Создавать новый XML файл с полученными заказами;
  • 3. Получать из БД заказы с определённым статусом. Изменять статус этих заказов на Ozon. Изменять статус этих заказов в БД;
  • 4. Закрывать заказы с определённым статусом на Ozon. Изменять статус этих заказов в БД.
Читать дальше →

Тестируем асинхронный код

Время на прочтение5 мин
Количество просмотров13K
Асинхронный код – сложный. Все это знают. Писать асинхронные тесты – еще сложнее. Недавно я починил мигающий (flaky) тест и хотел бы поделиться некоторыми мыслями по поводу написания асинхронных тестов.

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



Тестируем throttler


Throttler (Ограничитель) – это класс, отвечающий за ограничение количества одновременных операций, выполняемых с некоторым ресурсом (например, пул соединения, сетевой буфер или ресурсоемкие операции процессора). В отличие от других инструментов синхронизации, роль ограничителя заключается в том, чтобы запросы, превышающие квоту, завершались ошибкой немедленно, без ожидания. Быстрое завершение важно, поскольку альтернатива, ожидание, потребляет ресурсы – порты, потоки и память.
Читать дальше →

Как мы тестировали российский speedtest

Время на прочтение6 мин
Количество просмотров34K
Тестирование сервиса wiTest.ru

Все хотя бы раз в жизни пользовались сервисом speedtest.net для измерения скорости доступа в Интернет дома или на работе. Точность не высокая, но зато бесплатно. Аналогичных сервисов мне лично известно более 20 как российских, так и зарубежных.

Возникла мысль оценить, насколько эти сервисы показывают «правду» относительно реальной картинки. Для этого был собран стенд, который имитирует «последнюю милю» абонентского подключения по технологиям: FTTx, GPON и xDSL. Логическая схема собранного стенда представлена на рисунке ниже.

Стенд тестирования wiTest

В качестве подопытного сервиса мы взяли сервис, который опубликован на сайте Банки.ру.
Читать дальше →

Как я скачивал онлайн трансляцию Comdi (Startup village)

Время на прочтение3 мин
Количество просмотров25K

Мы живем с вами в то время, когда видео с Youtube и других видеохостингов может скачать даже школьник с помощью огромного количества расширений для браузеров.
Что касается онлайн трасляций, то здесь уже не все так просто. В прошлом году еще задался целью скачать записи выступлений на Startup village в Сколково, но тогда ничего кроме захвата экрана не придумал. В этот раз решил пойти до конца и найти способ скачать онлайн трансляции. Готовых решений в интернете не видел, только многочисленные вопросы, как скачать с Comdi. Надеюсь кому-то мой опыт покажется полезным.
Читать дальше →

Как стать тестировщиком или каких знаний мы ждём от джуниора

Время на прочтение6 мин
Количество просмотров512K

image


Пара вводных слов
Всем доброго времени суток, меня зовут Туманов Дима. Сейчас я работаю в компании Rambler&Co и отвечаю за тестирование на проектах Афиши. В рамках данной статьи я развею несколько мифов об IT и тестировании в частности. Кроме того, приведу примеры из жизни как “не зная ничего” стать Junior QA Engineer в крупной компании.


Начало пути
Проработав почти два года в одной “мирной” госкорпорации в должности “ненастоящего инженера”, я осознал, что развитие остановилось. Я мог сидеть на одном месте и почти ничего не делать. В конечном итоге мои знания бы совсем отстали от реальной действительности и я бы стал невостребованным на рынке. В этот момент я принял решение о смене места и сути своей работы.

Читать дальше →

Delayed Durability или история о том как получилось ускорить выполнение автотестов с 11 до 2,5 минут

Время на прочтение10 мин
Количество просмотров13K


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

Стек технологий был изначально выбран мелкомягкий, а в качестве хранилища данных использовался SQL Server 2014 Express. Одним из первых тасков, которые мне поручили — это поисследовать возможность ускорения автотестов.
Подробнее

Как не дать частым релизам поломать ваше API, или пишем авто-тесты для открытого API и шлем результат в Telegram бот

Время на прочтение19 мин
Количество просмотров15K
image

Предисловие


Наша команда разрабатывает финансовые инструменты, в том числе открытые платежные API, и как многие проекты, работающие по практике continuous integration мы одновременно с созданием проекта 3 года назад начали думать над тем, как улучшить покрытие проекта тестами и добиться максимальной стабильности нашего кода при довольно частых изменениях (мы иногда устанавливаем обновления на продуктовую среду несколько раз в день). Особенно это важно в трех аспектах:

  • мы предоставляем наши API интерфейсы в открытый доступ клиентам и важно, чтобы все взаимодействие четко соответствовало описаниям спецификаций
  • мы интегрируемся с большим количеством других финансовых сервисов и банков, и помимо покрытия тестами своего кода мы вынуждены также покрывать интеграционными тестами взаимодействие с test (а иногда и prod) средой сторонних систем
  • наша внутренняя архитектура включает в себя большое количество микросервисов, которые общаются между собой по HTTP API

В этой статье я хотел бы поделиться опытом и показать пример, как мы разрабатываем тесты для API интерфейсов включающих в себя как сервер-сервер взаимодействие, так и работу через браузер.  Для демонстрации я приведу простой пример тестирования процесса оплаты банковской картой через наш платежный шлюз с отправкой результата тестов в Telegram.
Читать дальше →

Парсер OOXML (docx, xlsx, pptx) на Ruby: наши ошибки и находки

Время на прочтение6 мин
Количество просмотров8.6K
Мы выложили парсер OOXML форматов на Ruby в open-source. Он доступен на GitHub'е и RubyGems.org, бесплатен и распространяется под лицензией AGPLv3. Всё как у модненьких Ruby-разработчиков.


Читать дальше →

Ближайшие события

QA MeetUp 17 июня в Нижнем Новгороде

Время на прочтение2 мин
Количество просмотров3.1K


17 июня в Нижнем Новгороде Mail.Ru Group снова проведет QA MeetUp. Событие будет интересно всем, кто работает в сфере тестирования. Приглашаем вас пообщаться с профессионалами из разных IT-компаний, передать свой опыт и получить новый. В программе встречи пять докладов.
Читать дальше →

Как построить грамотную систему тестирования? Инсайты от QA-экспертов: видео и презентации с митапа в Wrike

Время на прочтение1 мин
Количество просмотров22K
Какие инструменты облачного тестинга используют в Яндексе? Как устроено тестирование в Badoo? Что представляет собой система автоматизированного frontend-тестирования в Wrike?



Пару недель назад наш Wrike Tech club собрал около 150 специалистов по тестированию, чтобы обсудить в питерском офисе компании насущные, вечные и, на первый взгляд, почти неразрешимые проблемы QA в больших (и не очень) проектах. Как и обещали, делимся видео и презентациями со встречи.

Смотреть

Ускорение автоматизации тестирования веб-интерфейса за счет применения Python и Selenide

Время на прочтение4 мин
Количество просмотров12K
Одной из задач компании RTL-Service, которая занимается разработкой систем локального позиционирования с высокой точностью и обеспечением голосовой связи по зашифрованному каналу, является разработка веб-клиента:

Читать дальше →

UI тесты: Cucumber + Selenide

Время на прочтение8 мин
Количество просмотров30K

Часть 2


Продолжение статьи о написании UI тестов на Cucumber с помощью Selenide. В первой части был разобран простейший пример smoke-теста для riskmarket.ru. В этой части апгрейдим тест до полноценного проекта с отчетами, поговорим о скриншотах, кастомных Condition, проаннотируем элементы, введем PageObject.


Получившийся проект вполне можно использовать как фундамент для ваших UI тестов.


Проект на гитхабе


Видео исполнения теста на youtube



Читать дальше →

UI тесты: Cucumber + Selenide

Время на прочтение8 мин
Количество просмотров70K

Часть 1


Сегодня поговорим о создании UI smoke-теста для сайта с использованием фреймворков Cucumber и Selenide. Статья рассчитана на junior, который совсем ничего не знает про данные фреймворки. Опытный junior найдет во второй части интересные моменты, до которых я доходил пару месяцев.
Статья состоит из двух частей:


  • в первой описано создание нашего теста простейшим способом – чтобы запускалось и при этом никаких сложных вещей из фреймворков не использовалось. Только создадим описание фичи (.feature файл) и класс описания степов с использованием Selenide.
  • во второй части в тот же самый тест добавим всякие интересные штуки от Selenide, посмотрим, как создавать красивые отчеты, которые будут содержать текст фич (мн.ч от слова «фича»).

Фреймворки


Selenide – фреймворк (а точнее библиотека), обертывающий Selenium. Чем он отличается, прекрасно описано автором, Андреем Солнцевым. Главное отличие – Selenide позволяет сократить кучу строчек кода при написании UI тестов, что является одной из главных задач при создании тестов/написании кода, ибо Вы должны заботиться о том тестере, который придет после Вас и должен будет разбирать Ваше творение.


Cucumber – это фреймворк, реализующий подход BDD/TDD.


Читать дальше →

Как построить грамотную систему тестирования? Инсайты от QA-экспертов 19 мая в Питере

Время на прочтение2 мин
Количество просмотров7.3K


Какие инструменты облачного тестинга используют в Яндексе? Как устроено Selenium-тестирование в Badoo? Что представляет собой система автоматизированного frontend-тестирования в Wrike?

19 мая в питерском офисе Wrike состоится встреча специалистов по тестированию, где мы обсудим насущные, вечные и, на первый взгляд, почти неразрешимые проблемы QA в больших (и не очень) проектах.

О программе и докладах

Как понадеяться на МЧС и сгинуть в лесах Карелии — вредные советы от опытного туриста

Время на прочтение3 мин
Количество просмотров35K
Сижу я в комнате для раздумий и читаю «Вестник МЧС» от 2007 года, потому что баллончик освежителя уже надоел, а на обложке издания есть громкая фраза «Туристы должны быть защищены». А у меня как раз на носу турпоход на майских праздниках, грех не ознакомиться с материалом. В материале рассказано, что Александр Чуприян, в бытность свою замминистра, поднял актуальный вопрос о регулировании спасательных действий и глобальном учёте тургрупп, маршрутов следования и прочих данных для оперативного спасения туристов в случае внезапного ЧС. И деятельность такая на тот момент в некоторых регионах уже ведётся. И готовить будут многолетний план по распространению сей деятельности на все регионы.

image

«Туристы должны знать, что они защищены!» — поставил Александр Чуприян задачу коллегам по службе. Это было в далёком 2007 году.

Читать дальше →