Автоматизированное тестирование пользовательских форм VBA - инструменты и / или методики? - PullRequest
7 голосов
/ 27 января 2009

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

Основная проблема заключается в том, что большинство инструментов автоматизированного тестирования, которые я изучал (Rational Робот , AutomatedQA TestComplete , Автоматизация сети Автоматизация и т. Д.), Не имеют • полностью поддерживает элементы управления VBA, поэтому их тесты в конечном итоге воспроизводят щелчки мыши и нажатия клавиш, поэтому их невозможно обслуживать. В идеале мне нужен инструмент тестирования, который распознает элементы управления форм VBA, поэтому я могу сказать «нажмите эту кнопку и дождитесь изменения этого списка», а не «нажмите (237, 58) и подождите 500 миллисекунд».

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

Мой вопрос - кто-нибудь здесь имеет опыт использования инструмента автоматического тестирования, который

a) распознает элементы управления пользовательской формы VBA и может надежно взаимодействовать с ними

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

Кроме того, кто-нибудь знает, как я могу обойти проблему модальных диалогов, приостанавливающих выполнение VBA, чтобы я мог управлять надстройкой из VBA?

Я провел некоторое время, просматривая форумы QA, но ничего не нашел там, поэтому любая помощь или рекомендации будут оценены.

Спасибо за помощь,

-Martin

1 Ответ

2 голосов
/ 27 января 2009

Я не знаю инструмента, который делает то, что вы говорите, но думали ли вы об атаке с другого направления?

Я немного рассуждаю здесь о том, как много логики может быть помещено в «нормальный» класс VB / VBA таким образом, чтобы отдельные методы могли быть проверены модулем. Возможно, такой класс может представлять события даже для того, чтобы при тестировании вы могли заменить форму тестовым набором, который предоставил необходимые стимулы и собрал ответы для проверки.

Он не будет адресовать присоединение самой формы (теперь очень легкой) к базовому классу, но, по крайней мере, минимизирует непроверенную область.

Я просто думаю "вслух", но вы думаете, это сработает вообще?

...