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

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

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

2019-08-03 396
Преимущества автоматизированного тестирования 0.00 из 5.00 0 оценок
Заказать работу

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

https://qa-academy.by/qaacademy/news/avtomatizaciya-testirovaniya/

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

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

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

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

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

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

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

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

· Оперативность – автоматизированный скрипт не сверяется с инструкциями и документацией;

· Экономия времени – автоматизация не требует вмешательства тестировщика, в это время он может переключиться на другие задачи;

· Повторное использование – сценарий тестирования может использоваться неоднократно;

· Отсутствие «человеческого фактора» – тестовый сценарий не допустит оплошностей в результатах и не пропустит времени тестирования;

· Автоматическая отчетность – результаты тестирования автоматически сохраняются и рассылаются причастным специалистам.

Инструменты

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

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

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

· распознавание элементов управления в приложении;

· временные затраты на поддержку скриптов;

· удобство для написания новых скриптов.

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

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.

Appium/XCUITest

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

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

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

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

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

 


 

История

Первые попытки «автоматизации» появились в эпоху операционных систем DOS и CP/M. Тогда она заключалась в выдаче приложению команд через командную строку и анализе результатов. Чуть позднее добавились удаленные вызовы через API для работы по сети. Впервые[ источник не указан 2066 дней ] автоматизированное тестирование упоминается в книге Фредерика Брукса «Мифический человеко-месяц», где говорится о перспективах использования модульного тестирования. Но по-настоящему автоматизация тестирования стала развиваться только в 1980-х годах.

Подходы

Существует два основных подхода к автоматизации тестирования: тестирование на уровне кода и тестирование пользовательского интерфейса (в частности, GUI-тестирование). К первому типу относится, в частности, модульное тестирование. Ко второму — имитация действий пользователя - функциональное тестирование (с помощью специальных тестовых фреймворков.)

GUI-автоматизация

Наиболее распространенной формой автоматизации является тестирование приложений через графический пользовательский интерфейс (англ. GUI). Популярность такого вида тестирования объясняется двумя факторами: во-первых, приложение тестируется тем же способом, которым его будет использовать человек, во-вторых, можно тестировать приложение, не имея при этом доступа к исходному коду.

GUI-автоматизация развивалась в течение 4 поколений инструментов и техник:

· Утилиты записи и воспроизведения (англ. capture / playback tools) записывают действия тестировщика во время ручного тестирования. Они позволяют выполнять тесты без прямого участия человека в течение продолжительного времени, значительно увеличивая продуктивность и устраняя «тупое» повторение однообразных действий во время ручного тестирования. В то же время, любое малое изменение тестируемого ПО требует перезаписи ручных тестов. Поэтому это первое поколение инструментов не эффективно и не масштабируемо.

· Написание сценария (англ. scripting) — форма программирования на языках, специально разработанных для автоматизации тестирования ПО — смягчает многие проблемы инструментов записи и воспроизведения. Но разработкой занимаются программисты высокого уровня, которые работают отдельно от тестировщиков, непосредственно запускающих тесты. К тому же скрипты более всего подходят для тестирования GUI и не могут быть внедренными, пакетными или вообще каким-либо образом объединены в систему. Наконец, изменения в тестируемом ПО требуют сложных изменений в соответствующих скриптах, и поддержка все возрастающей библиотеки тестирующих скриптов становится в конце концов непреодолимой задачей.

· Управляемое данными тестирование (англ. Data - driven testing) — методология, которая используется в автоматизации тестирования. Особенностью является то, что тестовые скрипты выполняются и верифицируются на основе данных, которые хранятся в центральном хранилище данных или базе данных. Роль базы данных могут выполнять ODBC-ресурсы, csv или xls файлы и т. д. Управляемое данными тестирование — это объединение нескольких взаимодействующих тестовых скриптов и их источников данных во фреймворк, используемый в методологии. В этом фреймворке переменные используются как для входных значений, так и для выходных проверочных значений: в тестовом скрипте обычно закодированы навигация по приложению, чтение источников данных, ведение логов тестирования. Таким образом, логика, которая будет выполнена в скрипте, также зависит от данных.

· Тестирование по ключевым словам (англ. Keyword - based) автоматизация подразумевает разделение процесса создания кейсов на 2 этапа: этап планирования и этап реализации. В этом случае конечный тест представляет собой не программный код, а описание последовательности действий с их параметрами (например, «завести в базе данных пользователя с логином XXX и паролем YYY»). При этом фреймворк отвечает за непосредственную реализацию ключевых слов (действий), а дизайнеру тестов достаточно иметь представление о всём наборе действий, реализованных во фреймворке. Это даёт возможность создавать тесты людям, не имеющим навыков программирования.

