Обновить
120.66

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

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

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

Первый митап RamQA

Время на прочтение1 мин
Количество просмотров3.5K
29 сентября c 19:00 до 22:00 пройдёт наш первый митап по тестированию и обеспечению качества разработки. В этот раз мы поговорим про автоматизацию мобилок, автоматизацию управления и об устройстве тестирования в одной известной компании.

image

На встрече мы услышим 3 доклада.
Читать дальше →

Тестирование производительности баз данных при помощи tSQLt и SQLQueryStress

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


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

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

В итоге работа с БД может стать узким местом в производительности нашего приложения.

Чтобы избавить себя от подобного рода проблем, я предлагаю рассмотреть различные аспекты тестирования баз данных. К которым можно отнести нагрузочное тестирование и проверку производительности SQL Server в целом при помощи юнит-тестов.
Подробнее

Введение в GitLab CI

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

Публикую перевод моей статьи из блога ГитЛаба про то как начать использовать CI. Остальные переводы гитлабовских постов можно найти в блоге компании Softmart.




Представим на секунду, что вы не знаете ничего о концепции непрерывной интеграции (Continuous Integration — CI) и для чего она нужна. Или вы всё это забыли. В любом случае, начнем с основ.


Представьте, что вы работаете над проектом, в котором вся кодовая база состоит из двух текстовых файлов. Более того, очень важно, чтобы при конкатенации этих файлов в результате всегда получалась фраза "Hello world." Если это условие не выполняется, вся команда лишается месячной зарплаты. Да, все настолько серьезно.


Hello wolrd


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

Группировка моделей телефонов Android по контейнерам Docker

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

Немного предыстории


Мобильное приложение Badoo существует для основных «нативных» платформ (Android, iOS и Windows Phone) и для мобильного веба. Несмотря на то, что в разработке мы не используем никаких кроссплатформенных фрэймворков, подавляющая часть бизнес-логики в приложениях схожа, и чтобы не дублировать функциональные тесты для всех платформ, мы пишем кроссплатформенные тесты с помощью Cucumber, Calabash и Appium. Это позволяет нам выносить в общую часть и переиспользовать в тестах для всех платформ код, отвечающий за проверку этой самой бизнес-логики. Различной же остается лишь реализация взаимодействия с приложением (более подробно мы рассказывали об этом здесь).

Когда кроссплатформенная автоматизация только начиналась (на iOS и Android), было принято решение использовать в качестве серверов Mac Mini. Это позволило сделать каждую из 8 билд-машин универсальной: на ней можно было собирать и запускать функциональные и юнит-тесты как для приложений на iOS, так и на Android. Такое решение устраивало нас практически всем до тех пор, пока количество функциональных тестов не перевалило за пять сотен для каждой платформы, а прогоны не стали требовать все больше времени. Для того чтобы удержать время прогона в разумных границах, мы постоянно работаем над оптимизацией тестов, а также добавляем новые Android-устройства (для iOS мы добавляем симуляторы по-другому). Со временем у нас появились Mac Mini с более чем 8 смартфонами. Важно отметить, что мы подключаем устройства одной модели к одному серверу, чтобы прогоны тестов были консистентны на одном агенте.
Читать дальше →

Создаем заглушки сервисов для интеграционного тестирования на Apache Camel (с использованием Scala DSL)

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


Это третья статья об использовании Scala в тестировании. Сегодня будут рассмотрены примеры использования Apache Camel для создания тестовых заглушек, а также компонентов информационной системы.


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


Для разовой проверки интеграции мы бы использовали простое Java или Scala приложение, сценарий Apache JMeter или SoapUI. Но нам нужна система, которая постоянно работает, отвечает на запросы и не требует действий со стороны тестировщика — запустил и забыл. Для решения такой задачи мы можем создать приложение, основанное на фреймворке Apache Сamel.

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

Гейзенбаг — новая конференция по тестированию от JUG.ru Group

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


