黑盒測試如何確保需求覆蓋度

2021-04-30 00:52:20 字數 2023 閱讀 3194

黑盒測試如何確保需求的覆蓋度?首先我們要明確這裡提到的需求到底是什麼。在軟體研發活動中,涉及到的需求有使用者需求、系統需求、測試需求等。

使用者需求:描述了使用者使用產品必須要完成的任務,在軟體研發活動中,屬於最基本的需求。

系統需求:描述了軟體設計人員、程式設計人員必須要完成的任務。系統分析員通過分析使用者需求,把使用者的需求轉變成研發設計人員看得懂的系統需求。

測試需求:描述了軟體測試人員必須要完成的任務。資深測試工程師通過分析系統需求,產生測試需求,作為測試活動的指導。

寫到這裡,我猜想命題人的本意應該指的是上面提到的系統需求,但我的觀點認為,黑盒測試應該確保的是測試需求的覆蓋度,系統需求的覆蓋度應該由測試需求確保。

具體到這個題目來講,只要涉及到度量,都會需要規範。要度量需求,首先就必須確保需求本身是可度量的,這就需要需求必須明確、規範。

使用者需求由終端使用者提出,通常比較籠統,例如使用者可能會這樣描述其需求,

ur1 「能夠上網繳**費」

系統分析員的工作就是分析使用者需求,把使用者的需求轉換成研發設計人員能夠理解的系統需求。系統需求從技術層面上對使用者需求進行分析,把使用者的需求分解成若干個功能點,例如

sr1 登入繳費系統

需要加密傳輸,密碼不少於6位等

sr2 輸入**號碼

需要驗證號碼的正確性

sr3 查詢特定的**費

查詢結果中要包含各類明細

sr4 繳費

連線網上銀行頁面,要根據不同商業銀行的網銀,做不同的判斷;

繳費結果一定要明確顯示

在測試小組參和後,資深測試工程師要根據系統需求,編寫相應的使用者需求。使用者需求一定要確保對系統需求的100%覆蓋,即系統需求的任何功能點在使用者需求中必須有所反映。例如

tr1-1 登入成功

tr1-2 登入失敗

上述的tr1-1到tr1-2都對應於系統需求的sr1(功能點)。

測試工程師要編寫測試用例,依據是測試需求,測試用例要確保對測試需求的100%覆蓋,即測試需求的任何檢查點在測試用例中必須有所提現。例如

tcf1-1-1

輸入使用者名稱huior,對應的密碼987654,連同驗證碼

tcf1-2-1

輸入不存在的使用者名稱huior_error,密碼123456,連同驗證碼

預期結果:提示「使用者名稱不存在」的錯誤,返回登入介面

tcf1-2-2

輸入正確的使用者名稱huior,密碼 123456,連同驗證碼

預期結果:提示「密碼錯誤」,返回登入介面

tcf1-2-3

輸入正確的使用者名稱huior,密碼 987654,連同錯誤的驗證碼

預期結果:提示「驗證碼錯誤」,返回登入介面

測試員在執行測試用例的過程中,會發現bug,bug能夠和測試用例對應。這樣的話,軟體研發的各個過程都能夠對應起來。

有了這樣的對應關係,黑盒測試對於需求的覆蓋度就會很容易度量。例如,測試員只執行了用例tcf1-1-1,只覆蓋了tr1-1需求,假設系統需求中只定義了2個功能點,則

測試需求的覆蓋度 = 1 / 2 * 100% = 50%

實現一般情況下,要成功的實施以上的過程,單單靠手工實現起來很難。

現在市場上已有比較專業的工具來協助實現以上過程。我原來聽過一些產品的介紹,要完全實現以上過程,需要幾個工具結合起來使用,例如doors + td配合使用,就能夠把以上四個過程對應起來。

不足白盒測試的覆蓋率本身有一些不足,例如不能發現和資料相關的錯誤。

int test(int a)

int d = 10 / a;

return d;

乙個測試用例(例如輸入10)就能夠讓邏輯覆蓋率達到100%,但很明顯,該100%並不能說明測試已很充分。

同樣,黑盒測試對於需求的覆蓋度量只能作為一種參考。例如,以上的例子中,假如測試員執行了用例tcf1-1-1和tcf1-2-1 ,則覆蓋了tr1-1和tr1-2的需求

測試需求的覆蓋度 = 2/2 *100% = 100%

很顯然,雖然需求已全部覆蓋,但測試還不充分,還遠不能結束。

所以我的結論是黑盒測試對於需求的覆蓋度量只能作為一種參考,不能以此來衡量測試的優劣。以上文字僅代表個人觀點。

黑盒測試和白盒測試,覆蓋率的測試

黑盒測試是一種軟體測試方法,它檢查應用程式的功能,而不檢查其內部結構或工作方式。黑盒測試試圖找出以下類別的錯誤 1 功能不正確或缺失,2 介面錯誤,3 資料結構或外部資料庫訪問錯誤 4 行為或效能錯誤 5 初始化和終止錯誤 測試用例通常來自軟體的外部描述,包括規範 需求和設計引數。雖然所使用的測試本...

如何挖掘需求,覆蓋整個系統

什麼架構,就是搭建業務到 實現之間的橋梁。關於架構的第一步,就是需求。如何整理需求,才能覆蓋整個系統,才能沒有太重要的遺漏,很多人無從下手。方法是關鍵。如果你的需求只是乙個一維需求列表,那麼你就徹底失敗了 針對大型系統而言 首先,需求是分層次的。如果不分層次,有很多需求會遺漏,而且也很難發現需求間約...

軟體測試黑盒測試實驗心得 如何學習軟體測試

1.什麼是軟體測試 軟體測試是在測試中識別軟體產品和服務的準確性和質量的過程。顯然,它的誕生是為了驗證產品是否滿足客戶的特定先決條件 需求和需求。在一天的工作結束前,確定特定的最終目標並測試執行乙個框架或應用程式,以指出其錯誤 錯誤或缺陷。測試的職責是找到bug並指出問題問題,並給dev 開發人員 ...