v模型體現了設計分層和測試分層的概念,本文以作者自身的理解談談測試執行分層,不過從實際專案運作情況來看,真正做到測試執行分層的並不多,這裡原因有很多種,暫且不論。
1. ut
單元測試
(unit test)的物件是lld中所劃分定義的程式單元或模組,它也是單元測試用例設計中可測試的最大單元。該測試物件可能由乙個或多個函式(一般就乙個函式,涉及函式呼叫的就用amock打樁返回乙個值 zyq)或者類組成,測試設計就是對測試物件進行測試用例設計。
ut的目的,是通過函式執行來檢查模組**對於lld文件的順從性,驗證每個函式的輸入輸出響應,與它在詳細設計文件中預先定義的是否一致。函式是產品開發實現的最基本單位,下乙個實現單位是模組,從測試的角度看,希望ut完成後,每個函式都牢固可靠,下一步的it測試將聚焦在函式之間配合能否實現分配需求,而不用擔心函式本身的輸入輸出響應問題。
單元測試比較適合開發人員做。
2. it
整合測試(intergration test)是指把若干個經過單元測試的單元組裝到一起而進行的測試,整合測試應依據hld,主要發現介面、依賴中的錯誤或不完善的地方。整合測試的物件為若干個單元測試物件的組合,至少為兩個。
it的目的,是根據模組設計對模組的分解,從已驗證的函式開始,逐層向上整合,得到乙個可執行的模組。
it可以由開發人員做,也可以由測試人員做。不難看出,ut是面向每乙個單元的測試,it是測試單元之間的介面,可以把ut/it歸為「單元級」測試。
3. st
cmm定義的st
系統測試
(system test):系統測試是針對軟體專案組所承擔開發的軟體系統進行的整體測試,將軟體系統作為整體執行或實施明確定義的軟體行為子集的測試。主要採用的測試方法是黑盒測試
,即不管程式內部的實現邏輯,以檢驗輸入輸出資訊是否符合規格說明書中有關需求規定的測試方法。可見st
的測試物件是規格說明書
,(st更傾向是模組級測試,在esl平台或fpga平台測試)更確切的說,是模組需求規格說明書,所以一般也稱為mst。模組srs文件給出了模組的輸入輸出的相應要求。mst後,每個模組是牢固可用的。
4. bbit
building block integrated test
一般指跨團隊的子系統間的整合測試
bbit為模組間介面測試,驗證模組之間的介面能不能配合,有時和聯調混在一起,其實目的並不相同。bbit的目的,是根據系統設計對系統的分解,從已通過驗證的模組開始,逐層向上整合,得到乙個可執行的系統。而聯調一般涉及軟體、硬體或者不同產品間的配合測試。mst和bbit可以歸到「模組級」 的測試,乙個驗證模組,乙個驗證模組間的介面。
以上ut/it/mst/bbit一般由開發人員完成,系統基本可以執行起來了,測試人員可以開展sdv、sit、svt了。
5. sdv
系統設計驗證sdv(system design verification) sdv雖然屬於測試人員開展的系統測試,但是有點偏灰盒測試,因為sdv
驗證各子系統的配合是否滿足設計需求(
dr),對內部的實現還是關注的,驗證多個模組整合以後是否滿足設計需求。sdv工作通常是以測試人員為主,設計人員參加。
6. sit
系統整合測試sit(
system integration test) sit也是驗證設計需求是否得以滿足,與sdv不同的是,sit完全把系統當作乙個黑盒來測試,不關心內部具體的實現。實際應用中,sdv和sit 雖然都屬於系統一級的測試,往往由不同專案組(子系統)的測試人員分別測試,他們只關注各自的子系統,所以還是把sdv和sit歸為「子系統級」的測試比較好。sit在開發階段後期,由測試人員負責完成。
7. svt
系統驗證測試svt(system verification test)
svt是驗收測試,其測試物件是產品包需求
or。產品包需求給出了產品的範圍,從產品可能的應用環境的角度刻畫系統,svt的目的就是確認(或驗收)產品包需求給出的各種應用場景產品均能滿足。
產品包需求不考慮內部實現的差異,svt也是從整個系統的角度考慮包需求的各種應用場景,屬於「系統級」的測試。svt工作以測試人員為主,試製人員參加即可。
各個級別的測試描述完畢,回頭再看看這個分層測試的模型圖,不難發現以下幾個特徵:
1)基於系統架構的分解結構(系統-子系統-模組-單元),開發按照自頂向下的順序逐層設計,測試按照自底向上的順序逐層驗證,這個分解結構在每一層或每乙個階段,將開發和測試過程統一起來。
2)在每一層,測試的物件是開發相應階段設計的輸出(包括需求和這個階段的設計文件),測試的目的與開發相應階段設計的思路是相輔相成的,所以決定每個階段的測試如何開展、評價乙個測試過程時,如果離開開發過程,只談測試自身的話,是不系統、不全面的。
3)除了「系統級」的svt測試以外,其他
各層的測試均包含兩個方面:一是對這個層每個構件的測試,有n個構件就要測試n次,二是這n個構件之間介面的測試。例如:nsdv(每個測試專案組的sdv是乙個sdv)和sit、nmst(每個開發專案組的mst是乙個mst)和bbit、nut和it。
注意:在正規**開發時,開發人員自己做的測試都有覆蓋率,缺陷率要求的,這些要求會給出乙個經驗值(最低,最高,平均)。比如ut測試,st測試,都有經驗資料的,單位kloc(kilo lines of code)
軟體測試術語
environmentby executing test and observing failure.by locating,understanding and correcting fault.確認,確認規格文件最終是使用者所需要的。確認的文件和最終的實現是否一致。without executin...
軟體測試術語
黑盒測試 黑盒測試也稱功能測試,在測試中,把程式看作乙個不能開啟的黑盒子,在完全不考慮程式內部結構和內部特性的情況下,程式是否能適當地接收輸入資料而產生正確的輸出資訊。黑盒測試著眼於程式外部結構,不考慮內部邏輯結構,主要針對軟體介面和軟體功能進行測試。白盒測試 白盒測試是通過對程式內部結構進行分析來...
軟體測試之測試術語
軟體測試 軟體測試,指通過某種手段來執行或測試某個系統的過程。其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。軟體測試是為了發現錯誤而執行程式的過程。測試用例 指的是在測試執行之前設計的一套詳細的測試方案,包括測試環境 測試步驟 測試資料和預期結果。用乙個等式來簡單表示 測試用...