вторник, 27 марта 2018 г.

Поле добавили, а оно не заполняется

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

Поставлена задача — добавить новое поле в карточку. Это простая задача, ее даже тестровщики у нас умеют делать. Добавил в java-класс, в модель, указал правила... Есть отдельный чек-лист проверки: что вручную глянуть, что по коду, а что в автотест добавить. Все просто.

Но фишка в том, что поле не простое. Мы добавляем «ФИО руководителя», которое будет заполняться по данным из ЕГРЮЛ. Тут хитрая штука: чтобы обогатить карточку, нужно объединить ее с карточкой из егрюл. Но объединять можно только карточки одного типа (ЮЛ с ЮЛ, ЕГРЮЛ с ЕГРЮЛ итд). Поэтому по данным ЕГРЮЛ создается его зеркальная копия:
И вот это зеркало уже объединяется с нашей карточкой → профит, данные получили и свои, и «официальные».

суббота, 24 марта 2018 г.

Изучаем XML. Эрик Рэй


Ссылка на Литрес (стоит 190р)

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

Книга написана простым языком, ее поймут не только разработчики. Эрик Рэй рассказывает про XML с нуля:

  1. Что такое XML (eXtensible Markup Language) и зачем он нужен.
  2. Разметка XML.
  3. Ссылки внутри документа.
  4. Таблицы стилей.
  5. Моделирование: DTD. XML Schema.
  6. Трансформация: XSLT.
  7. Поддержка многоязычности.
  8. XML-программирование.

пятница, 23 марта 2018 г.

Стоимость исправления ошибки на разных этапах разработки ПО

Если мы заметили ошибку на этапе написания требований, то исправить ее — дело 1 минуты, просто скорректировали предложение в тексте, и все.

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


Но это еще реально. А вот если мы уже все построили (написали код), то некоторые изменения просто нельзя внести и приходится мириться с багом. А даже если можно, то стоить это будет сильно дороже:
— аналитику поправить ТЗ;
— архитектору придумать, как поправить минимальными усилиями;
— разработчикам внести правки.

пятница, 16 марта 2018 г.

Эволюция фильтра проектов в джире

У нас в JIRA есть основной проект (назовем его ALFA) и проекты под каждого Заказчика.
Но мы же не единственная команда, которая использует джиру, так что реально проектов еще больше. Свои надо фильтровать.

Сначала их было мало, поэтому использовался простейший синтаксис перечисления:

project = ALFA OR project = BETA OR project = GAMMA

Полный запрос:

(project = ALFA OR project = BETA OR project = GAMMA) AND fixVersion = Backlog AND resolution = Unresolved 

Потом количество проектов росло, а оптимизировать запрос было некогда, да и зачем? Новый проект подключается редко, настраивается за одну минуту: редактируешь запрос, копипастой вставляешь новое название и вуаля!

Но потом запрос стал выглядеть как-то так:

(project = ALFA OR project = BETA OR project = GAMMA OR project = Котики OR project = Почемучка OR project = "Что бы еще придумать" OR project = Уточки OR project = Инстинкт OR project = Первый OR project = "Ну и хватит") AND fixVersion = Backlog AND resolution = Unresolved 

среда, 14 марта 2018 г.

Как видеть только свои задачи в Джире

Инструкция подходит для тех случаев, когда у вас один аккаунт на несколько человек. Как видеть только свое? У нас в школе для начинающих в JIRA один аккаунт на всю группу, так что статья написана для них.

Но вы тоже можете поэкспериментировать на нашей тестовой площадке! Итак, наблюдаем за своими задачами:

1. При создании задачи промотать поле до поля Label (Метки) и внести там свое имя и фамилию без пробелов. В моем случае OlgaNazina:

Добавляем метку при создании задачи

Если такого поля нет, добавляем его: Настроить поля → Метки (ставим галку, поле появляется)

Если поля нет, настраиваем

понедельник, 12 марта 2018 г.

Бесплатные тестовые площадки

На сайте Testbase появился новый раздел: «Test it — бесплатные тестовые площадки».

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


Страничка будет развиваться. Помимо инструментов тестировщика хочу туда же разместить ссылки на тестовые сайты, где можно попрактиковаться составлять чек-листы, применять классы эквивалентности и все такое. Но это будет чуть позже. Ждите ツ


Баг-трекеры

  1. JIRA — платная, но крутая;
  2. Redmine — основной конкурент, бесплатный;
  3. Youtrack — менее распространен, чем первые два, похож на JIRA;
  4. Bugzilla — она вообще не конкурент, но если не верите…

Мои 12 недель в году. Часть 4


Первый опыт
Второй
Третий

Что это за техника


