воскресенье, 31 мая 2015 г.

Баги повсюду — Публикация блог-поста после даты из расписания

Когда я пишу блог-посты, я часто ставлю им дату и время публикации «из будущего»:
— через недельку, если собираюсь опубликовать сегодня-завтра;
— через пару месяцев, если собираюсь писать статью долго и нудно.

Зачем? Я могу случайно нажать комбинацию горячих клавиш или по привычке клацнуть «Publish» вместо «Save» → и черновик улетит в продакшен. Поэтому я перестраховываюсь, даже если ошибиться кнопкой, установив расписание, черновик останется черновиком. Можно спокойно его дописать, переставить время публикации на автоматическое определение и опубликовать.

Но бывают и казусы. Вот, например, дочитала я книжку «Вальсируя с медведями» месяц назад. Даже начала писать отзыв, но что-то меня отвлекло. Поэтому я поставила дату на недельку вперед, на «3 мая», и сохранила черновик.


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

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

И вот сегодня, 30 мая, я таки переборола лень и опубликовала свой отзыв на книжку. Я открыла черновик, дописала его, заменила в расписании пункт «Set date and time» на «Automatic» и опубликовала пост.

Но что я вижу? Его нет в верху списка., там по-прежнему красуется «Ошибка, дефект и сбой».



А где же «Вальсируя с медведями»? Правильно, опубликовано с датой 3 мая!



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

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

Мне кажется, такие баги как раз из разряда интеллектуального тура и сложных вопросов. Раз есть автоматическая публикация и установка даты и времени, можно позадавать приложению сложные вопросы:
— А если дата из будущего, а я ставлю текущую, опубликуется?
— А если дата была из прошлого и ранее такой сохранена?
— А если в рамках одного редактирования поставить дату из прошлого и сразу автомат?
— А если в рамках одной сессии поставить автомат, потом дату из будущего?
— А если дата публикации уже наступила, а у меня был черновик в этот момент открыт и я ее еще сдвинула, что станет с опубликованным постом?

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

пятница, 29 мая 2015 г.

Ошибка, дефект и сбой — чем отличаются

Сможете ли вы без подглядки в гугл ответить на вопрос — чем отличаются:
— Ошибка.
— Дефект.
— Сбой.

Практика показывает, что нет Smile :)

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

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

Вступление от Алексея — придумал историю не сам. На одном из тренингов я задал этот вопрос. Девочки посовещались между собой и сказали: «Мы не можем объяснить это с точки зрения ПО, но можем на примере шитья". Я удивился и сказал: «Давайте!».

Жил-был мастер. Он шил платья на заказ. Однажды он допустил ошибку — забыл прошить нижний край у кармана платья.


Результатом ошибки стал дефект. Платье висело на вешалке и выглядело абсолютно нормально, но оно было с дефектом.


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

Девочка опустила руку в карман, отпустила ключ... У-у-у-упс, ключ выпал на пол! Произошел сбой в системе — проявился ранее скрытый дефект.



Точно также бывает и в ПО → разработчики допускают ошибки при написании кода и в программе затаивается дефект. И даже если дефект не нашли и о нем никто не знает, он все равно есть! Сидит и ждет своего часа. И когда пользователь натыкается на ошибочный код, происходит сбой.

Такие дела! Smile :)
Надеюсь, эта история поможет вам запомнить разницу так же, как она помогла мне. И помните — не всегда надо зубрить, иногда достаточно придумать знакомую и понятную альтернативу :)

А под конец немножко официоза — версия из ISTQB, которую мне любезно процитировали мои студенты. А ведь ради них я и пишу эти статьи! Smile :)

A human being can make an error (mistake), which produces a defect (fault, bug) in the code, in software or a system, or in a document. If a defect in code is executed, the system will fail to do what it should do (or do something it souldn’t), causing a failure. Defects in software, systems or documents may result in failures, but not all defects do so.

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

среда, 27 мая 2015 г.

Как стать тестировщиком, с чего начать

1. Прочитать книги

Приходить на собеседование, не прочитав ни одной книжки или статьи, должно быть стыдно. Вы ищете работодателя или только зарплатодателя?
Обязательный минимум — Роман Савин «Тестирование DOT COM». Книжка маленькая, читается быстро и легко.
В идеале еще «A Practitioner’s Guide to Software Test Design», Lee Copeland нужно прочитать, это лучшая книга по тестированию. Перевода на русский нет, но она и на английском вполне понятная.