Мы проводим много разных конференций для разработчиков: Java, .NET, JavaScript, iOS/Android, – и в каждой из них акцент всегда ставится на технический хардкор и отсутствие воды в докладах. Кроме того, мы уже больше года опрашиваем наших участников, каких конференций не хватает в России. И вот результат: 10 декабря в Москве состоится первая в своем роде глубоко техническая конференция по тестированию Гейзенбаг 2016 Moscow.

Обратите внимание: Гейзенбаг — это именно конференция «по тестированию», а не «для тестировщиков». Мы приглашаем на конференцию:

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

Итак, какую техно-жесть мы готовим для вас? Смотрите под катом.
Читать дальше →

Инструмент анализа скорости PHP-функций

Время на прочтение13 мин
Количество просмотров20K
В последнее время обращал внимание на материалы о производительности и замерах скорости функций PHP. После анализа ряда материалов был сделан следующий вывод. Сравнений довольно много, но все замеры проводятся с разными входными условиями, вывод результатов тестирования у каждого решения свой, не говоря уже о том, если появится желание проверить тесты в своей среде, то придется копипастить куски кода.

Поэтому возникла идея написать собственный механизм простого тестирования скорости различных операций. Задумка показалась интересной, поэтому начало было положено!
Читать дальше →

Ломаем сбор мусора и десериализацию в PHP

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


Эй, PHP, эти переменные выглядят как мусор, согласен?
Нет? Ну, посмотри-ка снова…


tl;dr:
Мы обнаружили две use-after-free уязвимости в алгоритме сбора мусора в PHP:

  • Одна присутствует во всех версиях PHP 5 ≥ 5.3 (исправлена в PHP 5.6.23).
  • Вторая — во всех версиях PHP ≥ 5.3, включая версии PHP 7 (исправлена в PHP 5.6.23 и PHP 7.0.8).

Уязвимости могут удалённо применяться через PHP-функцию десериализации. Используя их, мы отыскали RCE на pornhub.com, за что получили премию в 20 000 долларов плюс по 1000 долларов за каждую из двух уязвимостей от комитета Internet Bug Bounty на Hackerone.
Читать дальше →

Тестирование RESTful API на NodeJS с Mocha и Chai

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


Перевод руководства Samuele Zaza. Текст оригинальной статьи можно найти здесь.


Я до сих пор помню восторг от возможности наконец-то писать бекэнд большого проекта на node и я уверен, что многие разделяют мои чувства.


А что дальше? Мы должны быть уверены, что наше приложение ведет себя так, как мы того ожидаем. Один из самых распространенных способов достичь этого — тесты. Тестирование — это безумно полезная вещь, когда мы добавляем новую фичу в приложение: наличие уже установленного и настроенного тестового окружения, которое может быть запущено одной командой, помогает понять, в каком месте новая фига породит новые баги.

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

Выбираем html-парсер для Apache.JMeter

Время на прочтение11 мин
Количество просмотров9.5K
Среднее качество полноты извлечения ссылок на встроенные ресурсы html-парсерами Apache.JMeter
Среднее качество работы парсеров (для семи сайтов)

Предлагаю:

  • посчитать среднее качество полноты извлечения ссылок на встроенные ресурсы html-парсерами Apache.JMeter;
  • проверить правда ли извлечение ссылок в Apache.JMeter 3.0 стало более полным;
  • испытать в деле плагин CsvLogWriter.

Как гласит народная мудрость: Верить верь, но…
проверь

Список самых популярных устройств в США и ЕС, на которых необходимо тестировать мобильные приложения (перевод статьи)

Время на прочтение2 мин
Количество просмотров5.9K
imageМы с вами находимся в ситуации, когда на глобальных рынках представлены тысячи различных смартфонов под сотнями брендов.

