5、 面向對象的單元測試
傳統的單元測試的對象是軟件設計的最小單位——模塊。單元測試的依據是詳細設描述,單元測試應對模塊內所有重要的控制路徑設計測試用例,以便發(fā)現模塊內部的錯誤。單元測試多采用白盒測試技術(shù),系統內多個(gè)模塊可以并行地進(jìn)行測試。
當考慮面向對象軟件時(shí),單元的概念發(fā)生了變化。封裝驅動(dòng)了類(lèi)和對象的定義,這意味著(zhù)每個(gè)類(lèi)和類(lèi)的實(shí)例(對象)包裝了屬性(數據)和操縱這些數據的操作。而不是個(gè)體的模塊。最小的可測試單位是封裝的類(lèi)或對象,類(lèi)包含一組不同的操作,并且某特殊操作可能作為一組不同類(lèi)的一部分存在,因此,單元測試的意義發(fā)生了較大變化。我們不再孤立地測試單個(gè)操作,而是將操作作為類(lèi)的一部分。
6、 面向對象的集成測試
傳統的集成測試,有兩種方式通過(guò)集成完成的功能模塊進(jìn)行測。(一)自頂向下集成:自頂向下集成是構造程序結構的一種增量式方式,它從主控模塊開(kāi)始,按照軟件的控制層次結構,以深度優(yōu)先或廣度優(yōu)先的策略,逐步把各個(gè)模塊集成在一起。(二)自底向上集成:自底向上測試是從“原子”模塊(即軟件結構最低層的模塊)開(kāi)始組裝測試。
因為面向對象軟件沒(méi)有層次的控制結構,傳統的自頂向下和自底向上集成策略就沒(méi)有意義,此外,一次集成一個(gè)操作到類(lèi)中(傳統的增量集成方法)經(jīng)常是不可能的,這是由于“構成類(lèi)的成分的直接和間接的交互”。對OO軟件的集成測試有兩種不同策略,第一種稱(chēng)為基于線(xiàn)程的測試,集成對回應系統的一個(gè)輸入或事件所需的一組類(lèi),每個(gè)線(xiàn)程被集成并分別測試,應用回歸測試以保證沒(méi)有產(chǎn)生副作用。第二種稱(chēng)為基于使用的測試,通過(guò)測試那些幾乎不使用服務(wù)器類(lèi)的類(lèi)(稱(chēng)為獨立類(lèi))而開(kāi)始構造系統,在獨立類(lèi)測試完成后,下一層的使用獨立類(lèi)的類(lèi),稱(chēng)為依賴(lài)類(lèi),被測試。這個(gè)依賴(lài)類(lèi)層次的測試序列一直持續到構造完整個(gè)系統。
7、 面向對象的系統測試
通過(guò)單元測試和集成測試,僅能保證軟件開(kāi)發(fā)的功能得以實(shí)現。但不能確認在實(shí)際運行時(shí),它是否滿(mǎn)足用戶(hù)的需要。為此,對完成開(kāi)發(fā)的軟件必須經(jīng)過(guò)規范的系統測試。系統測試應該盡量搭建與用戶(hù)實(shí)際使用環(huán)境相同的測試平臺,應該保證被測系統的完整性,對臨時(shí)沒(méi)有的系統設備部件,也應有相應的模擬手段。系統測試時(shí),應該參考OOA分析的結果,對應描述的對象、屬性和各種服務(wù),檢測軟件是否能夠完全"再現"問(wèn)題空間。系統測試不僅是檢測軟件的整體行為表現,從另一個(gè)側面看,也是對軟件開(kāi)發(fā)設計的再確認。
面向對象測試的整體目標——以最小的工作量發(fā)現最多的錯誤——和傳統軟件測試的目標是一致的,但是OO測試的策略和戰術(shù)有很大不同。測試的視角擴大到包括復審分析和設計模型,此外,測試的焦點(diǎn)從過(guò)程構件(模塊)移向了類(lèi)。
軟件測試與傳統測試不論是傳統的測試方法還是面向對象的測試方法,我們都應該遵循下列的原則:
1.應當把“盡早和不斷地測試”作為開(kāi)發(fā)者的座右銘。
2.程序員應該避免檢查自己的程序,測試工作應該由獨立的專(zhuān)業(yè)的軟件測試機構來(lái)完成。
3.設計測試用例時(shí),應該考慮到合法的輸入和不合法的輸入,以及各種邊界條件,特殊情況下要制造極端狀態(tài)和意外狀態(tài),比如網(wǎng)絡(luò )異常中斷、電源斷電等情況。
4.一定要注意測試中的錯誤集中發(fā)生現象,這和程序員的編程水平和習慣有很大的關(guān)系。
5.對測試錯誤結果一定要有一個(gè)確認的過(guò)程。一般有A測試出來(lái)的錯誤,一定要有一個(gè)B來(lái)確認,嚴重的錯誤可以召開(kāi)評審會(huì )進(jìn)行討論和分析。
6.制定嚴格的測試計劃,并把測試時(shí)間安排得盡量寬松,不要希望在極短的時(shí)間內完成一個(gè)高水平的測試。
7.回歸測試的關(guān)聯(lián)性一定要引起充分的注意,修改一個(gè)錯誤而引起更多錯誤出現的現象并不少見(jiàn)。
8.妥善保存一切測試過(guò)程文檔,意義是不言而喻的,測試的重現性往往要靠測試文檔。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/