среда, 20 сентября 2017 г.

Подключаем Lombok и выкидываем унылые геттеры / сеттеры в Java

Когда мы описываем модель данных в java-классе, это выглядит примерно так:

============================

private String name;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

============================

Сначала указали переменную, а потом идут геттеры и сеттеры для нее. Когда переменных много, java-класс раздувает.
Раздутый java-класс

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

пятница, 15 сентября 2017 г.

Привычки бедных: вы не станете богатым, если… (аудиокнига)

Ссылка на OZON.
Время: 1ч 11 мин

Эта аудиокнига мне понравилась больше, чем «Сила воли», хотя она тоже коротенькая. В ней 27 разделов, автор попытался максимально декомпозировать написанное. Это удобно, проще вспомнить, о чем шла речь в каждом фрагменте и быстрее прослушать заново конкретный кусок.

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

Задание на поиск и оформление багов для КоТэ


27-29 сентября пройдет онлайн-конференция для тестировщиков — КоТэ!

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

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

Почему бы вам тоже не попробовать? Да, результаты получат только участники конференции, но никто не мешает выполнить задание «для себя». Практики мало не бывает Wink ;) Да и регистрация на конференцию еще работает...

И кто знает? Может быть, именно ваш баг я покажу на мастер-классе как эталон отличного оформления!

Задание


Мнемоники СНОБ, ЛОСК, На шаре ОР, ПРОСПЕКТ и Ленись!

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

Смотрите, что придумали ребята про баги. Самое наболевшее ))))

1. СНОБ













Сломай
Найди причину
Обоснуй
Баг оформляй




2. НА ШАРЕ ОР

вторник, 12 сентября 2017 г.

Экспресс-маркетинг. Александр Левитас


Ссылка на OZON.

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

А эту книгу я хоть и дочитала, но впечатление плохое. Сплошная реклама «покупайте мою вторую книгу, записывайтесь на мои тренинги и покупайте консультации». И эти призывы там НАСТОЛЬКО часто, что выглядит очень навязчиво.

Наверное, автор использует один из своих методов 7 касаний → люди редко реагируют на рекламу сразу же, с первого раза. Обычно они следуют ей, когда видят в седьмой раз (или двадцать седьмой, есть разные теории). Вот он и старается почаще говорить «А вот этот материал рассмотрен в другой моей книге, но так и быть, тут по верхам пройдусь. А чтобы точно закрепить материал, купите индивидуальную консультацию. Я вот, кстати, не только полный день провожу, но и бюджетный вариант, по часам!». Тьфу.

Мне кажется, в нашем веке люди уже не реагируют на такую навязчивую рекламу. Наоборот, она начинает раздражать. Хотя что я могу знать обо всех? Конечно же, я говорю о себе. Мне противно было читать. Один раз ок, два, ну три, эй, ну харош уже, горшочек, НЕ ВАРИ!

Сила воли. Руководство по управлению собой (аудиокнига)


Ссылка на OZON (текст читал Станислав Иванов).

Решила я тут аудиокнижки попробовать! Давно хотела, но тут меня, видимо, «магия утра» по голове стукнула:
  • Во-первых, в книге автор говорил, как пошел на пробежку, слушая аудиокнигу. Услышал какую-то фразу и тут его озарило! Да, он и раньше такое слышал, но пока его не коснулась проблема, то пропускал мимо ушей замечание.
  • Во-вторых, радио в машине слушать иногда просто бесит. Когда там не музыка, а какая-то "камеди-программа" идет, ну настолько плоские шуточки, аж тошно :( Лучше что-то полезное послушать.
Это коротенькая книжка, всего на час. К слову, аудиокнига дороже цифровой, я это только сейчас увидела, когда ссылку на OZON поискала. Честно говоря, удивилась. Я думала, это будет самый дешевый формат. Хотя, может, оно и логично.

Не могу сказать, что я в восторге от книги. То, что она короткая — это, видимо, для того, чтобы выкинуть всю «воду» и сосредоточиться на главном. Вот только одна беда — в книгах про саморазвитие эта самая «вода» и есть самое интересное. Иначе все сказанное выглядит капитаном очевидностью. Да да, сила воли это очень важно. Да, ее надо качать, надо вести дневник и вот это вот все. Но без историй это как-то суховато. Я бы скорее рекомендовала почитать Сила воли. Как развить и укрепить. Это, видимо, более подробный вариант примерно того же)))

О, я нашла статью Ильяхова, почему ужимать текст плохо :)
Как (и зачем) писать о банальном → если просто рассказать, что надо качать силу воли и это супер-полезно, то мысли после книги будут как у меня. Здравствуй, кэп, ну и что? А вот когда есть примеры из жизни или что-то такое, читать уже намного интереснее.

О чем рассказывает книга?

Развивайтесь. Развиваешься сам, привлекаешь успех.

Панбагон. Ошибка 500 при изменении времени доставки оплаченного заказа

У Партии еды есть пара проблем в личном кабинете. Одна из них — стоит тебе что-то поменять в заказе, как сбрасывается время доставки. Когда ты делаешь заказ и оформляешь подписку, все параметры сохраняются. И вот я установила короткий интервал (с 12 до 16, например), пару раз мне привезли еду. А потом я добавила в партию завтраки и в воскресенье получила смс «курьер приедет с 12 до 21». Эээээээ о_О

