如何從測試環(huán)境著手提高測試覆蓋率

目錄:

一、?被測對象模型分析?

二、被測對象的接口分析?

三、測試環(huán)境受限原因分析?

四、如何進行更全面的測試?

五、自動化協(xié)同測試?

測試覆蓋率在測試活動中是一個至關重要的指標,充分的測試覆蓋率可以發(fā)現(xiàn)被測對象的各方面問題,是產(chǎn)品質量信心最重要的支撐數(shù)據(jù)。然而在實際的測試中,經(jīng)常受困于測試環(huán)境的限制,很多測試人員可以考慮到的業(yè)務場景卻難以在測試環(huán)境中進行模擬,沒辦法全面測試覆蓋,比如測試人員期望被測對象在某個時刻獲得一個特定的錯誤信號或數(shù)據(jù),但同被測對象交互的模塊/系統(tǒng)在正常工作情況下產(chǎn)生不出這個特定的錯誤。由于測試環(huán)境的影響,測試活動很難從根本上提高測試覆蓋率,不能有效降低產(chǎn)品在實際運營中的風險。

本文對被測對象的通用模型進行分析,找出測試環(huán)境受限的根本原因,進一步給出測試環(huán)境改進的一般性方法,并建議了一種在實際測試中可以高效改進測試環(huán)境提升測試覆蓋率的解決方案。

一、被測對象模型分析

根據(jù)測試的產(chǎn)品不同,被測對象可能是一個物聯(lián)網(wǎng)系統(tǒng),可能是一個設備,可能是一個APP 或者一個網(wǎng)站等;根據(jù)測試的階段不同,對象可能是一個軟件模塊,一塊PCB 板,一個復雜系統(tǒng)中的子系統(tǒng)或者整個系統(tǒng)。



不論被測對象的規(guī)模大小,復雜程度,組成結構,所有被測對象都可以通過接口同外部世界(人或物)進行交互,對被測對象的測試過程也就是通過被測對象的接口同被測對象進行交互并判斷和記錄被測對象的行為是否同預期相一致的過程。?

二、被測對象的接口分析?

一個被測對象通常有多個接口與外部或其他模塊(子系統(tǒng))進行交互,比如網(wǎng)絡接口,用戶界面,傳感器接口,通信接口等,這些接口進一步又可以分為輸入接口和輸出接口(有的接口既做輸入又做輸出)。對被測對象的黑盒測試就是根據(jù)需求模擬各種場景下對各個輸入接口創(chuàng)造各種情形下的輸入并對各個輸出接口檢查檢查各種情形下的輸出是否滿足要求。

三、測試環(huán)境受限原因分析?

在日常的測試中經(jīng)常遇到一些測試沒條件沒辦法進行,深入分析原因,往往是因為測試環(huán)境的局限導致一些測試場景沒辦法模擬。


測試環(huán)境受限主要有下面幾個原因:


1.被測對象界限不清晰

在一個產(chǎn)品研發(fā)過程中,不同階段的測試被測的對象不同,對模塊或子系統(tǒng)的設計進行測試,被測對象就是該子系統(tǒng)或模塊,而不是整個系統(tǒng)。如果對模塊或子系統(tǒng)測試時使用的是整個系統(tǒng)的環(huán)境,即同該模塊或子系統(tǒng)的接口進行交互仍然是系統(tǒng)的真實模塊,則會因為真實模塊不能產(chǎn)生所需要的各種信號/事件/消息/數(shù)據(jù),特別是各種異常的信號/事件/消息/數(shù)據(jù),從而導致該模塊的一些行為沒有辦法進行測試覆蓋。

2.被測對象的測試依賴于外部模塊或系統(tǒng)

在一些環(huán)境中被測對象的測試驗證依賴于系統(tǒng)中的其他模塊或其他系統(tǒng),這種依賴關系一方面導致測試不能充分覆蓋,另一方面導致測試的執(zhí)行結果的可靠性受影響,如果外面模塊或系統(tǒng)有變更,測試用例可能會受到影響,并且同樣的測試用例在使用不同版本的外部模塊或系統(tǒng)進行執(zhí)行,結果也可能不同。

3.被測對象的外部模塊或系統(tǒng)難以模擬

一些測試環(huán)境中使用的真實外部模塊或系統(tǒng),因為技術或項目時間和資源的原因,難以安排專門的技術人員來開發(fā)出相應的模擬模塊或模擬系統(tǒng)。

四、如何進行更全面的測試?

?

