如何來理解測試的分類


 

 

 

 

 

 

 

 

1.單元測試(Unit Testing)
單元測試,又稱模塊測試。對軟件的組成單位進行測試,其目的是檢驗軟件基本組成單位的正確性。測試的對象的是軟件你測試的最小單位:模塊。

測試階段:編碼后或者編碼前
測試對象:模塊
測試人員:白盒測試工程師或開發人員
測試依據:代碼和注釋+詳細文檔
測試方法:白盒測試
測試內容:模塊接口測試、局部數據測試、路徑測試、錯誤處理測試、邊界測試
補充說明:
(1)學習測試依據時,我們可以對比軟件測試的“V”模型結合記憶
(2)白盒測試不是單元測試,單元測試是白盒測試
(3)測試驅動開發:測試人員先編寫測試用例,開發人員根據測試用例寫程序
2.集成測試(Integration Testing)
集成測試也稱聯合測試(聯調)、組裝測試:將程序模塊采用適當的集成策略組裝起來,對系統的接口及集成后的功能進行正確性檢測的測試工作。集成主要目的是檢查軟件單位之間的接口是否正確。
測試階段:一般是單元測試之后
測試對象:模塊間的接口
測試人員:白盒測試工程師或開發工程師
測試依據:單元測試的文檔+概要設計文檔
測試方法:黑盒測試與白盒測試(灰盒測試)
測試內容:模塊之間數據傳輸、模塊之間功能沖突、模塊組裝功能的正確性、全局數據結構、單模塊缺陷對系統的影響
補充說明:
單元測試是一個模塊內部的測試,集成測試是在模塊之間進行測試(至少兩個)

3.系統測試(System Testing)
系統測試:將軟件系統看成是一個系統的測試。包括對功能、性能以及軟件所運行的軟硬件環境進行測試。時間大部分在系統測試執行階段,包括回歸測試和冒煙測試。

測試階段:集成測試階段之后
測試對象:整個系統(軟件、硬件)
測試人員:黑盒測試工程師
測試依據:需求規格說明文檔
測試方法:黑盒測試
測試內容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
補充說明:
(1)系統測試是從完整的角度,廣面去看待問題,不再看模塊
(2)雖然系統測試包括冒煙測試和回歸測試,但三者之間是有嚴格的先后順序的,即:先冒煙、再系統、后回歸。

(1)回歸測試(Regression Testing):指修改了舊的代碼之后,重新進行測試以確認修改沒有引入新的錯誤或導致其他代碼產生錯誤。(自動回歸測試將大幅度降低系統測試、維護升級等階段的成本)。

在整個軟件測試過程中占有很大的工作比重,軟件開發的各個階段都會進行多次回歸測試。隨着系統的龐大,回歸測試的成本越來越大,通過正確的回歸測試策略來改進回歸測試的效率和有效性是很有意義的。

(2)冒煙測試(smoke testing):該術語來自硬件,指對一個硬件或一組硬件進行更改或修復后,直接給設備加電。如果沒有冒煙,則該組件就通過了測試,也可以理解為該種測試耗時短,僅用一袋煙的功夫就足夠了。

冒煙測試的對象是每一個新編譯的需要正式測試的軟件版本,目的是確認軟件基本功能正常,可以進行后續正式的測試工作。
冒煙測試的執行者是版本編譯人。
冒煙測試一般在開發人員開發完畢后送給測試人員來進行測試時,測試人員會先進行冒煙測試,保證基本功能正常,不阻礙后續測試。
4.驗收測試(Acceptance Testing)
驗收測試(交付測試):是部署軟件之前的最后一個測試操作。它是技術測試的最后一個階段,也稱為交付測試。驗收測試的目的是確保軟件准備就緒,按照項目合同、任務書、雙方約定的驗收依據文檔,向軟件購買都展示該軟件系統滿足原始需求。

測試階段:系統測試通過后
測試對象:整個系統(包括軟硬件)
測試人員:主要是最終用戶或者需求方
測試依據:用戶需求、驗收標准
測試方法:黑盒測試
測試內容:同系統測試(功能、各類文檔文檔等)
下面,我們以手機為例,舉個例子:

針對買回來的新手機以及它的美顏功能來進行測試。
(1)當買回來的手機,它的美顏功能有問題時,我們只針對美顏功能的代碼進行測試,就是單元測試。
(2)對於新買回來的手機,檢測手機通訊錄是否可以增添、刪除、更改手機號碼,打電話時需要手動的輸入電話,也可以在手機中查找,這就是集成測試。
(3)新手機都會有一個合格標簽,原因是出廠前手機廠商會對某一個型號的手機功能全部測試一遍,包括手機硬件本身,手機自帶的APP等,這個叫系統測試。
(4)當修好新買回來的手機的美顏功能以后,用戶除了會查看美顏功能是否完好,還會查看其他功能是否也完好,這個叫回歸測試。
(5)對於新買回來的手機,我們做的第一件事是將常用的手機功能試一遍,第二件事情就是講所有功能都試一遍,這個叫冒煙測試。
(6)對於新買回來的手機,一般都有7天包退,30天包換,我們一般都是在7天內把手機的所有功能都試一遍,這叫驗收測試。

