大數據時代已來,測試員該如何出擊?數據處理類系統功能測試探索

信息技術的廣泛應用使得企業生產經營變得更加高效,同時也沉澱了大量的數據。隨著大數據、數據挖掘、人工智能等技術的快速發展,企業愈加重視數據資產的價值,將數據中隱藏的信息與規律轉化為企業的生產力,使數據成為企業的決策依據。

當前,數據應用能力已成為企業的核心競爭力,支撐經營決策、客戶營銷、產品創新、績效管理、風險管控、監管報送及信息披露等諸多場景。因此,各企業積極打造從數據採集、彙總、處理加工至應用的閉環,建設大數據平臺、數據倉庫、數據集市、數據湖等各種形式的"數據中臺",實現海量數據的快速聚集彙總與處理加工,為企業發展增速提供動力。

大數據時代已來,測試員該如何出擊?數據處理類系統功能測試探索

數據處理類系統是指根據業務目標與需求對數據進行彙集、拼接、整合、統計、加工等直接處理的純後臺系統,例如大數據平臺、數據倉庫、數據集市、數據湖等。此類項目無前臺界面,多為批量程序,由調度系統控制定期運行,處理結果以及數據文件或數據庫表等形式存儲,供下游應用使用。

數據是數據應用的基礎,數據質量對於數據應用至關重要,數據處理類系統是數據質量的重要影響因素,測試作為系統質量保障的最後一道防線,面對繁雜海量的數據加工規則需求,如何在有限資源的條件下兼顧測試質量與測試效率值得探討。

本文根據過往項目經驗整理了一套數據處理類系統的功能測試方法,對其中重要的目標表檢查進行詳細梳理,根據檢查點來源將目標表檢查內容分為了技術層面與業務層面,建議測試人員按照從技術層面到業務層面、從簡單到複雜、從宏觀到微觀的測試執行策略。

一、數據處理類系統功能測試

目前數據處理類系統常用的功能測試方法主要有兩類:

一是白盒測試,主要使用代碼檢查方法,由測試人員根據業務需求對系統批量程序的代碼或腳本進行檢查,較容易發現一些直觀的問題,比如判斷條件中的比較符號寫反、判斷條件的遺漏、邊界值的遺漏等。此外,代碼檢查有助於加深測試人員對數據處理功能的理解,進行黑盒測試案例設計時更有針對性。

二是黑盒測試,即運行批量程序,在運行過程中檢查是否出現報錯信息與中斷,運行結束後對生成的數據表或數據文件,即目標表檢查。目標表檢查是數據處理類系統測試最主要的內容,通過檢查間接驗證系統實現的加工邏輯是否正確滿足業務需求。目標表檢查一般是通過編寫 SQL 語句查詢的方式實現。

本文根據檢查點的來源將此部分內容分為技術層面和業務層面,詳細闡述如下。

(一)技術層面檢查內容

技術層面檢查內容主要是對"接口"格式的檢查。數據處理類系統的處理結果供下游應用使用,可以視作與下游系統的"接口",因此最基本的要求是滿足系統間"接口"格式約定以及因約定導致的技術約束。具體檢查內容包括:

(1)目標表齊全,表名與約定一致;

(2)目標表字段齊全,字段名、字段類型、長度精度等屬性與約定一致;

(3)目標表主鍵設置與約定一致,以及由此導致的技術約束即不存在主鍵重複的記錄、不存在主鍵字段為空值的記錄;

(4)時間拉鍊與約定一致,以及由此導致的技術約束即時間拉鍊不存在斷鏈、倒鏈和交叉鏈。這部分測試內容執行簡單,容易發現錯誤,且錯誤的影響範圍廣。

大數據時代已來,測試員該如何出擊?數據處理類系統功能測試探索

(二)業務層面檢查內容

業務層面檢查內容是根據業務規則與業務經驗設計的檢查,可以分為兩部分:

一是對根據業務規則與經驗得到的簡單業務約束的檢查

具體包括:

(1)目標表記錄數的數量級是否與業務經驗一致,例如客戶信息表的記錄數大致與企業客戶約十萬人一致;

(2)目標表字段的空值比例滿足業務預期,例如客戶編號、交易金額等字段空值比例為 0,客戶地址字段空值比例小於 50%;

(3)目標表字段的默認值比例滿足預期,例如客戶學歷字段默認值為初中,業務預期客戶學歷為初中的記錄數佔比小於 30%;

(4)目標表字段數據取值範圍是否合理,數值型字段的最小值、最大值在業務預期範圍內,如取款金額滿足預期取值範圍(0,50000],離散型字段的取值符合業務規定,簡單的如客戶性別、客戶學歷、年齡段等,複雜的如客戶標籤、產品標籤等,文本型字段的字符串格式符合業務規定,如貴賓客戶編號以 VIP 開頭、時間字段滿足YYYY-MM-DD-HH;

(5)字段間簡單的業務邏輯關係是否滿足,例如開始時間早於結束時間、持有產品總數等於各類產品持有數之和。對簡單業務約束的測試結果與測試數據密不可分,建議使用脫敏的歷史數據,但需注意脫敏時不破壞數據的有效性。

二是對具體加工規則的檢查

即測試人員根據具體加工規則,對輸入數據處理類系統的源數據進行計算,獲得正確計算結果,與目標表進行比對。對於記錄數較少的目標表可以進行全表核對,對於記錄數較多的目標表可以進行表級彙總屬性核對,例如表記錄數是否一致、數值型字段的表級加總值是否一致、離散型字段的分佈比例是否一致等,進一步抽取部分記錄進行核對,抽樣時可根據等價類劃分法、邊界值法等有針對性的抽取。

例如功能需求為彙總統計各子機構的A產品營銷額,可先測試彙總後目標表記錄數是否於子機構數量一致、目標表A產品營銷額總計字段的表級加總值是否與A產品總營銷額一致,測試通過後進一步從目標表中抽取小部分樣本測試對應子機構的A產品營銷額是否計算正確。

大數據時代已來,測試員該如何出擊?數據處理類系統功能測試探索

二、測試執行策略

在執行測試時可以按照從技術層面到業務層面、從簡單到複雜、從宏觀到微觀的測試執行策略。技術層面的測試內容執行較簡單耗時短,容易發現影響範圍廣的錯誤,例如批量程序執行後發現缺失某張目標表,即可說明批量程序存在問題,反饋開發人員進行排查並修復,無需進行業務層面的測試。從簡單到複雜是指先進行簡單業務約束的檢查,進而執行具體複雜業務規則的檢查。從宏觀到微觀,在具體業務規則檢查中先執行表記錄數、表級加總值等表級屬性的核對,再抽樣核對具體記錄。

三、總結

上面介紹了一套數據處理類系統的功能測試方法,通過項目經驗,將目標表檢查內容分為技術層面與業務層面,其中技術層面主要進行接口格式以及主鍵約束、外鍵約束等技術約束的檢查,業務層面主要進行取值範圍、邏輯關係、加工規則等業務約束的檢查。測試人員可遵循從技術層面到業務層面、從簡單到複雜、從宏觀到微觀的測試執行策略,避免遺漏測試點,同時耗費最小代價儘可能多的發現缺陷,從而極大提高測試質量與測試效率。

我是誰?


我是一名從事了多年軟件測試的老測試員,今年年初我花了一個月整理了一份最適合2020年學習的軟件測試學習乾貨,可以送給每一位對軟件測試感興趣的小夥伴,想要獲取的可以關注我的頭條號並在後臺私信我:【測試】,即可免費獲取。


分享到:


相關文章: