解密!傳統測試 vs 大資料測試

测试猿温大大發表於2020-10-19

導語

小夥伴們對傳統測試已經非常熟悉了,從測試手段來區分:功能測試、效能測試、自動化測試、安全測試、介面測試就有多種。 那麼大資料測試到底測啥以及如何測,非常遺憾的告訴夥伴們,目前業界沒有通用的方法定義大資料測試,本篇借鑑傳統測試的思想跟大夥一起探討下大資料測試的範圍

目錄

  1. 傳統測試範圍的定義
  2. 大資料的功能性與易用性
  3. 大資料的可靠性與效率

1 傳統測試範疇的定義

ISO9126軟體質量模型標準定義了軟體評估的6大特性分別是:功能性、易用性、可靠性、效率性、可維護性、可移植性,也就意味著軟體測試基本上圍繞著這6個特性展開,詳情見: ISO9126軟體質量模型的六大特性

2 大資料的功能性與易用性

我們借鑑ISO9126軟體質量模型,看看大資料的功能性、易用性需考慮方面

2.1 功能性

說明:ISO9126 裡面指滿足需求文件和相關標準能力,分別從適合性、準確性、互操作性、保密安全性、功能的依從性去定義,好比測試一臺手機:確保它功能完整(能打電話、發簡訊、執行app、拍照..),滿足使用者日常的需求,並且符合互操作性(確保打電話的時能執行手機上的app),發出去的簡訊傳輸過程是通過加密、安全的,並且該手機的功能在國際上具備一定的規範一致性

對比:這裡我們將其進行遷移到資料測試上,例:公司通過爬蟲獲取到友商的一些資料,作為測試人員可以嘗試考慮這些方面:

2.2 資料全面性

質疑下拿到的爬蟲資料對應的友商是否全面,

  1. 除了友商A的資料應該獲取,友商B、C、D的資料是否有考慮
  2. 每個友商選取的對標門店是否具有代表性,需考慮

通常在需求評審階段提出

2.3 資料完整性

質疑拿到的資料是否完整,這裡完整指:

  1. 資料確保指定時間範圍內每天有資料,排除被風控了的情況
  2. 資料是否重複,例:同1條URL對應2條結果資料
  3. 資料預期與結果總條數一致

通常在etl測試階段考慮

2.4 資料合理性

質疑拿到的資料是否符合資料庫規定型別、以及是否出現出現異常值

  1. 欄位型別check,如對重要欄位型別check,例:int型下出現其他字元型別情況
  2. 欄位異常值check,例:null、空、或者另外一些約定異常值
  3. 欄位預設值一致性驗證check,例: 從A表同步到B表後,某欄位列舉值含義相同

etl測試階段 或者 資料應用層測試考慮

2.5 資料準確性

質疑拿到資料的結果表與資料來源頭表是否一致,可能源表經過A -> B -> C處理後得到結果表,所以需要驗證整個過程資料是否失真,確保資料的準確與一致

  1. 基於總數的驗證,即 A -> B -> C後總數一致,可能到C後有聚合的資料,視情況而定,即在A時有10萬條資料,到C階段理論也有10萬。
  2. 基於總數額的驗證,即 A -> B -> C後總額一致,這裡的總額可能是:金額、銷量等。 在etl測試階段 或者 資料應用層測試考慮

2.6 安全性驗證

對於某些敏感的資料往往需要考慮其安全性,可以是從獲取資料的方式,也可以是資料本身安全性上。

  1. 賬號的隔離,測評是否有必要採用賬號隔離訪問資料
  2. 基於對某些資料欄位,測評是否有必要對某些欄位進行加密考慮,例:身份證、家庭住址、金錢等方面的加密 在需求評審階段考慮

2.7 易用性驗證

確保資料獲取的過程順暢,如果資料需要通過很多命令執行並且連線多個環境才能獲取到,這樣的資料易用性則不強,以及每個指定的一定能被人所理解。

  1. 資料獲取的互動是否過於複雜
  2. 資料對應的指標能被人所理解,例:MAU-月活人數、DAU-日活人數

在需求評審階段研發設計階段考慮

3 大資料的可靠性與效率

同樣的當處理大資料的平臺出現不可預知的錯誤時,或者資料處理變慢時,我們得有一些處理方案讓其能短時間內恢復,或者即便恢復不了也有一些應急的方案,讓其不影響到整個鏈路的上下游,這裡其實就是對處理大資料的平臺可靠性與效率性的保證。

  1. 資料恢復性,當平臺出現異常時,可以有一些重試機制進行重試,確保系統短時間內能恢復。
  2. 資料容錯性,即便通過重試機制不能恢復時,需保證上游資料不能影響到下游的資料,可以有一些預設資料的預置,確保下游總能獲取到資料。
  3. 時間與資源,當平臺運算資源緊張任務繁重的時候,可能會出現長時間的等待,這時候除了需要跟研發一起優化SQL執行緒,還需要設計一些互動展示一些頁面給使用者,減少等待帶來的使用者體檢差的問題

4 大資料的可維護性與可移植性

可維護性指:資料可用且及時被維護,可移植性指:無論資料的遷入與遷出都不會影響到資料的使用

  1. 維護庫表之間關係,由於通常大資料隨著時間的推移資料庫表會越來越多,需要確保有地方能維護資料庫表之間的關係。

  2. 維護單表欄位含義,例:某天業務上新定義銷售型別,那麼需要在對應的表內註解出及時維護。

  3. 資料的遷入/遷出:確保資料遷入/遷出欄位不丟失以及資料完整性(參考2.3 資料完整性)

關注我的微信公眾號【資料猿溫大大】,這裡有更多關於資料測試的乾貨等著你~~

本文使用 mdnice 排版

相關文章