根據項目流程階段劃分測試
單元測試:
按照設定好的最小測試單元進行單元測試,主要是測試程序代碼,為的是確保各單元模塊被正確的編譯,單元的具體劃分按不同的單位與不同的軟件有不同,比如有具體到模塊的測試,也有具體到類,函數的測試等。——一般都是開發來完成
集成測試:
經過了單元測試后,將各單元組合成完整的體系,主要測試各模塊間組合后的功能實現情況,以及模塊接口連接的成功與否,數據傳遞的正確性等,其主要目的是檢查軟件單位之間的接口是否正確。根據集成測試計劃,一邊將模塊或其他軟件單位組合成系統,一邊運行該系統,以分析所組成的系統是否正確,各組成部分是否合拍。——比如說注冊和充值這兩個功能是否能夠連通~
系統測試:
經過了單元測試和集成測試以后,我們要把軟件系統搭建起來,按照軟件規格說明書中所要求,測試軟件其性能功能等是否和用戶需求符合,在系統中運行是否存在漏洞等。——進形完整的系統測試,根據需求文檔和測試用例來進行測試。
驗收測試:
主要就是用戶在拿到軟件的時候,在使用現場,會根據前邊所提到的需求,以及規格說明書來做相應測試,以確定軟件達到符合效果的。——用戶對軟件進行驗收。
Alpha測試與Beta測試
Alpha測試:
Alpha測試是一種前期的用戶測試,此時系統剛剛研發完成。Alpha測試不能由程序員或測試員完成。
Beta測試:
Beta測試是一種后期用戶測試,此時系統已經通過內部測試,大部分錯誤已經改正,即將正式發行。Beta測試不能有程序員或測試員完成。
白盒測試、黑盒測試、灰盒測試
黑盒測試:
黑盒測試,指的是把被測的軟件看作是一個黑盒子,我們不去關心盒子里面的結構是什么樣子的,只關心軟件的輸入數據和輸出結果。
它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息。黑盒測試著眼于程序外部結構,不考慮內部邏輯結構,主要針對軟件界面和軟件功能進行測試。
白盒測試:
白盒測試,指的是把盒子蓋子打開,去研究里面的源代碼和程序結果。
它是按照程序內部的結構測試程序,通過測試來檢測產品內部動作是否按照設計規格說明書的規定正常進行,檢驗程序中的每條通路是否都能按預定要求正確工作
灰盒測試:
灰盒測試介于黑盒測試與白盒測試之間。
可以這樣理解,灰盒測試關注輸出對于輸入的正確性,同時也關注內部表現,但這種關注不象白盒那樣詳細、完整,只是通過一些表征性的現象、事件、標志來判斷內部的運行狀態,有時候輸出是正確的,但內部其實已經錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要采取這樣的一種灰盒的方法。
功能測試、性能測試
功能測試
功能測試檢查實際的功能是否符合用戶的需求。測試的大部分工作也是圍繞軟件的功能進行,設計軟件的目的也就是滿足客戶對其功能的需求。如果偏離的這個目的任何測試工作都是沒有意義的。
功能測試又可可以細分為很多種:邏輯功能測試、界面測試、易用性測試、安裝測試、兼容性測試等。
性能測試
性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。
軟件的性能包括很多方面,主要有時間性能和空間性能兩種。
時間性能:主要是指軟件的一個具體的響應時間。比如一個登錄所需要的時間,一個交易所需要的時間等。當然,拋開具體的測試環境,來分析一次事務的響應時間是沒有任何意義的。需要搭建一個具體且獨立的測試環境。
空間性能:主要指軟件運行時所消耗的系統資源,比如硬件資源,CPU、內存,網絡帶寬消耗等。
手工測試與自動化測試
手工測試
手工測試就是由人去一個一個的去執行測試用例,通過鍵盤鼠標等輸入一些參數,查看返回結果是否符合預期結果。
自動化測試
自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了測試用例并通過評審之后,由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,為了節省人力、時間或硬件資源,提高測試效率,便引入了自動化測試的概念。
自動化測試:又可分為功能自動化測試與性能自動化測試。
我們一般所說的自動化測試就是指功能自動化測試,通過相關的測試技術,通過編碼的方式用一段程序來測試一個軟件的功能,這樣就可以重復執行程序來進行重復的測試。如果一個軟件一小部分發生改變,我們只要修改一部分代碼,就可以重復的對整個軟件進行功能測試。這樣就大大的提高了測試效率。
性能自動化測試,當然,除了早期階段,現在的性能測試工作都是通過性能測試工具輔助完成的。能過工具可以模擬成千上萬的用戶向系統發送請求,用來驗證系統的處理能力。
冒煙測試、回歸測試、隨機測試
這三種測試在軟件功能測試過程中,既不算具體明確的測試階段也不算是具體的測試方法。
冒煙測試:
是指在對一個新版本進行系統大規模的測試之前,先驗證一下軟件的基本功能是否實現,是否具備可測性。
引入到軟件測試中,就是指測試小組在正規測試一個新版本之前,先投入較少的人力和時間驗證一個軟件的主要功能,如果主要功能都沒有實現,則打回開發組重新開發。這樣做的好處是可以節省大量的時間成本和人力成本。
回歸測試:
回歸測試是指修改了舊代碼后,重新時行測試以確認修改后沒有引入新的錯誤或導致其他代碼產生錯誤。
回歸測試一般是在進行軟件的第二輪測試開始的,驗證第一輪中發現的問題是否得到修復。當然,回歸也是一個循環的過程,如果回歸的問題通不過,則需要開發人員修改后再次進行回歸,直到通過為止。
隨機測試:
是指測試中的所有輸入數據都是隨機生成的,其目的是模擬用戶的真實操作,并發現一些邊緣性的錯誤。
隨機測試可以發現一些隱蔽的錯誤,但是也有很多缺點,比如測試不系統,無法統計代碼覆蓋率和需求覆蓋率,發現的問題難以重現。一般是放在測試的最后執行。其實隨機測試更專業的升級版叫探索性測試。
探索性測試
探索性測試可以說是一種測試思維技術。它沒有很多實際的測試方法、技術和工具,但是卻是所有測試人員都應該掌握的一種測試思維方式。探索性強調測試人員的主觀能動性,拋棄繁雜的測試計劃和測試用例設計過程,強調在碰到問題時及時改變測試策略。
探索性測試應該是未來測試領域的一個方向。
安全測試
安全測試是在IT軟件產品的生命周期中,特別是產品開發基本完成到發布階段,對產品進行檢驗以驗證產品符合安全需求定義和產品質量標準的過程。
安全測試也在越來越受到企業的關注和重視,因為由于安全性問題造成的后果是不可估量的。尤其對于互聯網產品最容易遭受各種安全攻擊。