Рубрика «Тестирование IT-систем» - 66

Для кого эта статья?

Данная статья расскажет о том, как нам удалось внедрить процесс модульного тестирования в команды, работающие по классической каскадной модели, а так же в команды с гибкой методологией (agile). В нашей организации в любой команде за общий процесс и наполнение спринта задачами отвечают проджект менеджеры, которые также определяют виды тестирования, необходимые под каждую такую задачу. Поэтому моя статья будет в первую очередь нацелена на проджект менеджеров в командах (только потому что у нас они занимают именно такую роль) и всех тех, кто по долгу службы занимается сходными задачами.
Читать полностью »

Как мы уже 4 года выживаем в условиях двух релизов в день - 1

Здравствуй! Сегодня я хочу завершить цикл статей об организации тестирования (начавшийся с изучения ошибок и опыта), рассказав о том, как же все-таки Badoo выпускает два качественных серверных релиза каждый день. Кроме пятницы, когда мы релизимся только утром. Не надо релизиться в пятницу вечером.

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

В Badoo существует несколько разных QA-флоу, отличие которых обосновано разными средствами разработки и целевыми платформами (но мы используем для них общие системы: JIRA, TeamCity, Git и т.д.), и я вам расскажу о процессе тестирования и деплоя наших серверных задач (а заодно и веб-сайта). Его можно условно разделить на 5 больших этапов (хотя тут, конечно, многие мои коллеги считают по-разному), каждый из которых включает в себя и ручную, и автоматизированную составляющую. Постараюсь рассказать вам по очереди о каждом из них, отдельно выделяя то, что изменялось и развивалось в последние годы.
Читать полностью »

Для начала я приведу небольшой тестовый проект из трёх классов, проанализирую его покрытие с помощью гема SimpleCov, а напоследок немного поразмышляю о том, как анализ покрытия может приносить пользу проекту, и какие есть недостатки у Coverage в Ruby.

Анализ покрытия кода тестами в Ruby - 1

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

# Мама очень заботится о своём сыне, и не разрешает ему гулять,
# если он не надел шарф. А ещё она заботится о его успеваемости, поэтому если
# сын не сделал домашнюю работу, гулять ему она тоже не разрешит.
class Mother
  def permit_walk?(child)
    child.scarf_put_on && child.homework_done
  end
end

Читать полностью »

Неуловимые баги: ошибки, ускользнувшие от всех тестов и проверок - 1

Даже в относительно простых продуктах изредка встречаются баги, которые успешно скрываются от любых тестов и попадают в релиз. И чем сложнее приложение, тем выше вероятность появления таких багов. В продуктах, содержащих миллионы строк кода, вообще нереально выловить все ошибки, можно лишь максимально снизить их поголовье к выпуску очередной версии. И после релиза такие баги иногда дают о себе знать. О том, как мы охотимся за нинзя-багами и чем мы их лечим, нам рассказал Александр Гречишкин, project manager Parallels.Читать полностью »

В 1971 году СССР доставили на Марс первые в мире планетоходы «на лыжах», которые должны были щупом (динамический пенетрометр и гамма-лучевой плотномер) ткнуть поверхность, и сказать — Марс твердый или жидкий пыльный. Первый аппарат разбился 27 ноября, второй совершил мягкую посадку 2 декабря, но марсоходик не смог выбраться из «скорлупы» посадочного модуля, поэтому попытку не засчитали.

Прошло 25 лет.
4 июля 1997 года на Марс прилетел американский аппарат и привез «пришельца» с первым багом.

Первый баг на Марсе - 1
Кадр из к/ф «Марсианин». Главный герой держит в руках марсоход Sojourner

Проект был под угрозой, но мощные инструменты отладки операционной системы и отличная работа программистов на Земле (парни, что надо) позволили в кратчайшие сроки все быстренько исправить.
Читать полностью »

Система отчётов: как получать 50 млн. отчетов и сохранить Дзен - 1

Чем сложнее программный продукт, чем больше он взаимодействует со сторонними системами (часто не менее сложными), тем выше вероятность сбоев в работе. Тестирование помогает найти большинство багов перед выкатыванием релиза, но иногда что-то может проскользнуть. И чтобы быстро получать подробную информацию о факте сбоя и сопутствующих условиях, в наших продуктах широко используется система отчётов. О её устройстве мы хотим сегодня рассказать.Читать полностью »