二、按是否查看代碼划分
1.黑盒測試(Black-box Testing)
黑盒測試也是功能測試,測試中把被測的軟件當成一個黑盒子,不關心盒子的內部結構是什么,只關心軟件的輸入數據和輸出數據。
2.白盒測試(White-box Testing)
白盒測試又稱結構測試、透明盒測試、邏輯驅動測試或基於代碼的測試。白盒測試是指打開盒子,去研究里面的源代碼和程序結果。
白盒測試也是接口測試的一種。

3.灰盒測試(Gray-Box Testing)
灰盒測試是介於白盒測試和黑盒測試之間的一種,灰盒測試多用於集成測試階段,不僅關注輸入、輸出的正確性,同時也關注程序內部的情況。
灰盒測試:功能+接口

三、按是否運行划分
1.靜態測試(Static testing)
靜態方法是指不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性,對需求規格說明書、軟件設計說明書、源程序做結構分析、流程圖分析、符號執行來找錯。分析如下:

檢查項:代碼風格和規則審核;程序設計和結構的審核;業務邏輯的審核;走查、審查與技術復審手冊。
靜態質量:度量所依據的標准是ISO9126。在該標准中,軟件的質量用以下幾個方面來衡量,即功能性(Functionality)、可靠(Reliability)、可用性(Usability)、有效性(Efficiency)、可維護性(Maintainability)、可移植性(Portability)。
靜態測試:代碼靜態分析和文檔測試都屬於靜態測試。

2.動態測試(Dynamic testing)
動態測試是指通過運行被測程序,檢查運行結果與預期結果的差異,並分析運行效率、正確性、健壯性、等性能。
(1)動態測試有三部分組成:構造測試用例、執行程序、分析程序的輸出結果。
(2)大多數軟件測試都屬於動態測試。

四、按測試對象划分
1.性能測試
檢查系統是否滿足需求規格說明書中規定的性能。
通常表現在以下幾個方面:

對資源利用(如內存、處理機周期等)進行的精確度量
對執行間隔
日志事件(如中斷,報錯)
響應時間
吞吐量(TPS)
輔助存儲區(例如緩沖區、工作區的大小等)
處理精度等進行的監測
2.安全測試
安全測試是一個相對獨立的領域,需要更多的專業知識。如:WEB的安全測試、需要熟悉各種網絡協議、防火牆、CDN、熟悉各種操作系統的漏洞、熟悉路由器等。

安全測試這個領域感覺也是很有意思的,希望以后有機會學習學習!!!

3.兼容性測試
兼容性測試主要是指,軟件之間能否很好的運作,會不會有影響、軟件和硬件之間能否發揮很好的效率工作,會不會影響導致系統的崩潰。

平台測試
瀏覽器測試
軟件本身能否向前或向后兼容
測試軟件能否與其它相關軟件兼容
數據兼容性測試
最常見的兼容性測試就是瀏覽器的兼容性測試,不同瀏覽器在css,js解析上的不同會導致頁面顯示不同。
常見的IE8的兼容性。

4.文檔測試
國家有關計算機軟件產品開發文件編制指南中共有14種文件,可分為3大類。

開發文件:可行性研究報告、軟件需求說明書、數據要求說明書、概要設計說明書、詳細設計說明書、數據庫設計說明書、模塊開發卷宗。
用戶文件:用戶手冊、操作手冊,用戶文檔的作用:改善易安裝性;改善軟件的易學性與易用性;改善軟件可靠性;降低技術支持成本。
管理文件:項目開發計划、測試計划、測試分析報告、開發進度月報、項目開發總結報告。
在實際的測試中,最常見的就是用戶文件的測試,例如:手冊說明書等。
文檔測試關注的點:

文檔的術語
文檔的正確性
文檔的完整性
文檔的一致性
文檔的易用性
5.易用性測試(用戶體驗測試)
易用性(Useability)是交互的適應性、功能性和有效性的集中體現。又叫用戶體驗測試。

6.業務測試
業務測試是指:測試人員將系統的整個模塊串接起來運行、模擬真實用戶實際的工作流程。滿足用戶需求定義的功能來進行測試的過程。

7.界面測試
界面測試(簡稱UI測試),測試用戶界面的功能模塊的布局是否合理、整體風格是否一致、各個控件的放置位置是否符合客戶使用習慣,此外還要測試界面操作便捷性、導航簡單易懂性,頁面元素的可用性,界面中文字是否正確,命名是否統一,頁面是否美觀,文字、圖片組合是否完美等。

