Этим постом я хотел бы начать серию мини-мануалов для начинающего тестировщика. Попутно отмечу с чего я начинал и с какими проблемами сталкивался.
Автоматизация тестирования
Автоматизированное тестирование это всегда интересно. Если получится, то это еще и эффективно и удобно. Научиться довольно легко и думаю каждому это под силу.
Безусловно здесь стоит написать про Selenium. Сегодня это самый известный и используемый инструмент для тестирования. Почти каждый фреймворк для автоматизации тестирования в веб использует библиотеку Selenium. К тому же знание Selenium, это частое требование для тестировщиков в современных компаниях. Как раз из-за такого требования я начал изучать данную технологию. Буду перечислять в том же порядке, в котором изучал.
Selenium IDE
Чтобы пройти собеседование на очередное место работы мне нужно было выполнить простое задание.
Написать сценарий на Selenium IDE который выполнит следующие шаги:
- Открыть Яндекс
- Сделать поиск по слову — «тестирование»
- Открыть первую ссылку
- Сделать проверку наличия слова «тестирование» на открывшейся странице
В то время у меня уже был опыт в тестировании, около года. По большей части я занимался тестированием внутренних бэкенд систем, завязанных на мощную логику, а тестирование web приложений было для меня чем-то новым. Про Selenium IDE я услышал впервые, и сразу же заинтересовался этим.
Поиск: selenium ide, как писать тесты на selenium ide
Прочитав 2-3 страницы из поиска у вас будет примерное представление о чем это и как с этим работать. Затем просто постарайтесь выполнить задание которое попалось мне.
Из изучения Selenium IDE у меня появились вопросы по селекторам. Чтобы их прояснить я стал искать информацию о том как получаются XPATH или CSS селекторы.
Поиск: css xpath селекторы
Если вы вообще не знаете что такое html, то приступайте к изучению. Это основы основ для тестировщика веб-приложений.
Selenium Webdriver
С Selenium IDE у меня как-то не сложилось. Я быстро понял как это работает, но мне не понравился процесс написания тестов и я забросил это дело. Если сейчас мне нужно будет написать тест с использованием Selenium IDE я потрачу на это больше времени чем на Webdriver. Думаю если вы начнете изучение с Webdriver, то ничего не потеряете.
Поиск: selenium webdriver
Писать тесты на Selenium Webdriver можно на нескольких языках, тем самым получая тот или иной профит именно от ЯП. Я начинал с Java. И сейчас мне кажется что с Python новичку будет по проще.
Поиск: автотесты selenium webdriver {ваш язык программирования}
С webdriver конечно будет сложнее, особенно тем кто ни разу не программировал и не имеет представления о программировании. Рекомендую посмотреть какой-нибудь простенький видео-курс по тому или иному ЯП. Достаточно знать самый начальный синтаксис с типами данных и циклами. Потом попробуйте сделать тот же тест что и с Selenium IDE.
Примерно на том уровне когда я мог написать практически любой сценарий для тестирования, я стал натыкаться на частые проблемы Selenium Webdriver. В частности это ожидания, drag-n-drop, cookie, табы и окна, алерты, iframe и прочее. Думаю с этими граблями надо столкнуться лично и перейти через них, чтобы иметь опыт.
Дальше я советую изучить подключение различных браузеров. Попробуйте запустить свои сценарии в Chrome или IE, попробуйте подключить PhantomJS
Поиск: webdriver chromedriver, webdriver internet explorer, phantomjs
После этого шага можно также попробовать Selenium Grid. Это возможность запуска авто-тестов на удаленных машинах. Вы сможете прогонять тесты на разных системных требованиях и с разными браузерами, что значительно повышает качество тестирования. Но в то же время значительно увеличивается время на поддержку таких тестов.
PageObject Pattern
Простые пошаговые тесты на Selenium Webdriver это хорошо. Выделяешь сценарий, пишешь шаги и проверяешь результат. Но всегда есть куда расти. Ваши тесты должны быть оптимизированы, ведь можно сократить кучу строчек кода и сделать их эффективными в плане выполнения и удобными для будущей поддержки.
Поиск: selenium page object pattern
На этом этапе будет больше программирования. Я бы порекомендовал посмотреть или почитать что-то краткое на тему ООП по нужному ЯП.
Тестовые фреймворки
Когда ты знаешь как писать тесты, начинаешь задумываться над тем как их запускать, получать отчеты, скриншоты, статистику и еще кучу разных плюшек. Обычно если ты ищешь какой-то функционал, то его уже кто-то реализовывал до тебя. Поэтому стоит обратить внимание на фреймворки для тестирования, благодаря которым можно получить эти самые плюшки.
Поиск: testing frameworks, тестовые фреймворки
После выбора фреймворка вы получите больше практики в ЯП и оформлении своих тестов. Возможно вы даже переделаете его под собственный лад. К тому же знание фреймворков послужит вам на руку на собеседованиях для тестировщика. Много раз видел когда работодатель считает большим плюсом опыт работы с определенным фреймворком.
Самодеятельность
На этом этапе после небольшой практики можно попробовать написать что-нибудь свое. Если у вас не большой проект и вы не хотите использовать что-то чужое, то попробуйте написать свой велосипед. Кто бы что не говорил, но это очень хороший опыт. Здесь много пространства для фантазии. К примеру я пробовал написать инструмент для сверки скриншотов используя Python и Webdriver. Мне нужно было автоматически сравнивать верстку старой и обновленной версии продукта и я решил попробовать. Сейчас я понимаю что написал что-то ужасное, но удовольствие от работающего кода затмевает этот недостаток.
Если статья покажется вам не полной, то прошу написать об этом в комментариях, постараюсь дополнить. Всегда рад вашим замечаниям.
P.S. надеюсь мой коллега Алексей скоро напишет про автоматизированное тестирование десктоп приложений.
По той же теме:
23.06.2016 в 21:18
запросы к гуглу — это что-то новое в капитанских статьях про тестирование. удивили, жму руку.
24.06.2016 в 08:20
Все на личном опыте. В одной статье такое видел, мне тогда очень пригодилось.
19.10.2016 в 14:20
1. Java — хотя бы основы, потом все придет.
2. Selenium — и не Selenium IDE — он давно устарел, а Selenium Webdriver
3. XPath (факультативно CSS-селекторы)
4. BDD — понимание, что это такое.
5. Cucumber — для п.4.
6. Yandex.allure
7. Git
19.10.2016 в 14:58
С Java я бы поспорил. Это конечно основы, но на мой взгляд Python проще, особенно когда ты только начинаешь изучать ЯП.
16.08.2017 в 08:39
«P.S. надеюсь мой коллега Алексей скоро напишет про автоматизированное тестирование десктоп приложений.»
Где можно почитать?
16.08.2017 в 15:46
Алексей подзабыл про эту статью, но обещал на этой неделе.