пятница, 24 июля 2015 г.

Классы эквивалентности: будни Золушки

Позор тебе! — кричит начальник, найдя в приложении баг. Даже если не кричит, все равно стыдно: как я могла пропустить такое? Это же так очевидно, почему же не учла? Потому что не подумала об этом классе эквивалентности.


Искать классы эквивалентности сложно даже мне, тестировщику с 7+1-летним опытом — что говорить о моих студентах. В книгах и на лекциях ребятам все понятно. Но как только доходит до практики, начинается ступор. Как же их искать, классы эти? Я придумала аналогию с диснеевской героиней — Золушкой. Ребята говорят, лекция стала понятнее.


Будни Золушки



Мачеха рассыпала на полу гречку и овес, перемешала и сказала — «Разбирай!». Золушка три часа раскладывала кучки. Итог мучений — гречка к гречке, овес к овсу.


mixed-groats-image.jpg  mixed-groats-macro-17517869.jpg
                           ↓
Рисунок4.jpg
В каждом мешке своя крупа  — свой класс эквивалентности


В тестировании то же самое: выделяем классы эквивалентности (крупу), ищем исключения, перепроверяем. Результат — ошибки находят тестировщики, а не начальство.

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

Минутка success-story от моих выпускников (smile)
Вчера вечером в чатике выпускников появился Александр с радостной новостью^

Всем привет!

Хочу поделиться радостной новостью - меня взяли в компанию Х (party) 

И в этом немалую роль сыграл этот Интенсив. Думаю без этих практических навыков бы не прошел. Отдельное спасибо Ольге и Павлу, конечно!



Я попросила поделиться подробностями и рассказать, какую роль тут сыграл интенсив:

Интенсив дает понимание в общем и уверенность в себе. 

Также спрашивают, какой практический опыт работы есть, какие проекты. Одно дело, когда ты приходишь и говоришь, что почитал книжки и посмотрел видео. Другое дело, когда говоришь «Я целую неделю по 10-12 часов в день тестировал web сайт проекта серьезной российской компании... И вот моя state & transition diagram by the way...»

Диаграмма произвела легкий шок — вначале пытались разобраться, потом отложили «Слишком сложно, посмотрим позже». 

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

Могу выделить два основных момента, на мой взгляд:
1) Статус в резюме (пусть и короткий, но серьезный проект).
2) Этот курс дает возможность «переварить» всю теорию, которую смотрел и читал, разложить все по полочкам, иначе в голове каша.

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

Такая вот история! И отличный кейс — я то советую своим ученикам давать чек-лист как пример своей работы, а Александр показал ДЗ8 — state & transition diagram. Тоже вариант, почему бы и нет (smile)

Разумеется, примера работы и заявления «я работал на серьезном проекте» недостаточно. Нужно быть именно выпускником, прошедшим все круги ада и сдавшим все ДЗ. Если не сдавать ДЗ, но сделать диаграмму или чек-лист, быстро зафейлятся на вопросах собеседующего. Ведь главное на нашем курсе — не ссылка на сертификат, а тот минимальный опыт, который вы нарабатываете :)

PS — Пополнила этой статьей историю развития курса, приходите к нам 3 августа!

четверг, 23 июля 2015 г.

Музейный тур. The Museum Tour

Входит в «Туры по историческим районам», Tours Through the Historical District

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

Музеи с антиквариатом — любимое место туристов. Они собирают несколько тысяч посетителей в день. Антиквариат в коде заслуживает такого же количества внимания от тестировщика. В данном случае под антиквариатом мы понимаем legacy code («устаревший код», распространенное название, поэтому оставила без перевода).


Legacy code — антиквариат разработчиков

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

четверг, 16 июля 2015 г.

Баги повсюду. Сборная солянка

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

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

Я создала лейблы «баги повсюду» и «панбагон» (когда он восстал из пепла в виде группы на фб) и с этих слов начинаю все описания багов, найденных в повседневных вещах. Плюс создала этот пост, агрегирующий все найденные проблемы вместе =)

Тут нет и врядли будут баги по защищенности. Хотя бы потому, что я не эксперт 😅
Но я хочу показать, что баги — они действиетльно повсюду. И в приложениях, и в игрушках, и в интернет-магазинах... Ищите, и найдете =)


Да так не бывает уже!

Кейсы из разряда «да в 21 веке уже документация везде нормальная есть» и прочая:


Кейсы по локализации


Баги


Баги в письмах


Web

Кинотеатр
Тестируем регистрацию на сайте Люксор
NaN при выборе сеанса Перегрин на 10.10 в 16:45
Как кинотеатр зажал мои билеты
Nginx error при просмотре программы лояльности
Не работает фильтр «4DX» по русскому фильму

