Thursday, August 01, 2013

CodedUI или Ranorex? Автоматизация функционального тестирования .NET приложений

Inline image 1

Автор статьи — Татьяна Курносова, но она поехала покорять горы Киргизии. Поэтому честь опубликовать этот пост выпала мне.

В компании 2ГИС помимо известных Desktop, Mobile и Online-приложений, разрабатывается множество внутренних Enterprise-продуктов. Эти продукты скрыты от глаз пользователей, однако, именно с их помощью выполняется колоссальная работа по обеспечению всей инфраструктуры 2ГИС картографическими и справочными данными. Обработка этих данных трудозатратна и требует безошибочных расчётов, поэтому перед «приёмом на работу» все продукты тщательно тестируются.

В этой статье я расскажу, как мы выбирали инструменты, как анализировали их технические возможности, чтобы они вписывались в нашу инфраструктуру, и на чём остановились.

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

С учётом того, что тестируемые продукты реализованы на .NET, а их тестировщики знакомы с языком программирования С#, было принято решение разрабатывать тесты также на языке C#. Из большого набора инструментов, представленных на рынке, мы остановились на двух. Первый — CodedUI, который поставляется с активно используемой нами Microsoft Visual Studio. Второй — Ranorex, так как он совместим с Visual Studio, имеет удобный интерфейс и положительные отзывы тестировщиков.

Coded UI является одним из решений, поставляемых вместе с Microsoft Visual Studio Premium/Ultimate, предоставляет доступ к библиотекам для разработки тестов.

Ranorex Automation Tools — это полноценная среда разработки, а также набор инструментов и библиотек для написания тестов. 

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

Критерии сравнения

Мы сформулировали основные критерии, по которым сравнивали пакеты:
  • Поддержка динамически генерируемых графических элементов управления (контролов)
  • Настраиваемая система поиска контролов
  • Простая поддержка тестов, основанных на данных (Data Driven Testing)
  • Возможность разрабатывать свои модули (фреймворки) и использовать их при разработке тестов на C#
  • Поддержка запуска тестов на сервере Continuous Integration (TeamCity)
  • Генерация информативных отчетов по результату прогона тестов
  • Возможность интеграции тестов с тест-кейсами системы тест-менджмента (TMS)
  • Простота изучения и использования тестировщиками

Read more: Habrahabr.ru
QR: Inline image 2