Хотя сейчас попробовала — не воспроизвелось. Может, уже исправили. Не суть. В эти выходные снова пришла смс «с 12 до 21», что оказалось очень неудобно. Я хотела один ужин сделать на обед, а курьер приехал только в четыре...

Решила уменьшить интервал на следующий раз. Залезла в аккаунт, «изменить заказ», меняю время, сохраню — не сохраняется.

1. Изменить
Обновляю страницу, включаю F12 (панель разработчика). Ага, ошибка 500.

2. Оплаченный заказ
Всегда ли так?

воскресенье, 10 сентября 2017 г.

Как подключить в maven сторонние библиотеки

Оригинал статьи — http://www.geekality.net/2013/09/16/maven-add-3rd-party-dependencies-in-project-specific-repository/

Если вам нужно подключить в maven-е какие-то свои библиотечки, которых нет в публичном Maven-репозитории, это делается в 3 шага:

1. Создать репозиторий


Нашу библиотечку нужно задеплоить — распаковать lib. Делается это такой командой (она записана в несколько строк только наглядности ради, так то, разумеется, вы пишите ее одной строкой):

mvn deploy:deploy-file
    -Durl=file:///dev/project/repo/
    -Dfile=somelib-1.0.jar
    -DgroupId=com.example
    -DartifactId=somelib
    -Dpackaging=jar
    -Dversion=1.0

groupId и artifactId — вы можете называть сами как хотите. Например, вы можете в качестве artifact id использовать название библиотечки, а в качестве group id — id в главном пакете, используемом в библиотеке.

The group and artifact id you’d have to make up yourself of course. For example pull the artifact id from the library name and the group id from the main package used inside the library.

Не забудьте добавить эту папку в систему контроля версий!

пятница, 8 сентября 2017 г.

Панбагон. Из твиттера идут отключенные оповещения

Пока была в отпуске, твиттер задолбал. Присылает и присылает сообщения «вы только взгляните на свои оповещения!». А ведь я не так давно отписывалась от всех писем твиттера, кроме «тебя упомянули или написали в личку». Собственно, потому, что слишком много спамил.

Видимо, не ото всех лишних оповещений отписалась. Когда вернулись домой, нажала "отписаться" и... удивилась. У меня нет галки получения писем об уведомлениях.


Тогда какого черта?

Нет, один раз прикольно получить «тебя упомянули» или «твой твит лайкнули». Но зачем мне писать кучу писем чуть ли не каждый день «эй, ну посмотри хоть, кто лайкнул. Ну зайди, ну уведомления же, ну!». Не поправят баг, придется вообще от всех твиттеро-оповещений отписаться. Ну или фильтр настраивать и в спам их, в спам!

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

Что значат символы >> и >& в unix/Linux

> перенаправляет вывод в файл, перезаписывая его

>> перенаправляет вывод в файл, но не перезаписывает его, а добавляет в конец

Standard output is represented in bash with number 1 and standard error is represented with number 2. They are separate, so the user can redirect them to different files.

2>&1 redirects the standard error to the standard output so they appear together and can be jointly redirected to a file. (Writing just 2>1 would redirect the standard error to a file called "1", not to standard output.) © stackexchange

Стандартный вывод в bash-е обозначается цифрой 1, а ошибки — цифрой 2.

Команда 2>&1 перенаправляет вывод ошибок в STDOUT. Они и так обычно туда направляются, но так надежнее ツ

Команда 2>1 запишет текст ошибки в файл "1", поэтому нам нужен знак амперсанда, если мы имеем в виду именно поток.

Посмотрим на примере. Перейдем в Cygwin в любую существующую директорию, а потом попробуем удалить некий файл example.txt, которого на самом деле там нет → система выведет ошибку «файла не существует».

Как создать бранч в Mercurial для Maven-проекта

Предполагается использование метода «основной код находится в trunk-ветке, при релизе мы создаем бранч»

Для создания бренча необходимо перейти в локальный репозиторий и выполнить следующие команды:

  1. Обновиться на бренч default
  2. Выполнить создание бренча X (например 1.0)
  3. Зафиксировать создание бренча по номеру задачи релиза
  4. Обновиться на бренч default
  5. Обновить версию проекта на Y (следующая ветка разработки, например 2.0)
  6. Зафиксировать обновление версии
  7. Слить изменения default и созданным бренчем X
  8. Зафиксировать слияние
  9. Зафиксировать изменения в глобальном репозитории


1. hg up default
2. hg branch X
3. hg ci -m "JIRA-N branch X"
4. hg up default
5. mvn release:update-versions -DdevelopmentVersion=Y-SNAPSHOT
6. hg ci -m "JIRA-N update versions"
7. hg merge X
8. hg ci -m "JIRA-N update versions(merge)"
9. hg push --new-branch

Пример

четверг, 7 сентября 2017 г.

Ты можешь больше, чем ты думаешь. Томас Армстронг


Ссылка на OZON.

Это книга для детей Smile :)

