воскресенье, 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 минут? Благо что на той же станции есть "Игровед", туда я и пошла. В конце концов, мы часто в Алиас играем, я все хочу себе "сумасшедшую версию" купить. Пришла в "Игровед", ушла оттуда с двумя пакетами ><. Еще плюс свой, с Алиасом и ноутбуком... Ну а что делать, все такое интересное :)
 
Пришла на место встречи - опять рано, Рина уехала домой колготки менять. Посмотрела с сторону Макдональдса и купила себе картошечки - птичек покормить. За этим занятием меня Рина и застала :)
 
Спасибо ей за помощь с моей охапкой пакетов! Вместе мы отправились на удивительный квест "найди место встречи". Вертя головой вокруг и пытаясь угадать, где же тут набережная, мы приставали с этим вопросом ко всем встречным прохожим. И вот, наконец, наши поиски увенчались успехом. Мы где-то вычитали, что надо сначала перейти мост, а потом уже налево и далее. Ага. И по такому маршруту мы оказались перед широкой дорогой без подземного перехода и светофоров :((
 
Ладно, перешли, идем дальше. О, вон там ориентир! Башенка эта знаметиная. Теперь направо, потом налево, прямо, налево, еще раз налево - и вот мы пришли! Темное и мрачное помещение встретило нас. Поднявшись на второй этаж, мы сразу увидели Наташу Руколь - она возлежала на диване и, разумеется, работала :)
 
Ну, кто работать пришел, а кто отдыхать! Уточнив место сбора, мы зашли в аудиторию, где и обосновались. Еще в аудитории были всяко-разные вкусняшки, так что мы перешли к ним. В аудитории зацила дружелюбная атмосфера, обе стороны радостно переговаривались друг с другом...
 



 
Наконец протикало 16.00 и мы приступили. В первую очередь преподаватели предложили представиться. Я в этот момент отсутствовала, поэтому, вернувшись в класс, я первым делом схватила фотоаппарат - пофоктать, пока лекция не началась.
 
А меня Алексей огорашивает вопросом:
- Оля, а что ты тут делаешь?
- о_О
- Расскажи о себе!
- Аааа, ээээ, ну я Оля и делаю мир лучше с компанией "ХФ Лабс", чего и всем желаю!
 
Наташа тут же возмутилась моей постановке ответа, не одна я ведь мир лучше делаю. Ну а я что, я ничего, нельзя же так внезапно вопросы задавать...
 
Поехали дальше, ребята представлялись и рассказывали о себе
 





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


 
 
Пожалуй, самое запоминающееся место работы :)
 
Ок, представились! И началось самое интересное - непосредственно занятие. Первым делом Наташа Руколь рассказала о своем религиозном споре с Алексеем Баранцевым. Ну, чтобы участники семинара сразу поняли, зачем сюда пришли :)
 
Потом Наташа предложила выступить всем, у кого готов hate-speach на тему работы. Ну что-то же должно не нравиться! И что же это? Я думаю, первых двух пунктов было бы достаточно :))
 
 
 
Иначе что же это за место работы, если ты влегкую все плохое вспоминаешь? Значит, много его, плохого? Ребята задумались на эту тему и начали дискасс
 
 
 
Алексей помогал народу вспоминать...
 

 
А потом пошел раздавать блокноты/ручки. Ведь самый тупой карандаш острее самой острой памяти!


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


 
 
Но что же с ними делать? Разумеется, преодолевать! А как?
 
И вот тут то и начался релизиозный спор двух великих Гуру. Алексей начал приводить свои доводы, а Наташа смотрела на него эдак скептически, "ну посмотрим, посмотрим, что ты в свое оправдание скажешь".
 



 
 
Алексей предложил нам сразу тестировать! А баги, мол, сами найдутся. А ТЗ - какое ТЗ? ТЗ не всегда доступно тестировщику... Сами придумаем! "Просто представьте себя на месте пользователя - и вперед!". Ну и ребята взялись за работу!
 
Работать решили попарно, так как не все участники взяли с собой ноутбук. Ну а я 10 раз прокляла свою лень притащить нормальный ноутбук, потому что мой недобук мы пытались расшевелить минут 15.
 
Регистрируемся в мантисе - а он нам  "вам пришло уведомление на емейл". Ок, идем в гмейл, а он... Не открывается. И 2 пути - установить хром или обновить ИЕ. Ну я по наивности выбрала оба и недобук ушел в глубокие раздумья, что же мне важнее, как все сделать и не сдохнуть :)
 
Тем не менее, каким-то чудом (иначе и не скажешь!), отменив обновление ИЕ (качается по 1% в минуту), мы успели зарегистрироваться за все то время, что Алексей пояснял суть задания. И даже краем уха его слушали! Ну а потом - работа закипела!! Ведь в "игре" были номинации на лучшие баги и все очень хотели туда попасть :)
 





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


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

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

 
Правда, у кого как Smile :) Только что освободившаяся Рина решила поесть...
 

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









 
Но вот. наконец, часть "exploratory" закончилась и вступила в дело Наташа!
 
Первым делом она нарисовала такую вот стрелочку, указывающую точно на Алексея :))
 

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

 
А потом взяли карандаши и... вперед! Мы рисовали... Карту!

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


 
 
Вот что у нас получилось (с последними штрихами). Дурацкий блог переворачивает картинки :(
 

 
 
А вот и карты наших коллег, тоже очень прикольные!
 

 
 
Алексей поискал в интернете ссылочку и стал объяснять нам, а что, собственно говоря, мы только что делали, только в умных терминах Smile :) 
А Наташа ходила и фоткала наши карты себе на память Smile :)
 






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



 
 
Нам подарили черные-черные биты с белой-белой надписью "Контроль качества". Мои коллеги уже оценили Smile :)
 
 
Ну а потом внезапно выяснилось, что время уже позже 8 и нам пора уходить. Выгнали, в общем, из аудитории. Это, пожалуй, единственный минус во всей встрече - для продолжения банкета нам пришлось перебираться в ресторан.
 
Ну и платить за напитки-еду, хотя мы пришли не пить, а играть в Алиас. Было довольно обидно за час игры платить деньги с учетом того, что в классе оставались соки и бутерброды... И чай с тортиком. Было бы замечательно закончить вечер, неспешно играя в Алиас за тортиком... Но увы и ах. (Возмущаясь растратами в 300 рублей, на следующий же день заказала себе 7 книжек с Озона... Но так тож для саморазвития Smile :))
 
Да, так вот! Какой вывод? Было очень-очень круто!!!
Кто не пришел - многое потерял! Мы и отдохнули, и повеселились, и поучились!
 
А спустя два дня я даже применила полученные знания! При том, что про майнд-мапы я давно знаю и даже иногда их рисую... Но, вдохновившись рисунком "от руки", я сагитировала ребят попробовать такую фишку в следующей регрессии. Посмотрим. как пойдет...
 
Но, опять же. Даже с учетом того, что про эту технику я знала, я бы не предложила ее использовать. Ну вот если положа руку на сердце - есть и есть техника. И фиг бы с ней. А тут - поработала с ней вживую, вдохновилась и пошла остальных пушить! Вот так, знания можно получать и "все зная, все умея"! И внедрять, внедрять, внедрять!!! Ну а если откажутся внедрять - у меня теперь есть бита! Smile :)