понедельник, 30 сентября 2019 г.

Как грамотно вложить скриншот в задачу

В 90% случаев приложить скриншот в баг-репорт будет полезно.

На моих курсах мы объясняем студентам, что разработчику может быть достаточно хорошего названия бага + скриншота. Он, если код знает, сам поймет, где исправлять. А шаги уже так... Тестировщику для воспроизведения.

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

Ведь картинка — это первое, что притягивает взгляд. Сначала смотрим на нее, а потом уже читаем описание. Так мы читаем книги, так же мы читаем и баги. Хороший, «говорящий» скриншот — это плюсик вам в карму.

Чтобы сделать хороший скриншот, нужно:
  • Отметить место, «куда смотреть».
  • Обрезать все лишнее.



Любой нормальный скриншотер позволяет сделать стрелочку и добавить надпись. И, конечно же, обрезать изображение (функция «crop»). Не стесняйтесь пользоваться этим!

Qtranslate — подстрочный перевод для винды

Мне тут в чатике выпускников полезное подкинули:

Сердечно благодарю ещё раз того человека, который открыл для меня прогу подстрочного перевода!  
Мегаудобная вещь (требует интернета, но сейчас это не проблема). И сайтик перевести, и книжку почитать. Удобно выключается, когда не требуется. 
Прога называется Qtranslate.

Так навскидку гуглится как «free translator for Windows». Так что будет ли работать на маке и есть ли аналоги — не знаю.

Хотела сохранить себе название и ссылочку. Мало ли, пригодится еще! Думала оставить во втором блоге, но... Эту прогу советуют в чатике тестировщиков и многие говорят за нее «спасибо». И ведь тестировщику нужно знать английский, хотя бы на уровне «читаю со словарем».

Эта программа поможет в гуглении непонятных вопросов! Так что сохраню тут, вдруг она и вам поможет ¯\_(ツ)_/¯

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

Моментальный оффер после курса по REST API



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

Анна рассказала о том, как ей помог курс по тестированию REST API:

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

Добавлю свои хеппи стори)

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

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

На коллекциях мы не остановились и я дошла до рана интеграционных тестов в CI)

Спасибо, Оля!

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

Вот это я понимаю — курс пригодился! laugh :D

Заходите на огонек, у нас классно :)

Поздравляем Александра и Дарью с работой тестировщика!

Я уже тестировщик! А ты?


У нас пополнение success-story от выпускников моей школы! Сразу два недавних студента поделились радостными новостями:

Александр



Всем добрый день! Вчера получил оффер на свою первую работу тестировщиком. По рекомендации нашего тренера Ольги Алифановой меня пригласили на собеседование, которое я успешно прошёл и вчера мне прислали оффер) Хочу сказать большое спасибо ШНАТ и Ольге Назиной, а также отдельная благодарность нашему тренеру Ольге Алифановой. Её советы и пояснения по многим вопросам очень помогли как на курсе так и при прохождении собеседования. Комментарии в СДО я ещё надолго запомню)) В понедельник у меня первый рабочий день в новой для меня профессии и на новой работе — немного страшно, но в тоже время очень интересно.

понедельник, 23 сентября 2019 г.

Метод бисекционного деления в тестировании

Ссылка на Хабр

Иногда баги сами нас находят. Вот мы впихали большую строку данных — и система подвисла. Это она из-за 1 млн символов упала? Или ей какой-то конкретный не понравился?

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

Если найти минимальные данные для воспроизведения, то:
  • Вы сэкономите время разработчику — ему не придется подключаться к тестовому стенду, самому грузить файл и дебажить
  • Менеджер сможет легко оценить приоритет задачи — это нужно срочно исправлять, или баг может подождать? Пока название «некоторые файлы падают, хз почему» — это сделать сложно...
  • Описание бага от понимания причины падения тоже только выиграет.