Нет, я серьезно! Я была в шоке, когда открыла ее разворот, а там... В английской версии написано, что это «Kid`s guide», а в русской этой оговорки уже нету!

Справа ни слова про «Kid`s guide»
Но что делать? Пришлось читать )))) Потому что это была книга, которую я взяла с собой в отпуск в Грецию, там особо без вариантов. Как я умудрилась ее купить? Ну, на Озоне тоже нет особого акцента на то, что книга для детей, она мне выпала в какой-то из категорий «рекомендуем также» по книгам по саморазвитию. Отзывы все позитивные, читала я их по диагонали... Ну и ладно, думаю, прочитаю, чтобы понять, рекомендовать ли родителям )))

вторник, 29 августа 2017 г.

Горячие поклонники. Кен Бланшар и Шелдон Боулз


Ссылка на OZON

Маленькая, тоненькая книжка с рассказом в виде байки или притчи. О том, как к менеджеру компании пришел ангел в виде человека и поведал ему три секрета завоевания горячих поклонников. Конечно, он не собирался сразу раскрывать все секреты, поэтому они навещали тех, кто секреты уже постиг, слушая success-story.

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

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

Исходно разговор идет примерно так:
— Чего бы ты хотел достичь?
— Ну, чтобы клиенты были удовлетворены...
— Слушай, ну это же хрень! Если я просто удовлетворен, это значит, что мне не слишком плохо, поэтому я еще вернуссь в этот ресторан / магазин, если не появится альтернатива получше.
— А что ты предлагаешь?
— Клиенты должны быть не просто удовлетворены. Они должны стать твоими горячими поклонниками! Именно в это надо вкладываться и тогда их любовь вернется к тебе сторицей.

Но, если подумать, часто ли вы встречаете «WOW-сервис»? Обычно он просто сносный. Вот менеджеру и кажется, что это все фигня и ВАУ не бывает. Но Чарли показывает, как оно может быть:

пятница, 25 августа 2017 г.

Как поставить бряк на поток в IDEA


Когда ставишь breakpoint, то можно ткнуть на него правой кнопкой мыши и переставить радио-баттон с All на Thread. 

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

А зачем это?


У нас в системе можно запускать разные задачки. Загрузить данные из файлика, поискать дубликаты, сделать мэджик раз, сделать мэджик два, три, четыре, пять, я пошел искать... Обычно задачи работают с БД, поэтому блокируют друг друга, если запускать в параллель. Блокировка сделана на уровне приложения, чтобы не словить локи в базе.

Но некоторые задачи вполне могут выполняться вместе. Это отдельная настройка. И вот сегодня я проверяю, что задача 1 и задача 2 могут выполняться параллельно. Одна беда — обе слишком шустрые. На реальных стендах данных много, задачи идут пару часов. А у меня в базе десяток записей, тыкаешь в кнопочку, а задача уже отработала!

понедельник, 21 августа 2017 г.

Поздравляем Таню с окончанием испытательного срока!

Таня ждет кофе =)
Знаю, что два «рекламных» поста подряд — слишком много, надо умными разбавлять... Но не могу не поделиться Таниной историей! Ведь она не просто закончила испытательный срок, она закончила его в ХФЛабс! Моя коллега, вон за стеной сидит, что-то печатает ツ

История Таниного успеха (пруфлинк на ее историю в фб):

======================================================

Вот уже 3 месяца я работаю в HFLabs. Дальше будет много буковок, и вот спойлер для тех, кто не хочет читать их все. Если бы не Олин "Интенсив для начинающих тестировщиков" я бы не сделала тестовое задание. А если бы не Пашин "SQL для тестировщиков", то не прошла бы испытательный срок. А дальше подробный рассказ с чувством, с толком, с расстановкой.

Случайности не случайны. И последние три месяца это подтверждают. 12 мая в 9 утра я стояла на Крымском мосту и не могла поверить, что с этого момента буду ездить на Парк Культуры каждый день. А в 10 утра я уже сидела на новом рабочем месте и офигевала от происходящего. Но, обо всем по-порядку…

Действие в 3-х актах.


Акт 1


Пару лет назад решила я узнать побольше о качестве программ и попала (тоже абсолютно случайным образом) на 3-х недельный интенсив для начинающих тестировщиков. В центре сцены была интересная нетривиальная система DaData, которая совершала чудесные вещи — приводила к единому виду данные, исправляла опечатки в ФИО, адресах и даже подсказывала пол, падеж и много чего еще. В жизни перфекциониста единообразный вид табличек вызывал внутреннее ликование. А слова стандартизация и унификация были основными в моей работе.

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

Так прошло около двух лет (может чуть меньше). Я сходила на пару-тройку собеседований в разные места, откликалась в популярные компании, ради интереса пройти тестовую часть интервью. Хотелось понять, какие навыки требуются в Яндексе, Мейле, Касперском и чего мне не хватает. Смотрела вакансии тестировщиков, аналитиков, технических писателей, но искала нечто среднее. Продолжала посматривать в сторону HFLabs, читать Олин блог и блог компании на Хабре.

среда, 16 августа 2017 г.

Поздравляем сразу двух Светлан с новой работой!

Светлана уже работает!

Сегодня в чатике выпускников у нас сразу две success-story! С разных курсов: интенсива и школы. Обе уже прошли этап собеседований и делятся опытом:

