воскресенье, 30 сентября 2012 г.

Практика разработки требований к ПО - тренинг школы системного анализа

Довелось мне поучаствовать в тренинге от школы системного анализа "Практика разработки требований к ПО".

Тренинг очень хороший, всем советую!
Нас учили - как общаться с Заказчиком, как собирать требования, как их записывать, на что обращать внимание... И все это - в виде игры! Весело, приятно, позитивно. Сначала мы сыграли один раз, разумеется, все накосячили. Потом провели работу над ошибками и сыграли второй раз, более успешный. Вынесли много нового, например, еще сильнее полюбили реальных Заказчиков, которые не такие придирчивые Smile :)

Это если кратко. Если чуть подробнее:

Утро, само собой, не заладилось. Ну ладно еще учиться весь день, фактически, добавив себе еще один день к рабочей неделе. Но встать! В 8 утра! В воскресенье!!

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

суббота, 29 сентября 2012 г.

ТМ-кейс. Самый тупой карандаш острее самого острого ума

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

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

В понедельник нам выдается доступ к табличке, из которой мы будем брать данные для миграции. Мы туда смотрим - а данные не те, что в задаче были. Уточняем этот момент - "а, ну да, давайте поменяем требования" о_О

Ну ок, мы же клевые, мы можем Smile :) Тем более, что я все равно ошиблась в процедуре миграции и мне надо было ее исправить. Чего уж тут не подставить то, чего хочет Заказчик? Ну и все! Подправить немного и сиди, план пиши...

Ага, ну я думаю, вы уже догадались, что из этого вышло...

Прихожу на работу. "Ааааа, паника, у меня проект не собирается, Оля, что происходит?"
Хм, хм, а я сама уже скачала обновление и у меня тоже сборка не собирается. Смотрю на ошибку - а! Это ж Р (разработчица) вчера правила! Сейчас разберемся... Ага, сейчас... Нет ее. Будет позже.

О, в аське есть! "Аааа, паника...", ну вы поняли :) Нашли, починили. К (коллега) ушел. Через полчаса вернулся - а там у них в табличке вместо А написано Б. Блиииин, ну ладно, сейчас поправлю (что-то коллега вечером уже сам поправил, но отвлекалась я на эту задачку часто, ибо "Аааа, паника, тесты попадали, пофик что по другой задаче, я эту не могу закрыть", тут уместо вспомнить доклад с конфетки по ТМ...). Ах да, про конфетку! Мне же еще и уходить в 15.00, я же выступаю, надо подготовиться и проверить звук.

Но ведь у меня всего две задачи, ага. Упс. уже не две, другой коллега попросил написать тест, разумеется, мегасрочно. Ок, написала, пытаюсь прогнать - не проходят даже те, что в CI прошли :( Да ну его тогда, пусть в TeamCity гоняется (только сегодня вспомнила, в чем был косяк, уже несколько месяцев просто не использовала этот способ, забылась...)

Ах да, еще же план подправить. Тут, и тут... И вот тут... А еще постоять над душой у тех, кто задачи не закрыл... А еще, а еще... В общем, какой там план регрессии :( Весь день боролись в тестами... По разным задачам их отъехало прилично... И поди попробуй забей, сразу прибежит коллега и начнет возмущаться. А потом придет второй и тоже что-то спросит, а потом еще и еще...

Ааааа, блин, ребята!!! Я - девушка, я не хочу ничего решать, я хочу одну большую кнопку!!!! "Сделать все хорошо!" Smile :)

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

Идея пришла сама. Просто выписать свои цели на день на бумажку и... выречкивать, безжалостно выречкивать! Очень просто кейс, его во всех книжках описывают и старательно избегают Smile :) Ведь не может же быть все так легко и просто?

А почему бы и нет? Мне, на самом деле, просто хотелось некой визуализации, особенно - процесса вычеркивания задач )))

Так что вот. Среда, прихожу на работу, открываю блокнот и выписываю:
  1. Заполнить ворклоги Smile :) Да да, наконец-то я увидела наш баннер не в рамках тестирования... Ну я убегала с работы, что поделать...
  2. Написать письмо Заказчику *косится на Outlook и замечает следующую цель*
  3. Ответить на письма Заказчика, какие-то вопросы там есть...
  4. Написать отчет
  5. Планирование
  6. План регрессии
  7. Написать тест для проекта (делегировать коллеге) * Хе хе, да, этот пункт я вычеркнула быстро, подумав, что то, что в скобочках, мне идеально подходит )))) *
  8. Поставить задачу по .... (а то вот так, там дело, тут дело, даже импрувмент поставить некогда)
Отлично! План готов. Можно пить кофе :)

