понедельник, 29 октября 2018 г.

State Transition на примере тортика!

Вчера в чатике моей школы был очень интересный диалог по поводу рисования State Transition. Студентка рисует его для просмотра сериала и пытается разобраться, как это сделать:

— В КП-8 получила фидбэк, что сделала не схему состояний и переходов, а некую инструкцию по просмотру сериала, по факту показывающую одно его состояние — в процессе просмотра. Но суть как раз в том, что сериал из непросмотренного может быть перемещен в другие состояния, отраженные в виде разделов в личном кабинете, с помощью четырех кнопок, которые на схеме являются действиями. Больше никаких действий с сериалом пользователю не доступно (загрузка, редактирование и т.д.)

— Ну смотрите, Вы продолжаете описывать и смотреть на вещи, как пользователь, а надо как тестировщик. Сериалы из пустоты не берутся. Кто-то их закачивает. Значит, все же связка "сериала не существует" и "сериал загружен на сайт" — уже есть)

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

— По хорошему у тестировщиков на это есть права) и им дают необходимый доступ

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


Постановка мозгов через тортики


Тут моя коллега решила объяснить рисование карты на примере... Тортика! Дальнейший диалог был просто потрясающий, не могу не поделиться им с вами (разумеется, с разрешения коллеги, все же это ее идея, а не моя). Итак, приступаем:

— Вот смотрите...торт любите? Или другую еду какую-нибудь)
— Допустим)
— Отлично.

Чтобы приготовить торт, нам нужны ингредиенты, правильно? Это то, из чего он состоит. Как и наши объекты из параметров, но только в граммах.
Торт "не существует"
Так вот, от того, что какого-то ингредиента будет больше/меньше, состояние торта не изменится. Он будет по-прежнему "не существует".

Как пустой JSON вешает библиотечку Axis

Если вы используете открытую библиотеку Axis, попробуйте послать в приложение пустой JSON. Он вполне может повесить все напрочь.

И самое главное — вы ничего не можете с этим сделать на своей стороне! Это баг в сторонней библиотеке. Так что тут или ждать официального исправления, или менять библиотеку, что может быть очень сложно.

Скажете, что «никто в здравом уме не будет слать пустой JSON»? Ха-ха-ха!  
Мы о баге библиотечки именно так и узнали — тестовый стенд стал зависать. Причина неизвестна. Искали, искали... И вот нашли. 
Зачем разработчики интеграции посылали такие сообщения — непонятно. Но пришлось просить их прекратить ¯\_(ツ)_/¯

На момент написания этого поста баг еще не исправлен (версия 1.4). А даже если бы был — так ли просто обновиться? Казалось бы, делов на 5 минут, обновил библиотеку, и свободен.

вторник, 23 октября 2018 г.

Как создать проект в редмайн

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

Чтобы выполнить инструкцию, надо иметь права администратора!

1. Нажать кнопку «Новый проект»


понедельник, 22 октября 2018 г.

Принцип лопаты (для локализации багов)


Когда вы находите баг, нужно покопаться рядышком. Вдруг вы нашли всего одно проявление, а их сильно больше? Посмотрим на примере. Кто у нас не умеет локализовывать баги? Правильно, Кевин!

И вот он тестирует форму ввода. В поле «Доход» по ТЗ можно вводить только числа. Он вводит символ «А» и... Символ вводится!


Кевин рад, он нашел баг! Для него баг — это орешек. (вспомнили же «Ледниковый период» сейчас, да?)

воскресенье, 21 октября 2018 г.

Панбагон. Примеры плохих сообщений об ошибке (PayPal)

Пытаюсь зарегистрироваться на PayPal. Вот окно подтверждения названия компании. Ввожу туда данные как в примере — IP FIO. Получаю гениальный текст "Произошла ошибка"


Это ошибка где? Мне с ней что делать? Я что-то не так ввела? Что? Как исправить? Непонятно!

пятница, 19 октября 2018 г.

Знакомьтесь, это — Кевин! Белка-истеричка в тестировании

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

Знакомьтесь, это Кевин — белка-истеричка!


Его реакция на баг выглядит примерно так:



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

Мнемоника БУНТ ТЕНИ и стихи от Лилии

На моем курсе «Школа для начинающих тестировщиков» есть творческое задание — придумать свою мнемонику по тестированию! Разумеется, оно необязательное ツ

