Научная статья на тему 'АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ ВЕБ-ПРИЛОЖЕНИЙ'

АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ ВЕБ-ПРИЛОЖЕНИЙ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
260
33
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ТЕСТИРОВАНИЕ / АВТОМАТИЗАЦИЯ / ОБЕСПЕЧЕНИЕ КАЧЕСТВА / АВТОТЕСТ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Берегейко О.П., Дубовский А.С.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ ВЕБ-ПРИЛОЖЕНИЙ»

УДК 004

О.П. Берегейко, А.С. Дубовский АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ ВЕБ-ПРИЛОЖЕНИЙ

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

Ключевые слова: тестирование, автоматизация, обеспечение качества, автотест.

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

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

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

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

Автоматизация - процесс перевода повторяющего ручного труда в автоматический режим.

Автоматизированное тестирование программного обеспечения — часть процесса тестирования на этапе контроля качества в процессе разработки программного обеспечения. Оно использует программные средства для выполнения тестов и проверки результатов выполнения, что помогает сократить время тестирования и упростить его процесс [2].

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

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

Основные области применения автоматизации тестирования:

- функциональное тестирование (регрессия);

- генерация данных для автотестов и ручных тестировщиков;

- тестирование программного кода;

- нагрузочное тестирование;

- объемное тестирование.

© Берегейко О.П., Дубовский А.С., 2016.

Научные руководители: Теслюк Владимир Николаевич - кандидат физико-математических наук,

доцент, Белорусский государственный университет информатики и радиоэлектроники, Республика Беларусь.

Вестник магистратуры. 2016. № 12-4(63).

ISSN 2223-4047

В списке выше представлены основные области, в которых применима автоматизация тестирования при разработке проекта.

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

Существуют три подхода к написанию автотестов:

- тестирование на уровне кода;

- тестирование на уровне бизнес логики приложения;

- тестирование через пользовательский интерфейс.

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

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

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

Преимущества автоматизации:

- скорость выполнения тестов быстрее ручной проверки;

- возможность тестирования областей, которые невозможно протестировать вручную (нагрузочное тестирование, объемное тестирование);

- «независимость» выполнения - автоматические тесты могут выполняться без наблюдения тести-ровщика;

- в результате выполнения автотестов формируются отчеты, позволяющие наблюдать за динамикой изменения процента дефектов;

- меньшие затраты на поддержку - написанные скрипты периодически требуют вмешательства, но затраты на их поддержку ниже чем проведение того же объема работ вручную;

- повторяемость - все тесты выполняются однообразно, что гарантирует независимость результата от внешних воздействий.

Недостатки автоматизации:

- большие денежные и временные затраты на разработку фреймворка;

- пропуск мелких ошибок, так как тесты выполняют только запрограммированные проверки;

- стоимость некоторых инструментов для автоматизации слишком высока;

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

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

Создаваемый фреймворк должен отвечать следующим требованиям:

- генерация удобночитаемых отчетов

- возможность выполнения запросов к базе данных

- возможность гибкой конфигурации окружения для выполнения тестов (браузер, url приложения, локализации)

- возможность запуска тестов на CI системе

- возможность работы с файлами

- реализация data managed тестов

- возможность работы с FTP

- легкая расширяемость средствами языка программирования

Библиографический список

1. http://selenium2.ru/docs/introduction (Дата обращения: 27.11.2016)

2. https://ru.wikipedia.org/wiki/Автоматизированное_тестирование (Дата обращения: 27.11.2016)

БЕРЕГЕЙКО ОЛЕГ ПЕТРОВИЧ - магистрант, кафедра Информатики, Белорусский государственный университет информатики и радиоэлектроники, Республика Беларусь.

ДУБОВСКИЙ АЛЕКСАНДР СЕРГЕЕВИЧ - магистрант, кафедра Информатики, Белорусский государственный университет информатики и радиоэлектроники, Республика Беларусь.

i Надоели баннеры? Вы всегда можете отключить рекламу.