以資料思維和技能提升資料應用測試實踐

2023-05-12 12:00:56

作者:京東零售 周雪梅

以資料思維和技能提高測試覆蓋率和效率。資料應用測試,功能測試主要聚焦在資料流向(輸入和輸出)。

一、背景

資料質量組當前主要承接黃金眼和商智中的供應鏈模組,商智包括PC(品牌版:商家端,運營端)和M端。各模組的產品特徵和測試範圍和策略的通用模式如下圖所示,圖中灰色部分是待建設中。

從圖中可見,產品的資料流向主要包括業務資料、模型資料、後臺應用、前臺應用四個模組,更細一點資料流向包括以下幾步

  • 應用離線(T+1)和實時(大促控制檯當日和實時庫存)資料加工到app層表中,然後推到ck中;
  • 使用者在前臺操作確定查詢條件後查詢,前臺會將該查詢請求到後臺,後臺解析出指標維度,查詢ck後同步指標結果給前臺,然後給使用者展示。

二、測試策略

測試策略,首先聚焦在從0到1的測試場景,後面會針對一些特殊場景進行單獨的介紹。

1、模型資料

模型資料的測試前提是瞭解到資料安全和資料時效(特別是deadline時間),策略主要包括探測、功能測試、監控。

  • 探測主要採用自動化的方式,按模式校驗輸出html的報告。當前完成了分割區連續性探測、NULL佔比、統計變數、列舉欄位的分佈三種模式,後續計劃加上環比,以及包含部門、金額、數量等供應鏈涉及的關鍵字的特殊校驗;
  • 1)分割區連續性探測識別:分割區總數、結束和開始時間的天數差距去識別分割區型別,來判斷分割區是否連續

  • 2)最近三個dt的總數環比(環比差距0.1會自動標紅)

  • 3)最近三個dt的NULL佔比和環比(NULL環比差距0.1會自動標紅)

  • 4)最近三個dt的統計值情況

  • 功能測試主要採用手工和自動化的方式,自動化主要是針對通用的資料屬性測試,手工主要是針對業務屬性和非通用資料屬性的測試。

  • 監控待建設,後續的計劃是把探測和功能測試沉澱的自動化沉澱為任務進行頻次監控

2、後臺測試

後臺測試的測試範圍主要集中在功能(指標維度的準確性)、效能和安全。

  • 功能(指標維度的準確性),採用手工和自動化迴歸的方式進行。自動化是依託九數和deeptest平臺建設的,流水線的方式自動生成deeptest支援的用例進行迴歸測試。未來規劃是提升介面驗證的覆蓋率和適應場景。

  • 安全,把安全的測試點建設到後臺的功能測試中,許可權內可查非許可權內不可查。
  • 效能

3、前臺測試

前臺測試聚焦在資料的輸入輸出和其他。輸入指前臺的請求入參是否準確;輸出是指前臺樣式展示和資料取值(即後臺介面返回的key和前臺展示的對映關係)。其他是指頁面相容性和資源許可權等。

1)前臺輸入測試,現狀是採用手工+錄製識別的方式驗證請求入參是否準確。錄製識別的方式採用chrome外掛MeterSphere JMX Recorder錄製前臺請求並匯出為jmx檔案,錄製的方式建議每次改變一個查詢條件觸發後臺查詢。對匯出的jmx檔案進行識別轉換為df,利用視窗函數去驗證這一請求和上一次請求的不同之處是否只有1處。下面兩圖分別為檔案解析後的df物件和檢測入參變化的結果(rank非1的變化數大於等於2就需要細化檢視是否有問題,其中變化項change_value,變化數change_n,請求的順序rank),執行命令#python test_web_input.py jmx檔案(autotest-data/公共/前端)

2)前臺輸出測試範圍主要包括頁面樣式展示、資料對映等。當前在持續建設用例模板。

  • 樣式展示主要是文字和數值的展示樣式,主要採用人工驗證沉澱期望結果,然後自動化迴歸,採用的cypress(支援介面mock)視覺化的測試。當前的建設是梳理包括的資料樣式的模式,通過mock的方式快速返回樣式下的多場景,如下圖可見,介面為輸入項,選擇介面中包括的樣式範圍,輸出需要多少種測試場景能覆蓋所有的樣式場景。

  • 資料對映是後臺介面中資料和前臺展示資料的對映關係正確,主要採用人工驗證沉澱期望結果,然後自動化迴歸,採用的cypress視覺化的測試。

3)前臺的其它測試,相容和許可權

  • 相容是瀏覽器或者手機版本的相容性測試;
  • 許可權包括選單和資料許可權

4、技改

資料應用的技改指數值未變,架構升級。

4.1資料技改

測試方案是新表和老表資料對比結果是否一致,採用的方式有兩種,1)hivesql的join;2)差集為空

4.2後臺技改

測試方案是新老應用的介面資料是否一致,採用的方式是介面測試。選擇入參列表,迴圈遍歷新老介面,對介面返回轉換為df,df對比是否一致

三、測試沉澱

自動化沉澱到中coding中,裡面包含了資料、後臺和前臺三個模組。