Интернет магазин Wilberries
Поехала верстка в фотках и это закешировалось
Сообщения об ошибках — тоже документация, тестируйте их!
Смайлики криво логируются в ленте новостей
Не user-friedly сообщение об ошибке при загрузке файла
Найди некорректное сообщение по тексту ошибки
Идеально работает по ТЗ ≠ правильно
Ошибка входных данных, если выбрано 0
Вам не хватает «минус 4 тыс» на балансе
В мобильной версии дата ожидания товара — месяц назад

Другие интернет магазины
Декатлон. Фамилия вводится КАПСОМ
Ошибка 400 при сбросе пароля в партнерке OZON

среда, 15 июля 2015 г.

Тур по плохому району. The Bad-Neighborhood Tour

Входит в «Туры по историческим районам», Tours Through the Historical District

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

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

CjlR2Ru0dM4.jpg
Некоторые места лучше обходить стороной… Но не в коде!


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

Используйте баг-трекер для анализа. Посмотрите — в каком компоненте больше всего ошибок? Там и ищите!

111.jpg
Баги общительны…


funny-homer-simpson-chasing-spider-box-animated-gif-pics.gif
Где один, там их много =)


Более того, обнаружив бажный участок кода, рекомендуется пройтись туром сборщика мусора по ближайшим районам, чтобы убедиться, что фикс ошибки не сломал чего-то еще.


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


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

Чтобы материал усвоился, я привожу пример прохождения тура на реальном проекте нашей компании.

В этот раз примера не будет по понятным причинам =)



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

PPS: статья сохранена на Testbase, чтобы не потерялась ссылка.

понедельник, 13 июля 2015 г.

Тест-кейс VS чек-лист в картинках.

Чем же они различаются?

Официальная часть
Вроде все понятно:

тест-кейсы — подробно;
чек-листы — кратенько.

Но моим студентам все равно тяжело. Зачем в тест-кейсе писать, что именно за файл создается, как его загружать в систему (на какие кнопки нажимать, какие действия выполнять)?

Идея 1


Я предложила им такое пояснение:

Тест-кейсы тупые до невозможности, словно ребенка на работу привели и показываем, "Вот мамочка сейчас файл обработает. Нажимаем кнопочку А, потом кнопочку Б, потом...", а не просто "Ну вот загрузили и все получилось".


Ну а чек-листы — это когда не нужны все эти подробности, как именно мы загружаем файлы, на какие кнопочки нажимаем. Нужна просто напоминалка — «Проверить загрузку Excel, CSV, JPG...»



Ребятам пояснение очень понравилось Smile :)
Сказали, что так понятнее, так что заносим в теорию в картинках!

Идея 2


Вы делали ремонт? Покупали шкафы, собирали их? А я делала и отсюда у меня вторая ассоциация.

Мы купили комод в ИКЕА. Он небольшой и простой в сборке. Но инструкция выглядит как талмуд — все настолько подробно. Каждое действие, каждый шаг. Каждый винтик — все в новом пункте на пол-листа А4, максильно доступно. Такой комод соберет даже полный профан. Потому что ребята не считают нужным пропускать этапы как «Ну это же очевидно, куда ввинчивать этот шуруп». Очень напоминает «Ну это же очевидно, на какую кнопочку нажимать, чтобы загрузить файл» Smile :)


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


Мы, кстати, не осилили, оставили мастеру Smile :)

Но разница «Простая инструкция — инструкция из ИКЕА» === «Чек-листы — Тест-кейсы». Когда будете писать тест-кейс, помните об этом и о том, что очевидное вам — темный лес для кого-то другого...

PS — блог-пост добавлен на Testbase в раздел «Теория в картинках», где вы всегда его сможете найти! :-)

Развитие интенсива-14.


С момента прошлых хвастов прошло 2,5 месяца — 2 коротких курса и 2 длинных. Что мы сделали для студентов за это время:

Багред

http://bugred.ru/ — сервис для проверки названий багов.

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

Инструмент полезен в первую очередь мне и моим студентам. Но и не только. Именно поэтому я решила «расшарить знания» на всех и сделала Багред доступным обществу Smile :)

Это абсолютно бесплатный инструмент, решающий конкретные цели. Поэтому он не будет обладать искусственным интеллектом. Но от него и не нужно, ведь это уже уровень сильно выше =) Наша задача — базовые знания Wink ;)

Перевод туров

The FedEx Tour.
Интеллектуальный тур. The Intellectual Tour.
— Внеурочный тур. The After-Hour Tour.
— Сборщик мусора. The Garbage Collector Tour.

Статьи

— Ошибка, дефект, сбой
— Как стать тестировщиком, с чего начать
— Сообщения об ошибках — тоже документация, тестируйте их!
— Публичная подсказка к ДЗ6 Smile :)

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