+7 (499) 638-64-11
Попробовать
Постановка и автоматизация процессов разработки ПО

Инструменты тестирования: Watin + NUnit

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

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

Для собственных проектов мы выбрали связку NUnit + Watin, которая позволяет использовать готовую инфраструктуру автоматического юнит-тестирования и добавить к ней тестирование работы приложений через графический интерфейс пользователя (прокликивание).

Разработка тестов для прокликивания интерфейса пользователя заключается в написании программного кода на C#, вызова методов браузера и валидации полученных значений или содержания страниц приложения. Чтобы упростить генерацию программного кода тестов можно использовать также свободный продукт Watin Test Recorder, который позволяет записывать действия пользователя при непосредственной работе с продуктом и затем конвертировать их в Watin-тесты, например, на C#.

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

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

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

 class WebAssert
 {
 ...
 public static void Fail(IBrowser browser, string msg)
 {
     String picturePath = TestHelper.CaptureScreen(browser, "");
 
     Context context = new Context();
     context.Server = new Uri("http://localhost").Host;
     context.Project = "myproject";
     context.UserName = "user";
     context.UserPassword = "password";
 
     Report report = new Report();
     report.Description = msg;
     report.AttachFile(picturePath);
     report.Submit(context);
 
     Assert.Fail(msg);
 }
 ...
 }

Классы Context и Report определены в файле CSharpBugReporter.cs, инструкцию по использованию которого вы можете найти в разделе C#: пример организации обратной связи.

Еще интересные статьи на эту тему: