1. 程式人生 > >分層測試架構

分層測試架構

一、分層軟體結構

微服務可以算是一種分層架構,相對於未分層的架構具有如下優勢:

(1)分離開發人員的關注:層次結構中,各層是相對獨立的,每一層僅呼叫其相鄰下一層所提供的服務,開發人員只需要將本層API和相鄰下一層的API定義完整即可,其他層可以不進行關注。開發人員在開發某一層時,可以只關注於這一層所用的思想、模式、技術,這種分工方式極大地提高了開發效率

(2)無損替換:由於每一層 是相對獨立的,在上下層出現問題時,只需對相應的層次進行快速的替換即可,軟體的損失會降到最低。

(3)降低了系統間的依賴:微服務是低耦合的

弊端:

(1)級聯修改問題:當前層次介面的修改,對應相鄰層次需要跟著修改,雖然這種情況在現實開發中基本不會出現,但作為弊端要求設計者開始設計階段對整個框架應考慮周全。

(2)效能問題:如果沒有分層結構,整個軟體的操作速度相對會很快,由於各層的層次性使得資訊需要層層傳遞,這一過程對效能效能的損耗還是比較大的。

二、自動化測試框架結構設計:

1、自動化測試功能層:

(1)Action Word簡介:

它是一種業務的抽象,比如測試用例裡的測試步驟、檢查驗證、訊息序列等等,它的格式通常包含名自定義和引數部分,它的形式非常像我們程式語言中的過程定義。

AW的格式一般為:AWname 必選引數 可選引數。其中名字自定義用於描述測試步驟的動作或事件,引數部分用於描述動作需要用到的物件。在測試功能層AW主要具有以下作用:

a) 測試設計的改進

b) 測試執行的改進

c) 測試流程的改良

d) 測試角色的分工與合作

2、自動化測試執行層:

執行層功能主要用於執行測試所用到的測試用例,並且呼叫相關AW,執行層比較常見的採用指令碼語言直譯器,如Perl,Python,Ruby等

執行層負責解釋執行指定的測試策略和測試用例,分發、載入、執行AW。執行層包括控制器、執行器。主要功能:解釋執行策略、解釋測試用例、負責AW分發、載入AW實現和執行AW實現。

3、自動化測試用例層:

自動化測試用例主要面向測試業務,通過自動化測試技術去表達測試、測試套、測試日誌、測試報告。自動化用例指的是AW描述的可以自動執行的用例,無需測試執行人員進行手工執行。測試開發過程中為了提高用例執行效率,通常使用自動化測試套。自動化測試套是按照統一測試場景組織到一起的一組測試用例集合。

a) 自動化用例設計要素:

預置條件:
測試步驟:使用AW描述,包括執行的測試步驟以及檢查步驟(動態比較或者執行後比較),它們一般分為兩個獨立的AW描述
後置條件:清除測試用例執行後留下的狀態,恢復到初始的乾淨狀態。
異常處理:捕捉異常,記錄錯誤,不影響後續測試用例的執行。

4、自動化測試功能層設計:

實際過程中,AW的設計至關重要,AW設計的好壞直接關係到自動化 的產出,AW設計就是系統的重新抽象。可以利用分層結構的思想對功能層進行優化,將AW分為幾類:

AW1(底層),AW2(中層),AW3(高層),指示AW,這四層層層封裝,使用過程中只允許上層呼叫下層。

通常情況下,指示AW主要起測試控制作用,AW3是基於業務的,AW2是被測試物件的全部或一部分的介面抽象,也可以叫做BW,AW1定位為更底層的介面卡或者基礎操作,也可以叫做CW。AW3一般由自動化測試工程師開發即可,BW和CW則需要由更高水平的測試或開發人員開發。

(1)低層AW :主要與被測系統的介面相關,負責跟驅動層的各個驅動實體互動,該層AW一般在工具開發過程中都會提供給自動化測試工具使用者。

比如:IO類、比較類、協作類等

(2)中高層AW:

中高層AW主要面向SUT的各功能,通過分析、提取、合併測試執行步驟、測試檢查方式等而成,它是測試用例的最小單元,一般由以下兩點設計原則:

針對SUT的每個功能點,在考慮測試中相關執行步驟和檢查方式的基礎之上,採用自頂向下,逐步求精的方法,逐步將AW分解為最小執行單元
將分析提取後功能相似的AW進行合併提高AW的可重用性。
(3)指示AW:

指示層AW與被測系統無關,主要是對測試進行控制。因此它與自動化用例也無關。