Путь обеспечения качества
тестирование как путь к совершенству
вторник, 2 марта 2021 г.
Подборка видео для прокачки soft skills
воскресенье, 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 г.
Сканер ошибок на страницах
четверг, 25 июля 2019 г.
Учимся находить уязвимости XSS
Когда чуть больше узнаешь про технологии и про то, как устроена разработка и тестирование приложений - понимаешь, что уровень людей, которые способны взломать банк, на много выше среднего - требуется несколько лет усердной подготовки в нужном направлении и с правильными учителями/книгами.
Однако есть и очень простые методы поиска уязвимостей и взлома систем, можно потренироваться и даже очень неплохо научиться использовать некоторые уязвимости.
Одним из таких видов уязвимостей можно назвать XSS. Если у вас есть браузер и доступ в интернет - вы можете попробовать поискать уязвимости на разных сайтах и обязательно их найдете (и это классно, ведь это
Я хотел написать статью про XSS инъекции, но так уж вышло что один талантливый человек сделал это раньше, и его статья мне очень понравилась, поэтому просто оставлю это здесь:
понедельник, 21 января 2019 г.
Наименование аттрибутов в 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 г.
Потестим: баги повсюду
1) Баги есть даже на серьезных и крупных проектах с миллионной аудиторией
2) За пять минут показать процесс тестирования не получается, и вместо 5ти минут видео получилось на 30ть минут 😊
3) Чтобы найти баги не нужно вообще знать ничего о тестировании (к сожалению)
4) Мне еще предстоит научиться записывать интересные ролики и нормально их монтировать, а пока делаю так как умею (
В процессе загрузки моего первого видео на новом канале обнаружился довольно неприятный баг на youtube! (youtube, Карл! - это же Google! - и я уже не говорю про юзабилити проблемы при загрузке видео - это печалька)
Вот и скриншотик с JS ошибками на Youtube:
Печаль, баги повсюду.
Подписывайтесь на канал, ставьте лайки и пишите в комментарии что еще можно потестировать :)
Следующий объект для тестирования - портал http://software-testing.ru 😎(спойлер: посмотреть будет на что 😂😂😂)