后台数据逻辑的测试分析方法
生活随笔
收集整理的這篇文章主要介紹了
后台数据逻辑的测试分析方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一. ? ?關于后臺數據邏輯的測試分析 (一)基于業務場景的分析 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 原創作品,轉載時請務必以超鏈接形式標明本文原始出處、作者信息和本聲明,否則將追究法律責任。
最新內容請見作者的GitHub頁:http://qaseven.github.io/
(三)基于結果表的或基于檢查點的分析 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 原創作品,轉載時請務必以超鏈接形式標明本文原始出處、作者信息和本聲明,否則將追究法律責任。
最新內容請見作者的GitHub頁:http://qaseven.github.io/
總結
以上是生活随笔為你收集整理的后台数据逻辑的测试分析方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GPU加速在前端的应用
- 下一篇: 消费者信任缺失,拼多多解决不了的问题其他