先念在這里,等有了全面的了解,再做總結,整理http://www.51testing.com/html/99/n-211399.html
V模型體現了測試設計分層和測試執行分層的概念,本文以作者自身的理解談談測試執行分層,不過從實際項目運作情況來看,真正做到測試執行分層的並不多,這里原因有很多種,暫且不論。
1. UT
單元測試的對象是LLD中所划分定義的程序單元或模塊,它也是單元測試用例設計中可測試的最大單元。該測試對象可能由一個或多個函數或者類組成,測試設計就是對測試對象進行測試用例設計。
UT的目的,是通過函數運行來檢查模塊代碼對於LLD文檔的順從性,驗證每個函數的輸入輸出響應,與它在詳細設計文檔中預先定義的是否一致。函數是產品開發實現的最基本單位,下一個實現單位是模塊,從測試的角度看,希望UT完成后,每個函數都牢固可靠,下一步的IT測試將聚焦在函數之間配合能否實現分配需求,而不用擔心函數本身的輸入輸出響應問題。
單元測試比較適合開發人員做。
UT = unit testing 單元測試
是指對軟件中的最小可測試單元進行檢查和驗證。對於單元測試中單元的含義,一般來說,要根據實際情況去判定其具體含義,如C語言中單元指一個函數,Java里單元指一個類,圖形化的軟件中可以指一個窗口或一個菜單等。
2. IT
集成測試是指把若干個經過單元測試的單元組裝到一起而進行的測試,集成測試應依據HLD,主要發現接口、依賴中的錯誤或不完善的地方。集成測試的對象為若干個單元測試對象的組合,至少為兩個。
IT的目的,是根據模塊設計對模塊的分解,從已驗證的函數開始,逐層向上集成,得到一個可運行的模塊。
IT可以由開發人員做,也可以由測試人員做。
不難看出,UT是面向每一個單元的測試,IT是測試單元之間的接口,可以把UT/IT歸為“單元級”測試。
IT = integration testing 集成測試
集成測試,也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求(如根據結構圖〕組裝成為子系統或系統,進行集成測試。實踐表明,一些模塊雖然能夠單獨地工作,但並不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實現。
3. ST
CMM定義的系統測試:系統測試是針對軟件項目組所承擔開發的軟件系統進行的整體測試,將軟件系統作為整體運行或實施明確定義的軟件行為子集的測試。主要采用的測試方法是黑盒測試,即不管程序內部的實現邏輯,以檢驗輸入輸出信息是否符合規格說明書中有關需求規定的測試方法。可見ST的測試對象是規格說明書,更確切的說,是模塊需求規格說明書,所以一般也稱為MST。模塊SRS文檔給出了模塊的輸入輸出的相應要求。MST后,每個模塊是牢固可用的。
ST = system testing 系統測試
是將已經確認的軟件、計算機硬件、外設、網絡等其他元素結合在一起,進行信息系統的各種組裝測試和確認測試,系統測試是針對整個產品系統進行的測試,目的是驗證系統是否滿足了需求規格的定義,找出與需求規格不符或與之矛盾的地方,從而提出更加完善的方案。系統測試發現問題之后要經過調試找出錯誤原因和位置,然后進行改正。是基於系統整體需求說明書的黑盒類測試,應覆蓋系統所有聯合的部件。對象不僅僅包括需測試的軟件,還要包含軟件所依賴的硬件、外設甚至包括某些數據、某些支持軟件及其接口等。
4. BBIT
BBIT為模塊間接口測試,驗證模塊之間的接口能不能配合,有時和聯調混在一起,其實目的並不相同。BBIT的目的,是根據系統設計對系統的分解,從已通過驗證的模塊開始,逐層向上集成,得到一個可運行的系統。而聯調一般涉及軟件、硬件或者不同產品間的配合測試。MST和BBIT可以歸到“模塊級” 的測試,一個驗證模塊,一個驗證模塊間的接口。
以上UT/IT/MST/BBIT一般由開發人員完成,系統基本可以運行起來了,測試人員可以開展SDV、SIT、SVT了。
5. SDV
SDV雖然屬於測試人員開展的系統測試,但是有點偏灰盒測試,因為SDV驗證各子系統的配合是否滿足設計需求(DR),對內部的實現還是關注的,驗證多個模塊集成以后是否滿足設計需求。
6. SIT
SIT也是驗證設計需求是否得以滿足,與SDV不同的是,SIT完全把系統當作一個黑盒來測試,不關心內部具體的實現。實際應用中,SDV和SIT 雖然都屬於系統一級的測試,往往由不同項目組(子系統)的測試人員分別測試,他們只關注各自的子系統,所以還是把SDV和SIT歸為“子系統級”的測試比較好。
7. SVT
SVT是驗收測試,其測試對象是產品包需求OR。產品包需求給出了產品的范圍,從產品可能的應用環境的角度刻畫系統,SVT的目的就是確認(或驗收)產品包需求給出的各種應用場景產品均能滿足。
產品包需求不考慮內部實現的差異,SVT也是從整個系統的角度考慮包需求的各種應用場景,屬於“系統級”的測試。
各個級別的測試描述完畢,回頭再看看這個分層測試的模型圖,不難發現以下幾個特征:
1)基於系統架構的分解結構(系統-子系統-模塊-單元),開發按照自頂向下的順序逐層設計,測試按照自底向上的順序逐層驗證,這個分解結構在每一層或每一個階段,將開發和測試過程統一起來。
2)在每一層,測試的對象是開發相應階段設計的輸出(包括需求和這個階段的設計文檔),測試的目的與開發相應階段設計的思路是相輔相成的,所以決定每個階段的測試如何開展、評價一個測試過程時,如果離開開發過程,只談測試自身的話,是不系統、不全面的。
3)除了“系統級”的SVT測試以外,其他各層的測試均包含兩個方面:一是對這個層每個構件的測試,有n個構件就要測試n次,二是這n個構件之間接口的測試。例如:nSDV(每個測試項目組的SDV是一個SDV)和SIT、nMST(每個開發項目組的MST是一個MST)和BBIT、nUT和IT。
功能測試又叫黑盒測試(Black-box Testing),是軟件測試的一種類型,即把測試對象看作一個黑盒子。利用黑盒測試法進行動態測試時,需要測試軟件產品的功能,不需測試軟件產品的內部結構和處理過程。
http://blog.sina.com.cn/s/blog_6324be320100hd9t.html
接口測試
接口測試是測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。
兼容性測試
是指測試軟件在特定的硬件平台上、不同的應用軟件之間、不同的操縱系統平台上、不同的網絡等環境中是否能夠很友好的運行的測試。
自動化測試
是把以人為驅動的測試行為轉化為機器執行的一種過程。自動化測試與軟件開發過程從本質上來講是一樣的,無非是利用自動化測試工具(相當於軟件開發工具),經過對測試需求的分析(軟件過程中的需求分析),設計出自動化測試用例(軟件過程中的需求規格),從而搭建自動化測試的框架(軟件過程中的概要設計),設計與編寫自動化腳本(詳細設計與編碼),測試腳本的正確性,從而完成該套測試腳本(即主要功能為測試的應用軟件)。
安全測試
在IT軟件產品的生命周期中,特別是產品開發基本完成到發布階段,對產品進行檢驗以驗證產品符合安全需求定義和產品質量標准的過程。
正交法:http://www.uml.org.cn/test/200907238.asp
依據Galois理論,從大量的(實驗)數據(測試例)中挑選適量的、有代表性的點(例),從而合理地安排實驗(測試)的一種科學實驗設計方法。
性能測試
是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬於性能測試,兩者可以結合進行。通過負載測試,確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統各項性能指標的變化情況。壓力測試是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。