Как найти минимальные данные для воспроизведения бага? Если есть какие-то подсказки в логах, применяем их. Если подсказок нет, то самый оптимальный метод — метод бисекционного деления (также известный как метод «деления пополам» или «дихотомия»).


Описание метода



Метод применяется для поиска точного места падения:
  1. Взять падающую пачку данных.
  2. Разбить пополам.
  3. Проверить половину 1
    1. Если упало — значит, проблема там. Работаем дальше с ней.
    2. Если не упало → проверяем половину 2.
  4. Повторяем шаги 1-3 до тех пор, пока не останется одно падающее значение.


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


Применение тестировщиками


среда, 18 сентября 2019 г.

Поздравляем Ольгу с новой работой!

Давненько у нас не было таких хороших новостей — одна из выпускниц школы, Оля, устроилась на работу:


Попросили рассказать подробнее:

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

Я попала в самую сложную для меня лично сферу — мобильное тестирование. Сложную, т.к. именно это направление изучено мною минимально, ну и я в принципе не из "мобильного поколения", пользуюсь телефоном, чтобы звонить, что называется )))

Город - Санкт-Петербург, компания ХХХ (крупный телеком)

Мне повезло, т.к. в вакансии у них стоял требуемый опыт 1-3 года, но меня порекомендовали )) Сработала сила нашего чатика выпускников: сокурсница по ШНАТу (Марина, привет :)!) увидела, что я всем миром обновляю резюме, и отправила его члену команды.

пятница, 13 сентября 2019 г.

Мнемоники про постановку улучшений — СОПРАНО, ВРИ ВСЕМ и ЛУБОФФ

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

Посмотрите, что придумала Галина про составление улучшения:




Шаблон улучшения (сначала зачем, потом как) — СОПРАНО

Сначала
Обоснуй,
Почему
Реальность недостаточно хороша, потом
Альтернативу
Наглядно
Опиши.

четверг, 12 сентября 2019 г.

Мои 12 недель в году. Часть 10


Первый опытвторойтретийчетвертыйпятыйшестойседьмойвосьмой, девятый



Что это за техника


Вы собираетесь с друзьями в группу и ставите себе цели на 12 недель (3 месяца). Это могут быть как рабочие, так и личные задачи. Такие, которые вы вроде как хотите сделать, но вечно откладываете, так как «некогда, потом, щас, вот только мелочевку разгребу и тот пожарчик потушу».

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

Я комбинирую с магией утра.



Результаты кратко



Оооо, нашему сыну исполнился годик! И за последние 1,5 месяца изменилось столько всего! Он научился ходить, стал спать дома вместо улицы, засыпает теперь самостоятельно, знает кучу всего! Еще от груди отказались, воть.

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

А сейчас подрасслабилась. Пока была в больнице, сына стал папа укладывать. Раньше это делала я и освобождалась около 22.30 — 23.00. Работать к этому времени сил уже не оставалось. А сейчас папа укладывает, а я вот стала с бабушкой смотреть кино в 21.00 по каналу «Россия», в телефончик играться параллельно... 

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

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

