學習目標
1 按開發階段分類數據庫
1.1 單元測試編程
又稱模塊測試,針對軟件設計中的最小單位-程序模塊,進行正確性檢查的測試工做。單元測試須要從程序內部結構出發設計測試用例。多個模塊能夠平行地獨立進行單元測試。
單元定義:C中指一個函數,Java中指一個類,在圖形化的軟件中,單元通常指一個窗口,1個菜單。
回答如下小問題: 併發
1.何時進行單元測試?編程語言
2.由誰來作單元測試?ide
3.單元測試的依據?函數
4.單元測試的經過標準?工具
5.國內單元測試的現狀?性能
6.如何進行單元測試?單元測試
1.2 集成測試學習
又叫組裝測試,一般在單元測試的基礎上,將全部程序模塊進行有序的、遞增的測試。重點測試不一樣模塊的接口部分。
回答一下小問題:
1.何時進行集成測試?
2.由誰來作集成測試?測試人員
3.集成測試的依據?
1.3 系統測試
指的是將整個軟件系統看爲一個總體進行測試,包括對功能、性能、以及軟件所運行的軟硬件環境進行測試。系統測試在系統集成完畢後進行測試,前期主要測試系統的功能
是否知足需求,後期主要測試系統運行的性能是否知足需求,以及系統在不一樣的軟硬件環境中的兼容性等。
1.4 驗收測試
α測試
一、Alpha 是內測版本,即如今所說的CB。
二、此版本表示該軟件僅僅是一個初步完成品, 一般只在軟件開發者內部交流, 也有不多一部分發布給專業測試人員。
三、通常而言, 該版本軟件的bug 較多, 普通用戶最好不要安裝。
β測試
一、Beta是公測版本,是對全部用戶開放的測試版本。
二、該版本相對於α 版已有了很大的改進,消除了嚴重的錯誤, 但仍是存在着一些缺陷,須要通過大規模的發佈測試來進一步消除。
三、這一版本一般由軟件公司免費發佈, 用戶可從相關的站點下載。
四、經過一些專業愛好者的測試, 將結果反饋給開發者, 開發者們再進行有針對性的修改。
五、該版本也不適合通常用戶安裝。
γ測試
Gamma版本,指的是軟件版本正式發行的候選版。該版本已經至關成熟了, 與即將發行的正式版相差無幾, 成爲正式發佈的候選版本。
軟件正式版本推出以前的幾個版本, 須要有人測試一下, 看看是否是有問題。在開發該軟件的公司內部由該公司內部人員測試的稱爲: Alpha 測試, Alpha 測試主要看有沒有功能缺失或系統錯誤, Alpha 測試完後通常不會有大問題了。而後把軟件拿給用戶測試,稱爲: beta 測試, 主要是看用戶對軟件外觀、使用方便等的反應。這麼多的測試版一方面爲了最終產品儘量地知足用戶的須要, 另外一方面也儘可能減小了軟件中的bug。而後作過一些修改, 成爲正式發佈的候選版本時, 叫作gamma( 如今叫作RC - Release Candidate) 。
簡單來講,阿爾法測試主要是測試人員在開發環境下的測試,貝塔測試是在實際環境中的測試,或者公司內部人員在模擬真實環境中的測試。
2 按照是否查看源代碼
2.1 黑盒測試
又稱數據驅動測試,徹底不考慮程序內部結構和內部特性,注重於測試軟件的功能需求,只關心軟件的輸入數據和輸出數據。
2.2 白盒測試
指的是把盒子打開,去研究裏面的源代碼和程序結構。
在軟件公司,每每採用黑盒測試&白盒測試相結合的方式。
軟件的總體功能和性能進行黑盒測試軟件的源代碼採用白盒測試
思考:
(1)按照所從事軟件測試的種類, 誰更加厲害一點?
(2)你想作黑盒仍是白盒測試?
2.3灰盒測試
灰盒測試,是介於白盒測試與黑盒測試之間的一種測試,灰盒測試多用於集成測試階段,不只關注輸出、輸入的正確性,同時也關注程序內部的狀況。灰盒測試不像白盒那樣詳細、完整,但又比黑盒測試更關注程序的內部邏輯,經常是經過一些表徵性的現象、事件、標誌來判斷內部的運行狀態。
2.4 詳細瞭解黑盒測試
2.4.1 黑盒測試的分類
功能測試
是黑盒測試的一方面,它檢查實際軟件的功能是否符合用戶的需求。
邏輯功能測試(functiontesting)界面測試(UItesting)
易用性測試(usability testing)
安裝測試(installationtesting)
性能測試
是軟件測試的高端領域,性能測試工程師的待遇和白盒測試工程師不相上下,一般咱們所說的高級軟件測試工程師通常就是指性能測試或是白盒測試工程師。
時間性能(事務響應時間等) 空間性能(系統資源消耗) 通常性能測試
穩定性測試
負載測試:經過負載測試來肯定在各類工做負載下,系統各項性能指標的變化狀況。
壓力測試:經過肯定一個系統的瓶頸或者恰好不能接受的性能點,來得到系統可以提供的最大服務級別。
黑盒測試能發現如下幾類錯誤:
功能不對或功能遺漏。界面錯誤。
數據庫訪問或者處理錯誤。性能問題。
黑盒測試的優勢:
測試人員不須要了解實現得細節,包括特定的編程語言(沒有編程經驗的人也能夠設計測試用例); 測試人員和編程人員是相互獨立的(黑盒測試用例設計與程序如何實現無關);
從用戶的角度進行測試,很容易被接受和理解; 有助於暴露任何與規格不一致或者歧異的地方;
黑盒測試的缺點:
不能測試程序內部特定部位;
若是程序未執行的代碼沒法發現; 不可能作到窮舉測試
3 按是否運行分類
3.1 靜態測試
指不實際運行被測軟件,而只是靜態地檢查程序代碼、界面或文檔中可能存在的錯誤過程。
3.2 動態測試
是指實際運行被測程序,輸入相應的測試數據,檢查實際輸出結果和預期結果是否相符的過程。
4 隨機測試(其餘分類)
隨機測試主要是對被測軟件的一些重要功能進行復測,也包括測試那些當前的測試用例沒有覆蓋到的部分。另外,對於軟件更新和新增長的功能要重點測試。重點對一些特殊點狀況點、特殊的使用環境、併發性、進行檢查。尤爲對之前測試發現的重大Bug,進行再次測試,能夠結合迴歸測試(Regressivetesting)一塊兒進行。
5 探索性測試(其餘分類)
探索性測試能夠說是一種測試思惟技術。它沒有不少實際的測試方法、技術和工具,可是倒是全部測試人員都應該掌握的一種測試思惟方式。探索性強調測試人員的主觀能動性,拋棄繁雜的測試計劃和測試用例設計過程,強調在碰到問題時及時改變測試策略。探索性測試強調測試設計和測試執行的同時性,這是相對於傳統軟件測試過程當中嚴格的「先設計,後執行」來講的。測試人員經過測試來不斷學習被測系統,同時把學習到的關於軟件系統的更多信息經過綜合的整理和分析,創造出更多的關於測試的主意。