======================================================

Светлана (школа)


Ну вот, только что прошла собес по скайпу и моя история успеха.

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

На hh писала 7 работодателям, 3 из которых - местные конторы с работой в офисе.
Из 3 местных откликнулась одна контора, прислали тестовое, прошла собеседование, но... выбрали кандидата с большим опытом работы.

Из 4 удалёнок откликнулись две конторы: первой не сдала тестовое и не хватило уровня английского. Очень хотела работать во второй. Присылали задание по автоматизации, котораое не смогла сделать. Через время они мне написали сами, я ответила, почему не сдала задание и мне прислали новое, для мануальщиков. Быстро написала и отправила тестовое... и опять по "совокупности многих факторов" получила отказ.

Стажировка в «Лаборатории Качества»

Как стать тестировщиком и получить нужные знания? Есть разные способы:

  • самостоятельно — книги, бесплатные видеоролики итд. Самая длинная дорога из собственных граблей;
  • пойти на тренинг — более быстрый способ, ведь ты получаешь подборку материалов на каждую тему + делаешь ДЗ и получаешь фидбек. Быстрее, но за деньги;
  • пройти стажировку в ЛК — тот же тренинг, но бесплатно!
Собственно, пост про стажировку ツ
Хотите бесплатный тренинг, вам сюда:


Мы начинаем 28 августа.
Время в пути — 30 дней.
Начало занятий: 11:00 с понедельника по пятницу
Конец занятий: 19:00 с понедельника по пятницу

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

Каждый день дается домашнее задание. Не сдаешь ДЗ — отчисляют. Поэтому лениво поваляться на диване, ничего не делая — не прокатит. Я не участвую в стажировке, но вполне понимаю такой отбор. Те, кто реально хочет, наизнанку вывернутся, но знания получат и ДЗ сделают. А остальные будут только оправдывать, почему им не хватило времени.

При этом я также вполне понимаю и то, что месяц потратить на обучение может позволить себе не каждый. Ну чтож, такова цена. Хотите комфортный тренинг — приходите в школу, хотите бесплатно и продуктивно (с ДЗ и их проверкой) — приходите на стажировку. Хотите бесплатно и в своем ритме? Найдите себе наставника среди друзей или смотрите видео на ютубе. Информации по тестированию — огромное множество, всю теорию, что дают на курсах, можно найти самому. Фишка именно в практике. Но и ее можно найти самостоятельно при желании.

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

воскресенье, 13 августа 2017 г.

Голая статистика. Чарльз Уилан


Ссылка на OZON

Книга для тех, кто ничего не понимает в ститистике, но хочет хоть что-то узнать ツ 

Статистика может быть очень мощным инструментом в правильных руках. Она помогает:

  • подсказывать покупателю правильные товары в разделе «вас наверняка заинтересует...»;
  • опросить небольшое количество жителей, а сделать выводы о всей стране (проверка, за кого будут голосовать, опросить всех будет дороговато).
Яркий пример правильной статистики — это Netflix. Автор рассказывает, как точно система подсказывает, какой фильм ему может понравиться. А основываются такие заявления... на сатистике! Так, я посмотрела кино такое-то, оценила позитивно. Также его позитивно оценили пользователи А, Б, В. Смотрим, что еще они оценивали хорошо и что подходит по жанру. 

Вообще самое главное в статистике — правильная выборка. Чем больше выборка, тем точнее результаты. Но «если мусор на входе — мусор на выходе». Если сделать неправильную выборку, то и результаты будут ни о чем. Например, если опросить о выборах или состоянии в стране только тех, кто ходит в дорогущий гольф-клуб, нельзя сказать, что вы узнали общую картину по стране. Только мнения богатеев. И пусть их будет хоть 100, хоть 1000.

пятница, 11 августа 2017 г.

Поздравляем Веру с новой работой!

Вера уже работает!

У нас в чатике выпускников первая счастливая весточка от выпускников нового курса «Школа для начинающих тестировщиков»! Вчера Вера рассказала о том, как устроилась на работу:

============================================================

Радость в общем чате, подробности см ниже

Меня позвали в ХХХ! Ура-ура))) Причем моя история из серии - не пытайтесь повторить это дома.

Все, что можно было сделать не так, начиная с подачи резюме и заканчивая прохождением собеса, я сделала не так.

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

понедельник, 7 августа 2017 г.

Как начать работать с Confluence (manual)

Хочу сразу предупредить — все нижесказанное относится к облачной версии Confluence 1000.0.0-3a7db14 (август 2017). Внешний вид может измениться, но в любом случае все эти возможности останутся. Просто кнопочка будет не слева, а сверху, или наоборот.

Преимущество статьи в том, что вы можете взять и сразу попробовать — на нашей тестовой площадке можно потыкать Confluence бесплатно, без регистрации и смс!

Вы также можете посмотреть обучающее видео. Удачи в освоении! Smile :)


Ссылка на Youtube.
Ссылка на ту же статью, но в конфлюенсе (там есть Table of Content, удобненько).

1. Создание и редактирование страницы. Create & edit page

1.1. Создание