Ну или чай. А пока пила чай, смотрела то, что доблестно исправлял мой коллега без меня весь вечер. Ага, в коде то поправил, а в ТЗ? Исправила.

Что Заказчик пишет? А, ладно, сначала я ему. Так-с, берем фломастер и радостно вычеркиваем один пункт. А, да, кстати, вот тут надо тест поправить, поправила, пустила в ТС.

Так что там за вопросы были? Углубляемся... Минус еще пункт! Так красиво главное, написано ручкой, вычеркиваем фломастером :)

Тут ко мне в комнату заходит аналитик и наигранно возмущается:

- Оля! Ты отбираешь мой хлеб!!!
- о_О

Где-то через минуту выясняется, что он себе тоже записал поправить ТЗ по нашим коммитам, а я его опередила :)))) Но такое с утра услышать, поди пойми, к чему оно )) Я тут, может быть, еще не проснулась! Правда, когда до меня дошло, что к чему, я долго смеялась :))))

Ок, едем дальше. Тесты прошли? Ага, частично, подправили остальные. Потом обсудили ТЗ с коллегой. Потом планирование...

И вот, казалось бы, ниточка основных задач опять могла потеряться, опять бы не успела ничего. Но! Казалось бы. листочек бумаги, наполовину исчерканный. А ведь помог. Выдергивал из колеи "таааак, отвлечемся на это", напоминая о себе... В итоге к вечерней конференции у меня были вычеркнуты все задачи, кроме плана регрессии. Но! Он был начат :)))

Поэтому я с чистой совестью запаслась кофе. отдохнула, послушав опыт своих коллег, после чего так же, не торопясь, за часик доделала план и с чистой совестью ушла домой. Во вторник я не сделала и 2 задач, зато в среду выполнила аж 10! (пару задач дописала в процессе дня)

А ведь казалось бы, ближайшие 2-3 задачи и помнить можно, ближашие 10 - в джире посмотреть. Ну зачем выписывать то? Это, в принципе, меня обычно и останавливает.

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

четверг, 27 сентября 2012 г.

Chief ConfetQA, осень 2012. День третий!

Вот она и закончилась, наша любимая конфетка! Хочется поделиться, как это было:



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

Особенно тяжко было докладчикам, которые в соответствующем чатике уже успели узнать, что у Наташи будет целых 70 (!) слайдов!!!

И вот он он - тот самый доклад. Разумеется, подача не могла не восхитить, Наташа, как всегда, была прекрасна. А еще она продолжила тренд историй, рассказываемых во время выступления. И это очень здорово! Потому что что может быть лучше опыта? Лучше услышать о том, что реально было, чем теорию из книжек... Наташин доклад тонко намекал на метод "5 почему" и толсто - на необходимость пить кофе Smile :) Вообще я сейчас старательно обхожу стороной попытки рассказать, кому надо - тот был на самой конференции :)

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

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

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

Он разьяснил, как именно назревает конфликт. И как его предотвратить. Как выйти из сражения с наименьшими потерями. А желательно, как этого самого конфликта вообще не допустить. Злитесь на разработчика? Послушайте доклад Андрея и выйдите из положения с честью!

После Андрея выступал Сергей Атрощенков с рассказом о том, как сделать мир лучше :) Очень позитивный доклад! Но желательно было бы сделать его чуток "поживее", так как доклад получился мотивационным и было бы здорово, если бы Сергей выступал как Татьяна, ярким вихрем ворвавшись в души зрителей.



Серега, учись у Тани! Smile :) Но доклад все равно очень хорош, самая яркая мысль, которую я с него унесла - "вот казалось бы, простая вещь, а какая эффективная!". Помните про принцип Паретто - не все то золото, что тяжко дается.

Ну и закрывала конференцию Ольга Пономарева... Доклад был очень интересный, все-таки человек за 2 года дорос до директора из рядового тестировщика. Но... Звук подкачал :( Слышно было ужасно... Нельзя верить докладчикам на слово, что они купят себе гарнитуру. Плохой звук на первом прослушивании? Или исправляешь - или жди следующей конфетки! Оля, извини, но это по крайней мере честно, слушать было очень тяжело.

Поэтому, видимо, придется слушать запись, чтобы можно было задать вопросы.. Хотя вообще суровые вещи Оля говорила, да... Как на одной из работ просто взяли и в один момент уволили... Бррр, как-то не по себе от таких мыслей становится... Но! На самом деле в этом есть и плюсы - главное, их найти :) С Олиным докладом у вас это наверняка получится!!!

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

