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