軟體測試理論基礎 --- 模型介紹
- 軟體測試定義
- 軟體測試流程
- 軟體測試分類
-
- 按照方法分類
-
- 黑盒測試
- 白盒測試
- 灰盒測試
- 按照方向劃分
-
- 功能測試
- 性能測試
- 安全測試
- 相容性測試
- UI測試
- 易用性測試
- 穩定測試
- 按階段劃分
- 按照對象劃分
- 按狀态劃分
- 其他分類
- APP專項測試
軟體測試定義
軟體測試是使用人工或自動的手段來運作或測定某個軟體系統的過程,其目的在于檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差别
軟體測試流程
需求評審–>需求分析–>測試計劃–>用例設計–>用例評審–>測試環境準備–>執行測試–>bug跟蹤–>回歸測試–>測試報告–>釋出上線–>線上環境冒煙測試
軟體測試分類
按照方法分類
黑盒測試
測試人員在不考慮任何程式内部結構和特性的條件下,檢查程式的功能是否能夠按照規範說明準确無誤的運作(功能測試、界面測試屬于黑盒測試)
白盒測試
測試程式内部邏輯結構及相關資訊(檢查程式源代碼)
灰盒測試
是介于白盒測試與黑盒測試之間的一種測試,灰盒測試多用于內建測試階段,不僅關注輸出、輸入的正确性,同時也關注程式内部的情況。灰盒測試不像白盒那樣詳細、完整,但又比黑盒測試更關注程式的内部邏輯,常常是通過一些表征性的現象、事件、标志來判斷内部的運作狀态
按照方向劃分
功能測試
功能測試就是對産品的各功能進行驗證,檢查産品是否達到使用者要求的功能。
性能測試
- 壓力測試:給軟體不斷加壓,強制其在極限的情況下運作,觀察它可以運作到何種程度,進而發現性能缺陷,包括内部記憶體、CPU 可用性、磁盤空間和網絡帶寬
- 負載測試:逐漸增加系統負載,測試系統性能的變化,并最終确定在滿足性能名額的情況下,系統所能承受的最大負載量的測試
- 并發測試:主要指當測試多使用者并發通路同一個應用、子產品、資料時是否産生隐藏的并發問題,如記憶體洩漏、線程鎖、資源争用問題,
安全測試
安全測試是檢查系統對非法侵入滲透的防範能力(滲透測試、流量攻擊、SQL注入、跨域攻擊)
相容性測試
相容性測試是指要測試的軟體在不同的硬體平台上、不同的應用軟體之間、不同的作業系統中、不同的網絡環境中是否可以正常的運作、有無異常的測試過程。即是通常說的軟體的可移植性
-
Web相容性測試:
浏覽器上的相容性:
Google 、saferi、Firefox、opra、eadge、360、QQ、誇克、搜狗…根據市場所占份額,從高到低進行測試
第三方測試工具:
推薦IEtester(離線)、SuperPreview(離線)、Browsershots:http://browsershots.org(線上)
-
作業系統相容性:
windows系列、Mac OS X系列、UNIX/Linux系列
-
APP相容性測試:
a. Android:不同安卓裝置、安卓版本、系統版本、螢幕分辨率、螢幕大小、螢幕形狀等綜合考慮情況下測試
注意:安卓機型較多,實際情況下怎樣進行測試
公司提供部分型号的手機進行測試,如果覆寫率不夠時,還可以采用百度衆測平台和雲測平台,這兩款測試工具裡面包含了安卓和iOS的測試(收費)
b. iOS相容性:各型号的iPhone手機上進行測試
UI測試
界面是否符合使用者使用風格、設計風格是否統一、布局是否合理、配色是否合理,界面設計是否美觀
易用性測試
操作是否簡單、學習成本越低越好
穩定測試
長時間運作會不會出問題
按階段劃分
- 單元測試:是指對軟體中的最小可測試單元進行檢查和驗證(方法、函數、類等,一般由程式員自己完成,屬于白盒測試、靜态測試)
- 內建測試:也叫組裝測試或聯合測試。在單元測試的基礎上,将所有子產品按照設計要求組裝成為子系統或系統,進行內建測試,一般是對接口進行測試
- 系統測試:對軟體整體進行測試,是否滿足使用者所提要求,需要對功能、性能、安全、界面等所有方面進行測試
-
驗收測試:與系統測試相比僅僅為測試人員上的差別,測試人員輔助甲方進行測試
– α測試:内測,内部人員測試
– β測試:公測,客戶或使用者測試
按照對象劃分
APP測試、web測試 、物聯網測試、嵌入式測試、大資料測試、車聯網測試、AI測試、小程式測試等等
按狀态劃分
- 靜态測試:軟體不運作,如測試源代碼,測試需求分析說明書等等
- 動态測試:程式運作情況下的測試
其他分類
- 回歸測試:開發人員修改了舊代碼後,測試人員重新進行測試,确認bug是否修改以及有沒有引入新的錯誤或導緻其他代碼産生錯誤。
- 冒煙測試:測試前的測試,檢查軟體是否有可測試
- 埋點測試:埋點測試資料采集的一種術語,而資料采集是提供給營運從業人員去了解手機app對于某些子產品、場景的使用者使用情況,進行的一個觸發埋點,将埋點采集到的資料到的資料進行上報的過程。采集資料隻是起點,将資料進行分析、整理、彙總以及報表展示,最終得出使用者對app普遍對使用行為,進而實作app面向使用者的改良
- 打樁測試 :在我們進行單元測試的時候,單元本身無法構成一個切實可運作的程式系統,是以我們需要為單元測試來開發樁子產品和驅動子產品,進而完成我們的單元測試目的(自動化測試會用到)
APP專項測試
- 弱網測試:模拟軟體在不同網絡下的表現(2G/3G/4G/5G/WIFI/熱點/飛行模式/斷網),不同網絡實質是網速不同,可以通過軟體進行模拟(Fiddler,Charles)
- 權限測試:不給某個權限時,軟體是否能正場運作(禁止使用相機權限時,看app是否正常運作)
- 安裝、解除安裝、更新測試
-
更新測試
– 當用戶端有新版本時,是否有更新提示
– 使用者取消版本更新時,老版本是否可以正常使用,下次啟動應用時,是否出現更新提示
– 當有新版本時,不删除用戶端的情況下,老版本是否可用
– 保留新版用戶端的前提下,使用老版本安裝包能否正常安裝(要求不能安裝,版本不可逆)
– 出現跨版本更新的時候,是否可以更新成功
-
場景互動測試:是指一個功能正在執行過程中,同時另外一個事件或操作對該過程進行幹擾的測試。
– 多個APP同時運作是否影響正常功能
– APP運作時前/背景切換是否影響正常功能
– APP運作時撥打/接聽電話
– APP運作時發送/接收資訊
– APP運作時發送/收取郵件
– APP運作時切換網絡(2G、3G、4G 、 5G 、 Wi-Fi)
– APP運作時浏覽網絡
– APP運作時使用藍牙傳送/接收資料
– APP運作時使用相機、電腦等手機自帶裝置。
– 單手模式
– 分屏使用
- 資源争用測試:(多個app同時使用某一功能,比如手機喇叭,誰的優先級更高的測試)
-
消息推送測試:(消息推送都是消息伺服器在推送,與app無關)
消息推送是否成功、順序是否正确…
- 資源監控測試:測試CPU、硬碟、記憶體、流量、電量使用情況是否合理(CPU、記憶體、流量、電量一般采用求平均值的方法,即軟體運作規定的時間内(半小時或者1小時)使用情況)
- 相容性測試
- 易用性測試
- UI測試
- 穩定性測試