Тестирование пользовательского интерфейса - PullRequest
17 голосов
/ 03 сентября 2008

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

У нас есть нетехнические пользователи, которые проводят тестирование, но они часто пропускают детали и пропускают ошибки.

Мой вопрос: Есть ли лучшие рекомендации по организации тестирования пользовательского интерфейса проекта WinForms? Есть ли способ автоматизировать это?

Спасибо!

Ответы [ 11 ]

19 голосов
/ 03 сентября 2008

Существуют инструменты тестирования GUI, которые будут нажимать кнопки и прочее для вас, но в моем опыте они довольно хрупкие.

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

6 голосов
/ 03 сентября 2008

Вы можете автоматизировать тестирование GUI, используя White framework.

Также рассмотрите возможность использования дружественного TDD дизайна, то есть используйте шаблон MVP / MVC .

Я бы настоятельно рекомендовал вам ознакомиться с документацией команд Microsoft по шаблонам и практикам.

В частности, обратите внимание на блок приложения Composite UI и CompositeWPF .

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

4 голосов
/ 03 сентября 2008

Держите слой графического интерфейса настолько тонким, насколько это возможно. Статья Майкла Перса, Диалоговое окно «Смирение» , является классической. Также посмотрите пассивное представление Мартина Фаулера . Я также слышал, что «автоматические кликеры кнопок» хрупки и что на проведение теста проще тратить больше времени, чем на поддержание кода.

2 голосов
/ 25 сентября 2014

В случае, если кто-то найдет это полезным:

Список инструментов тестирования GUI найдено в Википедии.

1 голос
/ 04 сентября 2008

Я нашел этот быстрый и грязный способ протестировать макеты веб-страниц в различных браузерах. Он называется browsershots.org . Нашему клиенту требуется поддержка в 5 браузерах, и для полного регрессионного тестирования требуется около недели. Этот сервис будет доставлять скриншоты из более чем 70 браузеров и версий. Я распечатываю их и держу страницы на свету. Если они не выстраиваются в очередь, должна быть проблема с макетом.

1 голос
/ 03 сентября 2008

Существует множество инструментов и библиотек, которые могут автоматизировать тестирование WinForms, начиная от решений с открытым исходным кодом, таких как White, до дорогих коммерческих решений, таких как HP QuickTest Pro. Существует также пространство имен UIAutomation в .NET, если вы хотите создать свою собственную инфраструктуру автоматизации. Но настоящая стоимость автоматизации заключается во времени и специальных навыках, необходимых для ее реализации. Ремонтопригодность также является одним из наиболее важных аспектов автоматизированного проектирования тестов; Вы не хотите тратить чрезмерные ресурсы на поддержание актуальности ресурсов автоматизации в вашем приложении. Существует также множество факторов, влияющих на решение об автоматизации, которые будут характерны для вашего конкретного приложения и организации.

Лучше всего сделать еще несколько исследований по этому вопросу и проверить некоторые из специализированных сайтов тестирования, таких как http://www.sqaforums.com.

1 голос
/ 03 сентября 2008

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

http://pragprog.com/titles/idgtr/scripted-gui-testing-with-ruby

0 голосов
/ 04 сентября 2012

Как организовать тестирование пользовательского интерфейса, зависит от того, как вы спроектируете тестовые случаи.

Автоматизация приложения Windows Forms на уровне модульного тестирования может использовать структуру TDD, такую ​​как NUnit; или используйте инфраструктуру BDD, например NSpec.

Для автоматизации приложений Windows Forms на уровне функционального тестирования можно использовать White, CodedUI или даже напрямую, используя Windows Automation API 3.0 (UI Automation и MSAA).

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

0 голосов
/ 16 ноября 2011

Новый доступный метод теперь использует Ruby через гем Ruby с именем win32-autogui . Это обеспечивает основу для тестирования приложений Windows GUI. Объедините его с инструментами Ruby RSpec и Cucumber, и это создаст довольно мощную среду тестирования.

0 голосов
/ 22 октября 2008

Я использовал пробную загрузку, аналогичную этому продукту (http://www.tethyssolutions.com/product.htm) и этому продукту (http://www.mjtnet.com/macro_scheduler.htm) лет назад), и я был доволен результатами. Это довольно дешевые решения и некоторые из этих макросов продукты могут фактически использоваться для автоматизированного тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...