Но все равно, Артему, как и Сергею, не хватало живости. Ведь многие из сказанных им вещей были из серии "здравствуй, кэп!". А когда о них говоришь - надо мотивировать. Это как книги известных авторов, тот же Гандапас - вот читаешь и вдохновляешься! И выступление должно быть такое же - прослушал... И вдохновился! Чтобы пересматривать выступление всегда, когда приходишь в уныние, чтобы взбодриться - времени то на то, чтобы книгу полностью прочитать, нет, а так - посмотрел 10-минутный ролик и вдохновился Smile :)

Надо будет сделать что-то подобное, когда я буду готова ))) Когда найду слова мотивации. Потому что идея шикарная!

Хм, что-то я отвлеклась... Из рассказа Артема меня особенно зацепила такая идея: "Если к вам пришел коллега, скажите ему, что заняты, мол, "зайди через 20 минут". За 20 минут задача решается без вас - потрясающий эффект!".

Действительно, потрясающий!!! Сразу вспомнилось, как боишься шаг влево, шаг вправо, лезешь к начальнице за советом, а она занята... А пока освободилась, ты сам помучился, помучился, но выход нашел. Ну а теперь то я знаю, что это был хитрый ход! Smile :)

Вообще, очень полезный доклад. Особенно, если вы еще не читали про ТМ - обязательно послушайте. Правда, я не совсем согласна с этими разрывами и возвращениями в колею... С одной стороны, правильно, надо отвлекаться реже, но и совсем уж утрировать не надо... Вполне можно отвлечься, это еще и как "освежающая пауза" подействует  Wink ;)

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

В этот раз конфетка была еще лучше, чем в прошлый! Ребята такие молодцы - мне кажется, они все заслужили похвалы Smile :)

За сим раскланиваюсь, увидимся на следующих конфетках!


 

вторник, 25 сентября 2012 г.

Chief ConfetQA, осень 2012. День второй

Жизнь идет своим чередом, а Chief ConfetQA своим. Мы так долго ждали, ждали, и вот наконец - дождались! Целых три дня можно вечером слушать доклады, делать себе пометки и развиваться, сидя на диване с тортиком в руках!

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

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

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

Далее, меня лично поразила мысль "Хоть в пирамиде и не указано, где именно личное отношение, но оно пронизывает ее насквозь. Хотя, с другой стороны, не надо давать ему волю, полагаться на свое чутье. Пусть его будет немного, в рамках логических выводов". Как это - не надо?! о_О

Еще как надо!!! Это же самое-самое главное, тебе же с человеком еще работать!! Хотя да, если ты тест-менеджер и у тебя много подчиненных, то врядли ты контачишь непосредственно с ними. Именно поэтому, имхо, Александру кажется неправильным слушать свое чутье. А вот набирал бы себе коллегу, попал бы пару раз - когда вроде и нормальный кандидат, но... Ну не очень по душе. Но логически не обосновал и принял. А потом не сработались...

В общем, хорошо, что нет такого опыта. Или плохо) Смотря с какой точки зрения смотреть. Но, имхо, свои собственные ощущения - это и есть та самая основа пирамиды!

Ок, с собеседованиями разобрались, много нового и полезного узнали, вопросы для дискасса на форуме тоже записали :)

И поехали дальше! Наташа подключила Аню Скумину, но... Увы, ее не было слышно. До тех пор, пока Аня не отключила гарнитуру. Каким-то образом она вошла в конфликт с GTW, что очень печально. В итоге звук был ужасен :((( А еще бедная Анечка заболела и голос тоже был хрипловат. Беда не приходит одна :(((

Но слайды - как всегда, на высоте! Аня умничка! И рассказ очень интересный!!! Ну а так как я сегодня дома была - то даже все слышала Smile :) Ну почти. Очень классная и увлекательная история! Вот они - ответы на вопросы, а как развивать команду? А как выбивать деньги... И прочее, прочее)

Следующий доклад был мой. У меня было много много слайдов и мало-мало текста. А все почему? Потому что доклад был мотивационный!

Доклады, они же разные. Ты или подаешь идею, как можно, или рассказываешь о практике в режиме "live-coding" или мотивируешь! И если ты преподносишь полу-теорию, то да, нужен текст. А если ты мотивируешь, то зачем? Я выписала на слайды непосредственно причины, о которых говорила и пункты "действий", которые надо выполнить. В конце даже дала чек-лист руководства к действию Wink ;)

Говорят, народ даже не спамил вопросов, сидел и слушал - так как я немного волновалась и чуть-чуть тараторила + часто переключала слайды, а они красивые и интересные. И даже в тему))))

Правда, слушателям повезло, что я в наушниках была и сама себя слышала приглушенно. А то бы еще быстрее пронеслась! А так как-то непрывычно было... Но зато я добилась главной цели своего доклада - он был мотивирующий!
  • Во-первых, как мне сказали в чатике потом, "ты меня вааащеее замотивировала выступить))))))"! Это круто! Значит, план выполнен!
  • Во-вторых, ребята в чате подтвердили Наташины слова. А если люди сидят и слушают, не отвлекаясь даже на твиттер - это тоже о многом говорит.
