Какие-либо хорошие инструменты или подсказки для пуха, тестирующего Windows, формируют приложения?

Я поддерживаю ~300K LOC устаревшее приложение толстого клиента C# с Windows. Интерфейс Forms. Приложение полно небольших ошибок и причуд. Например, я недавно обнаружил ошибку, где, если пользовательские редактирования и вкладки (не щелчки) через ячейки на DataViewGrid, и оставляет определенную ячейку выбранной, приложение получает "Ссылку на объект не набор к экземпляру объектного" исключения. Я обнаруживаю (или получите отчет об ошибках), что-то новое как это о каждой неделе или два. У меня было достаточно, и думал о попытке своего рода тестирования пуха на приложении, чтобы попытаться выведать неоткрытые проблемы.

Если бы я roll-my-own тестирование пуха, я предположил бы, что, по крайней мере, должен смочь генерировать тестовые обвязки, которые выполняют части моего приложения (главное окно, FormX, FormY, FormZ...) независимо и пытаются ввести события в них.

Я пытался искать инструменты, которым удовлетворяют для этого, но до сих пор ничего не придумал для Форм Победы. (Кажется, нет никакой нехватки инструментов тестирования пуха для веб-приложений, однако).

Какие-либо полезные идеи?

9
задан Ogre Psalm33 28 May 2010 в 12:56
поделиться

2 ответа

Мне всегда нравилась идея инструмента тестирования Gremlins, который использовался на карманных компьютерах Palm. Он генерировал случайные события нажатия для выявления ошибок программирования пользовательского интерфейса. Вы можете сделать то же самое в своем приложении, генерируя миллионы событий опускания и поднимания мыши в случайных местах. Вам понадобится P/Invoke PostMessage() и использование Control.GetChildAtPoint() для создания хэндла окна для сообщений WM_LBUTTONDOWN/UP. Application.DoEvents() в вашем тестовом цикле, чтобы запустить обработчики событий.

6
ответ дан 4 December 2019 в 21:08
поделиться

Поищив в сети, я нашел 2 ссылки с полезными инструментами и информацией о Fuzz-тестировании приложений WinForms:

  • Monkey Fuzz Testing - Инструмент альфа-статуса для codeplex, который, кажется, довольно близок к тому, что я хочу. С сайта: «MonkeyFuzz в первую очередь отправляет случайные события клавиатуры и мыши в программу, но может записывать действия в процессе. Это позволяет воспроизводить их, что полезно для регрессионного тестирования)». Я могу попробовать и доложить о своих выводах.
  • Документ о случайном тестировании , подготовленный факультетом информационных технологий Висконсинского университета. Это датировано 2000-2002 годами, но, похоже, содержит некоторую полезную информацию и ссылки на инструменты , которые они использовали в своем исследовании. Однако похоже, что эти инструменты могут быть устаревшими как минимум на 10 лет.
4
ответ дан 4 December 2019 в 21:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: