導讀
當前,在計算機主機的應用處理模式中,批量處理作為一種事后數據處理方式,一直是一種簡單而又非常重要的處理方式,尤其是對于海量數據處理,批量方式就更能顯示其高效的處理效果。隨著批量交易變得越來越復雜,以及對批量處理時效性的要求,迫切需要有一種有效的、快速的批量作業測試方式,以實現對批量處理的自動化測試。
![]()
批量處理
批量處理是指將數據以按批處理的模式完成大量的數據訪問、計算、分類、分析、匯總的過程,最終輸出大量的營業分析報表,表現出數據訪問量大,計算量大,流程復雜等特性。
一般而言,批量處理通過建立作業計劃模板,以人工干預或系統自動調起程序的方式執行,模板中包含若干根據業務邏輯處理先后順序進行排列的節點,節點可以調起對應的批量交易程序,對數據進行加工處理并輸出結果。
目前銀行大量數據處理都是以批量形式執行,涵蓋了會計核算,對公業務,個人業務,信用卡業務,客戶信息業務,數據處理業務等多個業務條線,涉及到賬務處理,報表統計,數據處理消費等多個核心功能,如何有效地檢查、驗證和確保批量業務的正確性,成為銀行測試部門的關鍵任務。
批量交易測試的共性關注點
![]()
盡管銀行批量業務種類繁多,但其在測試過程中關注點基本有以下幾個方面:
1、關注批量作業鏈配置,比如:配置模板正確性,調度計劃是否符合預期,代理能否正常調起程序,負載均衡策略是否生效等。
2、批量程序邏輯加工正確性,包含加工邏輯是否正確,數據是否有遺漏,是否有重復,入庫表結構,字段名,特殊字符,超長字符能否正常入庫等。
3、程序本身語法及格式正確性,如是否包含明文密碼,是否包含異常處理,日志定級是否正確,關鍵步驟是否有日志記錄,程序語法是否規范,遇到特殊參數能否正確處理等。
4、性能效率是否符合要求,批量交易常常環環相扣,上游加工結果往往是下游加工的輸入,因此要求批量腳本須在一定的時間內完成。
手工批量測試方式
基于以上測試點,手工進行測試的一般步驟為:根據需求設計測試用例,進行測試數據準備插入正反向測試數據,執行批量程序,查詢數據庫,根據預期結果編寫檢查語句核對生成數據。
![]()
但手工測試常常存在以下局限:
測試效率低。實際測試過程中需要申請各類權限而后連接加載機,連接數據庫。以手工方式逐條重復操作,測試效率低,無法有效支持有剛性時間要求的回歸測試
測試資產無法有效積累。測試過程中使用的SQL語句,編寫的測試程序等無法結構化管理復用
批量測試對測試人員要求高。針對邏輯復雜,數據來源多,數據量大的批量程序,編寫核對SQL語句或程序難度大
難以進行質量監控。批量項目協辦眾多,上下游邏輯耦合緊密,手工測試導致測試分布零散,無法進行有效監控
批量測試平臺初探
針對以上問題我們團隊開發了批量測試平臺,實現了從數據準備->批量執行->結果校驗的全流程自動化測試。
平臺核心功能有:
1.通過批量平臺串聯整個測試流程,進行自動化測試,為回歸測試提供支持。
2.將錄入的測試資產管理起來,方便后續復用借鑒
3.通過預設的一系列檢查規則:表結構檢查、數據量檢查、數據空值檢查、數據合法性檢查、數據正確性檢查,降低了測試人員進行數據檢查的門檻,同時支持數據庫間,文件與數據庫,文件間的大數據量對比。
4.將多期測試數據保存,可從項目、系統等多維度進行質量分析。
平臺測試的基本流程:
基本流程
![]()
平臺主要分為三大模塊,配置管理、執行管理、統計分析,配置管理主要為錄入基本信息,后續平臺將利用這些信息連接數據庫和加載機,接著錄入系統信息和項目信息,這步是方便分別從系統及項目維度對測試資產進行分類。
![]()
配置數據庫
執行管理是配置測試策略的核心,如何準備測試數據,執行批量程序的具體命令,配置執行結果的檢查方法,這里我們預設了一些常見的檢查規則,支持基本的結果檢查,比如數據量進行對比,數據字段類型是否符合預期,某一字段是否在預期的范圍內,兩個表或表與文件的數據是否一致等。 通過這些預先定義良好的對比規則,降低了編寫檢查SQL語句的門檻,避免了繁復的人工檢查過程。
![]()
配置測試文件
批次管理是對任務進行編排,在這里我們以任務作為執行的最小單元,一個批次下可以包含多個任務,因為在實際測試過程中,一個項目可能包含多個批量測試任務,這些測試任務的執行環境及系統各不相同但是都隸屬于同一個項目,所以這里使用批次的概念編排多個任務。
![]()
批次管理
執行歷史這里可以查看結果報告,我們將excel當中配置的各個sheet頁在這里按條目一一對應,并且可以看到具體的執行日志,結果錯誤的語句,并抽取一定量的錯誤數據以供缺陷分析。
![]()
測試結果
統計分析模塊目前還未完成開發,未來將根據使用情況,積累到足夠數據后,針對數據采集情況采用不同報表和統計方式,以期能通過數據分析和報表呈現的方式對批量程序質量進行持續跟蹤,進而提高測試質量。
總結
批量測試無前臺頁面,邏輯關系復雜,覆蓋業務面眾多,數據量大等特點,導致批量測試的難度很大。平臺的產生縱然能解決自動化和降低部分檢查難度,但其造數和測試的復雜性仍舊存在,導致平臺配置仍然復雜。如荀子所言,“跬步不休,跛鱉千里;累積不綴,可成丘阜”,下一步的方向是將更多新技術與項目實際相結合,步步拆解其復雜性,進一步提高批量測試效率。
最后:在我的V :atstudy-js,可以免費領取一份10G軟件測試工程師面試寶典文檔資料。以及相對應的視頻學習教程免費分享!其中包括了有基礎知識、Linux必備、Shell、互聯網程序原理、Mysql數據庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續集成、測試架構開發測試框架、性能測試、安全測試等。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.