четверг, 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. НЛО


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

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

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

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

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

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


The Art of Game Design. Jesse Schell


Ссылка на OZON.

Achievement Unlocked! Это вам не тоненькая книжечка на один вечер, таким талмудом формата А4 и убить можно! ツ

Взяла книжку у Оли Алифановой, начала читать в этом году. Поставила себе в план на 12 недель читать по 10 страниц в неделю хотя бы, а то до Нового года за несколько месяцев осилила только введение. Планирование помогло, дело сдвинулось с мертвой точки. В итоге за 12 недель прочитала 294 страницы. А всего их 550... Ну, как раз на новые 3 месяца, подумала я. И прочитала книжку за... 2 недели Smile :)

Как то так получилось, что за неделю почти 200 страниц запоем дочитала. Но к концу уже шло или о сложном, или о философском. Я уже не конспектировала. А до этого порой начнешь читать... И успеешь всего пару страниц, так как выписываешь, выписываешь, выписываешь... Не уверена. что быстрое чтение лучше, чем медленное, вдумчивое и конспектирующее... Но уж как есть!

Всегда интересно почитать что-то новое, что вроде как имеет к тебе отношение, а вроде как нет. Когда я гостила у Оли, она что-то кому-то объясняла из серии «Да ты что, про то, как вводить новичка в игру, целая глава написана, вот! И в обучении также надо, чтобы сначала легкие ДЗ, потом посложнее». Так я заглянула в оглавление. О, интересненько! Надо почитать )))

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

Паттерны и антипаттерны обоснования багов (ВИДЕО)

Недостаточно просто поставить баг, нужно его еще и обосновать! Зачем? Как? А как не надо? 


Видео можно посмотреть на YouTube или скачать, как целиком, так и отдельными кусочками:

***************************************

Видео целиком (37 мин, скачать)

1.0. Введение (4,5 мин)

Антипаттерны:
Хорошие паттерны:
Итого (7 мин)

***************************************

< А тут ссылочка на статью о том же самом будет. Потому что кто-то любит смотреть видео, а кто-то предпочтет прочитать статью. Если вы из второй категории, то ждите!  >

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

Мнемоника Вики: Лошарик

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

Посмотрите, что придумала Вика для оформления багов!


По-моему, супер Smile :)

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

См также:
Как заводить задачи в баг-трекер → подробнее о том, как ставить задачу.

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

Поздравляем Тимура и Анастасию с новой работой!

Тимур и Настя уже тестировщики!

Пару дней назад в чате прошлого интенсива появилась прекрасная новость — один из студентов, Тимур, нашел работу! А сегодня радостью поделилась еще и Настя, участница позапрошлого трехнедельника!

Послушаем их истории успеха:

***************************************************************

Тимур 

Сегодня был первый рабочий день в тестировании=) Спасибо тренерам, Ольгам привет :)

После курсов немного поделал других дел...и на прошлой неделе отправил резюме. Без опыта было только две вакансии в Челябинске)...позвонили... <тут было название компании>. Собеседование, скайп-интервью...взяли инженером-стажером. Вот так=))) Знания курса очень сильно помогли)

На собеседованиях спрашивали как будете тестировать различные поля... Плюс тот факт, что курс представлял собой стажировку, практику — очень помогло. Да и Марию вспоминал)))

Теория была: цель тест-я, виды. Я бы сказал, что больше практики...маленькая задачка по sql еще была!

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

Панбагон. Неправильный ярлык, угадай почему

Если вы попробуете в Gmail создать ярлык «Важные», он скажет, что хрен вам, а не ярлык, но хотя бы пояснит причину (зарезервированный системный):

Обидно, но хотя бы причина понятна

А если чуть поменять написание слова и создать ярлык «Важное» то окно ввода названия закроется, но... Вместо создания ярлыка увидим невнятный текст «Некорректный ярлык». Что такое «некорректный»? Чем? Почему?

Плохой текст ошибки, что мне надо исправить то?

вторник, 4 июля 2017 г.

Тут можно потыкать JIRA и Confluence

Связка JIRA + Confluence — довольно популярная, но стоит денег. Как понять, хотите вы этот баг-трекер или нет? Удобно ли будет работать в конфлюенсе? А если вы — начинающий? Здорово заранее потыкать инструмент, чтобы не бояться им пользоваться ✌



Можно взять у Atlassion месяц триальной версии, а можно зайти на мою облачную версию и резвиться там сколько влезет!

Ссылки
  • JIRA — баг-трекер
  • Conlfuence — вики система, обычно используется для документации.
Данные для входа:
  • логин — mail.for.testbase@gmail.com
  • пароль — 890tb098
  • для rest api нужен токен, ищите его в этой статье
В JIRA у вас есть проект Test, а конфлюенсе — тестовая площадка. Welcome 😀

См также:
Тут можно потыкать Redmine — основной конкурент
Тут можно потыкать Bugzilla — она вообще не конкурент, но если не верите...


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

PPS: а если не хочется ждать статей, но хочется потыкать эти и другие инструменты под присмотром тренера, приходите в нашу Школу для начинающих тестировщиков!

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

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

Отдаю книги-5 (Москва)

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

Чтобы забрать книжку, напишите комментарий к блог-посту или мне на почту — ok.molechka@gmail.com, договоримся о времени. Приехать забрать надо будет в офис ХФЛабс, это около метро на кольце. Парк Культуры, ориентировочно с 8 до 15. По вторникам / четвергам до вечера (но не всегда).

Вместе с книгами в этот раз есть еще и парочка настолок Smile :)
Приезжайте, забирайте!

Книги


1. Давно пора! Барбара Шер (отдано)

О том, как полюбить себя таким, какой ты есть. Как достигать целей, если истории успеха создателей Zappos, Старбакс итд тебя не вдохновляют.


2. Контент-маркетинг. Артем Сенаторов (бронь)

Книга про основы контент-маркетинга. Если вы в нем новичок — будет в самый раз