按開發階段劃分
單元測試: java Junit
單元測試就是針對程式中一個小的單元子產品進行測試,又稱子產品測試
測試階段:編碼前(TDD Test Driven-development 測試驅動開發)和編碼後
測試對象:最小子產品
測試人員:白盒測試工程師或開發工程師
測試依據:代碼和注釋+詳細設計文檔
測試方法:白盒測試
測試内容:子產品接口測試、局部資料結構測試、路徑測試(if-else、switch case)、錯誤處理測試(try-catch)、邊界測試(for循環、while循環、do-while循環、周遊、數組)
內建測試
內建就是按照一定的組合政策,把功能子產品組裝起來。
內建測試就是把組裝後的子產品進行測試
測試階段:在單元測試之後
測試對象:子產品之間的接口
接口測試工具:postman soupUI jmeter 接口自動化(自己寫腳本)
測試人員:白盒測試工程師或開發工程師
測試依據:單元測試子產品+概要設計文檔
測試方法:黑盒測試與白盒測試相結合(灰盒測試)
測試内容:子產品之間資料的傳輸、子產品之間功能沖突、子產品組裝功能正确性、全局資料結構、單子產品缺陷對系統的影響
系統測試
對軟體系統進行全面的測試,包含回歸測試和冒煙測試
測試階段:內建測試通過之後
測試對象:整個系統(軟硬體)
測試人員:黑盒測試工程師
測試依據:需求規格說明文檔
測試方法:黑盒測試
測試内容:功能、界面、可靠性、易用性、性能、相容性、安全性等
回歸測試
屬于系統測試
對代碼進行修改(增加新功能、系統維護更新、修BUG) 自動化測試
冒煙測試
主要對系統主要功能、流程測試,很快,測試用例少
判斷測試人員是否接手正式測試
冒煙測試用例:提測用例 基本流程測試
驗收測試
測試階段:系統測試通過之後
測試對象:系統和文檔(使用者文檔,功能手冊)
測試人員:主要是最終使用者和需求方
測試依據:使用者需求、驗收标準
測試方法:黑盒測試
測試内容:功能、界面、可靠性、易用性、性能、相容性、安全性(功能等各種文檔)
按測試實施組織:
α測試
把使用者請到開發現場進行測試
- 優點:友善使用者及時和開發人員溝通,系統的問題
測試時間相對集中
- 缺點:受到開發環境限制
β測試
使用者在實際使用環境下進行測試
- 優點:在實際使用環境下測試,測試環境更接近使用者使用的實際使用環境
- 缺點:測試時間不集中
α測試和β測試差別:
測試場所不同
測試時間不同
α測試在β測試之前
第三方測試
第三方測試機構測試
按是否運作劃分
靜态測試
度量所依據的标準:ISO25010 衡量的有: 功能性 性能 相容性 可用性 可靠性 可維護性 可移植性 郵箱性
動态測試
輸入測試用例觀察系統表現結果
按是否手工劃分
手工測試
手工一個一個輸入測試用例,精華在于測試用例的編寫,觀察實際結果與預期結果的差異
優點:靈活,充分發揮人的發散性思維和探索性測試
缺點:執行效率低,量大易錯
自動化測試
測試用例轉化為自動化腳本
包含:功能自動化(python/Java selenium+unittest) 接口自動化(功能是否實作 jmeter) 性能自動化(Loadrunner)
自動化實施的時機:系統穩定,變化不大 功能穩定後不用反複修改自動化腳本 如回歸測試和相容性測試
APP自動化測試工具:appium Manana
執行自動化腳本遇到問題及時修改,執行完畢後生成自動化腳本
自動化測試是否替代手工測試?
不可以。功能不穩定的時候需要不斷修改自動化腳本;手工測試可以充分發揮測試人員的探索性思維和發散性思維,而自動化測試不行;
黑盒測試 白盒測試
按是否檢視代碼劃分
黑盒測試
不關心程式内部結構,隻關心輸入和輸出(把軟體當成黑盒測試)進行的軟體測試。
白盒測試
關心程式内部的邏輯和結構進行測試。(測代碼,程式)
- 邏輯覆寫法:判定覆寫,條件覆寫,判定和條件的組合,條件和條件的組合,判定和判定的組合
- 語句覆寫法(最弱的覆寫,不能覆寫所有邏輯,會有遺漏),
- 循環覆寫法(for while),
- 路徑覆寫法(每條路徑進行覆寫)
- 語句覆寫法:
- 循環覆寫法,
灰盒測試
介于白盒測試和黑盒測試,既要關心軟體的輸入和輸出,還要關心軟體内部的邏輯結構
按測試地域劃分
軟體國際化:在設計或開發軟體的過程中使用軟體可以使用不同語言和不同的風俗習慣,在軟體進行語言轉換的時候不需要源碼的修改,這種工程技術稱之為軟體國際化。 目的:實作軟體本地化
國際化測試
不同分辨率界面顯示正常,日期、貨币、數字格式等适應不同國家風俗習慣、軟體在不同裝置正常運作
競品:相同業務不同公司
本地化測試
按測試對象劃分
業務測試
關注使用者和需求
常用方法:場景法(正常場景和異常場景)
界面測試
眼睛直覺看到的。
界面測試内容
布局 标題 圖檔(大小 位置 是否清晰) 文字(字型大小 類型 粗細 是否斜體) 排版 控件(滾動條正常拖動 按鈕正常使用,有效的按鈕高亮顯示,未激活按鈕置灰)
界面測試常見BUG(測試人員基本素養)
- 不合适的快捷鍵
- 丢失文字(控件,彈出框)
- 文字被截斷,沒有展示出來
- 行與行之間沒有對齊
- 一行沒寫完就自動換行
- 文字展示重疊,被覆寫
- 快捷鍵重複
響應式界面的測試
- 頁面在不同螢幕(分辨率)下文字沒有消失,文字沒有重疊,完全展示;
- 頁面在不同螢幕(分辨率)下圖檔沒有消失,變形,不清晰,重疊;
- 頁面在不同螢幕(分辨率)下頁面排版,布局合理;
- 頁面在不同螢幕(分辨率)下頁面的展示按需求去設計
容錯性測試:
就是系統在發生一些錯誤或者不當操作的時候,能夠自我處理這些錯誤,不讓錯誤或者異常直接抛給使用者。
- 資料類型:數字不合法或不合規定給出提示
- 驗證:一般情況下 查詢 控告人預設搜尋全部資訊,過濾空格
- 資訊校驗
- 系統軟硬體容錯性:
- 伺服器硬體發生故障,有備用伺服器,進行使用者無感覺切換
- 系統崩潰(當機),能夠切換到備用系統
- 斷電,斷網,有備用電源和備用網絡進行切換
- 失效恢複性測試:人為用一些暴力手段讓系統發生故障,檢視系統的自我保護和自我恢複能力
文檔測試
文檔的完整性,和系統一緻性,文檔的術語,正确性,易用性
測試對象:開發文檔(設計文檔,接口文檔) 使用者文檔(使用者使用手冊,功能介紹文檔) 管理文檔
易用性
使用者體驗測試
相容性
- 平台和浏覽器的相容性
- 手機APP 不同手機系統的功能正常,頁面展示正常
- 浏覽器 IE 360 搜狗 Chrome Firefox Safari edge QQ浏覽器
-
為什麼同一個系統要在不同浏覽器下測試?
不同浏覽器核心不一樣
- 軟體向前或向後的相容性
-
不同軟體的相容性
同一個廠家不同的軟體要有相容性:淘寶,支付寶
不同廠家的軟體要有相容性:滴滴,支付寶,微信
- 資料相容性
安裝測試
測試程式的安裝、解除安裝
安全測試
内容:SQL注入 XSS注入 爬蟲 網絡攻擊等
SQL注入:
上傳下載下傳安全測試:上傳過程中或者下載下傳過程中不能被攔截 不能上傳有病毒的檔案 上傳或者下載下傳檔案過大,系統能夠檢測并提示
性能測試
響應時間
系統運作時占用的資源,記憶體,CPU磁盤,網絡寬帶,耗電量
并發數:同一時刻使用系統同一個功能的使用者數
吞吐量:伺服器處理的資訊量,機關時間吞吐量越大,說明系統性能越好
響應時間:使用者發送請求到使用者看到自己預期的響應内容的間隔時間
記憶體洩漏測試
記憶體洩漏的原因:配置設定的記憶體沒有辦法回收;沒有及時回收;API引用有問題;造成無法回收