2. Практиковаться, практиковаться и еще раз практиковаться

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

Развитие интенсива-12


Буквально на днях закончился 12 курс практического тестирования для начинающих.
Продолжаем пополнять систему дистанционного обучениям доп. материалом. Больше доп. материала! Smile :)

Новые полезные статьи для студентов:
О, а еще моя выпускница сравнила мой интенсив и школу Наташи Руколь. Для тех, кто мучается муками выбора, рекомендую ее статью.

А еще, а еще! Свежевыпущенная студентка завела блог и поделилась в нем своими впечатлениями. Лучший отзыв → напечатанный не на продающем сайте, а где-то еще Wink ;)

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

Половая дискриминация продолжается — в выпускниках (точнее, выпускницах) только девочки. Недаром шутят, что это «девочковая» профессия, что мы внимательнее Smile :)

Посмотрим на отзывы последних двух курсов (отзывов с 11 версии еще не было, дабы не засорять ленту сплошной рекламой да отзывами).

Анонимно, недоучившийся студент

Я хоть и не выпускник, но все равно "пережил" этот интенсив)
Расскажу вкратце - было 3 основных ОР, которые я указал в самом начале. И результатом я доволен, хотя конечно, можно было лучше стараться
Ну если это будет интересно, давайте посмотрим конкретнее по ОР.

1. Проверить свои силы, получится ли у меня вообще пройти этот курс, интенсив
Результат — курс не прошел, почти все ДЗ не сданы до конца, НО, я понял для себя, что пройти его вполне реально и у меня точно бы получилось, просто не хватило времени и еще чего-то :)

2. Выяснить, тестирование это "моё" или "не моё"
Результат - выяснил, что данное ремесло, вполне может быть моим, т.к. мне это понравилось, чувствую что тестирование меня может сильно и надолго "затянуть":)

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

И кстати, это наверняка не последний курс, в котором я буду участвовать, поэтому уж точно не прощаюсь, еще поработаем как-нибудь)