В общем, я довольна Smile :)

Закрывал второй день Николай Алименков. И он был, как всегда, бесподобен. Отличный оратор (тренер, фигли), чистый звук (говорят, я таки слегка шипела, эх...), красивые слайды. Интересная тема. Хотя она и обмусоливалась много раз, но всегда кто-то видит это впервые. Так что, я уверена, пользы от доклада было много! Я пока даже не нашлась, что спросить у докладчика, остаточный мандраж мешал... Но ничего! Наверстаем на форуме!!!

А завтра, завтра... Завтра выступают гуру в тестировании! Известные всем лица + "новичок" в докладах, зато очень и чоень интересный человек - девушка, которая за 4 года сумела вырасти до директора! Ооооочень интересно ее послушать! Не пропустите последний день конфетки и до завтра!

понедельник, 24 сентября 2012 г.

Chief ConfetQA, осень 2012. День первый

Вот оно! Свершилось! Началась очередная конференция для тестировщиков!

Встречайте, любите, цените и обожайте - Chief ConfetQA, конференция для тест-менеджеров.
"Чем дальше в лес, тем толще партизаны" (с) Уже к 4 часа я начала мандражировать - так, словно это мне выступать через час, а не Тане.

Правда, и отвлечься от работы не удалось, чтобы поволноваться подольше))) Тем не менее к 4.45 я завершила все свои дела и в радостном волнении нацепила наушники, открыла твиттер и стала попивать чаек, посматривая на экран.

И вот, вот оно... В наушниках послышался приятный голос ведущей конференции - Наташа Руколь приветствовала всех и желала всем "приятного просмотра"...


А потом на сцене появилась Татьяна Зинченко и начала зажигать! В прямом смысле этого слова - отменные слайды, четкая, громкая речь. Все круто, Тань, ты молодец!!! И я даже хотела ей какой-то хороший такой вопрос задать, но забыла, какой :(

Вот хожу и вспоминаю теперь - как же удобно, что докладчики будут доступны на форуме еще целую неделю! Обязательно вспомню и таки спрошу :)

Таня говорила о таком спорном моменте, как дехаотизация автоматизирования. Почему спорном? Потому что не все с этим сталкивались. А те, кто не сталкивался, считают, что это абсолютно нереально, все выдумки и чушь. Ха-ха, если у вас так и есть!


Ну-ну :)

Надеюсь, у них и дальше все будет хорошо! Я, в принципе, конкретно с такой проблемой не сталкивалась, но сталкивалась с тем, что разработка ПО - это далеко не всегда так клево и радужно. Далеко не всегда разработчик - твой друг и товарищ, начальник туда же...

И вообще очень здорово, что Таня смогла добиться таких грандиозных успехов за такой коротких срок! Здорово и познавательно, тем более, что она не одна такая и ее доклад может очень многим людям помочь :)

А еще у Тани были няшные котятки на слайдах! Так что твиттер был заполнен "мимими ^_^". А мне понравилось, когда она, хоть и вскользь, но затронула такую злободневную тему "руками падает, а тесты ПРОХОДЯТ!". Над такой постановкой вопроса разработчики всегда смеются :) Но тем не менее, и во фреймворке бывают баги... И... Да что я тут распинаюсь, пойду форум посмотрю, ответила ли Таня на вопросы, коих был шквал?

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

Ну да это ладно, такое бывает всегда, понятно, что не всех твой доклад впечатлит / вдохновит / заставит что-то сделать. Но уж и "фигней с бантиком" я бы тоже не стала называть. Я бы вообще не стала плохо комментить Танин доклад, мне то он понравился :))))

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

Вторым докладчиком был Николай Юденко с рассказом про различные метрики. Отличный доклад! Столько всяко-разной информации... Когда только опыт успел накопить человек? И вот сидишь ты такой, перед компьютером... И внимаешь...

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

Правда, исходя из названия доклада - "практические советы" - я ожидала немного другого... В принципе, по каждой показанной Николаем метрике можно делать отдельный доклад. Пусть даже не на 30, а на 15 минут, зато с четкими примерами из реальной практики. С шагами "как внедрять, когда внедрять" и тд и тп. Очень хочется практического доклада. А то по метрикам доклады всегда злободневные, не спорю (хотя кому как), но о них всегда рассказывают поверхностно. Я думаю, доклад про одну метрику, но целиком практический, вызовет "бурю аплодисментов". Так что вот вам, Николай, заметка к следующей конфетке :)