8.安裝測試
安裝測試是指:測試程序的安裝、卸載。最典型的就是APP的安裝、卸載。

9.內存泄漏測試
內存泄漏的檢測: 1、對於不同的程序可以使用不同的方法來進行內存泄露的檢查,還可以使用一些專門的工具來進行內存問題的檢查,例如MemProof. AQTime、Purify、BundsChecker等。 有些開發工具本身就帶有內存問題檢查機制.要確保程序員在編寫程序和編譯程序的時候打開這些功能。
2、通過代碼掃描分析工具來檢查

五、按測試實施的組織
1.α測試(Alpha Testing)
α測試是由一個用戶在開發環境下進行的測試,也可以是公司內部的用戶在模擬實際操作環境下進行的測試。
α測試的目的是評價軟件產品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。
2.β測試(Beta Testing)
Beta測試是一種驗收測試。Beta測試由軟件的最終用戶們在一個或多個客房場所進行。
α測試與Beta測試的區別:
(1)測試的場所不同:Alpha測試是指把用戶請到開發方的場所來測試,beta測試是指在一個或多個用戶的場所進行的測試。
(2)Alpha測試的環境是受開發方控制的,用戶的數量相對比較少,時間比較集中。beta測試的環境是不受開發方控制的,用戶數量相對比較多,時間不集中。
(3)alpha測試先於beta測試執行。通用的軟件產品需要較大規模的beta測試,測試周期比較長。

3.第三方測試
介於開發方和用戶方之間的組織測試。
六、按是否手工執行划分
1.手工測試(Manual testing)
手工測試是由人一個一個的輸入用例,然后觀察結果,和機器測試相對應,屬於比較原始但是必須的一種。

優點:自動化測試無法代替探索性測試、發散思維類無既定結果的測試。
缺點:執行效率慢,量大易錯。
2.自動化測試(Automation Testing)
所謂自動化測試,就是在預設條件下運行系統或應用程序,評估運行結果。(預先條件包括:正常條件和異常條件)。簡單來說,自動化測試就是是把人為驅動的測試行為,轉化為機器執行的一種過程。

自動化測試有:測試自動化、性能測試自動化、安全測試自動化。(一般情況下,我們說的自動化是指功能測試的自動化)
自動化測試按照測試對象來分,還可以分為接口測試、UI測試等。接口測試的ROI(產出投入比)要比UI測試高。
自動化實施的步驟:
(1)完成功能測試,版本基本穩定
(2)根據項目特性,選擇適合項目的自動化工具,並搭建環境
(3)提取手工測試的測試用例轉換為自動化測試的用例
(4)通過工具、代碼實現自動化的構造輸入、自動檢測輸出結果是否符合預期
(5)生成自動測試報告
(6)持續改進、腳本優化

七、按測試地域划分
1.國際化測試
軟件的國際化和軟件的本地化是開發面向全球不同地區用戶使用的軟件系統的兩個過程。而本地化測試和國際化測試則是針對這類軟件產品進行的測試。由於軟件的全球化普及,還有軟件外包行業的興起,軟件的本地化和國際化測試儼然成為了一個獨特的測試專門領域。

本地化和國際化測試與其他類型的測試存在很多不同之處。下面是本地化和國際化測試 的一些要點。
1、本地化后的軟件在外觀上與原來版本是否存在很大的差異,外觀是否墼齊、不走樣。
2、是否對所有界面元素都進行了本地化處理,包括對話框、菜單、工具欄、狀態欄、提示信息(包括聲音的提示)、日志等。
3、在不同的屏幕分辨率下界面是否正常顯示。
4、是否存在不同的字體大小,字體設置是否恰當。
5、日期、數字格式、貨幣等是否能適應不同國家的文化習俗。例如,中文是年月日,而英文是月日年。
6、排序的方式是否考慮了不同語言的特點。例如,中文按照第一個字的漢語拼音順序排序,而英文按照首字母排序。
7、在不同的國家采用不同的度量單位,軟件是否能自適應和轉換。
8、軟件是否能在不同類型的硬件上正常運行,特別是在當地市場上銷售的流行硬件上。
9、軟件是否能在Windows或者其他操作系統的當地版本上正常運行。
10、聯機幫助和文檔是否已經翻譯,翻譯后的鏈接是否正常。正文翻譯是否正確、恰當, 是否有語法錯誤。
軟件本地化和國際化測試是一個綜合了翻譯行業和軟件測試行業的測試類型。它要求測 試人員具備一定的翻譯能力、語言文化,同時具備測試人員的基本技能。

2.本地化測試
之前我們一起學習的測試都是本地化測試。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM