Начинающему тестировщику — Автоматизация тестирования

Этим постом я хотел бы начать серию мини-мануалов для начинающего тестировщика. Попутно отмечу с чего я начинал и с какими проблемами сталкивался.

Автоматизация тестирования

Автоматизированное тестирование это всегда интересно. Если получится, то это еще и эффективно и удобно. Научиться довольно легко и думаю каждому это под силу.

Безусловно здесь стоит написать про 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. надеюсь мой коллега Алексей скоро напишет про автоматизированное тестирование десктоп приложений.

По той же теме:

6 Комментарии

  1. Артёмка

    23.06.2016 в 21:18

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

    • Андрей Ким

      24.06.2016 в 08:20

      Все на личном опыте. В одной статье такое видел, мне тогда очень пригодилось.

  2. 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 проще, особенно когда ты только начинаешь изучать ЯП.

  3. «P.S. надеюсь мой коллега Алексей скоро напишет про автоматизированное тестирование десктоп приложений.»

    Где можно почитать?

Добавить комментарий