如果需要對被測對象(系統(tǒng),子系統(tǒng),模塊等)進行更全面的測試,需要在測試環(huán)境中對該被測對象的接口進行全面測試工具覆蓋,然后通過操作這些工具來模擬接口所需要的輸入并檢查接口所產(chǎn)生的輸出:

根據(jù)被測對象的接口特征,開發(fā)出(或使用第三方軟件)可以同接口交互的軟件作為測試工具。

隔離被測對象和外部真實模塊或系統(tǒng),使用測試工具代替外部真實模塊或系統(tǒng),同被測對象的各個接口進行交互。

測試人員配置并操作這些測試工具來完成業(yè)務功能的測試。對于輸入型接口,配置測試工具產(chǎn)生所需要的各種輸入信息;對應輸出性接口,通過測試工具來檢查接口的輸出是否同期望信息相一致。

測試人員需要根據(jù)測試用例的要求,協(xié)同控制這些測試工具,完成所有場景下的測試。



不同的測試對象,所需要的測試工具不相同,在實際實施過程中,可根據(jù)產(chǎn)品的測試要求,合理選擇需要使用測試工具進行交互的接口,選擇的依據(jù)是產(chǎn)品對測試的要求和項目原因投入的代價。對于一些產(chǎn)品質量要求嚴苛的系統(tǒng),需要將全部的真實外部模塊或系統(tǒng)通過測試工具進行替換,從而在測試環(huán)境層面做的對各種測試場景的支持,提高測試覆蓋率,最大程度減少產(chǎn)品在真實運行過程中可能產(chǎn)生更嚴重的影響和代價。



五、自動化協(xié)同測試?

如上一節(jié)中分析,對被測對象進行全面的測試覆蓋需要從測試環(huán)境層面對被測對象的所有接口進行全面覆蓋,然后進一步從測試

用例層面進行測試場景的覆蓋,需要投入大量的技術資源和時間,對絕大多數(shù)項目來說,由于項目時間和資源的限制,往往難以做到全面的覆蓋測試,一些風險隱患遺留在產(chǎn)品中。

采用協(xié)同自動化測試技術可以有效解決這個問題,下面介紹一個協(xié)同自動化測試解決方案(AnTestin),如下圖所示:


AnTestin 平臺(www.antestin.com)提供的協(xié)同自動化測試解決方案可以很多程度降低全面自動化覆蓋測試所需要的時間和技術成本:

1.根據(jù)接口類型提供各種類型的接口覆蓋測試工具(AntBot),不需要產(chǎn)品項目自己開發(fā)和維護。

2.提供支持協(xié)同自動化執(zhí)行的測試用例,不需要測試人員手工協(xié)同操作這些接口覆蓋工具(AntBot), 有效降低測試人員的執(zhí)行時的工作強度,并大大縮短了測試的執(zhí)行時間。

3.提供快速設計自動化測試用例的功能,不需要測試人員編寫自動化測試腳本,有效降低測試場景覆蓋所需要的時間。

采用協(xié)同自動化測試技術,可以極大程度降低進行全面接口覆蓋測試所需要的代價,通過建立全面的自動化測試環(huán)境,測試人員可以集中精力進行測試場景的設計,從而提高整個測試的覆蓋率,為產(chǎn)品質量提供保障和信心支撐。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 一、 軟件測試基本概念 1 bug的概念 bug類型:defect、fault、problem、error… pr...
    三口一個瓜閱讀 4,029評論 0 12
  • 說到測試用例的設計,我想每個有過測試經(jīng)歷的測試工程師都會認為很簡單,不就是:按需求或概要設計,得到軟件功能劃分圖,...
    何有東閱讀 1,678評論 0 6
  • 銀行軟件測試面試問題 軟件測試經(jīng)典面試題 軟件測試面試題匯總 測試技術面試題 1、什么是兼容性測試?兼容性測試側重...
    天宇逍遙heart閱讀 1,521評論 0 20
  • 【文章摘要】 面向對象的軟件測試摘 要: 如今,面向對象開發(fā)技術正大力地的推動著軟件產(chǎn)業(yè)的快速發(fā)展。在保證軟件產(chǎn)品...
    西邊人閱讀 3,399評論 0 2
  • 1、問:你在測試中發(fā)現(xiàn)了一個bug,但是開發(fā)經(jīng)理認為這不是一個bug,你應該怎樣解決? 首先,將問題提交到缺陷管理...
    小灰輝先生閱讀 1,406評論 0 3

友情鏈接更多精彩內容