Покрываем проект smoke-тестами, пока он не сгорел - 1

Привет! Как-то раз на нашем внутреннем семинаре мой руководитель – глава отдела тестирования – начал свою речь со слов «тестирование не нужно». В зале все притихли, некоторые даже пытались упасть со стульев. Он продолжил свою мысль: без тестирования вполне возможно создать сложный и дорогостоящий проект. И, скорее всего, он будет работать. Но представьте, насколько увереннее вы будете себя ощущать, зная, что продукт работает как надо.

В Badoo релизы происходят довольно часто. Например, серверная часть наравне с desktop web релизится дважды в день. Так что мы не понаслышке знаем, что сложное и медленное тестирование – камень преткновения разработки. Быстрое же тестирование – это счастье. Итак, сегодня я расскажу о том, как в компании Badoo устроено smoke-тестирование. Читать полностью »

Как провести связь третьего и четвертого поколения туда, где в ходу лишь 2G из-за того, что горы мешают прямой видимости базовых станций, а для установки дополнительных БС нет необходимых энергомощностей? Наш эксперт Константин Кильбер расскажет о соответствующем опыте компании МТС – на примере установки активного ретранслятора для радиорелейной линии в маленьком поселке в Республике Адыгея в 2015 году. Итак, передаем слово нашему специалисту.

image

Задача перед нами стояла непростая: обеспечить максимальную пропускную скорость от базовой станции в поселке Гузерипль, Республика Адыгея. Это такое место у подножия Главного Кавказского хребта, на высоте 670 метров над уровнем моря, с населением чуть более 100 человек.

Главной проблемой стали горы – они мешали прямой видимости радиорелейных станций (РРС), которые являются транспортной составляющей для базовых станций. Ранее был построен пассивный ретранслятор (без активного оборудования): две радиорелейные антенны, соединенные между собой волноводом. Сигнал от радиорелейной станции (РРС 1) приходит на одну антенну, через волновод сигнал попадает на вторую антенну, далее сигнал идет на вторую часть радиорелейной станции (РРС 2). Пропускная способность радиорелейной линии с пассивным ретранслятором составляла не более 30 Мбит/с, что для современной связи очень мало. При таком раскладе может работать только базовая станция 2G, а вот с 3G и LTE уже возникают сложности.

Читать полностью »

Тестируем бесшовный WiFi с помощью голосового трафика - 1

Продолжаем эксперимент, начатый месяцем ранее, когда мы построили Wi-Fi сеть с бесшовным роумингом и прошлись по офису с планшетом, наблюдая, будут ли происходить замирания и сбои при скачивании на него потокового видео? Эксперимент прошел удачно, проблем с потоком не было и отчет выложили здесь же на Хабрахабр. Но!

Но в комментариях к статье были выражены сомнения, ввиду того, что видеопоток мог буферизоваться и бесшовный вай-фай эмулировался за счет подкачки видео еще до перехода от одной точки доступа к другой и это видео, из буфера воспроизводилось после обрыва и восстановления сессии. Отвечая на эти вопросы мы снова нагрузили абсолютно ту же сеть, с теми же точками Edimax, ничего не меняя в их настройках (поднял те же параметры для другого SSID, чтобы не мешать офису со своими тестами по RADIUS серверу, который так же обкатываю для работы в этой сети). Использовали почти что голосовой трафик, который нельзя было заподозрить в буферизации. С удовольствием делимся результатами второй части эксперимента.
Читать полностью »

Зловреды-вымогатели для IoT опаснее «традиционных» зловредов - 1

Зловреды, используемые для вымогательства (ransomware), в этом году стали одной из серьёзнейших киберугроз. И сегодня все — от обычных пользователей до корпораций и правительственных организаций — стараются обезопасить себя от программ-шифровальщиков. Однако, мы пока игнорируем начало следующей волны атак зловредов-вымогателей, которые нацелены на шифрование не файлов, а устройств, подключённых к интернету вещей. И это может быть куда опаснее и убыточнее, учитывая вездесущую и крайне разнообразную природу IoT.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js