Анонимно, недоучившийся студент
Ольга, здравствуйте! За ДЗ1 уже дня 2 не бралась. Очевидно, курс я закончить не успею,    Но он очень мне помог. Неправильно распределила силы, в среду четверг сидела до 3 -4 утра, а вставать мне в 7, в итоге вчера почти ничего не сделала, да и сегодня тоже не особо. В любом случае, Ваш курс очень много мне дал, опять читаю Копленда, уже более осмысленно. У Вас замечательные, очень понятные лекции, Вы молодец. И спасибо за Ваш блог!
Анонимно, недоучившийся студент (переведен в следующую группу, обещает стать выпускником)
Ольга, добрый день. У меня семейный форс-мажор. Я не смогу закончить ваш курс, физически просто не успею! Но ДЗ 5,6,8,9,10 я выполню когда будет время. Если вы не против, могу ли я вас побеспокоить в скайпе своими вопросами? И ОГРОМНОЕ СПАСИБО за ваш курс!!! Мне он очень помог определиться со многими вещами! Отзыв на курс обязатяльно напишу! Еще раз спасибо терпенение, ваши знания и позитив! Хорошего Вам дня ;)
Анонимно
Курс — полное говно!
Анонимно
Что ожидали от курса?
- Хотелось понять как составлять тест-кейсы,  чек-листы, узнать о технике тестирования и самое главное!! Хотелось практики тестирования живого сайта.
Что получили?
-Получила очень много практики тестирования (90% курса), доступную и понятную теорию, которая не утомляла и не была теорией ради теории, очень внимательных тренеров, которые были рады помочь в ЛЮБОЕ время, что очень актуально для каждого студента.
Чего не хватило?
-Мне немного не хватило времени, чтобы побольше посидеть (поковыряться) в интересных заданиях))) 
Скоробогатов Максим (это еще с интенсива-11, раз мальчик)
От курса ожидал в первую очередь практики и получил ее в полном объеме, работа на реальном проекте с интересными задачами. Приходилось много думать и особенно много раз переделывать задания. Неделя получилась сверхнапряженная, но зато мозги получили то, чего так не хватало последнее время - отличную встряску и нагрузку.
Хуснутдинов Тимур
Курс очень интересный. Когда шел сюда, прочитал, насколько он сложный, но думал, что будет легче )
Когда искал подобные курсы, основной задачей было получить навыки в оформлении тест-кейсов и чек-листов не только для себя, но и для коллег и набраться теории в части методов тестирования, так как специально на тестировщика не учился, а занимаюсь в основном тестированием.
Сейчас, после курса появилось понимание того, что я раньше делал правильно (по наитию так сказать), а до чего не дошел из-за недостатка знаний.
Надеюсь, что теперь, применяя все полученные знания, я смогу более продуктивно и грамотно тестировать наше оборудование )))
Для меня возможно немного нераскрытой осталась тема по правильному задаванию вопросов (хотя за время курса я уже успел прочитать много статей по психологии)))), но я надеюсь, что если я еще потренируюсь задавать правильные вопросы, то потом проблем с этим не будет.
В целом курс настолько интенсивный и так заставляет работать мозг, что у меня сложилось ощущение, что я на работе вообще не думаю (по сравнению с неделей курса), хотя я конечно на работе тоже лоб морщю )))))
Анонимно
Перед интенсивном, прочитав общую информацию, сразу поняла - будет тяжело. Ожидалась сразу очень интенсивная работа (тем, у кого нет свободной недели советую подумать над удлиненным вариантом курса), но вышла интенсивная работа в квадрате. Еще перед началом курса нужно правда знать основы, хотя бы понимать - дальше практика, практика и снова практика. Боевая робота на проекте с реальными коллегами. Правда, очень не хватало времени и ответов от преподавателей. Но, на то все и рассчитано. Поэтому и разочарований нет.
Анонимно
В первую очередь от курса ожидала практики. И в результате получила её сполна. Большинство заданий были достаточно тяжелыми, но интересными.
Тем, кто планирует пройти данный курс, хочу посоветовать быть готовыми тратить ЦЕЛЫЙ ДЕНЬ на решение ДЗ. С первого раза сдать получается очень редко)
Единственное, что оставило не очень приятный отпечаток, очень часто я не могла понять что же с меня хотят. Комментарии к ДЗ и в скайпе очень часто бывали совсем расплывчатыми и непонятными. Тем более для меня, как новичка в тестировании.
Большое спасибо Ольге и Павлу за помощь и комментарии. За то, что сидели с нами до самой ночи.
Анонимно
К моменту начала курса я находилась на финальной стадии прочтения книги Савина. Более или менее мне было понятна суть повествования, но оооочень не хватало практики. А так хотелось понять, интересна мне профессия тестировщика, справлюсь ли я с реальными задачами, - мне было интересно посмотреть на профессию как бы изнутри. И я решилась на прохождения интенсива по тестированию.
Было сложно, катастрофически не хватало времени, мозг кипел и рождал панические настроения. Но! Я справилась :) И ничуть не жалко потраченного времени. Я добилась того, чего хотела. Буду продолжать учиться, развиваться в области тестирования и, наверняка, чуть позже пройду еще какой-нибудь курс на software-testing (а то и не один).
Спасибо, Ольга и Павел!
Анонимно
 Я записалась на тренинг "Интенсив для начинающих тестировщиков" спустя 1,5 месяца после прохождения курса "Школа успешного тестировщика". Тогда сразу применить на практике полученные знания у меня не вышло, поэтому здесь я рассчитывала освежить изученный материал, посмотреть на него через призму взгляда другого преподавателя, а также узнать что-то новое и ещё раз попрактиковаться. Ну и "встряхнуться", так как три недели без работы давали о себе знать, а надо настраиваться на поиски новой!