Минус доклада - тихий голос Николая :( Ужасно, когда докладчика почти не слышно... Зато появляющаяся иногда Наташа Руколь звучала как гром среди ясного неба! Но ничего, это мы пережили, что-то даже на ус намотали. А что не намотали - то прояснили, задав наводящие вопросы. Будем ждать ответа!

Потом была Александра Лебедева! Она рассказывала о работе с svn и когда я это услышала, сразу стала потирать ручки - вот сейчас то я и узнаю всю правду! Даже начала кидать вопросы в чат, но увы... Вот чем плохо смотреть конфетку на работе. Внезапно вылезла такая информация, что я просто не смогла сидеть и твитить дальше. Ушли обсуждать-разбираться. Вернулась уже к вопросам :( Жду записи доклада, ну а вопросы... Вопросы на форуме задам!

Кстати, в твиттере было объявлено, что призы ждут не только докладчиков, но и участников! Ура! Правда, там говорилось об активных участниках блогов и твиттера, а про форум ни слова. Подозрительно как-то :)

Ну да это я отвлеклась. "Все! Нет меня, и пусть все баги подождут!", как сказала Ира. Я всем сообщила, что одного пропущенного доклада хватит, "завтра все сделаем! Но - завтра!"

Опять нацепила наушники, ухватилась за кружку чая... А тем временем на сцене появился Артём Поль. А точнее, его экран. С открытым скайпом Smile :)

Который все радостно прочитали и дружно посмеялись))) А потом, потом... Потом начался доклад. И это было ужасно :( Не в смысле доклад ужасный, а в смысле связи... Голос был настолько тихий, что приходилось напрягать слух даже в тишине (громкость в наушниках и в винде была на 100%). И тут, по закону подлости, наша уборщица решила, что пора попылесосить... Пришлось мне отключаться от конференции, потому что смотреть комиксы без звука как-то не весело.

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

Ну а завтра второй день осенней конфетки, поэтому пора расходиться и спать... Чтобы завтра  услышать новые интересные доклады. А день обещает быть интересным! Читайте анонсы и приходите на выступления. Мы вас жлем!
 

суббота, 22 сентября 2012 г.

ConfetQA. Общение с коллегами

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

Один из наиважнейших принципов "сделать все хорошо" - общение! Общаясь с коллегами, вы не только получаете feed-back, не только слышите разные точки зрения, что помогает посмотреть на ситуацию по-новому, но и можете сами сделать какие-то выводы, сами прийти к какому-то решению...

Как говорится, "Поделись своей радостью - и она удвоится. Поделись горем - и оно станет вдвое меньше" (с) Адам Джексон.


Хочу рассказать реальную user-story о том, как данный метод работает.

Проверяю систему руками, замечаю ошибку. Иду к коллеге (пусть будет К) - так и так, посмотри, плиз, есть ли уже что-то подобное? Приходим, изучаем. Странное поведение, нужны тесты.

Конкректно таких тестов нет. Иду, ищу похожие, копирую в свою папку файлы с тестовыми данными, а также TestRunner. Тестовые данные исправляю на те, что меня смущают. Запускаю - тесты прошли о_О

Хорошо, включаем debug-режим, узнаем точные тестовые данные. Записываем в файл теста. Запускаем - проходят о_О

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

Как так? Два разных ответа пройти не могли. Получается, тесты заскипаны. Но ведь они не заскипаны! Пишу К - "посмотри, пожалуйста, как время будет". Сама ухожу прогуляться. Стою у окна, смотрю на пока еще зеленые листочки на деревьях. А мысленно жалуюсь К.

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

- Ну К, ну что не так? Ну ведь тесты исправила. Ну они не заскипаны!!! Там не стоит "#". Ну как так? И в TeamCity подключены, я проверила. Ну где еще может быть ошибка? Я же всего 3 файла и добавила...

Внезапно приходит озарение. TestRunner! Скопирован! Он берет данные из той папки, откуда был копипаст, а не из новых данных!

Быстренько возвращаюсь на свое рабочее место, надеясь, что за прошедшие 5 минут у К. не нашлось времени посмотреть, что я там понаписала. Ну да, так и есть! Вот она - ошибка! А ведь так бы и ушла, не зная...

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

А когда начинаешь говорить - то ты сам "проговариваешь" ситуацию. Сам можешь увидеть ее под другим углом. И сам же найти ответ Smile :)

А что, у вас в школе никогда такого не было? "Ну маааааам, ну неполучается!!!! Вот смотри, я делаю так и так... Блииииин... Понятно :("

А уж если разговор был реальный... То можно услышать и полезную идею, о которой ты раньше даже не думал. Всего-то и надо - поговорить )

Переезд в новый домен

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

