Что нужно знать тестировщику-автоматизатору

Л5. Автоматизированное тестирование

 

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

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

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

Если есть QA-команда, ручное тестирование не будет проблемой.

Плюсы ручного тестирования

· Пользовательский фидбек. Весь отчёт тестировщика может быть рассмотрен как обратная связь от потенциального пользователя.

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

· Дешевизна. В краткосрочной перспективе ручное тестирование дешевле, чем инструменты автоматизированной проверки.

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

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

Минусы ручного тестирования

· Человеческий фактор. Хотя UI и может быть протестирован только вручную, люди часто склонны к неэффективности. Некоторые ошибки могут остаться незамеченными.

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

· Невозможность нагрузочного тестирования. Нельзя смоделировать большое количество пользователей вручную.

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

Плюсы автоматизированного тестирования

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

· Экономия времени. Ручное тестирование больших приложений — долгий и трудоёмкий процесс, в то время как сценарии пишутся лишь один раз.

· Возможность повторного использования. Тестовый сценарий, написанный один раз, может быть использован и в будущем при очередном обновлении проекта.

Минусы автоматизированного тестирования

· Дороговизна. Инструменты автоматизированного тестирования, а также обучение их использованию стоят недёшево, поэтому нужно тщательно оценивать бюджет.

· UI-тестирование. Автоматизированное тестирование не может в полной мере покрыть требования к пользовательскому интерфейсу.

· Отсутствие «человеческого взгляда». Возможно существование ошибок, которые заметит только человек.

Какие виды тестирования лучше автоматизировать

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

Если тестировщику нужно часто выполнять одинаковые действия, но с разными данными, проще автоматизировать этот процесс. Можно собрать данные в одну базу, а скрипты будут автоматически использовать эту информацию для тестов. Такой подход к тестированию называют DDT (data-driven testing).

Автоматизация делает более эффективным кроссплатформенное и кроссбраузерное тестирование. Одни и те же сценарии автоматизированных тестов могут быть использованы на разных платформах.

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

Сегодня исследование производительности (performance testing), включая нагрузочное и стресс-тестирование, практически всегда автоматизируются. Инструменты для автоматизации тестирования (JMeter, Gatling, Tsung) позволяют воспроизвести различные условия, при которых возможны проблемы с производительностью приложения. Так, c помощью автоматизированных тестов можно смоделировать нехватку оперативной памяти и зафиксировать реакцию приложения.

Что нужно знать тестировщику-автоматизатору

Автоматизированное тестирование требует более глубоких технических знаний, чем ручное. В первую очередь, необходимо уметь программировать. Для автоматизации подойдут как скриптовые языки (Python, Bash), так и языки общего назначения (Java, С#). Сейчас наиболее популярны Java и Python.

Скриптовые языки легче изучать, благодаря достаточно простому синтаксису. Однако, чтобы стать senior-специалистом (Senior Test Automation Engineer) понадобится понимание принципов объектно-ориентированного программирования (ООП) – тестировщики часто используют тот же язык программирования, на котором разрабатывается тестируемое приложение. К тому же, зная один из ООП языков, например, Java, можно быстро разобраться в синтаксисе другого. В изучении языка программирования делайте упор не на алгоритмы, а на фреймворки и библиотеки, которые помогут при разработке автотестов.

Автоматизированное тестирование лучше осваивать постепенно, начиная с простых инструментов, которые практически не требуют знания программирования. Например, для старта подойдут программы-рекордеры, которые отслеживают и записывают действия пользователя, а затем позволяют воспроизвести их автоматически. Один из таких бесплатных инструментов – Katalon Recorder. Он устанавливается как расширение к браузеру Firefox или Chrome. Katalon Recorder автоматически переводит взаимодействие пользователя с сайтом в сценарии тестов, которые затем можно отредактировать вручную. Katalon Recorder также переводит записанные тесты на язык программирования. Однако сгенерированный код может содержать ошибки, поэтому по мере изучения программирования старайтесь дорабатывать эти скрипты. Со временем писать тесты самостоятельно станет проще, чем использовать рекордер. На этом этапе можно начать изучение других инструментов для автоматизации тестирования.

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

Один из самых популярных фреймворков для тестирования веб-приложений – Selenium Webdriver. Он упоминается практически в каждой вакансии. С помощью Selenium Webdriver можно автоматизировать любые действия пользователя, выполняемые через браузер. Он поддерживается операционными системами Windows, Mac, Linux и многими браузерами, например, Chrome и Firefox.

Для тестирования мобильных приложений часто применяется Appium. Это кроссплатформенный инструмент, который подходит для тестирования и нативных, и гибридных приложений. Он поддерживает различные языки программирования: Java, JavaScript, Python, Ruby, C#. С помощью Appium можно запускать параллельное тестирование на нескольких девайсах, при этом один скрипт можно использовать и для Android, и для iOS. Также для тестирования Android-приложений и мобильных версий веб-приложений можно выбрать Selendroid.

Пример использования


Будет использована интеграция IBM Rational Functional Tester со средой разработки Microsoft Visual Studio. Для создания функционального теста необходимо выполнить следующие действия:

 

1) В среде разработки Microsoft Visual Studio создать новый проект «Functional Test Project»:


2) Выполнить запись пользовательских действий с тестируемым приложением:

3) Создать проверочную точку в процессе выполнения записи. Проверочная точка также будет выполнять проверку значения в выпадающем списке:

4) Сохранить результаты записи:


Далее необходимо сформировать bat-файл, который будет вызывать скрипт тестирования на выполнение и проверять результат:
rational_ft.exe -datastore “<путь к каталогу проекта VS>\DemoTestRFT” -playback uml2cqtestscript findstr failed “<путь к каталогу проектаVS>\DemoTestRFT_logs\uml2cqtestscript\rational_ft_logframe.html”
if %errorlevel% == 1 goto end
exit -1
:end
exit 0

Bat-файл выполняет следующие действия:
Вызывается IBM Rational Functional Tester со следующими параметрами:
-datastore “<путь к каталогу проекта VS>\DemoTestRFT” – путь к каталогу с проектом.
-playback uml2cqtestscript – выполнить скрипт тестирования.
IBM Rational Functional Tester записывает свои результаты в отчет в формате HTML. Для того, чтоб определить был ли провален хоть один шаг в процессе выполнения скрипта тестирования, необходимо найти слово «failed» в отчете.
В зависимости от результата поиска возвращается результат 0 или -1.

 

 


Результат выполнения



Дата добавления: 2020-04-25; просмотров: 58; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!