среда, 30 октября 2019 г.

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

У студентов в моей школе для начинающих тестировщиков есть задание — написать чек-лист на функционал своего проекта.

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

Моя коллега Ольга Алифанова привела такой пример:

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


Какие можно выделить классы эквивалентности для адресов? Как разделить населенные пункты:

  • по типу: столица, город, ПГТ, деревня...
  • по названию: в одно слово, в два через пробел, в два через дефис, в три и более слов (Комсомольск-на-Амуре), с цифрами (все закрытые города, скажем, имеют цифру в названии), ...
  • по населению: Москва, Петербург, миллионник/не миллионник, больше 12к жителей, исключение (Иннополис - десять жителей, но город)
  • по административному положению: федерального значения (Мск и Спб уже были, значит, Севастополь остался), областной центр (Екат), не областной центр (Выборг)
  • по степени закрытости: обычный (Псков), приграничная зона (Ивангород), совсем закрытый (Красноярск-26)
  • по истории названия: переименовывались, не переименовывались, переименовывались неоднократно (Петроград-Ленинград-Петербург)

Дальше у меня идеи кончились, ну, кроме длины, поэтому я схожу в гугл. Но обратите внимание: в первую очередь мы думаем о строке не как о строке (символы русские, английские, смешал, длину проверил), а как о конкретном поле. И выделяем классы именно для этого поля. Не для абстрактного string.

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

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

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

См также:

Классы эквивалентности для имен — тоже идеи, но про имена

Классы эквивалентности: будни Золушки — подробнее о классах эквивалентности
Ивану кредит не давать! — история о баге, который пропускается, когда тесты абстрактные

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

суббота, 26 октября 2019 г.

Бизнес-процессы: как их описать, отладить и внедрить. Михаил Рыбаков


Ссылка на OZON

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

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

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

***

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

Вообще очень знакомо это все, конечно. Когда у тебя 3 проекте, и когда 6 — разница несильная. А когда их становится 15, 20... Старые процессы перестают работать, а вот как внедрить новые, и какие? Непонятно!

Автор рассказывает, как это обычно делается:
  1. Описываем бизнес-процессы «как есть сейчас» — это важно сделать, хотя некоторые и считают бюрократией. Но не менее важно в эту самую бюрократию не скатиться!
  2. Выделяем самые важные бизнесс-процессы. 
  3. Назначаем РП — руководителя процесса
  4. Расписываем процессы чуть подробнее, обсуждаем в командой «чо-как». Рисуя «как есть сейчас», сразу накидываем идеи на улучшение.
  5. Потихоньку внедряем.
Важно именно в терминах процессах говорить, когда процесс законченный. То есть от потребности клиента до ее удовлетворения. И этот процесс сквозной, он идет через разные департаменты — большинство проблем находится на стыках, и их некому решать, когда каждый руководитель улучшает только свой отдел. Он лучше спихнет вину на соседа. 

Поэтому назначается не руководитель одного отдела, а руководитель всего процесса, сквозного. Только так можно с кого-то спросить за качество и это самое качество получить. 

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

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

Думаю, что книга полезная для собственников бизнеса. И автор смог продать идею бизнес-лагеря. Мне теперь кажется, что туда было бы полезно съездить )))


PS - Добавила книгу в общий список прочитанных мною книг.

четверг, 24 октября 2019 г.

Панбагон. Бесплатный донат в игрушке

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

В одной из игрушек в чатике увидела такой кейс:


Прикольно. Тестировщики, берите на заметку: если есть донат, проверить перевыпуск карточки, когда:

  • Номер тот же
  • Владелец тот же
  • Срок действия другой
Если разработчик проверяет только номер и владельца, будет ой.

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

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

среда, 23 октября 2019 г.

Что такое HTTP за 5 минут (видео)


Ольга Ермолаева записала прикольное коротенькое видео о том, что же такое HTTP. Рекомендую к просмотру Smile :) 

Оля записала видео в рамках домашнего задания яндекс-практикума для тренеров. Вот еще одно объяснение от другой студентки, всего за 1 минуту!

PS — добавила Олино объяснение на Testbase, в навык тестирования Web-приложений

воскресенье, 20 октября 2019 г.

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


Какие могут быть имена:
  • свое, короткое, длинное, составное, на английском, транслитерация, регистр
  • полное, краткое, уменьшительное: Ольга, Оля, Оленька
  • буквы, которые одинаково выглядят на русском и на английском: Oльга и Ольга
  • имя, с которого может начинаться фамилия и/или отчество: Александр(ов)
  • или не может: Михаил никак не может начинать отчество, потому что в русском языке И в Й перейдет
  • имена, у которых возможны разные варианты написания: Наталья/Наталия, Алена/Алёна
  • имя, которое бывает и полной формой, и краткой одновременно (Лана, Ася). Может быть и Лана, и Ася по паспорту, а могут быть Светлана и Анастасия
  • имя, которое в мужском и женском варианте отличается только окончанием, особенно интересно в подсказках — оба варианта система покажет или только один? (Александр/Александра, Владлен/Владлена)
Нужно ли каждый раз проводить все эти тесты? Конечно, нет! Все зависит от проекта, доступа к коду, времени, отведенного на тестирование...

вторник, 15 октября 2019 г.

Ивану кредит не давать!

Пару лет назад мой коллега Иван зашел на сайт банка Х и попробовал оставить заявку на кредит. Ввел ФИО и получил отлуп — «Имя «Иван» вводить нельзя».


Оказалось, что это криво реализованная защита от дурака. ФИО «Иванов Иван Иванович» вызывает подозрение. Скорее всего, это вымышленные данные, которые ввел тестировщик, или человек, который просто дурачится, не хочет давать свои данные.

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

Проблема в том, что нужно было запретить связку: имя Иван и фамилия Иванов и отчество Иванович. То есть условие в коде записать через AND.

А разработчики сделали через OR: если фамилия Иванов ИЛИ имя Иван ИЛИ отчество Иванович — получай ошибку!

Так что увы, все Ивановы, и даже просто Иваны. Таких имен нет, выберите другое!

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

Это реальная история, не вымышленная. Я писала о ней в статье «Классы эквивалентности: будни Золушки» — как пример того, что вроде выделил классы эквивалентности, а баг пропустил!

среда, 9 октября 2019 г.

Примеры S&T и карты процессов и шагов

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

См также:
Карты и диаграммы, которые используются в тестировании — подробнее о том, что такое S&T и какие еще есть варианты

Я пополнила коллекцию хороших работ от студентов парой примеров:


1. State Transition для учебного модуля



Автор — Юлия.
Ссылка в вики


пятница, 4 октября 2019 г.

Когда мнение миллионов нытиков — не баг


В чате нашей школы для новичков разворачивается обсуждение «что такое баг?». Ребята высказывают мнение:

— Если у миллионов возникает одна и та же ошибка, это баг!

Вроде правильно мыслят, но не на того напали ))) Моя коллега Ольга Алифанова много лет проработала в игровой индустрии. Она и гайды игрокам писала, и админом была, и ГМ, и тестировщиком. В том числе и в Варгейминге, где делают многомиллионные игры по количеству пользователей.

Оля рассказала такой пример, и разрешила опубликовать его в блоге и использовать в книге:

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

— Нет, не обязательно баг.

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

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

Это не баг, и исправлено это не будет. Китайское законодательство запрещает использование нацсимволики в играх, и уж тем более японской.