IcuTest - Википедия - IcuTest

IcuTest
Разработчики)NXS-7 Software Inc.
Стабильный выпуск
1.0.7 / 11 мая 2010 г.; 10 лет назад (2010-05-11)
Операционная системаМайкрософт Виндоус
ТипАвтоматизация тестирования, модульное тестирование
ЛицензияПроприетарный
Интернет сайтwww.nxs-7.com/ icu

IcuTest это модульное тестирование фреймворк для графических интерфейсов. Текущая версия поддерживает Windows Presentation Foundation Приложения. Проверка графического интерфейса выполняется в основном с помощью сравнения изображений. Наборы тестов могут выполняться в интерактивном или полностью автоматизированном режиме.

Философия

IcuTest не является системой записи и воспроизведения. Такие системы могут создавать сценарии тестирования, которые сложно поддерживать.[1][2] Скорее, IcuTest считает, что наиболее эффективное место для тестирования - это модульное тестирование. Следовательно, IcuTest отказывается от каких-либо механизмов записи и, как и в случае с обычными модульными тестами, полагается на программиста, который определяет объем и параметры теста.

использование

Типичный IcuTest обеспечивает прямой контроль над тестируемым приложением. Вот пример, который гарантирует правильность ViewModel.

    [Метод испытания]    общественный пустота TestMyWindow_WithDataContext()    {        ICU.Вызвать(() => {            вар ш = новый MyWindow();            ш.Показать();            ICU.CheckView(ш, «MyWindowTest»);             ш.DataContext = новый MyViewModel();            ICU.CheckView(ш, "MyWindowTest_with_ViewModel");             ш.Закрывать();        });    }

ICU.CheckView является основным механизмом тестирования (или утверждения) в IcuTest. Он выполняет быстрое сравнение растрового изображения между текущим снимком пользовательского интерфейса и ранее сохраненным снимком. Как и Assert, CheckView выдает исключение, когда тест не проходит.

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

    [Метод испытания]    общественный пустота cannot_login_with_invalid_password()    {        вар контекст = новый WindowScenario<ExampleLoginWindow>();        ICU.Данный(контекст)             // Необязательные спецификации BDD             .Как(«Пользователь MyApp»)            .Я хочу("окно входа в систему")            .Так что(«У меня есть безопасный доступ к данным MyApp»)             .Когда(() => {                // установить неправильный пароль с помощью автоматизации GUI                set_login(контекст.Окно, "мое имя", "неправильный пароль");            })            .потом(() => {                 // в окне должно отображаться сообщение "неверный логин"                ICU.CheckView(контекст.Окно, "login_with_invalid_pass");            })            .Тест();    }     пустота set_login(ExampleLoginWindow ш, нить Пользователь, нить проходить)    {        вар userBox = guiHelper.Находить<Текстовое окно>(ш, "userBox");        вар passBox = guiHelper.Находить<PasswordBox>(ш, "passwordBox");        вар loginBtn = guiHelper.Находить<Кнопка>(ш, "LoginButton");        userBox.Текст = Пользователь;        passBox.Пароль = проходить;        guiHelper.Нажмите(loginBtn);    }

Функции

С IcuTest вы можете:

  • Создавайте простые и удобные в обслуживании тесты графического интерфейса.
  • Обеспечение надежных, полнофункциональных приложений
  • Поддержка лучших практик TDD и BDD
  • Используйте с MSTest, NUnit, XUnit, MbUnit и т. Д.
  • Находите ошибки быстро и автоматически
  • Обеспечьте лучшее покрытие кода
  • Продвигайте уверенный рефакторинг
  • Упростите ручное тестирование и отладку

Рекомендации

  1. ^ Мемон, А: Тестирование GUI: подводные камни и процесс, "IEEE Computer", 2002.
  2. ^ Се, Q: Разработка экономичных методов на основе моделей для тестирования графического интерфейса пользователя, "ICSE ’06: Материалы 28-й международной конференции по программной инженерии", 2006 г.