как тестировать приложения winforms - PullRequest
1 голос
/ 26 марта 2011

Наше приложение .NET основано на Winforms.Приложение управляет различными инструментами, и большая часть поведения приятно отключена, чтобы включить модульное тестирование.Одна вещь, с которой мы сталкиваемся много раз - это проблемы, вызванные (неправильным использованием) GUI.Неправильная обработка события управления или случайный выбор элемента в списке, которого там нет.Вот пример, с которым я хотел бы получить некоторую помощь:

У нас есть gridcontrol, который пользователи используют для выбора элемента.Когда пользователь выбирает определенный элемент, это должно обновить 'activeItem' в нашей модели.Теперь мы обнаружили, что здесь была ошибка, так как, когда пользователь использовал ярлык для выбора последнего элемента в gridcontrol, он не обновлял элемент управления.Конечно, это вызвано ошибками, которые мы совершаем в программировании, но как я могу проверить это поведение GUI.Так что мы уверены, что если кто-то изменит gridcontrol, он все равно будет работать как положено.Может ли это быть сделано с помощью обычного модульного тестирования, или я неправильно понимаю?

Ответы [ 2 ]

4 голосов
/ 26 марта 2011

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

0 голосов
/ 26 марта 2011

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

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

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