2015-05-11 27 views
1

這不僅僅是一個問題,而是關於在真實世界的應用程序中使用自動GUI測試的最佳實踐的討論(其中真實世界的應用程序是具有超過兩個表格和三個按鈕以及超出計算兩個數字並在texbox中顯示結果的複雜性)。實際桌面和/或Web應用程序的自動GUI測試

我在網上搜索了關於實際應用程序的自動GUI測試的實際經驗。大多數文章提供了非常有限的示例(即測試簡單的計算器式應用程序),這些示例對於在具有100k + LOC的應用程序中啓動自動GUI測試無用。

在實現自動化GUI測試我不想讓初學者的錯誤,所以我要問你:

  • 什麼是當你的自動GUI測試你的做法?
  • 你使用什麼工具,爲什麼?
  • 你如何處理複雜的執行路徑?
  • ...

更具體的,讓我描述更詳細的情況: 我們100K + LOC項目用C#編寫。這是一個Windows應用程序,並與硬件(通過不同通信協議的各種測量單元)進行交互。我們對「通用」功能(庫等)進行了單元測試,這些功能是獨立的,可以單獨進行測試。由於使用真實硬件的侷限性,我們無法以自動方式測試所有內容(投資太高) - 但我們可以自動完成我們測試人員手動完成的一半工作。我想「改造」我們的一些測試人員來管理自動UI測試。我們的測試人員編程技能有限,因此我們案例的最佳工作流程將記錄UI測試或使用一些簡化的編程方法。 UI測試的未來維護應由測試人員完成(相對於由程序員進行維護的單元測試)。

  • 該應用程序使用SQLite數據庫來存儲其配置和數據。
  • 測試必須針對不同的測試數據集運行。如何/在哪裏存儲數據?
  • 當使用多組測試數據時,在使用下一組測試數據之前必須實現「安全」狀態 - 我們100%確定的狀態,應用程序正常。您是否喜歡重新啓動應用程序或以編程方式恢復您對測試所做的更改?這方面的一個例子是登錄 - 登錄每次測試或登錄一次,並連續做幾次測試?
  • 所有測試應該在混合環境(虛擬和物理)的不同Windows操作系統平臺(Win7/Win8,x86/x64)上運行。
  • 你如何運行組件的UI測試?你做了簡單的測試程序,並使用這個程序進行UI測試?或者也許還有其他什麼

回答

3

當您進行自動GUI測試時,您的做法是什麼?

  • 記錄的頁面
  • 自動生成方法,這樣我就可以更新 頁面輕鬆

避免你在哪裏都可以。我目前正在考慮使用MVC進行單元測試。 構建輕鬆更新頁面的方式。 你使用什麼工具,爲什麼?

  1. Specflow - 工作流測試
  2. T4 - 用來從
  3. 頁面
  4. Selenium方法 - 跨瀏覽器測試
  5. CUITe - 擴展編碼的UI測試和記錄

你如何處理複雜的執行路徑?

  1. 隨着作爲MVC
  2. 模型中的架構模式,例如:UI控件
  3. 視圖(導航)的頁面映射:如何瀏覽網頁和達到預先的條件和觸發
  4. 控制器:測試方法調用導航和示範

後續問題:

  • 你多久維護一次這些編碼UI測試?
  • 誰來維護這些測試?
  • 請詳細說明「安全狀態」,類型,線程?
  • 你打算如何處理頁面加載?
  • 你打算做跨瀏覽器測試嗎?
  • 你打算在多種環境下測試嗎?
  • 你打算用多個測試代理進行測試嗎?
  • 你打算如何生成測試數據?
  • 你打算如何存儲測試數據?
  • 你有單元測試嗎?
  • 你在做手動測試嗎?