软件测试之测试的分类
目錄
- 1.按照開發階段劃分
- 2.按照實施組織劃分
- 3.按照按照是否運行程序劃分
- 4.按照是否手工劃分
- 5.按照是否查看代碼劃分
- 6.按照測試地域劃分
- 7.按照測試對象劃分
1.按照開發階段劃分
單元測試(Unit Testing)
單元測試是對軟件組成單元進行測試。其目的是檢驗軟件基本組成單位的正確性。測試的對象是軟件設計的最小單位:模塊。又稱為模塊測試
測試階段:編碼后或者編碼前(TDD)
測試對象:最小模塊
測試人員:白盒測試工程師或開發工程師
測試依據:代碼和注釋+詳細設計文檔
測試方法:白盒測試 測試內容:模塊接口測試、局部數據結構測試、路徑測試、錯誤處理測試、邊界測試
集成測試(Integration Testing)
集成測試也稱聯合測試(聯調)、組裝測試,將程序模塊采用適當的集成策略組裝起來,對系統的接口及集成后的功能進行正確性檢測的測試工作。集成主要目的是檢查軟件單位之間的接口是否正確。
測試階段:一般單元測試之后進行
測試對象:模塊間的接口
測試人員:白盒測試工程師或開發工程師
測試依據:單元測試的模塊+概要設計文檔
測試方法:黑盒測試與白盒測試相結合
測試內容:模塊之間數據傳輸、模塊之間功能沖突、模塊組裝功能正確性、全局數據結構、單模塊缺陷對系統的影響
系統測試(System Testing)
將軟件系統看成是一個系統的測試。包括對功能、性能以及軟件所運行的軟硬件環境進行測試。時間大部分在系統測試執行階段,包括回歸測試和冒煙測試。
測試階段:集成測試通過之后
測試對象:整個系統(軟、硬件)
測試人員:黑盒測試工程師
測試依據:需求規格說明文檔
測試方法:黑盒測試
測試內容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
回歸測試(Regression Testing)
回歸測試是指修改了舊代碼后,重新進行測試以確認修改沒有引入新的錯誤或導致其他代碼產生錯誤。自動回歸測試將大幅降低系統測試、維護升級等階段的成本。
冒煙測試(smoke testing) =
冒煙測試的對象是每一個新編譯的需要正式測試的軟件版本,目的是確認軟件基本功能正常,可以進行后續的正式測試工作。
冒煙測試的執行者是版本編譯人員。
冒煙測試一般在開發人員開發完畢后送給測試人員來進行測試時,測試人員會先進行冒煙測試,保證基本功能正常,不阻礙后續的測試。
驗收測試是部署軟件之前的最后一個測試操作。它是技術測試的最后一個階段,也稱為交付測試。驗收測試的目的是確保軟件準備就緒,按照項目合同、任務書、雙方約定的驗收依據文檔,向軟件購買都展示該軟件系統滿足原始需求。
測試階段:系統測試通過之后
測試對象:整個系統(包括軟硬件)。
測試人員:主要是最終用戶或者需求方。
測試依據:用戶需求、驗收標準
測試方法:黑盒測試
測試內容:同系統測試(功能…各類文檔等)
2.按照實施組織劃分
α測試(Alpha Testing)
α測試是由一個用戶在開發環境下進行的測試
優點:有利于和測試,開發人員及時溝通問題,及時解決
缺點:容易受開發人員和測試人員的影響
β測試(Beta Testing)
Beta測試是一種驗收測試。Beta測試由軟件的最終用戶們在一個或多個場所進行。
優點:測試環境是用戶實際使用環境,有利于問題發現
缺點:時間較分散
第三方測試
介于開發方和用戶方間的組織的測試
α測試與Beta測試的區別:
① 測試的場所不同:Alpha測試是指把用戶請到開發方的場所來測試,beta測試是指在一個或多個用戶的場所進行的測 試。
②Alpha測試的環境是受開發方控制的,用戶的數量相對比較少,時間比較集中。
beta測試的環境是不受開發方控制的, 用戶數量相對比較多,時間不集中。
③alpha測試先于beta測試執行。
3.按照按照是否運行程序劃分
靜態測試(Static testing)
靜態方法是指不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性。對需求規格說明書、軟件設計說明書、源程序做結構分析、流程圖分析、符號執行來找錯。分析如下
檢查項:代碼風格和規則審核;程序設計和結構的審核;業務邏輯的審核;走查、審查與技術復審手冊。
靜態質量:度量所依據的標準是ISO9126。在該標準中,軟件的質量用以下幾個方面來衡量,即功能性(Functionality)、可靠性(Reliability)、可用性(Usability)、有效性(Efficiency)、可維護性(Maintainability)、可移植性(Portability)。
代碼靜態分析和文檔測試都屬于靜態測試
動態測試(Dynamic testing)
動態測試方法是指通過運行被測程序,檢查運行結果與預期結果的差異,并分析運行效率、正確性和健壯性等性能。這種方法由三部分組成:構造測試用例、執行程序、分析程序的輸出結果。
4.按照是否手工劃分
手工測試(Manual testing)
手工測試就是由人去一個一個的輸入用例,然后觀察結果,和機器測試相對應,屬于比較原始但是必須的一個步驟。
優點:自動化無法替代探索性測試、發散思維結果的測試。
缺點:執行效率慢,量大易錯。
自動化測試(Automation Testing)
就是在預設條件下運行系統或應用程序,評估運行結果,預先條件應包括正常條件和異常條件。簡單說自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。
自動化測試比如功能測試自動化、性能測試自動化、安全測試自動化。 通常所說的自動化是指功能測試自動化。
自動化測試按照測試對象來分,還可以分為接口測試、UI測試等。接口測試的ROI(產出投入比)要比UI測試高
自動化實施步驟:
1.完成功能測試,版本基本穩定
2.根據項目特性,選擇適合項目的自動化工具,并搭建環境
3.提取手工測試的測試用例轉化為自動化測試的用例
4.通過工具、代碼實現自動化的構造輸入,自動檢測輸出結果是否符合預期
5.生成自動測試報告
6.持續改進,腳本優化。
5.按照是否查看代碼劃分
黑盒測試(Black-box Testing)
黑盒測試也稱功能測試,測試中把被測的軟件當成一個黑盒子,不關心盒子的內部結構是什么,只關心軟件的輸入數據與輸出數據。
方法:等價類、邊界值、因果圖、正交表、場景法、錯誤猜測法
白盒測試(White-box Testing)
白盒測試又稱結構測試、透明盒測試、邏輯驅動測試或基于代碼的測試。白盒指的打開盒子,去研究里面的源代碼 和程序結果。接口測試也是白盒測試的是一種 。
方法:
(1)語句覆蓋法
(2)邏輯覆蓋(判定覆蓋,條件覆蓋,判定和條件組合覆蓋,條件和條件組合覆蓋)
(3)路徑覆蓋
(4)循環覆蓋
灰盒測試(Gray-Box Testing)
灰盒測試,是介于白盒測試與黑盒測試之間的一種測試,灰盒測試多用于集成測試階段,不僅關注輸出、輸入的正 確性,同時也關注程序內部的情況
6.按照測試地域劃分
國際化測試
軟件的國際化和軟件的本地化是開發面向全球不同地區用戶使用的軟件系統的兩個過程。而本地化測試和國際化測試則是針對這類軟件產品進行的測試。由于軟件的全球化普及,還有軟件外包行業的興起,軟件的本地化和國際化測試儼然成為了一個獨特的測試專門領域。
本地化和國際化測試與其他類型的測試存在很多不同之處。下面是本地化和國際化測試 的一些要點。
1、本地化后的軟件在外觀上與原來版本是否存在很大的差異,外觀是否墼齊、不走樣。
2、是否對所有界面元素都進行了本地化處理,包括對話框、菜單、工具欄、狀態欄、提示信息(包括聲音的提示)、日志等。
3、在不同的屏幕分辨率下界面是否正常顯示。
4、是否存在不同的字體大小,字體設置是否恰當。
5、日期、數字格式、貨幣等是否能適應不同國家的文化習俗。例如,中文是年月日,而英文是月日年。
6、排序的方式是否考慮了不同語言的特點。例如,中文按照第一個字的漢語拼音順序排序,而英文按照首字母排序。
7、在不同的國家采用不同的度量單位,軟件是否能自適應和轉換。
8、軟件是否能在不同類型的硬件上正常運行,特別是在當地市場上銷售的流行硬件上。
9、軟件是否能在Windows或者其他操作系統的當地版本上正常運行。
10、聯機幫助和文檔是否已經翻譯,翻譯后的鏈接是否正常。正文翻譯是否正確、恰當, 是否有語法錯誤。
軟件本地化和國際化測試是一個綜合了翻譯行業和軟件測試行業的測試類型。它要求測 試人員具備一定的翻譯能
力、語言文化,同時具備測試人員的基本技能。
本地化測試
之前我們所講的全是本地化測試。
7.按照測試對象劃分
業務測試
是測試人員把系統各個模塊串接起來運行、模擬真實用戶實際的工作流程,滿足用戶需求定義的功能來進行測試的過程。
界面測試
界面測試(簡稱UI測試),測試用戶界面的功能模塊的布局是否合理、整體風格是否一致、各個控件的放置位置是否符合客戶使用習慣,此外還要測試界面操作便捷性、導航簡單易懂性,頁面元素的可用性,界面中文字是否正確,命名是否統一,頁面是否美觀,文字、圖片組合是否完美等。
容錯性測試 容錯性測試是檢查軟件在異常條件下自身是否具有防護性的措施或某種災難性恢復的手段。當系統出錯時,能否在指定時間間隔內修正錯誤并重新啟動系統。容錯性測試包括兩個方面:
①輸入異常數據或進行異常操作,以檢驗系統的保護性。如果系統的容錯性好,系統只給出提示或內部消化掉,而不會導致系統出錯甚至崩潰。
②災難恢復性測試。通過各種手段,讓軟件強制性地發生故障,然后驗證系統已保存的用戶數據是否丟失,系統和數據是否能盡快恢復。
文檔測試
●開發文件:可行性研究報告、軟件需求說明書、數據要求說明書、概要設計說明書、詳細設計說明書、數據庫設計說明書、模塊開發卷宗。
●用戶文件:用戶手冊、操作手冊,用戶文檔的作用:改善易安裝性;改善軟件的易學性與易用性;改善軟件可靠性;降低技術支持成本。
●管理文件:項目開發計劃、測試計劃、測試分析報告、開發進度月報、項目開發總結報告。
●文檔測試的關注點:
文檔的術語
文檔的正確性
文檔的完整性
文檔的一致性
文檔的易用性
兼容性測試
兼容性主要是指軟件之間能否很好的運做,會不會有影響、軟件和硬件之間能否發揮很好的效率工作,會不會影響導致系統的崩潰。
●平臺測試
●瀏覽器測試
Chrome,Firefox,edge,IE,360,搜狗,Safari,每一個瀏覽器的主流版本
●軟件本身能否向前或者向后兼容:對之前或之后的版本的影響
●測試軟件能否與其它相關的軟件兼容:如淘寶支付寶安裝兼容
●數據兼容性測試:淘寶支付金額和物流會流轉到支付寶通知消息中
易用性測試
產品設計遵循標準規范
直觀性
舒適性
安裝測試
測試程序的安裝、卸載
典型的是app的安裝、卸載
安全測試 安全測試是一個相對獨立的領域,需要更多的專業知識。例如web的安全測試,需要熟悉各種網絡協議TCP\HTTP,防火墻,CDN,熟悉各種操作系統的漏洞,熟悉路由器等。從軟件來說,熟悉各種攻擊手段,例如
SQL注入、Xss等。作為web入門測試,可以IBM的appscan。
性能測試
檢查系統是否滿足需求規格說明書中規定的性能。
通常表現在以下幾個方面:
對資源利用(如內存、處理機周期等)
進行的精確度量
對執行間隔
日志事件(如中斷,報錯)
響應時間 吞吐量(TPS)
輔助存儲區(例如緩沖區、工作區的大小等)
處理精度等進行的監測
內存泄漏測試
造成內存泄露的原因有很多,最常見的有以下幾種。
分配完內存之后忘了回收。
程序寫法有問題,造成沒辦法回收。
某些API函數的使用不正確,造成內存泄露。
沒有及時釋放。
內存泄漏的檢測:
1、對于不同的程序可以使用不同的方法來進行內存泄露的檢查,還可以使用一些專門的工具來進行內存問題的檢查,例如MemProof.
AQTime、Purify、BundsChecker等。
有些開發工具本身就帶有內存問題檢查機制.要確保程序員在編寫程序和編譯程序的時候打開這些功能。 2、通過代碼掃描分析工具來檢查
總結
以上是生活随笔為你收集整理的软件测试之测试的分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从零开始学Node.js(八_删查)
- 下一篇: 1、类型和语法——类型