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

25 апреля 2018
Иллюстрация автоматизированного тестирования

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

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

Пирамида тестирования

Автоматизация процессов тестирования тесно связана с именем Майка Кона, автора книги «Scrum. Гибкая разработка ПО». Он представил систему автоматизации тестирования в виде пирамиды.

Автоматизации тестирования в виде пирамиды по Майку Кону

Основание пирамиды составляет модульное тестирование (unit tests) – процесс проверки отдельных модулей исходного кода. За ним следует интеграционное тестирование (integration tests) – на этом этапе отдельные программные модули тестируются в группах. Далее следует приемочное тестирование (acceptance tests), определяющее пригодность продукта к предстоящей эксплуатации. На вершине пирамиды обосновалось тестирование пользовательского интерфейса (UI tests), которое может проводится как автоматизировано, так и вручную. Таким образом, автоматизированное тестирование находится на стыке тестирования и программирования.

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

Преимущества автоматизированного тестирования

Автоматизация дает тестировщику ряд плюсов:

  • Оперативность – автоматизированный скрипт не сверяется с инструкциями и документацией;
  • Экономия времени – автоматизация не требует вмешательства тестировщика, в это время он может переключиться на другие задачи;
  • Повторное использование – сценарий тестирования может использоваться неоднократно;
  • Отсутствие «человеческого фактора» – тестовый сценарий не допустит оплошностей в результатах и не пропустит времени тестирования;
  • Автоматическая отчетность – результаты тестирования автоматически сохраняются и рассылаются причастным специалистам.Автоматизация тестирования без человеческого фактора

Ограничения автоматизированного тестирования

Вместе с тем данный подход не является панацеей и не исключает ряд недостатков:

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

Инструменты

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

Выбор инструмента зависит от объектов тестирования и требований к сценариям тестов. Естественно, что один инструмент не в состоянии поддерживать весь спектр технологий, потому остается только пробовать и искать наиболее подходящий. Достаточно часто QA-инженеры останавливают свой выбор на нескольких инструментах.

Критерии выбора:

  • распознавание элементов управления в приложении;
  • временные затраты на поддержку скриптов;
  • удобство для написания новых скриптов.

Рассмотрим наиболее востребованные средства автоматизации тестирования.

Selenium

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

Продукты инструмента автоматизации тестирования Selenium

У Selenium существует несколько продуктов. Selenium IDE – это дополнение к браузеру Firefox, которое используется для записи, редактирования и отладки тестов. Selenium IDE упрощает автоматизацию тестирования приложений и веб-программ. Selenium WebDriver является набором библиотек для различных языков программирования, которые позволяют управлять браузером из программы, написанной на данном языке программирования. Selenium Server принимает команды удаленно и выполняет их в браузере, несколько серверов Selenium образуют сеть Selenium Grid, масштабирующую процесс автоматизации.

Coded UI

Этот фреймворк является продуктом Microsoft и используется для автоматизации (UI) Web, WPF, XAML и Windows Forms приложений в Visual Studio. Coded UI поддерживает записи тест-кейсов с последующим редактированием. Как правило, используется с языками C#, C++, Visual Basic.

Диалоговое окно фреймворка Coded UI

Appium/XCUITest

Appium – весьма известная надстройка, которая позволяет тестировать приложения без ограничений платформы, типа и версии системы. Appium поддерживает большое количество драйверов, поддерживает наиболее популярные языки программирования и использует версию WebDriver, известную по Selenium WebDriver. Данная надстройка очень популярна при тестировании мобильных приложений.

Драйвер XCUITest позволяет работать с Appium в iOS-системах. XCUITest может работать на реальных устройствах и поддерживает функцию рекордера. Его рабочие языки – Objective-C, Swift.

Тестирование приложений с помощью Appium

Фото: http://www.qedgetech.com/blog/appium-mobile-application-testing

Быть или не быть

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

Читайте также