Тренинг оправдал все мои ожидания. Входить на интенсив было тяжело, но оно того стоило! Неделя ежедневной работы дала не только отличную практику на реальном проекте, но и помогла выявить внутренние ограничивающие установки и личностные особенности, мешающие работать продуктивно и качественно. Теперь я знаю, над чем ещё надо поработать.
Хочу обратить внимание выбирающих данный курс на то, что если вы, как и я, нуждаетесь во "\"встряске"\" или у вас проблемы с организацией рабочего времени, то выполнение домашних работ до зачёта (а пересдавать вам, скорее всего, придётся, и не один раз) может занять больше, чем заявленные 3-4 часа в день. Лучше заранее подготовьтесь к интенсивной работе!
Тренинг дал много практики и достаточное для её выполнения теории (особенно если читать доп. материалы). Но из-за того, что я была не совсем готова к темпу обучения, то не успела хорошенько поискать баги, хотелось бы завести побольше. Однако лучше меньше да лучше, и я довольна тем, как вместе с преподавателями подробно разобрала заведённые ошибки и улучшения.
Огромное спасибо Ольге и Павлу за безграничное терпение, наводящие подсказки, ценные советы и рекомендации! И за то, что натолкнули (лично меня) на переосмысление отношения к обучению и работе.
Демус Оксана
Ожидала практического опыта - фактически его и получила. Чего не хватило - времени... мне было очень тяжело, я человек не особо быстрый, а тут все в таком темпе бешеном, что я просто в шоке пребывала, приходилось сидеть по много часов, я тратила как минимум часов 8, а то и более. Думаю, таким людям как я проще было бы на трехнедельной версии.

Следующий курс стартует 01 июня, только недельный вариант. А оба уже  с 15 числа. Присоединяйтесь! Smile :)

PS — Пополнила этой статьей историю развития курса. 

вторник, 26 мая 2015 г.

Пример локализации бага в игре «Паук» для iPad

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

Посмотрим на примере игры «Пасьянсы (Паук, Косынка, Свободная карта». У меня установлена бесплатная версия 1.0.2 → версию можно посмотреть в своих покупках.


Открываю приложение


Выбираю Spider.


Нажимаю «Статистика», дабы узнать свой жалкий процент побед.

понедельник, 25 мая 2015 г.

Шаблон бага

Вариант для JIRA

h3. Шаги для воспроизведения
#
#
#
#
#

h3. Результат

h3. Ожидаемый результат

+ Аттач в виде скриншота.


Иногда еще нужна доп инфа, внизу добавляем:

h5. Дополнительная информация

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

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

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

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

На одном из курсов студентка написала с разницей в N времени:.

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

Наглядность — наше все Smile :)

Пример


Шаги для воспроизведения

Перейти в раздел «Статистика» в личном кабинете Дадаты — https://dadata.ru/profile/#stat (данные для авторизации: логин abc, пароль 1)
Результат

500 ошибка сервера, см скриншот «Ошибка 500 в ЛК». (названия у скриншотов должны быть «говорящими», потому что их со временем может накопиться много)

Ожидаемый результат

Открылась статистика обработки данных

* Не пытайтесь воспроизвести проблему, разумеется, никакой ошибки в Дадате нет :)

------------------------------------------------------------------------------------------------------------------

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

Пока просто шаблон для бага — бери и используй!

См также:

Шаблон улучшения — Такой же шаблон, только для улучшения =)
Как заводить задачи в баг-трекер → подробнее о том, как ставить задачу и заполнять обязательные поля.
Пример локализации бага в игре «Паук» для iPad → применяем шаблон на практике!
Неправильный ярлык, угадай почему → и снова применяем, но тут с разбором описания, на что обратить внимание

PS: Статья написана в помощь студентам моих курсов по тестированию:
и уже доступна на Testbase в навыке описания баг-репортов.

четверг, 14 мая 2015 г.

Инфостиль в действии. Перевод тура по ориентирам

Мне всегда интересно заглянуть «за кулисы». Идешь ты в театр, на сцене видишь одно, а за кулисами совсем другое. Или SQA Days — когда программный комитет рассказывает, как принимаются доклады, что им присылают и т.д. — так интересно слушать!

Поэтому сегодня я хочу пустить вас «за кулисы» блога и рассказать, как я перевожу туры Виттакера. В конце прошлого года Джеймс Виттакер (James Whittaker aka @docjamesw) разрешил мне перевести туры из его замечательной книги Exploratory Software testing”.

«Подумаешь!» — думала я. «За январь все опубликую, да!». И действительно, черновик с переводами всех туров на ломаный русский давно готов. Осталось придумать примеры и написать по инфостилю. И подобрать клевую картинку! Smile :)

Всего ничего, но инфостилем я занимаюсь недавно. И если «отжать» текст я могу, то обогатить его обратно дается мне с трудом. А иногда и не дается :)

Я пишу, я переделываю. У меня закипает мозг, я бросаю. Через день возвращаюсь, смотрю свежим взглядом и переделываю. Посмотрим на примере текста. который я уже месяц шлифую.

Перевожу тур по ориентирам. Моя первая ассоциация на ориентиры — Балто. Ищу картинку, нахожу.

