2014-01-17 61 views
2

我一直在考慮驗收測試,希望更清楚地瞭解它如何實現自動化(例如,將其安裝到持續交付管道中)。我有一個桌面應用程序,編寫於Java,一個Messenger應用程序。如果我想自動化驗收測試,我該如何解決?下面是一個例子人工測試:「用戶A是短信用戶B在服務器崩潰時切換到故障轉移服務器,驗證該聊天就可以恢復它離開的地方,並預期在客戶端的所有聊天功能仍然有效。」如何進行桌面Java應用程序的自動驗收測試?

可以JUnit用於這種自動驗收和系統測試嗎?我也聽說過Selenium但我收集它僅適用於Web應用程序?

我明白使用JUnit單元測試的概念,但我失去了對如何進行桌面應用程序的功能,更高級別的測試可以實現自動化。一些測試可能涉及與GUI的交互,例如將消息發送給其他客戶端,但其他測試會涉及服務器端的東西,如服務器崩潰等。我一直在想,使用JUnit和應用程序的代碼可能會做到這一點,可能涉及一些腳本(Perl,Ruby等)來啓動測試?

+0

這可能是困難的。您可以通過多種方式自動化Windows應用程序。從像AutoIt這樣的免費軟件到完整的和昂貴的測試自動化套件。話雖如此,我希望我的單元測試涵蓋您所描述的所有情況。 –

回答

2

有幾種軟件解決方案需要付出代價。一些嚴重的是QTP(現在的UFT),TestComplete,Ranorex,SilkTest。他們都應該有可用的試用軟件。如果Java應用程序是用Swing/AWT編寫的,那麼Jemmy可能值得一試。正如託尼霍普金森所說,AutoIt可能適合,並且使用起來非常快。硒是偉大的,但據我所知,僅用於Web測試。使UI自動化對於自動化測試非常重要,並補充驗收測試,因爲它與最終用戶進行交互。單元測試重疊很多,可能會涵蓋功能集成,具體取決於您如何組織它們並擁有足夠的功能,但它們是兩種不同的方法,具有兩種不同的目的。

另外,如果你使用的Swing,發現這個線程可以幫助:http://www.coderanch.com/t/96035/Testing/Automated-Swing-Testing