測試分類 --- 根據項目流程階段和代碼可見度劃分

測試分類 --- 根據項目流程階段和代碼可見度劃分

一、根據項目流程階段劃分: 單元測試、集成測試、系統測試、驗收測試

單元測試:單元測試是對軟體中的基本組成單位進行的測試。目的是檢驗軟體基本組成單位的正確性。

集成測試:集成測試是在軟體系統集成過程中所進行的測試。目的是檢查軟體單位之間的介面是否正確。

系統測試:系統測試是對已經集成好的軟體系統進行徹底的測試,以驗證軟體系統的正確性和性能等是否滿足其規約所指定的要求。

驗收測試:驗收測試是部署軟體之前的最後一個測試操作。驗收測試的目的是確保軟體準備就緒,向軟體購買都展示該軟體系統滿足其用戶的需求。

==>單元測試階段

模塊介面測試

  通過所測模塊的數據流進行測試。調用所測模塊時的輸入參數與模塊的形式參數的個數、屬性和順序是否匹配。

局部數據結構測試   局部數據結構是為了保證臨時存儲在模塊內的數據在程序執行過程中完整、正確、模塊的局部數據結構往往是錯誤的根源。

路徑測試

  對模塊中重要的執行路徑進行測試。

錯誤處理測試

  比較完善的模塊設計要求能遇見出錯的條件,並設置適當的出錯處理,以便在一旦程序出錯時,能對出錯程序重做安排,保證其邏輯上的正確性。

邊界條件測試

  軟體經常在便捷上失效,邊界條件測試是一項基礎測試,也是後面系統測試中的功能測試的重點。

==>集成測試階段

在集成測試中,我們主要關注以下內容:

1. 把各個模塊連接起來時,穿越模塊介面的數據據是否會丟失。

2. 各個了模塊組合起來,能否達到預期要求的功能。

3. 一個模塊的功能是否會對另一個模塊的功能產生不利影響。

4. 全局數據據結構是否有問題。

5. 單個模塊的誤差積累起來是否會被放大,從而達到不可接受的程序。

==>系統測試階段

  一般系統的主要測試工作都集中系統測試階段。根據不同的系統,所進行的測試種類也很多。

功能測試:

  功能測試是對產品的各功能進行驗證,以檢查是否滿足需求的要求。

性能測試:

  性能測試是通過自動化測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。

安全測試:

  安全測試檢查系統對非法入侵的防範能力。

兼容測試:

  兼容性測試主要是測試系統在不同的軟硬體環境下是否能夠正常的運行。

==>驗收測試階段:

功能確認測試

安全可靠性測試

易用性測試

可擴充性測試

兼容性測試

資源佔用率測試

用戶文檔資料驗收

二、根據代碼的可見程度劃分: 白盒測試、黑盒測試、灰盒測試

上面是根據項目流程按照測試的各個階段對測試工具的劃分。白盒測試與黑盒測試,主要是測試工作對軟體代碼的的可見程度的劃分。這也是我軟體測試中領域中最基本的兩個概念。

==>黑盒測試:

  黑盒測試,指的是把被測的軟體看作是一個黑盒子,我們不去關心盒子裡面的結構是什麼樣子的,只關心軟體的輸入數據和輸出結果

它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息。黑盒測試著眼於程序外部結構,不考慮內部邏輯結構,主要針對軟體界面和軟體功能進行測試。

==>白盒測試:

  白盒測試,指的是把盒子蓋子打開,去研究裡面的源代碼和程序結果。

  它是按照程序內部的結構測試程序,通過測試來檢測產品內部動作是否按照設計規格說明書的規定正常進行,檢驗程序中的每條通路是否都能按預定要求正確工作

==>灰盒測試:

  灰盒測試介於黑盒測試與白盒測試之間。

  可以這樣理解,灰盒測試關注輸出對於輸入的正確性,同時也關注內部表現,但這種關注不象白盒那樣詳細、完整,只是通過一些表徵性的現象、事件、標誌來判斷內部的運行狀態,有時候輸出是正確的,但內部其實已經錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要採取這樣的一種灰盒的方法。

功能測試、性能測試

==>功能測試

  功能測試檢查實際的功能是否符合用戶的需求。測試的大部分工作也是圍繞軟體的功能進行,設計軟體的目的也就是滿足客戶對其功能的需求。如果偏離的這個目的任何測試工作都是沒有意義的。

  功能測試又可可以細分為很多種:邏輯功能測試、界面測試、易用性測試、安裝測試、兼容性測試等。

