Ответ 1
Холодная реакция... Лучше я отвечу на фиктивный ответ, на всякий случай нет хорошего ответа на этот вопрос.
Я ищу автоматизированный интерфейс/программный инструмент для тестирования пользовательского интерфейса. Раньше я использовал TestComplete, и хотя это была хорошая часть программного обеспечения, но концепция автоматизации тестирования GUI считалась достаточно сложно, что я написал несколько сообщений в жалоба об этом.
Одна из проблем с инструментом автоматизации тестирования сторонних разработчиков заключается в том, что вы должны изучать новый язык для того, чтобы быть продуктивным на нем, не говоря уже о том, что поддержка инструментальных средств неудовлетворительна. Теперь я планирую изучить Microsoft UI Automation, который поставляется с .Net 3.0 и Белые рамки. Но прежде чем я это сделаю, я хочу знать, какой результат там.
У кого-нибудь есть опыт поделиться этим? Создаете ли вы устойчивый и успешный набор тестов с использованием автоматизации пользовательского интерфейса в вашем приложении?
Изменить: Это кажется очень сложным вопросом. Я бы установил щедрость за это, если в течение этих нескольких дней я не получу никаких ответов.
Холодная реакция... Лучше я отвечу на фиктивный ответ, на всякий случай нет хорошего ответа на этот вопрос.
Это очень поздний ответ (вы, вероятно, уже отправлены), но я тестировал приложение WPF с ним.
У меня было много хлопот, когда я использовал версию beta1 VS2010 и столкнулся с некоторыми ошибками. Используя версию выпуска, у меня было меньше проблем.
Это было сложно, потому что я одновременно изучал WPF, VS UI automation и WPF/Windows. Тот факт, что трудно создать пуленепробиваемые автоматизированные тесты пользовательского интерфейса, добавляется к этой сложности.
После RTM VS2010 у меня все еще возникали прерывистые проблемы с собственной/настраиваемой страницей, которую мы завернули. Я думаю, что это было частично связано с проблемой родительского контроля и частично из-за проблемы с потоками/процессами.
Самая большая головная боль, с которой я столкнулась, заключалась в том, когда я пытался протестировать некоторый контроль, который мы использовали из инструментария WPF, в частности, элемента управления DataGrid. У него были некоторые известные ошибки автоматизации пользовательского интерфейса, и у меня было чертовски время вокруг них.
Я также столкнулся с некоторыми проблемами, когда инфраструктура автоматизации пользовательского интерфейса кэшировала данные за кулисами. Мне нужно было бы повторно создать элементы управления, чтобы получать обновленные данные о них (особенно видимость, когда элемент управления был слабопориентирован).
Если бы у меня было чисто WPF или чистое приложение Win32, которое не наследовало пользовательский интерфейс из других приложений, оберните элементы в элементах управления WebBrowser, используйте пользовательские элементы управления и т.д., тогда я, вероятно, воспользуюсь им снова. Если вы еще не приняли решение, и ваше приложение использует любой из них, я бы посмотрел, могу ли я использовать что-то еще. Возможно, более простой набор сценариев для более ограниченного тестирования интеграции, и попытайтесь охватить остальные модульными тестами, используя макет объектов.
Я не использовал его в течение последних 6 месяцев, поэтому ваш пробег может измениться.
Мы используем среду тестирования White здесь с отличными результатами.
В структуре используется обмен сообщениями win32 для поиска элементов управления и взаимодействия с ними. Однако он довольно медленный в больших формах с большим количеством элементов управления, но это единственный недостаток, с которым я столкнулся. Мы также автоматизируем тестирование с использованием buildbot и nunit-console.
Я написал жемчужину, основанную на железе под названием Bewildr, которая обертывает структуру автоматизации MS UI. Он был успешно использован для автоматизации приложений MS WPF в различных компаниях, включая BBC. Вот пошаговое руководство по его использованию: http://www.natontesting.com/2011/08/27/step-by-step-example-of-bdding-a-wpf-app-with-cucumber-rspec-ironruby-and-bewildr/
Я использую инфраструктуру MS UI Automation, используя С#.net, и я нашел это чрезвычайно простым и полезным. Никаких проблем не наблюдалось как таковое, но у него нет поддержки генерации отчетов, поэтому вам нужно написать свою собственную логику для этого на основе ваших конкретных тестовый пример.
Общий уровень удовлетворенности: 8/10.
У меня нет опыта работы с Microsoft UI Automation, но я использую AutoIt (http://www.autoitscript.com/autoit3/), чтобы сделать немного GUI автоматизации. Я использую его для проверки надстройки Visual Studio. Не совсем ответ на ваш вопрос, но это может быть интересно для вас.
Привет,
Sebastiaan
Ive использовал легкую версию автоматического тестирования пользовательского интерфейса для платформы .net, используя аналогичный подход к этому:
http://msdn.microsoft.com/en-us/magazine/cc163864.aspx
Я столкнулся с проблемами, использующими вкладки, и решил, какие панели будут использоваться, но это в конечном итоге привело к редизайну формы (так что это в значительной степени нашло проблемы и в дизайне!)