Какой инструмент тестирования приложений на основе Swing является лучшим?[закрыто]
Вопрос
Хотя мы стараемся настроить для наших приложений как можно больше модульных тестов, мне всегда не хватает количества тестов на уровне пользовательского интерфейса.Есть много вариантов, но я не уверен, с чего лучше начать.
Какой инструмент модульного тестирования для тестирования приложений Swing вы предпочитаете?Почему тебе это нравится?
Решение
Со своей стороны, мы используем для тестирования SWING GUI с помощью ФЕСТ.Это адаптер классического поворотного робота, но он значительно упрощает его использование.
В сочетании с TestNG мы обнаружили, что это простой способ имитировать «человеческие» действия через графический интерфейс.
Другие советы
Если ваше целевое приложение имеет пользовательские компоненты, я определенно рекомендую Марафон для автоматизации ваших тестов.
Мне дали задачу автоматизировать приложение с несколькими очень сильно сложные пользовательские компоненты, написанные с нуля собственными силами.Я прошел процесс проверки, который длился два месяца, в ходе которого я принял решение, какой инструмент тестирования использовать, из списка около 30 доступных инструментов тестирования, как коммерческих, так и FOSS.
Это было только инструмент тестирования, который смог успешно автоматизировать наши конкретные пользовательские компоненты;где IBM Rational Functional Tester, Microfocus TestPartner, QF-Test, Abbot & FEST неуспешный.
С тех пор мне удалось успешно интегрировать тесты с Cruise Control, чтобы они запускались после завершения каждой сборки приложения.
Слово предупреждения, хотя:
1) он довольно грубо обрабатывает JTables.Я обошел эту проблему, написав для них свой собственный прокси-класс.
2) Пока не поддерживает запись/воспроизведение действий перетаскивания.
Рассмотрим Марафон (http://www.marathontesting.com/Home.html) — тесты написаны на Jython, поэтому легко писать любые предикаты на основе состояния объекта.
Однажды мне довелось поэкспериментировать с QF-TEST.Он коммерческий, но предлагает множество функций.Возможно, вы посмотрите на это: http://www.qftest.de/en/index.html
Вы можете попробовать использовать Огурец и Свингер для написания функциональных приемочных тестов на простом английском языке для приложений Swing GUI.Свингер использует Netbeans Джемми библиотека под капотом для управления приложением.
Cucumber позволяет писать такие тесты:
Scenario: Dialog manipulation
Given the frame "SwingSet" is visible
And the frame "SwingSet" is the container
When I click the menu "File/About"
Then I should see the dialog "About Swing!"
Given the dialog "About Swing!" is the container
When I click the button "OK"
Then I should not see the dialog "About Swing!"
Взгляни на это Свингерское видео-демо чтобы увидеть это в действии.
Я очень рекомендую QFTest.Я использовал его для своего коммерческого продукта, и он работает очень хорошо с почти нулевым кодом (для некоторых вещей мое приложение требует использования клиентских API Java).Он хорошо справляется с идентификацией компонентов Swing и довольно терпим к обновлениям вашего графического интерфейса (изменение размера, перемещение и добавление компонентов не нарушают существующие тесты).Я сделал серьезные обновления функциональности, и мои тесты все еще работают.
Это дорого, но я думаю, что окупится за пару месяцев.
Перед QFTest я пробовал:
1) Automatedqa — хороший инструмент, но ориентирован на Windows и не понимает Swing.Похоже на: Быстрый тест Pro.
2) UISpec4J. После того, как я посвятил этому 50 часов в неделю, у меня возникли проблемы с хрупкостью и загадочным Java-кодом, который он создавал.Использовать его было слишком сложно — попытка отладить/обновить сотни строк Java, выполняя последовательность из дюжины операций с графическим интерфейсом, просто не работала для моего мозга.В итоге я стал избегать написания тестов, потому что это намного сложнее, чем написание самого приложения!
попробуй паундер: http://pounder.sourceforge.net/
Мне нравится Jemmy, библиотека, написанная для тестирования Netbeans.
Не ответ, а уточнение.
Запись и воспроизведение — это неправильная вещь.Командам нужна возможность писать тесты до того, как будет написан код.В противном случае программисты завершают свою работу и ждут, пока тестировщики пытаются записать тесты (которые прерываются исправлениями, когда они обнаруживают проблемы).
В настройке типа BDD/TDD/ATDD вам действительно нужен какой-то инструмент, который позволит вам создавать сценарии тестов для еще не написанного кода, указывая имена элементов пользовательского интерфейса и тому подобное.
Существуют ли инструменты, которые подходят для тестирования без водопада?