Разумеется, я, как тестировщик, попала в эту группу Smile :)

Хочу поделиться, с чем могут возникнуть проблемы. Итак, вроде бы скопировалось все и вся, но:
  1. Connections к БД - открываем SQL Developer или SQL WorckBench (и прочее, но я использую именно их) - пусто. Все свои сохраненные коннекшены к базе надо скопировать и перенести вручную.
  2. Settings.xml в папке ".m2" - для тех, кто работает с maven проектами, не удивляйтесь, что они перестали собираться - у вас просто настроек нет.
  3. Dropbox - снесите его нафик перед переездом! Вам все равно придется его переустанавливать, но еще и огребете...
  4. Cygwin - программа, позволяющая легко и быстро копировать "тяжелые" файлы с вашей Windows на удаленный Linux. После перееззда проверьте, что вы можете: удалять файлы из cygwin\home\user, добавлять туда новые. Ну и работать с самой программой, куда ж без этого.
PS: И после этого админ еще удивлялся, почему это "у тебя всегда что-то ломается"... А я что? Я ничего, оно само...

четверг, 20 сентября 2012 г.

IDEA - как остановиться в брек-поинте только при определенных условиях?

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

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

Потом вы опять не понимаете, "что тут происходит". Опять зовете разработчика... И так по кругу. Рано или поздно научитесь делать это сами Smile :)

Я расскажу про интересный момент работы в IDEA.

Как известно, для дебага программы необходимо поставить брек-поинты на тех строках, в которые мы хотим попасть, чтобы посмотреть на входные / выходные параметры.

Но, допустим, что в эту строку мы попадаем часто - в программе стоит цикл, которые бегает по всем полям формы. А нам нужно, например, проверить только поле "surname".

Какие варианты? Ставим брекпоинт на строку и сидим, жмем resume (программа бежит дальше до следующей точки останова, в нашем случае, возвращается в начало цикла), пока в поле fieldName попадется нужное нам значение. Тут главное - не прозевать момент и на автомате не нажать на кнопку продолжения. Иначе придется начинать сначала.

Есть и другой вариант:

1. Нажимаем на кнопку "View Breakpoints"



2. Открывается окно "Breakpoints", в котором перечислены все установленные в коде брек-поинты.

3. Находим нужную нам строку (в которую мы хотим попасть только при определенном условии) и устанавливаем галку "Condition"



4. Вводим условие. Нам нужно, чтобы поле fieldName =  "surname". IDEA подсказывает, что мы можем иметь в виду.



5. Но, так как fieldName - строка, условие будет выглядеть так:
fieldName.equals("surname")
Все! Закрываем окно (сохранение автоматическое) и дебажим. А в указанную строку мы попадем тогда и только тогда, когда поле fieldName =  "surname"

суббота, 15 сентября 2012 г.

Классы эквивалентности для стандартного грида

Что такое классы эквивалентности, я думаю, все знают. И даже успешно применяют...

Но сегодня мне бы хотелось напомнить вам, что техника разбиения на классы эквивалентности - всего лишь эвристика. Что такое эвристика? Это такая техника, которая не имеет обоснования, но, тем не менее, дает приелимое решение задачи.

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

И именно поэтому, во избежание эффекта пестицида, советуется, используя эту технику, каждый раз выбирать разные значения диапазона. А если вы автоматизируете приложение - использовать рандомные значения.

Все почему? Потому что бывают в коде баги аля "от 10 до 100 все хорошо, но вот на 25 программа падает..."

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

Что же стоит протестировать?

Можно разбить на классы эквивалентности "фильтр/не фильтр". И протестировать все, что хочется, на одном фильтре:
  • Отсортировать по возрастанию
  • По убыванию
  • Повводить туда верную информацию
  • Повводить несуществующее значение
  • ...
И правда, зачем, например, выполнять одни и те же тесты для колонок "Название банка" и "Ближайшая станция метро"? И там и там текст, грид один и тот же. Зачем проверять?

И все-таки, присмотритесь к колонкам повнимательнее - вдруг все-таки можно их разбить на подклассы? Вдруг там есть колонки, в которых не просто строка отображена? А, например, дата. Как будет проходить сортировка по дате? Вы уверены, что она будет абсолютно корректна?

Или, например, текст. Есть простой текст, а есть гиперлинками. Вот казалось бы, и там и там текст. А на гиперлинке приложение - БАХ - и упало. Но перед тем, как бежать заводить багу "Ааааа, кошмар, паника, фильтрация не работает!!!", правильный тестировщик вначале проверит, а действительно ли вообще нигде фильтрация не работает? И сильно удивится, что в соседней колонке все... Хорошо!

