1. 程式人生 > >測試人員代碼走查基礎要點

測試人員代碼走查基礎要點

異常 業務邏輯 類型 找到 錯誤 都沒有 發生 數據庫連接 有效

測試人員代碼走查基礎要點  代碼走查,是測試人員了解代碼邏輯,進行測試設計的重要環節。並且有很多bug並非需要到運行程序進行測試才能發現。通過合理的代碼走查方法能提前發現相當多的BUG。除常見的業務邏輯與程序邏輯不符外,本文收集了在過往工作中的經常能發現BUG的走查要點,以供參考。   走查要點:一段代碼存在多個副本   [釋義]   相同的代碼段,在程序的不同地方復制和粘貼。   甚至同一項目,復制出多個副本。   [問題表現]   修改好的bug,一直反復出現。   由於存在多個副本,如果代碼段中有bug,就需要修復多個副本。其修復難點在於:如何確定找到所有的代碼副本。如果無法確定修復了所有副本,極易導致漏測。看似減輕工作的復制粘貼給後期維護帶來了極大工作量和風險。   走查要點:初始化對象或返回值為空
  [釋義]   在實例化對象時(例如,從數據庫中取出一條訂單數據,實例化一個訂單對象),某些字段字段為空。而後面定邏輯需要使用這個字段時,沒有進行判空。或者在一些遠程調用過程中,返回的對象有可能是空,或者某些字段為空,在後面的使用中,沒有判空。   [問題表現]   空指針異常NullPointerException   走查要點:數據定義被破壞   [釋義]   在處理各種數據時,由於某些數據的定義(類型、長度、必填、範圍及其他性質)被破壞,例如,某接口需要接受三個都為必填項的參數,由於未對是否必填進行校驗,導致數據庫中的數據與預期的定義不符。應盡早檢查數據的定義。   [問題表現]   代碼運行好好的,突然就發生一些問題,之後又沒問題了。完整的數據任務都沒有問題,只有當程序運行到不完整數據時,才會報錯。   走查要點:資源(內存、文件或數據庫連接)未被正確釋放
  [釋義]   程序的一些執行路徑沒有完成它們應該做的工作,或者持有不再使用的對象。   [問題表現]   資源未能正常釋放,導致連接被用完、文件打開過多、FGC   走查要點:接口定義不一致   [釋義]   接口定義與實現不一致,導致調用接口出錯。   [問題表現]   當使用某個接口時,處理結果與接口定義的結果不一致,甚至直接報錯異常。   走查要點:消息隊列能否補發消息、對補發消息的處理   [釋義]   生產者發出消息時發生異常,導致消費者無消息可用。需要能夠補發消息。而消費者在處理消息時(或者回調),是否能處理重復的消息(重復的回調通知)。特別是在多線程的情況下,對數據的修改,需要對線程進行分析。   [問題表現]   消費者端無響應   少數數據處理出錯,而大部分都正常。   走查要點:不恰當的日誌
  [釋義]   日誌中的敏感信息:卡號、手機號、密碼、cvv、有效期等   關鍵的操作步驟沒有日誌(修改狀態,異常報錯)   日誌量過大,打印無效日誌,導致無法查問題。   [問題表現]   泄漏用戶信息   無法查錯   走查要點:查詢SQL的底線   [釋義]   查詢的sql語句,需要有條件限制,不能無條件的查詢數據庫。常見的約束:時間範圍,數據量限制。   [問題表現]   查詢出的大數據量的結果集,導致數據庫和應用的性能問題。   走查要點:緩存   [釋義]   (1)集中緩存,還是分布式緩存   (2)分布式緩存如何保證緩存間的一致性,不一致時,如何影響流程。   (3)緩存如何與數據庫的數據保持一致性,不一致時,如何影響流程。   (4)如果緩存失效,如何影響流程   [問題表現]   修改了配置,但有的服務器更新了,有的沒更新。   集中式緩存服務掛了,沒有備份,直接查數據庫,導致數據庫壓力過大。   走查要點:系統間調用的保護   [釋義]   同步調用外部系統,必須有超時時間的設置,防止線程池漲滿影響其他業務。考慮用異步調用替代同步調用。   [問題表現]   由於被調用系統的性能瓶頸,導致調用系統的響應也下降。   走查要點:異常處理   [釋義]   異常是否得到明確的定義   是否有未捕獲到異常   捕獲異常後,是否有合適的處理,後續代碼是否能正常執行   [問題表現]   異常未能正確定義,導致問題無法快速定位   未捕獲異常,導致信息泄漏、系統處理異常   未能正確處理異常,導致後續流程錯誤 註明:以上內容摘自網絡

測試人員代碼走查基礎要點