自動化測試難點解析:如何降低誤報率?
隨著自動化測試的深入推進,透過自動化測試執行的案例數量越來越多,執行錯誤全部由人工分析的方式已經不能滿足介面自動化測試結果的分析需求。本文介紹一種基於缺陷知識庫的介面自動化測試結果分析方法,透過介面測試結果模型化方法和基於錯誤碼庫、非缺陷知識庫的錯誤歸類分析方法,輔助測試人員高效實施大規模、多系統的介面自動化測試結果分析處理,降低自動化測試的誤報率。加我VX:atstudy-js 回覆“測試”,進入 自動化測試學習交流群,內含直播課+實戰+面試資料~~
一、介面測試結果模型化
首先,我們需要將介面自動化測試的結果模型化,模型資訊包括結果標誌、錯誤碼、錯誤資訊和返回資訊。在介面測試的過程中,從通訊級到應用級提取該模型資料,方法如下:
1、在平臺執行介面測試的過程中,若出現任何程式未處理的內部異常,則結果標誌為I,此時錯誤碼、錯誤資訊和返回資訊均為空。
2、在常見的http通訊、tcp通訊、webservice通訊等通訊方法中,若無法正常通訊並獲得預期的返回報文,則認為在通訊級發生異常,結果標誌為U,此時錯誤碼、錯誤資訊均為空,通訊異常的返回資訊儲存在返回報文中。
3、在能夠正常獲取返回報文的情況下,被測系統往往會返回應用級處理是否正確的資訊。若應用級處理錯誤,則還會返回錯誤碼和錯誤資訊。
(1)若應用級處理正確,則結果標誌為N,此時錯誤碼、錯誤資訊均為空,返回資訊儲存返回報文。
(2)若應用級處理錯誤,則結果標誌為E,錯誤碼、錯誤資訊儲存在返回報文中,返回資訊儲存在返回報文中。
(3)為保障資金安全,重要金融交易一般存在雙人複核或者遠端授權的過程。如缺乏授權資訊,被測系統將返回“需要授權”的資訊,則結果標誌為A,錯誤碼、錯誤資訊均為空,返回資訊儲存在返回報文中。
4、在實際實施組織級介面測試覆蓋時,一些存量系統未在公有域特定欄位返回應用級處理結果。此時,自動化測試平臺將進行通訊級結果判斷,若正常通訊並獲得預期的返回報文,則結果標誌為N,此時錯誤碼、錯誤資訊均為空,返回資訊儲存在返回報文中。
二、基於錯誤碼庫、非缺陷知識庫的錯誤歸類分析方法
基於介面測試結果的模型化資料,可以透過建立錯誤碼庫和非缺陷知識庫,對大規模介面迴歸測試的結果進一步分類、分析。對於被測應用系統,可以由使用者在自動化測試平臺建立錯誤碼庫,對標誌為E的介面測試結果,透過以下三種匹配形式進行細分:
1、精確匹配:對於有固定錯誤碼和錯誤資訊的應用系統,可以採用精準匹配形式,完成錯誤碼庫與介面測試結果模型的匹配。
2、錯誤碼模糊匹配:適用於能夠從固定欄位輸出錯誤資訊,但沒有固定欄位返回錯誤碼或者錯誤碼定義不規範(如錯誤碼是中文資訊)的被測系統。此類系統錯誤碼和錯誤資訊由測試人員自行定義,每類錯誤碼需設計匹配表示式,透過正則匹配的方式實現錯誤歸類。
3、返回報文模糊匹配:適用於返回錯誤資訊無固定欄位的被測系統。此類系統錯誤碼和錯誤資訊由測試人員自行定義,每類錯誤碼也需對應設計對應的匹配表示式。
在介面測試中,由於被測系統配置錯誤、被測系統鋪底資料異常等問題而出現的錯誤並非本次測試結果中需重點關注的內容。對於此類錯誤,將錯誤碼庫中的對應錯誤條目增加標誌位,即可納入非缺陷知識庫。
三、介面測試結果歸類分析方法
基於介面測試結果模型化和錯誤碼庫、非缺陷知識庫,將介面測試的結果分類分析,輸出概要表和錯誤分類表。
概要表如下:
執行錯誤的交易將進一步處理為錯誤明細表,如下:
利用該分析結果,測試人員可重點關注結果型別為“執行錯誤”的分類,確認為缺陷的應提交給開發人員修復。對於“執行錯誤非缺陷”的分類,則往往不是被測系統自身缺陷導致的報錯。透過這種方法,為測試人員提供“智慧”分析結果,輔助測試人員快速完成對自動化測試結果的判斷和分析。
四、總結
本方法將不同系統、不同通訊方式、不同報文協議的介面測試結果標準化為的統一資料模型,並依據組織級錯誤碼庫和非缺陷知識庫對標準化的測試結果進行分類分析,大大降低測試結果的人工分析工作量,使得結果分析處理不再是介面自動化測試大規模開展的瓶頸。在實際應用過程中,本方法取得了良好的效果,在較大幅度上降低了介面自動化測試的誤報率。加我VX:atstudy-js 回覆“測試”,進入 自動化測試學習交流群,內含直播課+實戰+面試資料~~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2795599/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何制定介面自動化測試的覆蓋率?
- 自動化測試面試點面試
- 自動化測試系列 —— UI自動化測試UI
- 自動化測試如何管理測試資料
- 如何學習自動化測試?從手工測試到自動化測試的過程…
- 自動化測試落地為什麼那麼難
- 【自動化測試入門】自動化測試思維
- 如何實現高度自動化測試?
- PostgreSQL11preview-bloomfilter誤報率評估測試及如何降低誤報-暨bloomfilter應用於HEAP與INDEX的一致性檢測SQLViewOOMFilterIndex
- Jenkins實現iOS自動化測試及覆蓋率報告輸出JenkinsiOS
- 軟體測試、自動化測試極容易產生的誤區
- 軟體測試:自動化測試
- 自動化測試可替代手動測試?軟體測試這個誤區你有嗎?
- 介面自動化使用requests生成測試報告測試報告
- 自動化測試之控制元件點選控制元件
- 自動化裝置測試與自動化測試的區別
- Jmeter 介面自動化連載 (13) - 自動生成測試報告JMeter測試報告
- 如何用Postman做介面自動化測試Postman
- 自動化測試理解
- 自動化測試思路
- airTest自動化測試AI
- 介面自動化測試
- API自動化測試API
- 自動化測試框架框架
- 自動化元件測試元件
- [android]android自動化測試十一之程式碼覆蓋率報告EMMAAndroid
- 測試開發之自動化篇-自動化測試框架設計框架
- 2023年好用的自動化測試框架有哪些?如何提高自動化測試效果?框架
- 手工測試和自動化測試 BattleBAT
- 自動化測試系列(三)|UI測試UI
- 小程式自動化測試--測試3
- Junit測試Android自動化測試Android
- web自動化測試框架-06 如何快速編寫自動化指令碼Web框架指令碼
- 如何利用tox打造自動自動化測試框架,看完就懂框架
- 新手如何開始學習自動化測試?
- 如何從0開始做自動化測試?
- Robot Framework自動化測試框架核心指南-如何做好自動化測試平臺框架的設計Framework框架
- 淺談自動化測試