一定要保持行為與代碼實現分開以減少測試步驟的脆弱性,自動化腳本應該處理人類可讀的功能說明和代碼級別實現界面之間的轉換。
圖1 測試對象模型
步驟框進一步細分為不同的步驟類型。 步驟類型為執行時測試中所發生的一切提供了更高的可視性,引發大量的智能分類大故障。
設置步驟是用來準備和驗證系統在正確的狀態開始測試功能特性。正因如此,這些步驟中的任何可見問題都將阻止測試,測試將會被標記為“關閉”。 執行和驗證的步驟是真正行使正被測試的特性的步驟。 這個空間的任何問題都必須進行調查,并把測試標記為“失敗”。 后,還有一些在測試后將系統恢復到已知狀態的清理步驟。這里的問題可能意味著后續測試的假故障(如果系統并不與它本應該的一致),所以一個“警告”被放在測試上了。
圖2 步驟類型和狀態
我們已經看到步驟類型的好處主要在大量的自動化測試領域,因為它們減少了調查故障的時間。 用手工測試的話,測試工程師執行測試時可以瞬間作出這個決定。
孤立的,可重復使用的構建模塊和模板
因為超過50的測試員和1萬的測試與測試下的同一系統交互,所以在我們的測試中有大量的步驟重復,大多是關于測試設置的。我們需要一種方法來增加系統功能的可用性,但同時也能限制這些功能交互的各個領域。我們通過引進構建模塊和模板實現這一目標。
●構建模塊是在一項功能上進行的(潛在參數驅動的)個體行動,應該包含必要的邏輯步驟以便與指定功能交互。一個模塊的范圍是靈活的,只需要和測試套件認為必要的那么多模塊行。一個模塊可以被分解成更小的模塊,隨后需求上升以增加一個功能交互性的靈活性。
●模板是連接在一起通過應用程序來創建流的構建模塊的有序集合。功能交互不應該在模板里,而應在他們稱作模塊的里面。模板可以一個嵌一個,使少步驟的測試下的系統得以充分交互。
圖3 構建塊和模板