вторник, 2 марта 2021 г.

Подборка видео для прокачки soft skills

Просто подборка видео на Youtube, которую я периодически пересматриваю по настроению, когда хочу освежить свои навыки работы с людьми или когда хочу дать совет тем, кто работает с людьми и иногда (как и все мы) совершает ошибки в самых основах.

Будет интересно лидам и менеджерам, и не только в тестировании :) 

Мой TOP list ссылок по soft skills, можно смотреть видео друг за другом или любое из понравившихся. Рекомендую еще периодически пересматривать понравившиеся, на 2-3 просмотр иногда появляются новые мысли и более широкое понимание того о чем говорят люди.


Я и другие (советский фильм о том что разные люди воспринимают и запоминают все происходящее совершенно по-разному)



Конструктивные коммуникации (Стратоплан)



Постановка и контроль задач (Стратоплан)



Принципы конструктива и прозрачности в работе (Стратоплан)


5 типов контроля (Стратоплан)



Теперь я - тимлид, но почему мне так плохо?



4 принципа конструктивного общения


5 принципов общения с руководителем


Типы руководителей по Адизесу



Меняй себя через свои привычки


Что я выучил за 100 дней отказов


Правила делегирования задач персоналу


Еще про делегирование


Делегирование и управление (книга Брайна Трейси)


Как управляют лучшие (книга Брайна Трейси)


Как проводить 1:1 (Антон Шевелев)


1:1 meeting (ENG)


How to conduct 1:1 (ENG)


How to speak (хотя видео очень длинное, но про удивительно простые вещи, которые почему-то не очевидны)


Делитесь своими ссылками/подборками в комментариях :) 


воскресенье, 18 октября 2020 г.

PyTest + Selenium - быстро создаем каркас автотестов

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

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

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

Сегодня я записал скринкаст с описанием всех методов библиотеки и обзором простых автоматизированных тестов на основе PyTest + Selenium с использованием этой библиотеки.

А вот и сам скринкаст:

Хорошая новость в том, что вы можете просто скопировать мой код, посмотреть 30 минут видео на скорости x2 и начать писать автоматизированные тесты на Selenium с использованием паттерна PageObject (а так же использовать примеры этого кода в тестовых заданиях на позицию QA Automation).

Сам код лежит в репозитории: https://github.com/TimurNurlygayanov/ui-tests-example

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

Надеюсь этот код будет полезен начинающим автоматизаторам, а так же тем, кто пишет тесты на Python + Selenium, но до сегодняшнего дня не использовал PageObject. Можете присылать pull requests :) 

Удачной автоматизации :)

понедельник, 13 апреля 2020 г.

Сканер ошибок на страницах

Уже много раз сталкивался с задачей быстрой проверки веб сайта или определенных веб страниц (пример: релиз новой версии сайта, новые промо-страницы к какой-то дате в онлайн-магазине и пр.). Обычно в таких ситуациях необходимо проверить сайт быстро и с минимальными затратами времени и сил. Кстати, чаще всего это даже не рабочая задача, а просто интерес - заходишь на сайт и хочется оценить качество, а иногда и попробовать найти ошибки на популярных сайтах, чтобы лишний раз "потренироваться".

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

Я уже писал в блоге про скрипт для поиска 404 ошибок на сайтах, но еще одной из распространенных проблем являются JS ошибки. Иногда они появляются сразу при открытии страницы, иногда при взаимодействии (нажимаем на кнопку/баннер/скидку - и видим ошибку в консоли браузера). Почему-то даже в 2020 не все тестировщики проверяют страницы на JS ошибки, а они иногда блокируют пользователя, и найти их можно быстро.

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

Так что вот, держите инструмент Pages Checker.

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



И мой любимый пример с https://software-testing.ru (парадокс багов: они повсюду)

Хотя, конечно, по-прежнему, большая часть проблем с контентом может быть обнаружена только человеком при "ручном" тестировании.


четверг, 25 июля 2019 г.

Учимся находить уязвимости XSS