В левом боковом меню нажмите на большой плюсик («Create») — страница будет создана дочерней к той, на которой вы находитесь сейчас. На скриншоте мы создадим дочку к «Родительская страница». Это как когда вы в винде создаете файл, он появляется в той папке, где вы сейчас находитесь.



воскресенье, 6 августа 2017 г.

Критическая цепь. Элия Голдратт


Ссылка на OZON

Еще один роман от Голдратта. Другие романы в том же духе: Цель, Цель-2, Цель-3.
Написано в виде романа, то есть читается довольно легко, но... Приходится включать мозг, а это уже сложно ツ 

Но полезно!


Введение


Главный герой — учитель программы МВА. Он должен был получить тенуру, а в итоге оказался на грани увольнения. Тенура — постоянный контракт преподавателя. Если ты его получаешь, то можно не волноваться о том, будут деньги или нет. Не надо откладывать на старость итд.

Проблема в том, что набирать людей на МВА стало все сложнее. Это же дорого стоит, вот и плодятся университеты, готовящие таких специалистов. И если раньше получил МВА = получил престижную работу, то теперь уже нет. Берут далеко не всех, а зачем тогда учиться? А еще оказывается, что знания, которые дают на обучении, далеки от реальности. И начальство не горит желанием посылать студентов на курс. В итоге набор небольшой. И поэтому директор университета Ричарда (главный герой) замораживает все тенуры. Платить то нечем.

А Ричард как раз взялся за курс по управлению проектами. А еще один из преподавателей только что вернулся со стажировки в компании Юни Ко, а там ТОС и все такое. В общем, вернулся умный и стал распространять свои идеи.

Обсуждаемые проблемы


На курс записались люди из разных фирм: Генмодем (модемы делают), строительная фирма итд. Причем проблемы у всех одинаковые — проекты не успевают заканчиваться в срок. В итоге мы делаем что? Правильно, или выкидываем функционал, который не успели сделать, или сдвигаем сроки на несколько месяцев / релизов.

Знакомо, не правда ли? Wink ;)

Причины проблем 


четверг, 3 августа 2017 г.

Как найти тест в IDEA

Раскладка у меня в IDEA стоит от Eclipse (Settings - Keymap). Соответственно, мои хоткеи у вас могут не работать, но будут другие ツ

Помимо хоткеев указала, как искать через верхнюю панель инструментов. Найдете пункт меню там, увидите его хоткей.


1. Unit-тест


Unit-тест — это java-класс. Поэтому ищем его поиском по классу, тут проблем вообще нет.

Ctrl + Shift + T
Navigate → Class

Поиск по классу в навигации

Копипастим название (если разработчик указал его в комментарии к задаче) или начинаем набирать сами по первым буквам. Например, если ищем MoreActualWinsTest — можно ввести MA или MoA или еще сотню других комбинаций =)) Как только количество вариантов выбора сокращается, выбираем нужный класс из подсказок и открываем его!

Поиск по классу

вторник, 1 августа 2017 г.

Мнемоника БМВ и ее применение (ВИДЕО)


Видео с моего выступления на конференции SQA Days 21

Аннотация


Знаете ли вы, что такое мнемоники? Какие использовали? Пробовали создавать свои?

На своем докладе я расскажу вам о своей мнемонике для тестирования граничных значений:

Б — большой
М — маленький
В — в самый раз

Звучит просто, не так ли? Но в книгах учат тестировать границы только на числах и калькуляторе, а это далеко не все ее области применения! Давайте посмотрим, куда еще можно копнуть, где применить БМВ. Пройдем от простого к сложному и разбавим примерами багов из реальной жизни.

Примеры

Про простые примеры я расскажу немного позже, ожидайте ツ

Технические примеры:
  • Lucene + nmap → если используется эта связка, на Linux обязательно надо увеличить количество открытых файловых дескриптеров. Иначе на тесте все хорошо, а реальная нагрузка положит приложение.
  • Linux: Redhat 6 ≠ Redhat 7 → абсолютно разные инструкции по настройке
  • Java 6, 7 → дать сразу много памяти не вариант, будут фризы на пустом месте, пока работает garbage collector
  • Логи → проверяйте, что будет, когда ошибок МНОГО, когда в стеке 10 000 ошибок, а не 2 или 3
  • Wildfly → не дает грузить большие файлы, пока не поставишь max-post-size
  • Транслитерация → ОоооООооОООо уводит в цикл
  • Oracle RAC → в каждой ноде свой сиквенс, в итоге получаем неуникальные «уникальные ИД» в базе. Проявляется только под нагрузкой, на тестовом стенде ноды успевают рассказать друг другу, что заняли ИД 
  • Мобилки → свернул приложение, развернул что-то крупное, и у тебя первое упало (не умеет нормально резервировать память)
  • Пустой JSON → если у вас используется библиотечка Axis, пошлите в приложение пустой JSON. Он может повесить все намертво, если не успели обновить либу

Мнемоники помогают взглянуть на свой проект под новым углом или не забыть важные проверки. Я рассказываю о них в Школе для начинающих тестировщиков, мы там даже свои мнемоники придумываем, вот, посмотрите работы ребят, они крутые ツ Присоединяйтесь к нам, у нас весело =)