Некоторые из них нам хорошо знакомы, а некоторые – мы видим в первый раз. Но это не означает, что А- или B-бренды представлены и популярны на абсолютно всех рынках. Согласно Законку Парето, лишь 5-7 устройств/брендов являются занимают до 80% рынка в конкретном регионе.

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

Как Clojure помогает ускорить написание Selenium-тестов

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

image Привет, читатель! Если доводилось писать Selenuim-тесты чуть сложнее чем на пару полей ввода и одну кнопку, то эта статья может пригодиться.


Наверняка знакомо чувство неправильности происходящего, когда внезапно отказывался работать тест-кейс длиной в пару минут, вынуждая тыкаться вслепую, чтобы найти поломавшийся css- или xpath-селектор в сложном Single Page Application, раз за разом запуская этот медленный сценарий, только чтобы дождаться вывода лога в консоль. Оказывается, можно писать Selenium-тесты с комфортом!


О чём статья - другими словами для нубов

Про Selenium. Когда-то это был просто плагин для FireFox. Нажимаешь кнопочку "запись", и начинаешь дергать интерфейсы тестируемого сайта (формочки, ссылки). Практически без знания программирования, полученный сценарий можно править, подставляя нужные значения проверок. Всё — тест готов! Запускай каждый раз после деплоя, и проверяй, чего сдвинул локтем. Потом в Selenium добавили API для разных языков. В частности есть и для JAVA. Через API можно делать тоже самое: запускать браузер с требуемым сайтом, проверять переданные значения в формах, ходить по ссылкам и т.д. Беда в том, что скрипт выполняется медленно. Чтобы тестировать тесты, надо перезапускать сценарий, а это форменная пытка. Clojure (поверх JAVA) позволяет выполнять куски кода в работающей программе посредством REPL прямо в редакторе!

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

Год использования ReactJS: подводим итоги

Время на прочтение5 мин
Количество просмотров26K
React мы в Voximplant любим и ценим. Вовсе не из-за хайпа (полторы тысячи твитов о новом SDK просто потому, что это React Native) а потому, что фреймворк действительно удобный. Простое дробление интерфейса на маленькие изолированные кусочки – это то, чего так не хватало и Jade/Pug, и Web Components, и даже Angular.

Под катом адаптированный перевод статьи, в которой разработчики JetRuby Agency делятся впечатлениями о React: что использовали, что не использовали и что еще только планируют использовать.
Под катом художественный перевод Store как Стор, держитесь!

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

Управление зависимостями в Python: похоже, уже можно пользоваться

Время на прочтение8 мин
Количество просмотров32K
В большинстве популярных языков программирования и экосистем с зависимостями все плохо. Как правило, создатели нового языка программирования уделяют этому не очень много внимания: просто потому, что в новом языке еще нет сотен тысяч библиотек для разных архитектур и версий, нетривиальным образом зависящих друг от друга. А когда эти сотни тысяч библиотек появляются – уже поздно что-нибудь менять.

Единственным на моей памяти исключением является node.js, авторы которой разработали «с чистого листа» на удивление удачную систему управления зависимостями. Ну, как удачную? Проблем там тоже много, начиная автовыполняемыми скриптами и заканчивая переходом от древовидной к flat структуре в 3-й версии. Но по сравнению с тем, что на тот момент было в других языках, нода — это прорыв.

Совсем недавно экосистема пополнилась новой утилитой rnpm, которая позволяет одной командой устанавливать React Native зависимости. В которых, на секундочку, может быть бинарный код для android и ios. Для разных архитектур. И все это работает из коробки. Мы в Voximplant хорошо знакомы с этой штукой: с ее помощью ставится наш собственный React Native SDK.

Вашему вниманию предлагаем интересную статью, опубликованную всего два дня назад, в которой очень подробно рассказывается про управление зависимостями в Python. Про историю развития. Про проблемы. И, что самое ценное — про то, как сообщество их решает. Под катом адаптированный для Хабра перевод и возможность обсудить печальную тему зависимостей. И не только для Python.
Лонгрид без картинок, приготовьте чашку кофе!

