后臺數據邏輯的測試分析方法
一. 關于后臺數據邏輯的測試分析
(一)基于業務場景的分析
1. 背景分析
用戶角色:數據的使用者,屬于什么崗位,什么角色,關注點是什么。
應用場景:數據在哪些前端業務系統中使用,業務關系是怎樣的。
使用目的:使用這些數據的目的是什么,能夠為業務帶來怎樣的效益。
2. 業務場景分解
統計維度:針對每個維度的粒度,層次和成員等。
統計口徑:針對哪個時間段的數據進行統計
統計指標:每個指標的定義及情景細分
計算邏輯:維度和指標的計算邏輯
更新頻率:數據更新的頻率。
3. 關于歷史數據的考量
比如新增字段,歷史數據是否需要補數。
(二)基于程序設計的分析
1. 存儲過程
所在包名
調用方式:通常是定時程序,數據庫job或java quartz
功能說明:初始化邏輯和增量更新邏輯。
改動方式:新增或修改
入參出參
目標表
2. 數據表
結果表:表結構是否滿足業務統計要求
中間表:a.用途;b.更新或刪除的機制
源表:a.源數據是否能滿足需求;b.源數據的分布;c.源表之間的關聯關系
3. Java邏輯
接口類型:通常是查詢接口
接口名稱
改動方式:新增或修改
入參返回
實現邏輯
4. 存儲過程和java接口的調用時機
存儲過程的調用順序和執行時間。
Java接口的調用時機和觸發條件。
5. 初始化數據,增量更新數據,實時處理數據
初始化數據:對當前所有數據的處理結果。
增量更新數據:對每日變化數據的處理結果。
實時處理數據:業務系統產生業務數據的同時進行數據處理的結果。
注意:除了測試初始化數據以外,還需要模擬增量更新數據的處理和需要實時處理的數據。
(三)基于結果表的或基于檢查點的分析
1. 列數據(字段):
檢查點:
每個字段的取值賦值是否正確;
哪些場景下需要更新字段值,程序是否都有考慮;
增量跑的時候,是否會錯誤的更新不該更新的數據;
對列值進行分類,觀察是否有特殊數據,給予特別關注。
2. 行數據(記錄):
檢查點:分類統計記錄數,分析合理性。
(四)基于邊界條件和邊界數據的分析
這里只關注系統測試層面的邊界條件和邊界數據,對于代碼層面的邊界值測試建議在單元測試階段完成,成本更低。
1. 邊界條件
需要測試上邊界和下邊界,以及超越上下邊界的情況。
在包含邊界條件的程序中可能開始一直是大于號判斷,到了下邊界可能會忘了改成小于號判斷。
2. 邊界數據
對于值的范圍,值的個數,有序集合,需要選取正好等于,剛剛大于,剛剛小于,或者有序集合的第一個和最后一個。
二. 關于后臺數據邏輯的測試方法
(一)常規測試方法
1. 編寫測試數據準備腳本(按維度)
查詢出基于測試分析得到的各種測試數據類型
2. 編寫測試數據驗證腳本(按指標)
按指標計算邏輯直接查詢得到或間接得到一個預期的結果值。
3. 查結果表
根據測試數據ID查結果表,得到一個實際的結果值。
4. 比較預期結果值和實際結果值
(二)基于存儲過程的測試方法
是基于常規測試方法的分析基礎上,將SQL打包成procedure,能夠更快速的執行,并將測試結果記錄到測試表中。
1. 拆分,從復雜到簡單:
將復雜的邏輯拆分成若干個簡單片段,保證每個片段的數值或屬性值容易得到。
2. 建測試表:
在測試環境中,構建一張測試數據表,除ID外,為每個片段設置一個或幾個表字段,用于存儲每個片段得到的中間值。
3. 編寫測試存儲過程:
按照Step 1拆分的片段邏輯,直接使用數據庫存儲過程實現整個過程的統計分析,即寫一個測試用的存儲過程。
4. 執行測試存儲過程和程序代碼:
測試執行時,先執行被測功能代碼邏輯,再基于同一個數據源執行存儲過程的測試用例,最后對比測試表最終計算結果和被測功能代碼邏輯的計算結果。
5.分析比較結果并定位問題:
如果結果不一致,可根據測試數據表存儲的中間值,方便的進行手工核對,定位出錯點是測試用例還是代碼邏輯。
若用例出錯,及時修正測試用例;若測試用例沒有出錯,則可以根據計算過程的中間值,結合debug工具,定位代碼邏輯的bug點
好處:方便進行批量測試。
(三)基于探索式的隨機測試方法
1. 基于結果表,從各種維度去查詢數據,觀察是否有可疑的數據
2. 基于結果表,用明顯不合理的條件從反向去驗證是否有異常數據存在
3. 基于源表,查詢關鍵字段的數據狀態。
觀察是否有異常數據,對異常數據是否需要清洗機制。
4. 基于數據特點,分析是否可能有多對多的表關聯情況,可能導致數據翻倍
需要分析出存儲過程中涉及到哪些源表,源表之間的關系和數據特點
(四)基于生產模擬的用戶驗收式測試方法
從業務系統前臺操作產生業務數據,通過真實模擬源數據的產生,檢查結果表的統計數據是否正確。
最后,還是祝福我的小寶貝聰明勇敢,善良快樂。祝福我的家人們平平安安,健健康康,真的好愛你們。
版權聲明:本文出自 暖洋洋 的51Testing軟件測試博客:http://www.51testing.com/?15019819
原創作品,轉載時請務必以超鏈接形式標明本文原始出處、作者信息和本聲明,否則將追究法律責任。