==>性能測試

  性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。

  軟體的性能包括很多方面,主要有時間性能和空間性能兩種。

  時間性能:主要是指軟體的一個具體的響應時間。比如一個登錄所需要的時間,一個交易所需要的時間等。當然,拋開具體的測試環境,來分析一次事務的響應時間是沒有任何意義的。需要搭建一個具體且獨立的測試環境。

  空間性能:主要指軟體運行時所消耗的系統資源,比如硬體資源,CPU、內存,網路帶寬消耗等。

手工測試與自動化測試

==>手工測試:

  手工測試就是由人去一個一個的去執行測試用例,通過鍵盤滑鼠等輸入一些參數,查看返回結果是否符合預期結果。

(其實,不太喜歡別人把一般的功能測試工作叫手工測試,就像一個雕塑家不喜歡別人叫他刻石頭的一樣。手工測試同樣需要業務熟悉、基本測試方法的理解。看似簡單的工作卻能夠發現別人不能發現的軟體問題。在目前的測試領域,手工測試仍然是無法替代的一種測試方法)

==>自動化測試

  自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了測試用例並通過評審之後,由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,為了節省人力、時間或硬體資源,提高測試效率,便引入了自動化測試的概念。

  自動化測試:又可分為功能自動化測試與性能自動化測試。

  我們一般所說的自動化測試就是指功能自動化測試,通過相關的測試技術,通過編碼的方式用一段程序來測試一個軟體的功能,這樣就可以重複執行程序來進行重複的測試。如果一個軟體一小部分發生改變,我們只要修改一部分代碼,就可以重複的對整個軟體進行功能測試。這樣就大大的提高了測試效率。

  性能自動化測試,當然,除了早期階段,現在的性能測試工作都是通過性能測試工具輔助完成的。能過工具可以模擬成千上萬的用戶向系統發送請求,用來驗證系統的處理能力。

冒煙測試、回歸測試、隨機測試、探索性測試、安全測試

這三種測試在軟體功能測試過程中,既不算具體明確的測試階段也不算是具體的測試方法。

==>冒煙測試:

  是指在對一個新版本進行系統大規模的測試之前,先驗證一下軟體的基本功能是否實現,是否具備可測性。

  引入到軟體測試中,就是指測試小組在正規測試一個新版本之前,先投入較少的人力和時間驗證一個軟體 的主要功能,如果主要功能都沒有實現,則打回開發組重新開發。這樣做的好處是可以節省大量的時間成本和人力成本。

==>回歸測試:

  回歸測試是指修改了舊代碼後,重新時行測試以確認修改後沒有引入新的錯誤或導致其他代碼產生錯誤。

  回歸測試一般是在進行軟體的第二輪測試開始的,驗證第一輪中發現的問題是否得到修復。當然,回歸也是一個循環的過程,如果回歸的問題通不過,則需要開發人員修改後再次進行回歸,直到通過為止。

==>隨機測試:

  是指測試中的所有輸入數據都是隨機生成的,其目的是模擬用戶的真實操作,並發現一些邊緣性的錯誤。

  隨機測試可以發現一些隱蔽的錯誤,但是也有很多缺點,比如測試不系統,無法統計代碼覆蓋率和需求覆蓋率,發現的問題難以重現。一般是放在測試的最後執行。其實隨機測試更專業的升級版叫 探索性測試

==>探索性測試

  探索性測試可以說是一種測試思維技術。它沒有很多實際的測試方法、技術和工具,但是卻是所有測試人員都應該掌握的一種測試思維方式。探索性強調測試人員的主觀能動性,拋棄繁雜的測試計劃和測試用例設計過程,強調在碰到問題時及時改變測試策略。

  探索性測試應該是未來測試領域的一個方向。

==>安全測試

安全測試是在IT軟體產品的生命周期中,特別是產品開發基本完成到發布階段,對產品進行檢驗以驗證產品符合安全需求定義和產品質量標準的過程。

安全測試也在越來越受到企業的關注和重視,因為由於安全性問題造成的後果是不可估量的。尤其對於互聯網產品最容易遭受各種安全攻擊。


推薦閱讀:

我的書櫃(有代碼)
在線書架代碼之四
【代碼應用】用代碼製作的邊框
html日誌常用代碼
在圖片上直接寫字的代碼編輯技巧【學習交流】

TAG:代碼 | 開源項目 |