Вы собираетесь с друзьями в группу и ставите себе цели на 12 недель (3 месяца). Это могут быть как рабочие, так и личные задачи. Такие, которые вы вроде как хотите сделать, но вечно откладываете, так как «некогда, потом, щас, вот только мелочевку разгребу и тот пожарчик потушу».

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

Я комбинирую с магией утра.


Результаты кратко


В целом все хорошо! Основные цели выполнены:
  1. Продолжили бизнес-обеды, хоть и бывало такое, что пропускали, но все же. Один раз заменили на созвон, что тоже ок.
  2. Доделала главу 2 книги (74 стр) и даже сделала половину третьей!
  3. Запустили новый курс! Про логи.
  4. Сделала кучу всего по фолксам.
  5. Сделала задел на новый курс, начала готовиться.
  6. Прочитала 5 книг
  7. Сходили в котокафе! Давно уже в плане висит, но никак не дойдем
  8. А еще сходили на квест, тоже давно уже подзабили на это.
  9. Ну и фотосессии, конечно =)) Продолжаю радовать себя ^_^

Результаты подробнее


суббота, 10 марта 2018 г.

Логи как инструмент тестировщика

Через неделю мы запускаем новый курс — Логи как инструмент тестировщика!


Хотя как новый... Это я начала перерабатывать «Техники и инструменты». В результатах «12 недель в году» я писала о том, почему он закрылся. Но если кратенько:
  1. Сначала курс начинался просто как поиск, локализация, оформление багов. А как вы знаете, оформление багов — это нуууууудно. Очень полезно, но скукота. Ребятам не нравилось, да и записывались мало народа, хотя на моем интенсиве все познали, как это тяжело: грамотно описывать баги.
  2. Я добавила в курс всяких разных инструментов и техник. Получилось круто, но много.
В курсе появилась куча крутых задач:

— Залезть на сервер linux, найти нужный лог, изучить стек-трейс.
— Перехватить сообщение в консоли разработчика.
— Прочитать ответ, пришедший с сервера.
— Найти баг кеширования на сервере.
— ...

И первые темы (логи и кеш) заходили на ура. Ребята впервые знакомились с новыми инструментами, это так прикольно: зайти и пощупать. ДЗ сдавались УХ, практически сразу! А потом начинались темы по оформлению багов и интерес постепенно спадал.

среда, 7 марта 2018 г.

Мнемоники Натальи: НАТО, ЛОТОС, за ВДВ итд

На моем курсе «Школа для начинающих тестировщиков» есть творческое задание — придумать свою мнемонику по тестированию! Разумеется, оно необязательное ツ

Посмотрите, сколько всяких классных мнемоник придумала Наталья!




НАТО  

Н – Недостаток найди
А – Анализ улучшения проведи – что предлагаем и зачем
Т – Требования и Тесты будущие продумай
О – Описание внятное напиши






ЛОТОС 

Л – Локализуй баг
О – Опиши шаги для воспроизведения
Т – Текущий результат всегда первым приводи
О – Ожидаемый результат следом пиши
С – Ссылки и Скриншоты прикрепи



Применение класса «ноль-не ноль» при подключении к JMS

Подключили обратный поток в RabbitMQ (JMS). Проверяли задачу вдвоем, так как протестировать надо было шустро:

  • Я смотрела на то, что «оно работает» — как только подняла билд, сразу настроила параметры отправки в JMS и стала пулять туда события.
  • Коллега (назовем ее Лена) — смотрела туром ленивой Ж: что с системой будет после обновления, но ДО настройки? Ведь не факт, что заказчик сразу все подключит, так что в регрессе сначала ленимся, потом настраиваем.
Так вот, я смотрю — у меня все здорово, все работает. Лена смотрит — жалуется. Она обновила стенд, ничего не настраивала, продолжает работать: ой! В логах ошибка

ERROR EventXmlPublisher - Error publishing JMS event to 'jmsEventSender.rabbitmq'
org.springframework.jms.UncategorizedJmsException: Uncategorized exception occurred during JMS processing; nested exception is com.rabbitmq.jms.util.RMQJMSException: rabbitmq-host: Name or service not known

Да, ip нет такого → еще не настраивались параметры подключения. Но jms.events.rabbitmq.enabled = false же, почему система вообще проверяет хост и порт? Не должна.

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

понедельник, 5 марта 2018 г.

Как подключение RabbitMQ сломало нам отображение версий

У нас есть обратный поток в JMS, но обычно мы отправляем сообщения в EMS (Tibco). Тут возникла задачка отправлять сообщения сразу в два потока: EMS и RabbitMQ.

Разработчик все настроил, я проверяю. Собрала сборку, подняла. Сообщения ходят, все хорошо. Но у нас есть функционал отображения номера ревизии прямо в интерфейсе, чтобы легко проверять, обновился ты или нет. Ну и разработчику по необходимости скинуть. И вот я вижу, что у меня вместо длинной mercurial-версии а-ля «6b10ea3a2646» отображается «LATEST(TIP)» о_О