А вот ведь как... Вот так тестируешь, тестируешь... И так и сяк и наперекосяк... А потом начинаешь верить, что этот стандартный грид работает нормально, его можно поделить на "фильтр/не фильтр" и все ок. Но это опасно тем, что на ошибку наткнется пользователь...

Вывод - не верьте даже "проверенным средствам"!

 

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

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

Финальный продукт, который мы отдаем Заказчику, состоит не только сам из себя, как это могло бы показаться



It`s unfortunate, but these components are often overlooked in the testing process. You`ve surely attempted to use a product`s built-in help file and found it to be not so helpful or-worse-just plain wrong. Or, maybe you`ve checked the system requirements on a sticker on the side of software box only to find out after you bought it that the software didn`t work on your PC. These seem like simple things to test, but no one probably even gave them a second look before the product was okayed for release.

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

Посмотрите на свое приложение со стороны пользователя - все ли вам понятно? Сможете ли вы установить приложение самостоятельно, руководствуясь лишь инструкцией?

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

Поэтому, обратите внимание на те файлы, про существование которых зачастую просто забывают, увлекшись самим продуктом:
  • Help files
  • Samples and examples
  • Product support info
  • Error message
  • Setup and installation
  • User`s manual
  • Labels and stikers
  • Icons and art
  • Ads and marketing material
  • Readme file
Причем, казалось бы, ну зачем нужны примеры? Документация сойдет.
И снова вспомним о том, как сами устанавливали что-то. Например, купили телефон - а как его установить? А тут раз - открыли мануальчик, почитали пошаговую инструкцию и все быстренько сделали!

Ну и потом, даже если вам не нужны пошаговые инструкции, примеры нужны все равно. Во-первых, для наглядности. А во-вторых, чтобы проще было протестировать ваше ПО. Ведь на стороне Заказчика часто есть принимающая сторона, которая должна протестировать ваш продукт, прежде чем согласовать его для поставки в production. И если вы не хотите отвечать на поток писем с вопросами, почему бы заранее не создать примеры?

А уж самим то как удобно! Ушел в отпуск, отдал проект коллеге. Коллега ваш модуль видит впервые, вот что ему за файлы системе на "съедение" отдавать? Какие запросы отправлять через soap чтобы удостовериться хотя бы в том, что этот soap в принципе работает?

А тут раз - и все есть. И все счастливы Smile :)

И да, отдельное внимание хотелось бы обратить вот на что:

