qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          后臺數據邏輯的測試分析方法

           一.    關于后臺數據邏輯的測試分析
            (一)基于業務場景的分析
            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
          原創作品,轉載時請務必以超鏈接形式標明本文原始出處、作者信息和本聲明,否則將追究法律責任。

          posted on 2014-04-29 11:01 順其自然EVO 閱讀(1528) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2014年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 西峡县| 海宁市| 佛教| 东宁县| 武宁县| 新宾| 连城县| 宣汉县| 阳原县| 武安市| 河间市| 广平县| 基隆市| 临猗县| 合作市| 哈巴河县| 夏河县| 定边县| 台前县| 灌南县| 玉龙| 随州市| 东光县| 德保县| 崇礼县| 兴宁市| 卓资县| 营山县| 平乡县| 凤山县| 朝阳区| 汤原县| 隆昌县| 通渭县| 井陉县| 洪江市| 伽师县| 化隆| 清河县| 乐东| 神木县|