高級測試工程師必備的測試方法

對於一些功能測試,如果測試手段僅局限於黑盒,那麼情景中的bug就不會發現。但是情景中的測試方法也不是完全了解內層代碼結構發現的問題,不屬於白盒測試。那這種測試方法是什麼呢?這是一種介於黑盒和白盒之間的測試方法—灰盒測試。

一、概念

灰盒測試,是基於程序運行時刻的外部表現同時又結合程序內部邏輯結構來設計用例,執行程序並採集程序路徑執行信息和外部用戶介面結果的測試技術。測試工作中除了進行黑盒層面的測試之外,對於複雜的功能模塊進行實現層面了解,補充實現層面的可以測試的測試點,儘可能在測試廣度上和測試深度上進行覆蓋,我們稱之為灰盒測試。

二、黑盒測試、灰盒測試、白盒測試區別

1、黑盒和灰盒的區別:

如果某軟體包含多個模塊,使用黑盒測試時,只要關心整個軟體系統的邊界,無需關心軟體系統內部各個模塊之間如何協作。而如果使用灰盒測試,就需要關心模塊與模塊之間的交互。

2、白盒和灰盒的區別:

在灰盒測試中,還是無需關心模塊內部的實現細節。對於軟體系統的內部模塊,灰盒測試依然把它當成一個黑盒來看待。而白盒測試則不同,還需要再深入地了解內部模塊的實現細節和各個分支。

3、單元測試和灰盒的區別:

首先,在進行單元測試時,需要寫一些測試代碼(行話叫「樁代碼」,叫stub)。一般來說,測試代碼與被測試代碼採用同種語言(比如Java的單元測試通常也用Java來寫),且測試代碼和被測試代碼之間的耦合很緊密。因此,單元測試通常由開發人員來完成—測試人員的能力未必能勝任。

其次,單元測試的粒度會更細(會細到模塊內部的類一級、函數一級),而灰盒測試僅僅到模塊一級。

三、灰盒測試的優缺點

優點:

1、相對於黑盒測試,灰盒測試可以及早介入

2、灰盒測試有助於測試人員理解系統結構,及早發現需求或設計不詳細或不完整的問題,避免對測試進度造成影響

3、能夠保證設計的黑盒測試用例完整性,防止遺漏軟體的一些不常用的功能或功能組合

4、測試結果可以對應到程序內部路徑,便於bug的定位、分析和解決,有利於提升測試人員能力

5、相對於白盒能夠進行基於需求的覆蓋測試和基於程序路徑覆蓋的測試,但不需要花費大量精力寫專用代碼,速度比白盒快

缺點:

1、不適用於簡單的系統

2、對測試人員的要求比黑盒測試高

3、不如白盒測試深入

四、測試用例設計

從小編實際應用中看,灰盒測試就是產品實現層面的測試,需要在編寫測試用例前了解到功能的實現邏輯,要知道特定條件下的數據輸入輸出情況,需要知道特定條件下數據發送和返回情況,從而在這些情況下設計測試用例,並且執行,從較黑盒深入層次發現問題,舉例說明:一些介面的測試、與服務端交互請求測試、資料庫層面的測試、容錯測試等。本文以對伺服器返回的json格式數據容錯測試為例。

JSON 結構有兩種,JSON 簡單說就是 java 中的字典和數組,所以這兩種結構就是字典和數組兩種結構,通過這兩種結構可以表示各種複雜的結構。

Testin雲測「一站式應用雲測試服務」平台,為應用(Web、移動網頁、原生移動應用、H5、公眾號、小程序)、移動遊戲、VR/AR、可穿戴、人工智慧、智能家居、智能駕駛、IoT物聯網和工業APP開發者提供必需的一站式應用測試服務和質量保障。

免費測試培訓課

Testin 測試課堂是專門為軟體測試從業者打造的一個免費學習和提升的在線課堂。培訓內容從初級到高級,培訓類型涵蓋視頻和在線直播,全部名師授課,學員免費聽課。火熱課程報名中:《敏捷下測試的定位和發展》《測試人員的最佳學習成長路徑》《功能測試培訓精品班》《軟體開發流程詳解》等20+課程等你報名。

免費測試服務

100款安卓兼容測試

120分鐘自動化測試

120分鐘遠程真機體驗時長

自動化安全測試

15位測試專家進行BUG探索測試

免費電子書

《如何用最少的人員批量測試手機應用?》(上下兩冊)

《2017-2018年行業功能性測試報告》

推薦閱讀:

站在新手的角度:淺談軟體測試
Selenium 2.0與Selenum 3.0介紹
黑盒測試
HTTP協議中的COOKIE機制簡單理解
實戰篇 近期線上BUG分析及解決方案總結

TAG:測試工程師 | 軟體測試 |