Ну что, давайте посмотрим, что я успела:
  1. Написала главу 10 книги! 
  2. Написала главу 11 книги! ♡\( ̄▽ ̄)/♡
  3. И даже начала писать главу 12!!
  4. Заходы к книге — почти каждый день, очень стабильно, я довольна! 
  5. Посты из книги, пополняя бесплатный онлайн-вариант — 6 штук
  6. От меня ушло 2 тренера :( 
  7. Нашли и обучили еще 2 тренеров
  8. Обработала 3 урок для курса по автоматизации в Postman — как достать информацию из ответа (дерево JSON, XML)
  9. Обработала 5 из 14 кусочков урока «как написать тесты на ответ». И это ого-го прогресс!!
  10. Улучшалки по текущим курсам — они небольшие, но набирается прилично! 
  11. Улучшалки по ШНАТ — 10 штук
  12. Рест — 2 штуки
  13. Логи — 2 штуки
  14. Пополняю раздел «работы студентов» — 11 штук
  15. Инструменты 12 недель — продолжаю вести файлик DONE, это все еще очень круто
  16. Выложила полезные видосики на свой youtube-канал — 4 штуки
  17. Testbase — 7 улучшалок!
  18. Фолкс — 3 улучшалки
  19. Хабр — 2 поста!
  20. Прочитала 6 книг  
  21. А вот гуляю мало в последние месяца 1,5, потому что болезни (╯︵╰,)
  22. Находила время на всякие "найс ту ду" 
  23. Удалила «лишние» родинки
  24. Удалила 2 молочных зуба (((( Все таки пришлось...
  25. Съездила пару раз в 4ДХ
  26. Сходила и в местный кинотеатр
  27. Встречались с друзьями, ко мне в гости заезжали в основном
  28. Устроили шашлыки! Вместе с детьми, так что Влада с собой брали ))
  29. Ездила с Владом к друзьям на дачу на несколько дней, тоже отдых!
  30. Купила себе зеленые туфли ))))
  31. Фотосессия !

Результаты подробнее


пятница, 6 сентября 2019 г.

Мнемоника «Be active, don`t CS»

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

Сегодня у нас мнемоника от Ольги для клубного человека:


PS — добавила пост в копилку мнемоник моих студентов, где их еще больше! Читайте и вдохновляйтесь!

среда, 4 сентября 2019 г.

Панбагон. Поехала вертска в письме

Пришло письмо из Декатлона. Раньше я их просто удаляла, а тут решила таки отписаться, зачем мне эта реклама. Прокрутила вниз, и вижу это:

HTML-разметка вместо текста
Упс, что-то пошло не так! Где-то в HTML-разметке налажали и, вместо вывода слова мы видим всю разметку.

понедельник, 2 сентября 2019 г.

Нужна авторизация? Дай данные

Нашли ошибку, заводим задачу. Вроде все делаем по фен-шую... Ссылка на забагованное место есть, описание есть, но... Разработчик переходит по ссылке и видит окно авторизации. Что ему делать? Какие данные вводить? Это важно вообще, что будет за пользователь? И где взять тестовые данные?

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

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



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

Что такое framework? Объяснение для новичков


Мне тут ютуб интересный видосик подсунул. Посмотрела, оценила, рекомендую! Автор — Сергей Немчинский. Разработчик, спикер конференций, владелец тренингового центра по разработке.

А вот объяснение «что такое framework» нужно не только разработчикам, но и  тестировщикам! Буквально пару дней назад в чатике моей школы для начинающих тестировщиков спрашивали, что это значит.


Так что же такое framework


Дальше идет мое объяснение, а не пересказ видео, ибо «зачем??»

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

А если вам нужен молоток? Это еще и металл обрабатывать надо! Можно самому, но получится намного хуже, чем если взять готовое. Ведь первый блин всегда комом. Что-то не учел и все, продукт не работает!

Также и в разработке. Если есть спрос на функционал — его проще написать один раз. Тщательно протестировать ОДИН РАЗ, а потом переиспользовать. Так появились библиотечки и фреймворки. Граница между ними бывает размытой, ведь и то, и другое — уже написанный вместо тебя код. А разница в чем:

  • Библиотека (Library) — Вызывается внутри кода. Бизнес-логика твоя, но какой-то функционал подключаешь из библиотечки (забор данных из файла, drag&drop...)
  • Фреймворк (Framework) — Сам вызывает твой код. То есть это уже готовый код, который ты лишь слегка расширяешь под свои нужды. 
Фреймворк вызывает твои кусочки кода, но они оформлены согласно спеццификации фреймворка. 



Чем фреймворк отличается от программы


  • Программа — конечный продукт
  • Фреймворк — можно и нужно расширять

А как расширяется тестовый фреймворк? Вот, например, в folks есть готовый тестовый фреймворк, который умеет читать эксельки, заполнять по ним БД и проводить по этой базе поиск.

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

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


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