- 相關推薦
軟件測試中綜合測試的基本方法
軟件測試在軟件開發的時候是很重要的,那么作為一個軟件測試人員,你應該會發現,有些程序單個模塊利用運行,但是一起運行的時候卻運行失敗,這個時候就要通過綜合測試來測試軟件,以下是小編整理的軟件測試中綜合測試的基本方法,希望對大家有所幫助。
某設計人員總是習慣于將所有模塊按照既定設計需求進行組裝,之后對其進行整體測試,該種現象稱之為非增量式集成。
但是借助該種方式極其容易出現混亂現象。
由于在實際測試過程中可能會發現大量錯誤,而對于每一個錯誤的定位和糾正都極為困難,此外在錯誤糾正過程中往往會產生新的錯誤,新舊錯誤的混雜和交替,使得錯誤的位置和根源判斷變得更加艱難。
相反,采取增量式集成方式,程序將會逐漸的進行拓展,隨著測試范圍的緩慢增加,錯誤的定位和糾正將會變的更加容易,對于截面的測試也將會變的更加徹底。
在下面將對兩種增量式集成方式進行充分討論。
1、自頂向下集成
自頂向下集成是構造程序結構的一種增量式方式,它從主控模塊開始,按照軟件的控制層次結構,以深度優先或廣度優先的策略,逐步把各個模塊集成在一起。
深度優先策略首先是把主控制路徑上的模塊集成在一起,至于選擇哪一條路徑作為主控制路徑,這多少帶有隨意性,一般根據問題的特性確定。
自頂向下綜合測試的具體步驟為:
1)以主控模塊作為測試驅動模塊,把對主控模塊進行單元測試時引入的所有樁模塊用實際模塊替代;
2)依據所選的集成策略(深度優先或廣度優先),每次只替代一個樁模塊;
3)每集成一個模塊立即測試一遍;
4)只有每組測試完成后,才著手替換下一個樁模塊;
5)為避免引入新錯誤,須不斷地進行回歸測試(即全部或部分地重復已做過的測試)。
從第二步開始,循環執行上述步驟,直至整個程序結構構造完畢。
對于該種問題的解決主要通過以下幾種方式開展:一是將部分測試推遲,從而使用真實模塊代替樁模塊;二是開發能夠模擬真實模塊的樁模塊;三是采取自下而上的集成模塊。
采取第一種方式將會回到非增量式的集成方式,使得錯誤的定位和糾正變得艱難,更會失去在組裝模塊過程中進行特定測試的可能性;而第二種方式則會使得開銷大大增加。
綜合分析發現第三種方式具有可行性,因此在下面進行充分討論。
2、自底向上集成
自底向上測試是從“原子”模塊(即軟件結構最低層的模塊)開始組裝測試,因測試到較高層模塊時,所需的下層模塊功能均已具備,所以不再需要樁模塊。
自底向上綜合測試的步驟分為:
1)把低層模塊組織成實現某個子功能的模塊群(cluster);
2)開發一個測試驅動模塊,控制測試數據的輸入和測試結果的輸出;
3)對每個模塊群進行測試;
4)刪除測試使用的驅動模塊,用較高層模塊把模塊群組織成為完成更大功能的新模塊群。
從第一步開始循環執行上述各步驟,直至整個程序構造完畢。
基于此,在軟件測試過程中,應當充分考慮軟件自身的特點和工程進度,并選擇適當的測試方式以保證測試的基本質量。
另外,在綜合測試過程中必須注意關鍵模塊的測試,其中關鍵模塊具有以下幾種特征:一是對應的需求數量;二是具有的高層控制功能;三是復雜容易出現錯誤;四是存在的部分特殊性能要求,對于部分關鍵模塊應當盡早進行測試,并對其進行反復的回歸測試。
軟件測試的方法
1、從是否關心內部結構來看
(1)白盒測試:又稱為結構測試或邏輯驅動測試,是一種按照程序內部邏輯結構和編碼結構,設計測試數據并完成測試的一種測試方法。
(2)黑盒測試:又稱為數據驅動測試,把測試對象當做看不見的黑盒,在完全不考慮程序內部結構和處理過程的情況下,測試者僅依據程序功能的需求規范考慮,確定測試用例和推斷測試結果的正確性,它是站在使用軟件或程序的角度,從輸入數據與輸出數據的對應關系出發進行的測試。
(3)灰盒測試:是一種綜合測試法,它將“黑盒”測試與“白盒”測試結合在一起,是基于程序運行時的外部表現又結合內部邏輯結構來設計用例,執行程序并采集路徑執行信息和外部用戶接口結果的測試技術。
2、從是否執行代碼看
(1)靜態測試:指不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性。
(2)動態測試:是指通過運行被測程序,檢查運行結果與預期結果的差異,并分析運行效率、正確性和健壯性等性能指標。
3、從開發過程級別看
(1)單元測試:又稱模塊測試,是針對軟件設計的最小單位----程序模塊或功能模塊,進行正確性檢驗的測試工作。其目的在于檢驗程序各模塊是否存在各種差錯,是否能正確地實現了其功能,滿足其性能和接口要求。
(2)集成測試:又叫組裝測試或聯合,是單元測試的多級擴展,是在單元測試的基礎上進行的一種有序測試。旨在檢驗軟件單元之間的接口關系,以期望通過測試發現各軟件單元接口之間存在的問題,最終把經過測試的單元組成符合設計要求的軟件。
(3)系統測試:是為判斷系統是否符合要求而對集成的軟、硬件系統進行的測試活動、它是將已經集成好的軟件系統,作為基于整個計算機系統的一個元素,與計算機硬件、外設、某些支持軟件、人員、數據等其他系統元素結合在一起,在實際運行環境下,對計算機系統進行一系列的組裝測試和確認測試。
4、從執行過程是否需要人工干預來看
(1)手工測試:就是測試人員按照事先為覆蓋被測軟件需求而編寫的測試用例,根據測試大綱中所描述的測試步驟和方法,手工地一個一個地輸 入執行,包括與被測軟件進行交互(如輸入測試數據、記錄測試結果等),然后觀察測試結果,看被測程序是否存在問題,或在執行過程中是否會有一場發生,屬于比較原始但是必須執行的一個步驟。
(2)自動化測試:實際上是將大量的重復性的測試工作交給計算機去完成,通常是使用自動化測試工具來模擬手動測試步驟,執行用某種程序設計語言編寫的過程(全自動測試就是指在自動測試過程中,不需要人工干預,由程序自動完成測試的全過程;半自動測試就是指在自動測試過程中,需要手動輸入測試用例或選擇測試路徑,再由自動測試程序按照人工指定的要求完成自動測試)
5、從測試實施組織看
(1)開發測試:開發人員進行的測試
(2)用戶測試:用戶方進行的測試
(3)第三方測試:有別于開發人員或用戶進行的測試,由專業的第三方承擔的測試,目的是為了保證測試工作的客觀性
6、從測試所處的環境看
(1)阿爾法測試:是由一個用戶在開發環境下進行的測試,也可以是公司內部的用戶在模擬實際操作環境下進行的測試
(2)貝塔測試:是用戶公司組織各方面的典型終端用戶在日常工作中實際使用貝塔版本,并要求用戶報告
7、其他測試類型
(1)回歸測試(regression testing)是指對軟件的新的版本測試時,重復執行上一個版本測試時的用例。
(2)冒煙測試(smoke testing),是指在對一個新版本進行大規模的測試之前,先驗證一下軟件的基本功能是否實現,是否具備可測性。
(3)隨機測試(random testing),是指測試中所有的輸入數據都是隨機生成的,其目的是模擬用戶的真實操作,并發現一些邊緣性的錯誤。
【軟件測試中綜合測試的基本方法】相關文章:
軟件測試實習報告11-25
軟件測試的實習報告05-19
軟件測試學習總結11-23
軟件測試個人總結07-22
軟件測試合同09-20
軟件測試述職報告12-20
軟件測試合同09-30
軟件測試述職報告01-30
詩歌鑒賞基本方法08-09