Ссылочку на видео сохранила на Testbase, в навык выделения классов эквивалентности. Теперь не потеряется!

Найти крутой баг минимум раз в месяц!

На первой работе я тестировала игры для мобильных телефонов. Нет-нет, не те современные игры, о которых вы подумали. Айпадов и андроидов тогда и в помине не было. Самый лучший телефон — Sony Ericsson.

На работу меня привел мой знакомый, который там тоже тестировал. Все было просто — начальник выдает нам, мелким тестировщикам, телефоны и задание. «Потестируй гольф. Надо честно пройти все лунки, проверить, что шарик не улетает за текстуры. На этих телефонах еще не проверяли, а графика там другая». Или «вот разработчик исправил А и Б, проверь. Потом просто тестируй игру». Что? Классы эквивалентности и прочая? Не, не слышали.

Просто играй. И ищи проблемы, зависания, вылетания, 
вылезания за текстуры

Самый страшный баг — зависание. Хорошо, если игры. А если капитальное — вообще супер! Это когда ты даже выключить телефон не можешь по красной кнопке, надо доставать аккумулятор. Угадайте, кто нашел такое зависание в первый месяц работы? Smile :) На самом деле это не супер-пупер достижение, конечно, такие зависания были довольно часто, особенно на старых мобилках. Но у меня были какие-то хитрые шаги воспроизведения — мы уже проверили несколько телефонов и тут я нашла этот баг. Который крашил любой телефон. Включая ранее проверенные. Крутой баг! Кстати, по-моему, как раз на игре в гольф, но я могу и ошибаться. Давно дело было.

четверг, 27 июля 2017 г.

Тестируем IOPS на Linux

Наше приложение активно использует диск. Поэтому, если заказчик хочет видеть хорошие результаты по нагрузке, мы хотим видеть хорошие результаты по производительности самих дисков Smile :)


Недавно пришлось потестировать диски, проверить, сколько IOPS они выдают. Законспектирую результаты:

Используем утилиту fio — https://github.com/axboe/fio/releases

1) Скачать последнюю версию и распаковать и перейти в каталог

cd /tmp
wget https://github.com/axboe/fio/archive/fio-2.99.tar.gz
tar xvzf fio-2.99.tar.gz
rm fio-2.99.tar.gz
cd fio-fio-2.99

2) Должны стоять пакеты для сборки

apt-get install -y gcc make libaio-dev | yum install -y make gcc libaio-devel

3) Собираем

make

4) Тестируем

./fio -readonly -name iops -rw=randread -bs=512 -runtime=20 -iodepth 32 -filename /dev/sda -ioengine libaio -direct=1

Какие должны быть результаты:

  • Средний SSD, выпущенный 2-3 года назад — 50 тысяч IOPS.
  • Свежий Samsung 960 Pro, который стоит на одной из железок у нас в офисе — 350 тысяч IOPS.

Если должно быть 50 тысяч, а диск выдает сильно меньше, то:
— он не SSD;
— есть сетевые задержки;
— неправильно примонтирован;
— с ними что-то еще плохое случилось и стоит поднять алярм.

Панбагон. Период сегодня-вчера, если он длится 0 дней

Курсы для начинающих идут в отдельной системе дистанционного обучения (СДО). Было время, когда очень хотелось заавтоматизировать открытие новых тем. А то нужно пойти, открыть новую тему, а потом добавить новое сообщение на новостной форум.

В принципе, СДО позволяет настроить периоды выполнения тем. Ты настраиваешь так:

  1. Дату начала курса (откроется первая тема)
  2. Продолжительность каждой темы (2 дня, 3 дня, 4...)
Соответственно, в первый день открывается тема 1, через три дня тема 2 и так далее. Сижу, ковыряюсь, настраиваю периоды. А у нас еще есть нулевая тема, которая не идет N дней, она сразу открыта. Ну так и ставлю: duration = 0 дней. Результат позабавил Big grin :D

Обратный отсчет!

Я ожидала, что дата начала будет равна дате окончания, но нет =) 
Это, кстати, классический пример теста на класс эквивалентности «Ноль-не ноль». Если у нас если числовой параметр для тестирования (период времени), обязательно стоит попробовать ноль. Что, если диапазон короче дня? 

Вот в результате теста на ноль и огребли бажик)) Давайте оформим по шаблону:

понедельник, 24 июля 2017 г.

Как писать Release Notes, чтобы их читали (ВИДЕО)

Пашин доклад
Ссылка на доклад — ЛАФ, Vimeo

Мой коллега Павел Абдюшев выступил на ЛАФ 2017 с докладом о том, как у нас пишутся Release Notes. И с чего они начинались ツ

А начинались они довольно уныло. Мы осмотрелись — где что пишут? И стали писать также:


Что вы поняли из такого описания? Скорее всего — ничего. Что это? О чем речь? А главное — зачем это мне? Никто не понимал, зачем им читать этот унылый набор букв, да никто и не читал. А мы сильно удивлялись потом: как это вы не знаете, что у нас есть такая фича? Мы же писали о ней в Release Notes!

В итоге поняли, что писали заметки мы для себя. Ссылки давали на задачи — те, которые у Заказчика даже не откроются. Кратенько формулировали мысль. Нам то понятно, спору нет. А вот Заказчику эти фразы ни о чем не говорят.

