Как пройти автоматизированное приемочное тестирование настольного Java-приложения?

Я думал о приемочном тестировании и хотел бы получить более четкое представление о том, как его можно автоматизировать (например, встроить в конвейер непрерывной доставки). У меня есть настольное приложение, написанное на Java, мессенджер. Если я хочу автоматизировать приемочные тесты, как мне это сделать? Вот пример ручного теста: "Пользователь A отправляет сообщение пользователю B при сбое сервера. Переключаясь на отказоустойчивый сервер, убедитесь, что чат можно возобновить с того места, на котором он остановился, и все функции чата по-прежнему работают так, как ожидается клиентом"

Можно ли использовать JUnit для автоматического принятия и тестирования системы, как это? Я также слышал о Selenium, но я понял, что это только для веб-приложений?

Я понимаю концепцию модульного тестирования с помощью JUnit, но теряюсь в том, как можно автоматизировать тестирование функциональности настольного приложения на более высоком уровне. Некоторые тесты могут включать взаимодействие с графическим интерфейсом, например, отправку сообщений другим клиентам, но другие будут включать такие вещи на стороне сервера, как сбои сервера и так далее. Я думал, что, вероятно, возможно сделать это, используя JUnit и код приложения, возможно, с некоторыми сценариями (Perl, Ruby и т. Д.) Для запуска тестов?

1 ответ

Для этого существует несколько программных решений. Некоторые серьезные из них - QTP (теперь UFT), TestComplete, Ranorex, SilkTest. Все они должны иметь пробную версию программного обеспечения. Если приложение Java было написано на Swing/AWT, Джемми, возможно, стоит проверить. Как отметил Тони Хопкинсон, AutoIt может подойти и очень быстро использовать. Selenium великолепен, но насколько я знаю, он предназначен только для веб-тестирования. Автоматизация пользовательского интерфейса очень важна для автоматизированного тестирования и дополняет приемочное тестирование благодаря его взаимодействию с конечным пользователем. Модульные тесты во многом перекрываются и могут охватывать функциональные интеграции в зависимости от того, как вы их организовали и их достаточно, но это два разных подхода с двумя разными целями.

Кроме того, если вы использовали Swing, нашел эту ветку, которая может помочь: http://www.coderanch.com/t/96035/Testing/Automated-Swing-Testing

Другие вопросы по тегам