Сегодня у нас в программе стихи и мнемоники от Лилии

Стихи


Я решила быть сейчас
Тестировщиком для вас.
Чтобы баги находить,
Улучшения проводить.

В школу тестинга пошла,
Знаний много извлекла.
Практики хоть отбавляй:
Кейсов больше добавляй.

понедельник, 15 октября 2018 г.

Как отправить REST-запрос в Postman

Если вы никогда раньше не слышали про REST-запросы, то вам сюда ツ

Давайте рассмотрим на примере, который вы можете прямо сейчас взять и повторить. Показывать я буду на системе Users, которая находится в открытом доступе. А запросы будем посылать через бесплатный инструмент Postman.


Отправить первый запроса с нуля


Отправлять мы будем запрос doRegister

REST отличается от SOAP-а тем, что тут необязательно должен быть контракт (WADL). И если его нет, то без документации вы запрос не отправите. Попробуем с документацией!

1. Запустить Postman — он сразу откроет окно ввода запроса. Слева отображается история выполненных ранее запросов. Исходно она пуста, но скоро заполнится =)


воскресенье, 14 октября 2018 г.

Успешный опыт студентки на собеседованиях


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

Но "это же тренер, она в тестировании больше 10 лет, а вот как быть нам, новичкам...". И истории таких же недавних студентов котируются выше моих уверений, что все будет хорошо =))

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

Итак, Машина история:

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

Маша: у меня была первая рабочая неделя на новой работе)

Вася: Поздравляю!)) Надеюсь, что у нас, всех новичков, после данного курса тоже будет новая любимая работа))

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

Маша: думала, что месяц точно без работы буду...в первый понедельник своей безработной жизни отправила резюме, в среду уже проходила 2х ХРов, в четверг было знакомство с 1 QA лидом, в пятницу из 3й компании сразу с тим лидом) на 2й неделе пошла на техническое собеседование в компанию, которая была в приоритете, в четверг уже был оффер от них...

понедельник, 8 октября 2018 г.

Краткая шпаргалка от Павла по заведению бага

Эту шпаргалку написал мой коллега Павел Абдюшев в помощь моим студентам еще года 3-4 назад (во времена недельного интенсива).

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


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

воскресенье, 7 октября 2018 г.

Ретроспективный анализ ошибки

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

Я пропустил баг...

Искать виноватых бесполезно. Окей, виноваты не вы, проверку не выполнил Вася. Дали втык, отобрали зарплату. Полегчало? Через месяц Маша допустит ту же ошибку. Повторяем наказание. Ничего не меняется. Ребята ходят по граблям, на которые уже наступали.

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


Мой метод


Я сохранила себе шаблон для заполнения. Фактически это набор вопросов, на которые стоит ответить. Чек-лист «а не забыл ли я подумать вот о чем?». Он помогает не забыть копнуть чуть глубже и понять, что надо сделать, чтобы ошибка не повторялась.

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


Примеры


В гуглодоке оно как-то лучше смотрится, чем в блоггере =)
Но список вопросов могу продублировать:
  1. Когда и где обнаружена?
  2. Суть проблемы 
  3. Причина проблемы
  4. Решение проблемы
  5. Меры по обнаружению и исправлению у Заказчиков
  6. Более подробная информация

среда, 3 октября 2018 г.

Как прочитать русский текстовый файл в хроме (там крокозябры)

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

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


Что делать в таком случае? Варианта два.

Users. Тут можно пощупать REST-методы с массивами!

У нас в Users пополнение в API-методах!


Я решила сделать методы с массивами. Чтобы:
  • Можно было в одном запросе сделать «сразу все» — и пользователя создать, и связать его с задачами и компаниями;
  • Показать своим студентам, как отправлять массивы внутри JSON.
Описание методов доступно на конфлюенсе:
  • CreateCompany — создать компанию.
  • CreateUser — создать юзера, сразу связать его с задачами и компаниями.
  • CreateUserWithTasks — создать сразу и юзера, и задачи для него. Плюс связать с компаниями.
Описания методов есть, они общедоступны. Так что пробуйте, вызывайте! Попробуйте протестировать эти методы, на бизнес-логику, обязательность полей, well-formed json и так далее. Отличная будет практика Wink ;) 


PS — методы сделаны специально для студентов моего курса «Тестирование REST-API». Заходите на курс, расскажу, как именно тестировать апи =)