Brave-Balto-balto-20155485-1920-1080.jpg

Какой текст мне нужен? Мне нужно связать Балто с ориентирами:

Балто оставлял отметки на деревьях, чтобы не заблудиться на обратной дороге в метель.

Хм, хм.. Скудненько.
Сомнительно, что все читатели смотрели Балто → им этот текст ни о чем не скажет. Нужно ввести в текст главного персонажа. Посмотрим, что о нем написано в аннотации к фильму:

Наполовину лайка, наполовину волк, Балто и сам не знает, кто он такой на самом деле. Всеми гонимый бродяга в ледяной пустыне Аляски. Только его друзья русский полярный гусь Борис, медвежата Мак и Лак и красавица-лайка Дженна уверены, что хотя он и не такой как все, но в его груди бьется благородное сердце.

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

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

Теперь текста слишком много. И все это буллшит, зачем читателям тура по ориентирам столько подробностей, зачем все эти эпитеты типа « всеми гонимый бродяга»? Попробую описать своими словами, используя эту информацию:

Вы смотрели мультик «Балто»? Наполовину лайка, наполовину волк, он жил за поселком — люди боялись его. Эпидемия дифтерии охватила детей и проводились гонки, чтобы понять, кто поедет за лекарством — самолетом нельзя из-за вьюги, спасти детей может только собачья упряжка.

Балто выиграл гонку, но его прогнали с позором — наполовину волк, вдруг покусает? Но он не смог остаться в стороне и пошел за остальными, ведь из-за вьюги упряжка заблудилась. Что делать, чтобы не потеряться? Балто помечал деревья на своем пути — создавал ориентиры, по которым можно вернуться.

Отжимаем текст. «Наполовину лайка, наполовину волк» — однородные члены. Если я хочу сказать, что люди его боялись, достаточно того, что он «наполовину волк». Но нужно ли тут вообще это предложение? Следующее про эпидемию вообще о другом, нет связки. А-а-а-а-а-а-а, сделаем перерыв.

images.jpg

Вернемся к тексту. Смотрю я на него — фигня полная. Слишком много текста. Попробую снова переписать покороче. Для этого надо задать вопрос “Что ты хотела сказать в этих абзацах?” и записать ответ. Разговорный ответ — словно я общаюсь с читателем, а не пишу занудную статью. Итак, зачем мне этот текст, что я хотела сказать?

В мультике «Балто» главный герой — полуволк. Он знает, что в лесу в метель легко заблудиться. Поэтому, когда он отправляется в лес, он помечает деревья на своем пути. Это — ориентиры, по которым можно будет вернуться назад, не заблудившись.

Текст стал лаконичнее, но стало слишком много местоимений. Вспоминаем Ильяхова: «Часто местоимение можно убрать, за счет личного глагола смысл не потеряется». Главред не одобрит. Попробуем убрать. Заодно можно выкинуть слово «мультик», оно тут ни к чему, у нас ведь есть картинка из мультика.

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

На одно местоимение стало меньше. Но начало вообще непонятное. Ааааргх, как @perepisal это делает?!!! Перерыв, мне нужен перерыв!

BYh_gGrwRE4.jpg

Так. Чтобы сделать нормальное введение, мне нужна история. Моя история.

В детстве я любила смотреть мультфильм «Балто». Люди изгнали его из деревни с позором, «полуволк — вдруг укусит?». Но Балто все равно ушел в лес в метель, чтобы спасти деревню. Он знает, что в лесу в метель легко заблудиться. Поэтому он метит деревья. Отметины — ориентиры, по которым можно будет вернуться назад, не заблудившись.

Да елки-палки! Опять не то. И начало плохое. Я читаю первое предложение, но, когда я перехожу ко второму, я уже не понимаю, о ком речь “изгнали его” — кого?

Полулайка-полуволк, люди изгнали его с позором, «вдруг укусит?». Но Балто все равно ушел в лес в метель, чтобы спасти деревню…

Ох, блин! Посмотрим на первый вариант… Хм, может, взять его, выкинув лишнее?

Вы смотрели мультик «Балто»? Полуволк отправился в лес в метель, спасать свою деревню. Чтобы не заблудиться на обратной дороге, он помечал деревья. Пометки = ориентиры.

