目錄:
測試覆蓋率在測試活動中是一個至關重要的指標,充分的測試覆蓋率可以發(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)造各種情形下的輸入并對各個輸出接口檢查檢查各種情形下的輸出是否滿足要求。
在日常的測試中經(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)生更嚴重的影響和代價。
如上一節(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)品質量提供保障和信心支撐。