Ну и далее в докладе Паша рассказал, как стало. Как мы начали писать в мире клиента, чтобы он мог узнать себя, увидеть свою проблему и захотеть ее решить нашими средствами Smile :)

Сейчас, пару лет спустя, наши Release Notes кажутся очевидным решением. Словно так всегда и было. Но ведь не было и мы даже не видели в этом проблемы. А ведь Release Notes — это такая же документация, как и все остальное. И мы, как тестировщики, должны их тестировать. В том числе и на понятность клиенту.

Если уж взялись писать, пишите интересно:

  • расскажите историю;
  • покажите, как использовать ваш функционал;
  • разделите на блоки, в которых читатель узнает себя — бизнес, пользователь, разработчик сторонней системы. Не надо пытаться вывалить как можно больше текста на голову человека, которому это все будет неинтересно. Разбивайте свои заметки и отправляйте разным людям разное.
И тогда! Тогда ваши пользователи будут читать Release Notes вместо ленты котиков в фейбуке! Аминь Smile :)

Как подключить нотификации от ТС в Telegram

У нас используется TeamCity в качестве CI — там гоняются автотесты после коммита. А еще все чаты компании переехали в Telegram.

Я как раз недавно жаловалась в чатиках: «Если назначаете меня ответственной за сборку, то лучше продублировать в личку, а то ТС спамит много». Он правда спамит, у нас есть некоторые сборки, которые запускаются редко. В итоге ты закоммитил тест в свой проект, а потом неделю получаешь оповещения на почту «Ой, тут свалился мега-редкий тест, где было 100500 коммитов, включая твой».

Оказалось, можно сделать так, чтобы тебе сам ТС писал. Да да, прямо в телеграмм Smile :)

Подготовка


Администратор ТС должен установить Telegram Notifier и создать чат-бота.

Подключение оповещений

1. Открываем телеграмм
2. Открываем меню — слева сверху кнопка

Меню
3. Пункт Contacts

Контакты

воскресенье, 23 июля 2017 г.

RegExp плагин в IDEA

Серия «полезные плагинчики для IDEA». IDEA — среда разработки, типа Eclipse.

Если у вас в коде есть регэксп, то как проверить, что под него подходит? Можно использовать онлайн сервисы — гуглим по «регэксп онлайн». Например, http://myregexp.com/.

Но если вы работаете в IDEA, то проще прямо в ней и проверять, поставив RegExp-плагин!

Установка


1. File — Settings

Настройки

2. Слева в общем списке выбрать Plugins. Начать вводить regexp — а вот и нужный плагин!
Справа под названием плагина будет кнопка Install, если он у вас еще не установлен

Установить RegExp плагин

четверг, 20 июля 2017 г.

Как отправить SOAP-запрос в Soap Ui

Если вы никогда раньше не слышали про SOAP-запросы, то вам сюда 

Давайте рассмотрим на примере, который вы можете прямо сейчас взять и повторить. Показывать я буду на системе Users, которая находится в открытом доступе. А запросы будем посылать через бесплатный инструмент Soap Ui.

Все то же самое, но в видео варианте

Отправить первый запроса с нуля


1. Запустить Soap Ui.

2. File — New SOAP Project

Создаем новый проект

3. В открывшемся окне нужно указать имя проекта и его WSDL.
  • Имя — это то, что будет отображаться в левой части. Не стоит давать абстрактные имена типа "Test", иначе потом у вас будет десяток проектов с одним названием и поди угадай, где какой Smile :). Мы тестируем Users, так проект и назовем. Если было бы несколько стендов, давали бы более конкретные названия: «Users TEST», «Users PREPROD», «Users PROD»...
  • WSDL — фактически это ссылка, по которой вы получаете доступ к методам. Если вам нужно проверить SOAP-запросы, просите дать вам WSDL. Получаем мы ее от разработчиков, для Users это http://users.bugred.ru/tasks/soap/WrapperSoapServer.php?wsdl
Указали название и WSDL

Отзывы на школу для начинающих — 1

В понедельник официально закончилась первая Школа для начинающих тестировщиков!



Было очень волнительно, как никак первый запуск!
Да, я уже три года веду интенсив для начинающих, но тут же совсем другой формат! И теории тут больше, и инструментов... Инструкции надо везде написать, показать, рассказать. А вдруг слишком сложно получится и будет как на интенсиве? И работу в группах мы придумали, но вдруг не зайдет, все группы распадутся и вообще?

Но страхи были напрасны Smile :)
Абсолютно все группы справились со своими ДЗ, 16 из 20 «групповых» ребят выпустилось + половина из «индивидуалистов». Давайте посмотрим на их отзывы!

Частично отзывы есть даже в ретроспективах:
А вот что пишут после всего курса (ретроспектива в середине):



Егупова Алена