Все, с меня хватит. Пойду скормлю этот текст Главреду. Главред отметил только слово «свою», значит, оставляем так, иначе я эту статью никогда не закончу!

*Прошел день*

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

Вы смотрели мультик «Балто»? Стая собак отправилась за лекарством для умирающих детей в соседний городок. Налетела метель и они заблудились на обратной дороге. Тогда в лес отправился Балто. Чтобы найти дорогу обратно, он помечал деревья по пути. Пометки = ориентиры «Я тут был».

Вау, главред одобряет! Тогда точно оставляем этот вариант и работаем над статьей дальше :)

*Спустя сутки по пути на работу продолжаю размышлять*

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

*Пришла на работу, перечитала*

Да вроде нормально. Можно лучше, конечно, но Я НЕ ЗНАЮ КАК! Да ну его, допишу примеры и пора публиковать, сколько можно, месяц статью открываю, унываю и закрываю.

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

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

А теперь самое интересное. Пока я придумываю примеры, я понимаю, что моя ассоциация в корне расходится с описаем автора:

  • Автор — Ищем дорогу, когда идем вперед. Смотрим на компас, “ага, север там, пойду до этого дерева (ориентир)”. Дошли, снова смотрим на компас, “север там, пойду до этого камня”.
  • Моя трактовка — Балто знает дорогу «вперед», но делает пометки на деревьях, чтобы не заблудиться на обратной дороге.

Это заставляет задуматься. А имеет ли право на существование моя трактовка? Может, ее вообще выкинуть? Оооо, это самое сложное, когда пишешь текст, долго отшлифовываешь, а потом понимаешь, что он не нужен. Выкинуть просто рука не поднимается :)

Но в моем случае — почему бы и нет? Разве Балто не ориентиры делал? Ориентиры. Просто немного другой взгляд на них. Но вот какие примеры мне привести? Так простая ассоциация, которой даже не было в оригинале у автора, заставляет меня, как переводчика, думать. Напрягать извилины :)

А это хорошо и полезно. Как сегодня правильно заметила моя выпускница с интенсива — «Туры мне после «Психбольницы» кажутся очень созвучными с Персонажами) Создаёшь вымышленного персонажа, наделяешь индивидуальностью, и от него «гуляешь» :))» ©

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

С понедельника стартуют оба курса, недельная и трехнедельная версии. Студентам повезло, потому что в среду я поеду в коворкафе, к Максиму Ильяхову, учиться писать по инфостилю.

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

среда, 13 мая 2015 г.

Тур по ориентирам. The Landmark Tour

Входит в «Туры по бизнес-району», Tours of the Business District

Вольный перевод статьи Уиттакера из книги Exploratory Software testing. Туры помогают искать баги, взглянув на систему по-новому. Тестировщик выбирает тур и следует его цели, не отвлекаясь ни на что другое. Словно турист в незнакомом городе, составил план и пошел!

Вы смотрели мультик «Балто»? Стая собак отправилась за лекарством для умирающих детей в соседний городок. Налетела метель, и они заблудились на обратной дороге. Тогда в лес отправился Балто. Чтобы найти дорогу обратно, он помечал деревья по пути. Пометки — ориентиры «Я тут был».

Brave-Balto-balto-20155485-1920-1080.jpg
Пометка на дереве — ориентир, чтобы найти дорогу обратно.

Ориентиры помогают не сбиться с пути.

Уиттакер (автор книги, из которой переведен тур) вырос среди лесов и полей. Брат научил использовать компас: ищешь север и идешь туда. Можно не север, просто выбираешь одно направление и придерживаешься его. Если долго идти по прямой, выйдешь к дороге — правило 21 века!

Можно пялиться в компас всю дорогу, но тогда ветка ударит по башке :)
Но как смотреть по сторонам и не потерять направление?

воскресенье, 3 мая 2015 г.

Вальсируя с медведями. Том деМарко и Тимоти Листер


Ссылка на OZON.

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

Авторы утверждают, что основных составляющих управления риском пять:

  1. Идентификация риска: первоначальный мозговой штурм по выявлению риска, сортировка.
  2. Анализ воздействия риска: количественная оценка каждого риска в терминах вероятности его наступления и потенциального ущерба.
  3. Планирования реагирования на риски: что вы собираетесь делать, если и когда данный риск наступит.
  4. Ослабление риска: меры, которые должны быть приняты предварительно, чтобы обеспечить возможность и эффективность проведения запланированный деййствий, если они потребуются.
  5. Мониторинг и управление рисками: отслеживание рисков, выделенных в качестве объектов управления, выявление материализации рисков.
