2008-09-03 82 views
17

我們正在研究一個大型項目,其中包含一些新的/修改的GUI功能。我們在過去發現,在添加新功能時,我們經常在相關代碼中引入新問題。用戶界面測試

我們有非技術用戶進行測試,但他們經常錯過部件並允許錯誤漏洞。

我的問題: 是否有組織WinForms項目的UI測試的最佳實踐?有什麼辦法可以自動化嗎?

謝謝!

+0

你會聽到很多的「GUI自動化測試是脆弱」或「自動GUI測試是噩夢」的東西。通常來自那些看到由隨機人員完成的測試自動化的人員或者從未見過gui自動化的人員通常會聽到失敗的消息。無論哪種方式測試自動化需要承諾和熟練的東西。工具只是一個工具,有很多工具。幾乎沒有:http://www.testingfaqs.org/t-gui.html – yoosiba 2011-02-17 22:03:46

回答

19

有GUI測試工具,會點擊按鈕和東西給你,但他們在我的經驗非常脆弱。

要做的最好的事情就是讓UI層保持儘可能薄。你的事件處理程序類最好只有一行或兩行向其他更多可測試類發出呼叫。這樣,您可以在單元測試中測試業務邏輯,而無需實際執行按鈕點擊。

+5

無論如何,作者需要一個解決方案,而不是僅僅反對...... – Budda 2010-01-28 12:27:30

0

我無法真正幫助組織或最佳做法,但NUnit擴展程序似乎可用於表單測試,NUnitForms

6

您可以自動使用White框架GUI測試。

還考慮使用TDD友好設計,即使用MVP/MVC模式。

我強烈建議您閱讀來自微軟模式&實踐團隊的文檔。

特別看看Composite UI application blockCompositeWPF

這些項目專門爲您提供GUI應用程序開發的最佳實踐,包括測試驅動的用戶界面。

+0

「也考慮使用TDD友好設計,即使用MVP/MVC模式。」糾正我,如果我錯了,但不會這是一個「**測試**友好的設計」。我認爲TDD的建議不僅僅是測試.. – sixtyfootersdude 2010-07-21 23:14:24

4

保持GUI層儘可能薄。邁克爾羽毛的文章,The Humble Dialog Box,是一個經典。還請查看Martin Fowler的Passive View。我也聽說「自動按鈕答題器」很脆弱,而且花費更多的時間維護測試比花費維護代碼容易。

1

有很多工具和庫可以自動執行WinForms測試,從White這樣的開源解決方案到諸如HP QuickTest Pro等昂貴的商業解決方案。如果你想推出你自己的自動化框架,在.NET中也有UIAutomation命名空間。但是,自動化的真正成本在於它需要實施的時間和專業技能。可維護性也是自動化測試設計最重要的方面之一;您不希望花費過多的資源來保持自動化資產與您的應用程序同步。影響自動化決策的因素還有很多,這些因素將針對您的特定應用程序和組織而定。

最好的辦法是對這個問題做更多的研究,並查看一些專門的測試網站,如http://www.sqaforums.com

1

我發現這種快速和骯髒的方式來測試各種瀏覽器中的網頁佈局。它叫做browsershots.org。我們的客戶現在需要5個瀏覽器的支持,而完整的迴歸測試需要大約一個星期的時間。該服務將提供大約70多種瀏覽器和版本的屏幕截圖。我將它們打印出來,並將其放在燈光下。如果他們不排隊,就必須有佈局問題。

0

現已一種新的方法是使用紅寶石,通過紅寶石寶石稱爲win32-autogui。這提供了一個測試Windows GUI應用程序的框架。將它與Ruby工具RSpec和Cucumber結合起來,並且它構建了一個相當強大的測試框架。

0

如何組織UI測試取決於你如何設計測試用例。

自動化Windows在單元測試級別表格應用程序可以使用TDD的框架,如NUnit的;或者使用BDD框架,比如NSpec。

自動化Windows窗體的功能測試級別的應用程序可以使用白色,CodedUI,甚至直接使用Windows Automation API 3.0(UI自動化和MSAA)。

由於上面提到的所有這些東西是技術,而不是解決方案,它的更好,你開始寫自動化測試之前建立基於這些技術的一些基本的測試自動化/腳本框架。

+0

你的答案是平淡無奇。 – nalply 2012-09-30 20:39:00