一個健康的測試平臺體系,對測試人員的職責分工、協做模式會有不一樣的要求。數據庫
測試平臺核心的職責是完成高質量的交付已知足業務需求。測試活動包括單元測試、集成測試、接口測試、性能測試等,都是經過這些測試手段,協同整個測試平臺來完成高質量交付的管理工做。安全
測試平臺的核心目的是提高測試效率,從而提高產品質量,其設計關鍵就是自動化。傳統的測試方式是測試人員手工執行測試用例,測試效率低,重複的工做多。經過測試平臺提供的自動化能力,測試用例可以重複執行,無須人工參與,大大提高了測試效率。服務器
爲了達到「自動化」的目標,測試平臺的基本架構以下圖所示。架構
經過對象庫的封裝-業務的封裝-驅動的封裝,這些封裝體系的協做,咱們能夠搭建一系列的自動化測試平臺。固然,這只是一小部分,由於整個測試平臺的搭建,絕對不是單純的自動化測試就能夠完成,須要業務人員、開發人員和測試人員共同合做來完成整個測試平臺。運維
1. 用例管理機器學習
測試自動化的主要手段就是經過腳本或者代碼來進行測試,例如單元測試用例是代碼、接口測試用例能夠用Python來寫、可靠性測試用例能夠用Shell來寫。爲了可以重複執行這些測試用例,測試平臺須要將用例管理起來,管理的維度包括業務、系統、測試類型、用例代碼。例如,網購業務的訂單系統的接口測試用例。性能
2. 資源管理單元測試
測試用例要放到具體的運行環境中才能真正執行,運行環境包括硬件(服務器、手機、平板電腦等)、軟件(操做系統、數據庫、Java虛擬機等)、業務系統(被測試的系統)。學習
除了性能測試,通常的自動化測試對性能要求不高,因此爲了提高資源利用率,大部分的測試平臺都會使用虛擬技術來充分利用硬件資源,如虛擬機、Docker等技術。測試
3. 任務管理
任務管理的主要職責是將測試用例分配到具體的資源上執行,跟蹤任務的執行狀況。任務管理是測試平臺設計的核心,它將測試平臺的各個部分串聯起來從而完成自動化測試。
4. 數據管理
測試任務執行完成後,須要記錄各類相關的數據(例如,執行時間、執行結果、用例執行期間的CPU、內存佔用狀況等),這些數據具有下面這些做用:
o 展示當前用例的執行狀況。
o 做爲歷史數據,方便後續的測試與歷史數據進行對比,從而發現明顯的變化趨勢。例如,某個版本後單元測試覆蓋率從90%降低到70%。
o 做爲大數據的一部分,能夠基於測試的任務數據進行一些數據挖掘。例如,某個業務一年執行了10000個用例測試,另一個業務只執行了1000個用例測試,兩個業務規模和複雜度差很少,爲什麼差別這麼大?
數據平臺
數據平臺的核心職責主要包括三部分:數據管理、數據分析和數據應用。每一部分又包含更多的細分領域,詳細的數據平臺架構以下圖所示。
1. 數據管理
數據管理包含數據採集、數據存儲、數據訪問和數據安全四個核心職責,是數據平臺的基礎功能。
2. 數據分析
數據分析包括數據統計、數據挖掘、機器學習、深度學習等幾個細分領域。
3. 數據應用 數據應用很普遍,既包括在線業務,也包括離線業務。例如,推薦、廣告等屬於在線應用,報表、欺詐檢測、異常檢測等屬於離線應用。
管理平臺
管理平臺的核心職責就是權限管理,不管是業務系統(例如,淘寶網)、中間件系統(例如,消息隊列MQ、Kafka),仍是平臺系統(例如,運維平臺),都須要進行管理。若是每一個系統都本身來實現權限管理,效率過低,重複工做不少,所以須要統一的管理平臺來管理全部的系統的權限。
權限管理主要分爲兩部分:身份認證、權限控制,
1.身份認證
肯定當前的操做人員身份,防止非法人員進入系統。例如,不容許匿名用戶進入系統。爲了不每一個系統都本身來管理用戶,一般狀況下都會使用企業帳號來作統一認證和登陸。
2.權限控制
根據操做人員的身份肯定操做權限,防止未經受權的人員進行操做。例如,不容許研發人員進入財務系統查看別人的工資。