Вопрос

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

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

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

Спасибо!

Это было полезно?

Решение

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

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

Другие советы

Вы можете автоматизировать тестирование графического интерфейса с помощью Белый рамки.

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

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

Особенно взгляните на Составной блок приложения пользовательского интерфейса и Композитныйwpf.

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

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

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

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

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

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

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

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

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

Я действительно не могу помочь с организацией или передовыми практиками, но НАнит расширение, по-видимому, доступно для тестирования форм, Формы NUnit.

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

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

То, как организовать тестирование пользовательского интерфейса, зависит от того, как вы разрабатываете тестовые примеры.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top