среда, 3 декабря 2008 г.

Автоматизированное тестирование Delphi приложений

Уже на протяжении длительного промежутка времени, на разных ресурсах наблюдаю обсуждения вопросов, связанных с проблемами при автоматизированном тестирование Delphi приложений. Кто-то не может выбрать инструмент, кто-то не знает как заставить инструмент видеть GUI объекты. Обе проблемы решаемы. Давайте начнем со списка инструментов, которые поддерживают автоматизированное тестирование Delphi приложений:

  • TestComplete is systematic, automated, and structured testing tool, with superior support for .NET, Java, Visual C++, Visual Basic, WPF (XAML), Delphi, C++Builder and web applications.
  • Rational Robot can be used to test many different types of application, including those built using Visual Basic, .NET, Oracle Forms, HTML, Java, C++, PowerBuilder, and Delphi.
  • HP WinRunner supports many environments, including Programming environments PowerBuilder, Oracle Developer, Delphi, Centura, VisualAge Smalltalk, Forte, Janus Grids
  • HP Quick Test Professional (QTP) - Delphi support is released as Delphi Add-In for QTP 9.5
  • ... и т.д.

Со списком определились, теперь рассмотрим то, как заставить инструменты видеть GUI объекты вашего приложения.


TestComplete

Необходимо перекомпилировать Bpl с опцией Debug Information либо исполняемый модуль (exe) скомпилировать с Debug Information и выключенной опцией Built With RunTime Packages.


Rational Robot

Для включения поддержки необходимо активизировать в меню Rational Robot "Tools/Extension Manager" пункт "Delphi". Но и тут есть проблемы - не для всех элементов управления будет определяться полный набор свойств. Если кто знает как это победить, пишите добавим в статью
NOTE: В Rational TestFactory не поддерживается Inprise Delphi.


HP WinRunner

Для нормального распознавания объектов Delphi требуется перекомпиляция проектов Delphi с WR модулями (WinRunner Agent). Так же в WinRunner необходимо выбрать "Add Winrunner support to your Delphi project" (опция доступна в WR меню Programms -> Winrunner) далее в визарде выбираем тестируемое Delphi приложение "filename.dpr" (этот визард добавляет "Testsrvr" unit в проект). Теперь WR сможет распознавать компоненты Deplhi.


HP Quick Test Professional

После завершения инсталляции Delphi Add-In запустите QTP. Если у вас настроено, что Add-In Manager загружается при запуске приложения, то вы увидите, что новый Delphi Add-In доступен в списке дополнений. Для того, чтобы Delphi Add-In работал правильно, рекомендую вам активизировать так же и VB Add-in.

Далее, до начала записи и тестирования вашего Delphi приложения вам необходимо будет использовать определённый (.pas) модуль для активации взаимодействия QTP и Delphi:
Скопируйте папку "<QTP installation folder>\dat\Extensibility\Delphi" в папку вашего проекта, затем добавьте MicDelphiAgent в секцию Uses файла вашего проекта "project.dpr"
(см. QTP help "Enabling Communications Between QuickTest Professional and Your Delphi Application" для получения более детальной информации)

После этого вы сможете записывать скрипты и использовать объекты Delphi в ваших скриптах.


Вывод

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

1 комментарий:

Unknown комментирует...

Что касается Robot'a и Delphi скорее всего нужен Rational Test Enablers.
То же самое точно относится к Robot'у и Oracle Forms. Для некоторых компонентов не определяются свойства.

К сожалению Rational Test Enablers найти нигде не смог, если кто поделится, буду крайне признателен.

Условия копирования публикаций:

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