АВТОМАТИЗАЦИЯ ПРОЦЕССОВ ТЕСТИРОВАНИЯ WEB-ПРИЛОЖЕНИЙ

Научная статья
Выпуск: № 11 (18), 2013
Опубликована:
2013/12/08
PDF

Бедняк С.Г.1, Тиханов А.А.2

1Кандидат педагогических наук, доцент, 2студент, Поволжский государственный университет телекоммуникаций и информатики

АВТОМАТИЗАЦИЯ ПРОЦЕССОВ ТЕСТИРОВАНИЯ WEB-ПРИЛОЖЕНИЙ

Аннотация

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

Ключевые слова: тестирование программного обеспечения, автоматизированное тестирование, Web – приложение.

Bednyak S.G. 1, Tikhanov A.А. 2

1Candidate of pedagogical sciences, associate professor, 2 student, Volga region state university of telecommunications and informatics

AUTOMATION OF PROCESSES OF TESTING WEB- APPLICATIONS

Abstract

In article questions of the automated testing today being very demanded direction in the sphere of development of the software are considered. Many enterprises for the purpose of improvement of quality of let-out products and optimization of processes of testing introduce automation.

Keywords: the software testing, the automated testing, Web – the appendix.

Неотъемлемой частью разработки программного обеспечения (ПО) является тестирование. Тестирование программного обеспечения – это процесс исследования программного обеспечения с целью получения информации о качестве продукта.

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

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

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

Проект разрабатывается на платформе Microsoft ASP.NET, на MVC(Model-View-Controller) фреймворке. MVC – это шаблон проектирования при разработке Web- приложений, который разделяет модель данных, пользовательский интерфейс и безнес-логику приложения на разные части и позволяет при изменении одной из частей минимально затрагивать остальные части. Одной из концепций MVC является разделение ответственности, что позволит проводить более тщательное модульное(unit) тестирование на стадии разработки проекта.

В качестве Web-  сервера используется Internet Information Server(IIS), поддерживается IIS 6 версии и старше. В качестве базы данных используется Microsoft SQL Server 2005/2008/2008R2.

Для связи приложения с базой данных используется технология, которая связывает базы данных с концепциями объектно-ориентированного программирования(ORM- Object Role Model), создавая «виртуальную объектную» базу данных. В качестве ORM используется NHibernate, это ORM решение для платформы Microsoft .NET, портированное с Java.

Система является кроссбраузерной, то есть работает под всеми современными браузерами, а так же поддерживает некоторые старые, такие как Internet Explorer 7.

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

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

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

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

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

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

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

Список литературы

  • Тестирование и качество ПО [Электронный ресурс]/гл. ред. Баранцев А. В.; 2012. URL: http://software-testing.ru/ (дата обращения 17.04.2013).