Проблемы[править | править код]

В этом разделе не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники. Эта отметка установлена 8 октября 2013 года.

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

Приложения

Для автоматизации тестирования существует большое количество приложений. Наиболее популярные из них по итогам 2007 года:[1]

· HP LoadRunner, HP QuickTest Professional, HP Quality Center

· Segue SilkPerformer

· IBM Rational FunctionalTester, IBM Rational PerformanceTester, IBM Rational TestStudio

· TestComplete (англ.)русск.

Использование этих инструментов помогает тестировщикам автоматизировать следующие задачи:

· установка продукта

· создание тестовых данных

· GUI взаимодействие

· определение проблемы

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

Инструментарий

· JUnit — тестирование приложений для Java

· TestNG — тестирование приложений для Java

· NUnit — порт JUnit под.NET

· Selenium — тестирование приложений HTML; поддерживает браузеры Internet Explorer, Mozilla Firefox, Opera, Google Chrome, Safari.

· TOSCA Testsuite — тестирование приложений HTML,.NET, Java, SAP

· UniTESK — тестирование приложений на Java, Си.

 

Приветственное слово


Здравствуйте, уважаемые хабрапользователи! Хочу представить вашему вниманию статью, в которой речь пойдёт о тестировании программных систем, его автоматизации, а также средствах для этого используемых.
На сегодняшний день уже мало кто сомневается в целесообразности проведения процесса тестирования разрабатываемых программных продуктов, но, к сожалению, не все ясно себе представляют как тестирование грамотно внедрять и применять. Корифеям-тестировщикам моя статья не принесёт практической пользы, а вот интересующихся тематикой новичков порадовать есть чем.

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


Основные понятия


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

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

В свою очередь, инструмент для автоматизированного тестирования — это программное обеспечение, посредством которого осуществляется создание, отладка, выполнение и анализ результатов прогона тест-скриптов (Test Scripts — это наборы инструкций для автоматической проверки определенной части программного обеспечения).

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


На финишной прямой


Чтобы принять окончательное решение о целесообразности применения автоматизации, обычно советуют ответить на возникающий естественным образом в данной ситуации вопрос: «превалируют ли в нашем случае преимущества над недостатками?». Если недостатки в конкретном случае неприемлемы, то от автоматизации стоит воздержаться.


Выбор инструмента


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

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


HP QuickTest Professional


Средство автоматизации от кампании Hewlett-Packard. Распространяется на платной основе (8000-10000 USD). Является основным инструментом автоматизации функционального тестирования от данного производителя. Позволяет автоматизировать функциональные и регрессионные тесты через записи действий пользователя при работе с тестируемым приложением, а потом исполнять записанные действия с целью проверки работоспособности ПО.
Записанные действия сохраняются в виде скриптов.
Скрипты могут быть отображенные в инструменте как VBScript (expert view), или же как визуальные последовательные шаги с действиями (keyword view).
Каждый шаг может быть отредактирован и на него можно добавить точки проверки (checkpoint), которые сравнивают ожидаемый результат с полученным.


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


Будет использована интеграция 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.

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


Selenium


А это уже бесплатный пакет от компании OpenQA.org.
В основе Selenium лежит среда для тестирования web-приложений, реализованная на JavaScript и выполняющая проверки непосредственно средствами браузера. В рамках проекта Selenium выпускается 3 инструмента, каждый из которых имеет свои особенности и область применения: Selenium Core, Selenium IDE, Selenium RC и Selenium GRID.
Поддерживаемые технологии: DHML, JavaScript, Ajax
Поддерживаемые ОС: Mac OS, Microsoft Windows, Linux, Solaris
Язык тестов: HTML, Java, C#, Perl, PHP, Python, и Ruby
Тестируемые приложения: веб-приложения.

 

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

https://qa-academy.by/qaacademy/news/avtomatizaciya-testirovaniya/

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

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

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

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

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

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

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

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

· Оперативность – автоматизированный скрипт не сверяется с инструкциями и документацией;

· Экономия времени – автоматизация не требует вмешательства тестировщика, в это время он может переключиться на другие задачи;

· Повторное использование – сценарий тестирования может использоваться неоднократно;

· Отсутствие «человеческого фактора» – тестовый сценарий не допустит оплошностей в результатах и не пропустит времени тестирования;

· Автоматическая отчетность – результаты тестирования автоматически сохраняются и рассылаются причастным специалистам.


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

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.071 с.