Маленький, но очень полезный патч в Selenium

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

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


Примерно полгода назад тестов и задач стало столько, что наша маленькая ферма с Selenium в час пик стала буквально «захлебываться» от запросов на новую сессию Firefox или Chrome. Выглядело это примерно так: на Selenium grid образуется очередь из сессий, которые ждут свободный браузер. Пользователи продолжают запускать автотесты, и эта очередь продолжает расти, но браузеры заняты старыми задачами и сессии «отваливаются» с таймаутом.


дай ноду

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

Для чего нужен мониторинг доступности сайтов? Обзор сервиса ХостТрекер

Время на прочтение5 мин
Количество просмотров8.6K
Компания ХостТрекер является одним из лидеров рынка по предоставлению услуг мониторинга сайтов и различных веб сервисов. Она располагает множеством разнообразных инструментов, которые постоянно совершенствуются с учетом тенденций времени. Как появилась компания? Почему возникает потребность в мониторинге? Как он может помочь при разработке и тестировании сайтов и серверов? Этот обзор раскроет суть вопросов, а также покажет, как простое желание оптимизировать свою работу может трансформироваться в полезный для других продукт, а также как не утратить дух стартаперства и всегда шагать в ногу со своими клиентами.


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

Когда юнит-тестирование действительно необходимо

Время на прочтение5 мин
Количество просмотров13K
Представим, что вы разработчик на JavaScript, Ruby, Python или PHP. Ваш язык программирования не ищет ошибок во время компиляции. Собственно, у него компиляции, как таковой, нету. Если вы допустите синтаксическую ошибку, вы, конечно, о ней узнаете. Когда запустите программу.

Если вы ответственный разработчик, то напишите тесты сами. Так поступают все ответственные разработчики. Но что вы будете тестировать?
Читать дальше →

Server-less API на AWS за 15 минут

Время на прочтение6 мин
Количество просмотров18K
Amazon Web Services позволяют очень быстро производить прототипирование простых веб-приложений, и написать API, допустим, для простого мобильного приложения можно за считанные минуты. Мы будем использовать связку DynamoDB и API Gateway (без Lambda-функций!) для настройки GET и POST запросов к базе с возможностью чтения, записи и изменения данных в ней.


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

Сравнение онлайн-сервисов склонения имен

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

Появилась потребность определять пол клиентов в базе и автоматически склонять ФИО для интернет-магазина. Специфика магазина – подарки и доставка цветов с поздравлениями.


Магазин принимает информацию о пользователях через форму быстрого заказа. Есть и обычная корзина, но многие пользуются именно быстрым заказом – там можно заполнить только телефон и сразу же перейти к оплате. Клиенты пользуются возможностью и часто вообще не указывают имя. Делать поля для ФИО обязательными бессмысленно – вписывать мусор вместо данных не запретить. Также как не запретить неправильно писать собственное имя.
Между тем правильное обращение к клиенту необходимо, иначе возможны казусы:


image


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

Почему в Украине всё-таки есть белые хакеры

Время на прочтение8 мин
Количество просмотров19K
Эта статья будет ответом на недавнюю публикацию Владимира Таратушка.
Причин написания статьи у меня было несколько.
Первая — это показать, что белые хакеры в Украине есть. Существуют они благодаря одной из программ поощрения поиска уязвимостей, которую проводит Приватбанк.
Следующая причина — это рассказать свою success story работы с одним из крупнейшим банком Украины в рамках данной программы.
Так же я хочу показать эффективность работы такой программы на реальном примере и сподвигнуть к организации таких программ те компании, которые по каким то причинам сомневаются или не видят в них реальных плюсов.
Ну и последняя причина — показать будущим и настоящим ресёчерам, что участие в баг-баунти программах интересно, этично и материально выгодно.
Читать дальше →