DON`T FORGET TO TEST ERROR MESSAGES!

Подробнее об этом вы можете услышать в Танином докладе "Тестирование юзабилити" на SQA Days 10".




У нас не СПАРТА! Берегите своих пользователей!!

четверг, 13 сентября 2012 г.

День тестировщика в компании UNDEV!



Итак, как же москвичи отметили этот приятный сердцу праздник? Точнее, конкретная москвичка :)

Время слета было выбрано весьма странно - с 16 до 20. Казалось бы, полдня впереди! Столько всего успеть можно!! Но увы, не все так радужно в реале :)

Один поход в спортзал - и все. Там мы делали примерно так, только с гантельками:


Ах, моя тауреночка... Как ты там без меня... Оплатить чтоли WOW, да ведь играть некогда, приоритеты изменились..

Так вот, вернувшись домой и переодевшись, пришлось уже "срочно" убегать. Ну, это я так думала, что срочно - раз мы договорились встретиться с Риной в 15.20, то в 14.20 уже надо торопиться, да.

В итоге на место встречи (м Третьяковская) я приехала в 14.45 о_О
Ну вот и что мне надо было делать 40 минут? Благо что на той же станции есть "Игровед", туда я и пошла. В конце концов, мы часто в Алиас играем, я все хочу себе "сумасшедшую версию" купить. Пришла в "Игровед", ушла оттуда с двумя пакетами ><. Еще плюс свой, с Алиасом и ноутбуком... Ну а что делать, все такое интересное :)

воскресенье, 9 сентября 2012 г.

С праздником, дорогие тестировщики!


Коллеги, с праздником!
А мы вот вам, тортик приготовили :)

Я надеюсь, что каждый, кто сегодня поднимет бокал в свою честь, любит свою работу, как в общем (тестирование), так и в частности (свою компанию). Я также желаю вам творческих успехов, кучи мотивации и просто хорошего настроения!

А так как сегодня - выходной, то москвичи решили встретиться! Поэтому увидимся вечером, на докладах наших Гуру. Ведь это ли не счасье для тестировщиков - развиваться?

Ну а я, в свою очередь, предлагаю нам, как самым нестандартным, отметить праздник в будни. А именно - во вторник поиграть в Алиас :) Хочу напомнить, что наши посиделки - событие не масштабное, поэтому регистрацию официальную мы даже не открываем, ведь свободных мест осталось парочка! Но если Вы хотите попасть на это свободное место - пишите мне на почту :)

суббота, 1 сентября 2012 г.

ТМ - как помнить все?

Я вообще забывчивая, "память девичья". Поэтому мне надо что-то куда-то записывать.

Для вопросов коллеге (например, если человек занят в данный момент или я знаю, что вопросов будет много, вначале лучше выписать), отметках о времени, записи дел на сегодня я использую простой блокнот. Вот, кстати, у меня один как раз на этой неделе закончился - повырывала оттуда все листы с такой "одномоментной" информацией. Блокнотик резко похудел :) Зато остались только полезные страницы. Как собрать проект, какие команды в линуксе использовать, конспекты с лекций, настройка эклипса итд итп...

Но все равно, надо, например, Заказчику ответить. Обычно сразу отвечаю, но бывает и так, что отвлекли, ушел куда-то, вернулся, отвлекся на другое дело... И вспоминаешь через пару часов. И думаешь, а что, если бы не вспомнил? В общем, во избежание завела я себе доску. Простую пробковую доску.

И туда радостно лепила стикеры - звездочками на моего любимого Заказчика ^_^
И простыми на все остальное. Например, надо короткий вопрос задать коллеге, который редко в офисе появляется, запишу в блокнот - забуду, ведь он останется на странице, которую я перелистну... Написал на стикер и наклеил! Доску периодически осматривала для того, чтобы освежить "лягушки" в памяти.

Потом Заказчики переехали в джиру :) Проблема с почтой отпала, джиру то ты весь день чекаешь, там не забудешь.

Зато теперь на доске красуются:
  • Мысли для ретроспективы
  • Задачи для регрессии
  • Задачи, по которым мне надо что-то сделать в ближайшее будущее
Так как я отвечаю за составление плана регрессии, то, увидев комментарий разработчика к задаче "в регрессии обязательно проверить то-то и то-то", выписываю себе номер задачи и краткое описание на стикер - и на доску! Сама тестирую какую-то сложную задачку. понимаю, что ее в и регрессии надо перепроверить - на доску! Пришла светлая насчет ретроспективы? На доску! Какая-то задача покоя не дает, но боишься забыть о ней за хлопотами дня? На доску!

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

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

Да, так вот. Есть отличная программа для андроида: "Помнить все":



Открываешь программу, видишь большую и понятную кнопку с микрофоном, к которой дается пояснение, а что вам, собственно говоря, надо сделать :)



Щелкаем на кнопку (не промахнешься :) ), говорим ей "завтра утром возьми новый блокнот!" и она конвертирует это в "возьми новый блокнот", устанавливая дату и время. Примерно так:



При этом остается возможность отредактировать сообщение, так как распознавалка голоса имеет свои недостатки и не все понимает :)

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


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

Вот например, попросил меня коллега дать ему Lee Copeland почитать. Дело в том, что у меня есть эта книжка в твердом переплете. Родитель ездил в Америку в гости к сестре и привез мне на Новый Год подарочек :) И когда он садился на самолет, пришла вторая книжка "How to break the website" :(((( Вот ну на пару часов доставка опоздала! А я уже 9 месяцев все жду и жду... Когда же она приедет, моя книжечка... Правда, за эти месяцы я успела устроиться на работу с неплохой библиотекой и мне есть что почитать :)

Так что это все лирика. Суть в том, что про книжку я, разумеется, вспомнила только на следующее утро в метро. Но зато в голове тут же созрел план - как исправить эту ситуацию. И, придя на работу, я сказала "Помнить все", что в понедельник мне надо взять книжку. А будь у меня привычка, записала бы сразу. И не забыла бы. Впредь буду умнее :)

А программа меня реально спасает, когда надо что-то взять с собой утром, большой шанс это что-то забыть спросонья... Если у вас бывают такие проблемы - забейте! Не старайтесь вспомнить сами, просто поставьте себе напоминалку на время, когда вы уже встали, но еще не ушли :)

И раз пошла такая пьянка. не могу не рассказать. Тут уж не совсем о работе, но я и "помнить все" нашла, пока искала себе... ColorNote!


Точнее, искала я не конкретно его, искала я удобное составление списка... В частности, для поездок в Ашан :) И вот нашла! В программе есть как простые заметки (в топку), так и... чек-листы!

Выглядит все это очень круто: называешь чек-лист, например, "Ашан" или "Отпуск" или "Командировка" (наборы вещей ведь разные нужны для отпуска и командировки) и заполняешь некими короткими значениями.

А потом ты всегда можешь вызвать этот список и пройтись по нему, расставляя галочки - щелкнул по пункту, а справа ставится галочка! Очень рекомендую)))

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