Конечно, есть риски, вероятность которых слишком мала и не стоит тратить время на их проработку (например, «в компанию влетел метеорит»). Обо всем остальном стоит подумать заранее. Слишком наивно полагать, например, что не будет срыва сроков. И если это очень важно и очень критично, то нужны обходные пути. В книге есть замечательный пример на эту тему, когда можно было сэкономить миллионы, заложив риск "не успеем доделать ПО, давайте сделаем пошире проходы, чтобы вручную тележки возить" в аэропорту. Не успели, на риск забили → денег кучу потеряли.

Еще авторы рассказывают о том, что проблемы далеко не всегда в технологиях. И перечисляют аж 10 пунктов главных источников неопределенностей в проекте, как то "Конфликты: Как различные участники проекта найдут компромисс между своими, зачастую несовместимыми, целями?". Вам проблема кажется надуманной? Значит, вы просто не сталкивались с пободными проблемами. "Видишь суслика? А он есть!" Smile :) 

Понравилось отношение авторов к вопросу "что я не знаю?":

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

Что я знаю (или что я мог бы знать) о том, чего я не знаю?

Всегда доступна какая-то информация о неизвестном. И всегда лучше иметь эту информацию, чем обходиться без нее.

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

пятница, 1 мая 2015 г.

Баги повсюду — пейджинг страниц в JIRA

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

Моя задача — проревьюить все задачи по проекту. Для этого я открыла фильтр, указала проект и отсортировала список по возрастанию. И начала листать страницы, читая заголовки задач.

Листаю, листаю... 

На первой странице параметра в URL строке нет, на второй появляется startIndex=50. На третьей startIndex=100, а я все листаю.

Страница 19, startIndex=900, все нормально, долистываю список до конца и вижу пейджинг



Переключаюсь на 20 страницу, startIndex=950.
Дохожу до конца страницы → хм, уже не все нормально...



Нажимаю на страницу 21 в пейджинге → ничего не просиходит.
Нажимаю на 21, зажав Ctrl → в новой вкладке открывается URL с параметром startIndex=1000, но потом страница обновляется, параметр снова становится startIndex=950...

«Не смогла» © Sad :(

Пришлось отсортировывать задачи теперь уже по убыванию и возвращаться к первой странице. Благо задач было меньше 2000.

Оказывается, JIRA не может осилить простейший пейджинг. Я же не прошу у нее 500 результатов на странице выводить, выводи сколько умеешь, просто дай мне кликать дальше и дальше...

Как найти такой баг? Элементарно. Когда мы видим пейджинг в приложении, обязательно тыкаем на него и смотрим на URL. Если URL не меняется, ну упс, такого бага не найдем. Зато кнопки «назад» и «обновить» в браузере наверняка будут вести себя неадекватно с точки зрения пользователя...

Но если URL меняется! Если там появляется параметр.ю отвечающий за пейджинг... Можно попробовать его менять! Это же простое число, какие проверки мы можем провести? Какие значения вбить?

1000 — большое значение, но вполне адекватное, позитивный тест.
1000000000000000000 и более (генерим строку через Perlclip) — а не повесится ли система, если ли ограничение у параметра?
0 — граничное значение, в отрицательную строну пейджинг не может уйти
- 1 — а вдруг уйдет?
- 100 — мы видели, что пейджинг меняется с шагов в 50, поэтому «минус один» может не сработать, а «минус сто» как знать...
22 — раз система предлагаем шаг 50, давайте попробуем его уменьшить!

Всего несколько очевидных проверок — а уже на первой нашли баг. Конечно, разработчики могут отмахиваться "да вы просто ломаете систему, нормальные пользователи так не сделают", но такая отмазка прокатит для падения на значении 100000000000. А значение 1000 вполне адекватное, особенно с учетом того, что шаг — 50. И тут задача тестировщика — поставить себя на место реального пользователя. Отделить некритичную ошибку «я пытаюсь все сломать» от позитивного сценария. Показать проблему разработчикам, «продать» ее. Иначе, увы, никто ничего не исправит.

А я ведь не пыталась сломать, я просто использовала фильтр Sad :(

PS — добавила пост в общую копилку багов.