Я на курсы шла с минимальными знаниями и представлениями. Нет, я конечно почитала  Савина и блоги всякие, в т.ч. и Ольги, но то что было до и после — совершенно разные вещи.
В общем-то с курсом я не ошиблась и получила все, что хотела. Вебинары сами по себе информативны, но кроме них еще даются ссылки на полезные материалы для дополнительного изучения, т.е. теории достаточно. Ну и практика после каждого вебинара, разумеется, на реальном проекте, который выбираете вы сами. Некоторые студенты отправляли баги, найденные в процессе обучения, разработчикам и их исправляли! Круто же :)
В общем для начинающих Школа — это то, что нужно, особенно если знаний теории не так много или же просто формат интенсива вам не подходит. И спасибо Ольге, Юле и Акси - вы классные :)


Анонимно

Шла на курс, думая, что будет легко, т.к. уже работала в тестировании. Но не тут то было) Первые две лекции да — известные мне вещи, ну а дальше... Узнала много нового, даже то, что казалось элементарным (регистрация багов) оказалось для меня самым сложным на курсе :) Но спасибо тренерам-терпеливо и доходчиво все объясняли :) Вообще, домашки лучше делать сразу и не откладывать, а то потом будет сложно подтянуть хвосты.
Сами лекции были очень понятны даже для человека который с разработкой ПО до этого и не был связан.


Анонимно

Мои ожидания до начала курса:

- я приобрету опыт и практические навыки тест-дизайна;
- улучшу уже имеющиеся навыки;
- узнаю больше о работе тестировщика «изнутри»;
- создам портфолио;
- доработаю резюме.

Реальность:

- навыков стало больше (было много практики);
- старые навыки "прокачались" (тренеры обращают  внимание на те детали, которые самостоятельно можно упустить по незнанию);
- "изнутри" мне понравилось, буду дальше углубляться в тестирование (у нас собралась отличная группа и сами задания было интересно делать);
- портфолио получилось достойное (оформлю красиво в Google Docs);
- резюме еще в процессе.

Не хватило:
- конкретики в формулировке заданий (но это не беда - все-таки 1й запуск курса, тренеры тоже люди)).


Александр Донсков (выпускник интенсива)

Школа для начинающих тестировщиков

В мае мы запустили новый курс —  Школу для начинающих тестировщиков. И на этой неделе закончился первый выпуск. Это было очень круто! Я давно хотела попробовать применить что-то из серии бирюзовых организаций или Scrum-обучения. Поэтому мы сделали... Обучение в группах! Наш первый шажочек в светлое будущее Smile :)

Школа — как это будет? Вводное видео

Разумеется, работа в группе — необязательное условие участия. Кто хотел, работал в группе, кто не хотел — без. Полно выпускников, которые работали самостоятельно. Вот, посмотрите на выпуск первой школы, если первая колонка «нет» — человек работал без группы:

Оценки первой школы

Зачем мы создали группы? Чтобы проще было делать ДЗ! Вместе то оно всегда веселее. Попробовали написать тест-кейсы все вместе, разобрали внутри группы ошибки — все, теперь самостоятельная часть не составит труда.

В итоге у нас есть несколько типов ДЗ:
  • КП, Курсовой проект — у каждого свой, личный. Пойдет в портфолио. 
  • ГП, Групповой проект — только у групп. Работающие индивидуально пропускают эти ДЗ. 
  • И — индивидуальное задание. Это когда все делают одну и ту же задачу. Такие ДЗ всего пара штук на всем курсе.
Группа сначала делает ГП вместе, а потом каждый расходится и повторяет то же самое для своего личного проекта. В описании КП идет разделение «Ты в группе? Пиши один тест-кейс. Не в группе? Пиши пять», так балансируется нагрузка. Чтобы не получилось ситуации «без группы жить в 10 раз легче!».

Группы первой школы справились на ура, выполнили ВСЕ групповые задания:


суббота, 15 июля 2017 г.

Автоматизация в блокноте. Изменился порядок записей в тесте, меняем регэкспами

Мы решили поменять плоскую запись ФИО на нормализованную. Это чтобы учесть всякие изменения типа Киселева Ольга → Назина Ольга. Теперь мне надо поднять тесты. Ведь на входе теперь вместо одной строки будет две:


;1-01;КЛИМОВА;НАДЕЖДА;ЛЬВОВНА;27.04.1976;;;;BANK



;1-01;27.04.1976;;;;BANK
fio;;КЛИМОВА;НАДЕЖДА;ЛЬВОВНА;EDITED


Тесты написаны в csv файле, их можно открыть через блокнот. В тесте 300 строк, из них треть занимают строки с ФИО. Как менять будем, вручную? Безудержное веселье

Менять 100 строк ручками? Ок
Конечно, нет.
Нужно написать регэксп, а блокнот потом все сделает за нас.

пятница, 14 июля 2017 г.

Мнемоники Веры — НЛО, Биг Босс, РEДИSКУ

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

Посмотрите, что придумала Вера!

1. НЛО


Н – Найди баг
Л – локализуй
О – обоснуй

Гневные разработчики бедному тестировщику:
«Обоснуй-ка!»

Да-да, с картинкой я не ошиблась.
Все смотрели мультик про цыпленка Цыпу, на которого «небо упало», но никто ему не поверил? А потом в город ворвались пришельцы и всё разгромили.

Важно не просто обосновать, а обосновать так, чтоб любая курица тебя поняла.
Заставь всех поверить в твой баг!

Не доводя ситуацию до такого:

Цыпа: «А ведь я говорил…»