Довольно много людей мечтают быть хакерами и взламывать банки.

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

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

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

Я хотел написать статью про XSS инъекции, но так уж вышло что один талантливый человек сделал это раньше, и его статья мне очень понравилась, поэтому просто оставлю это здесь:

А еще одни ребята сделали игру для поиска XSS инъекций, советую вам в нее поиграть и попробовать пройти все шаги:

понедельник, 21 января 2019 г.

Наименование аттрибутов в Python: не все очевидно

Недавно я начал работать над собственной библиотечкой Smart PageObject для Python тестов, и заметил, что наследование аттрибутов в Python зависит от имени аттрибута, что было неожиданно для меня, хотя я пишу на этом языке уже давно (и периодически продолжаю удивляться, да).

Рассмотрим простой пример:


Здесь стоит обратить внимание на то, что аттрибут, начинающийся с двух подчеркиваний,  измененяет имя - он стал называться _a__my_attr3, хотя изначально я ожидал, что он будет называться просто __my_attr3.

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

Подберем простой пример:
Есть класс а, у которого есть метод с двойным подчеркиванием в начале имени. Мы создаем новый класс b и наследуем его от класса a. После этого мы хотим раширить функционал класса b, добавив новую функцию:


Теперь, если мы не хотим переопределять метод input, внутри класса b мы обызаны работать с аттрибутом _a__numbers вместо __numbers, и постоянно помнить об этом.

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

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

среда, 12 декабря 2018 г.

Простые советы по поиску багов - или напоминалка мне самому

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

Простые способы найти баги:
1) Фантазировать что вы реальный пользователь и выполнять реальные действия в системе (а не просто проверять функционал отдельных элементов)
2) Проверять JS консоль на ошибки (тут можно найти очень много "скрытых" проблем)
3) Постоянно тестировать с разными аккаунтами (разные роли / права доступа)
4) Обновлять страницу и проверять что она выглядит так же (иногда при обновлении страница загружается уже другая)
5) Пытаться взаимодействовать даже с неактивными элементами (нажатие на неактивные кнопки и ссылки)
6) Проверять обработку введенных значений во всех полях (текст, числа, календари, чек-боксы, выпадающие списки и прочее)
7) Проверять все как минимум в двух разных браузерах (и желательно в таких, которые используют пользователи, конечно)
8) Менять тестовые сценарии и вводимые значения (пестицид, ну вы знаете)
9) Менять размер экрана / устройства (ширина экрана браузера, соотношение сторон экрана и прочее)
10) Уделять время исследовательскому тестированию, когда вы не пишете автотесты и не делаете какие-то срочные / регулярные проверки и задачи, а просто тыкаете свое приложение и изучаете как оно себя ведет в разных условиях

среда, 5 декабря 2018 г.

Потестим: баги повсюду

Решил запустить свой youtube канал про тестирование и одним из первых видео хотел сделать быструю пятиминутную демонстрацию того, что на крупном домене серьезной IT-компании не получится найти баги, но в процессе подготовки видео выяснилось:

1) Баги есть даже на серьезных и крупных проектах с миллионной аудиторией
2) За пять минут показать процесс тестирования не получается, и вместо 5ти минут видео получилось на 30ть минут 😊
3) Чтобы найти баги не нужно вообще знать ничего о тестировании (к сожалению)
4) Мне еще предстоит научиться записывать интересные ролики и нормально их монтировать, а пока делаю так как умею (извините 😂 )


В процессе загрузки моего первого видео на новом канале обнаружился довольно неприятный баг на youtube! (youtube, Карл! - это же Google! - и я уже не говорю про юзабилити проблемы при загрузке видео - это печалька)

Вот и скриншотик с JS ошибками на Youtube:


Печаль, баги повсюду.

Подписывайтесь на канал, ставьте лайки и пишите в комментарии что еще можно потестировать :)

Следующий объект для тестирования - портал http://software-testing.ru 😎(спойлер: посмотреть будет на что 😂😂😂)