Пишу разработчику:

— А это что за фигня такая? (скриншот)
— Да это ты небось под профилем каким-то левым собрала для MATS-ов. Забей, локальная проблема.

Хм, хм. Подозрительно, конечно. Да, MATS-тесты (так мы называем интеграционные тесты) я правда гоняла на этой сборке. Для прогона ты указываешь maven отдельный профиль. Но саму то сборку я собирала без извращений!

Но да ладно, в конце концов, локальные проблемы иногда случаются, поэтому решила поверить на слово. Проверила новый функционал, передала коллеге на регресс. Она накатывает обновление на dev-стенд — а там тоже проблема с версией. И туда сборка накатывается автоматом из TeamCity, так что все извращения исключены.

Пришлось таки разбираться с багом Smile :)
В итоге причина нашлась:

Проблема прилетела откуда не ждали. В rabbitmq.jar оказался файл version.properties, который путал нам все карты. Переименовал наш в version-customer.properties

А ведь, казалось бы... Вообще несвязанный функционал — подключение JMS и отображение версий. Но чего только не встретишь =)

Самое удобное здесь то, что сборки мы собираем часто, поэтому определить виновного довольно легко: вчера все было ок, сегодня уже не ок, а делал ты только вот эту и эту задачу. Так что или баг правда локальный и поможет пересборка проекта, или ищи зависимости в коде. Даже если эта задача на функционал влиять вроде как не должна ツ

суббота, 3 марта 2018 г.

Курс для тренеров от Ицхака Пинтосевича


Ссылка на курс — я проходила 3-7 декабря 2017 года. Да-да, а отзыв пишу только сейчас, сами слоупоки!

Мой отзыв в фб во время курса
Официальные фоточки

Как я попала на курс


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

Это как тестировщики ITSQB сдают, хотя работать планируют в России — веса сертификат особо не дает, его почти нигде не спрашивают, но душу то греет. Мне лично ITSQB ничего не греет, а вот тренерству подучиться хотелось.

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

Краткий отзыв


Классный курс! Первые два дня — курс для ораторов, так как тренер должен уметь выступать. И еще три дня уже чисто про тренинги.

Очень рекомендую, своих денег он стоит. Особенно если вы проводите очное обучение. Я вот сейчас только через онлайн учу, но хотела в этом году попробовать очное. Поэтому шла на курс.

Шла с целью последить, как тренер работает с группой. Как проводит задания, что чувствуют при этом студенты, скучно им или нет. И знаете, Ицхак очень круто проводит групповые задания! На ИТ-семинарах я обычно получала негативный опыт, а тут увидела, что это может быть весело и мотивирующе. Так что я довольна!

Полный отзыв


пятница, 2 марта 2018 г.

Мнемоника Залии: КИБОРГ

На моем курсе «Школа для начинающих тестировщиков» есть творческое задание — придумать свою мнемонику по тестированию! Разумеется, оно необязательное ツ

Смотрите, что придумала Залия!

Мнемоника - КИБОРГ

 
К - Кто
И - Ищет
Б - Баги
О - Обязательно
Р - Работает с
Г - Границами!

Солидарна, именно на границах баги и встречаются чаще всего, не забываем про них!

PS — добавила пост в копилку мнемоник моих студентов, где их еще больше! Читайте и вдохновляйтесь!

четверг, 1 марта 2018 г.

Панбагон. Письмо о скидке есть, самой скидки нету

Люблю Нияму, там очень вкусные суши и роллы. А еще есть классная бонусная программа:

  • Сделал заказ — в течение недели скидка 30%
  • В течение двух недель — 20%
  • Трех недель — 10%.

А иногда просто присылают промокод на почту и вот тебе те же 30%, хотя ты на этой неделе ничего и не заказывал. Однако иногда рассылки ошибаются, о такой ошибке я и хочу рассказать.

1 марта 2012 года я вышла на работу в ХФЛабс, где и тружусь до сих пор. Разумеется, это надо отметить! Так что заранее знала, что буду проставляться. И так хочется суши... Значит, будет Нияма. Но если заказывать много, хотелось бы скидочку... О, стойте, как раз неделей ранее будем отмечать 23 февраля, закажу на него пару сетов ребятам, тогда и к моей дате скидочка сохранится.

Панбагон. Отображение заказа дублируется

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


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

Но то, что дублируется сумма заказа, слегка нервирует, а вдруг с меня два раза деньги спишут? Попробовала «дубликат» отменить — неа, отменяется оба. Ладно, оставила на свой страх и риск. Деньги, конечно, списали только один раз и вообще ошибка уже исправлена, шустрые ребята, молодцы!

Но исправление бага не мешает нам потренироваться в оформлении ツ
Оформим по шаблону: