1、系統測試
1.系統測試定義
是將已經集成好的軟件系統,作為整個基於計算機系統的一個元素,與計算機硬件、外設、某些支持軟件、數據和人員等其他系統元素結合在一起,在實際運行(使用)環境下,對計算機進行一系列的測試活動。
2.系統測試目的
1)通過與系統的需求定義作比較,發現軟件與系統定義不符合或與之矛盾的地方;
2)系統測試的測試用例應根據需求分析說明書來設計,並在實際使用環境中運行。
3.系統測試分類(系統測試對象)
1)純軟件(單機軟件、客戶端軟件、服務器端軟件、插件軟件);
2)軟件+硬件(空調、電梯等);
3)軟件+硬件+維護人員(電信、移動、聯通使用的系統)。
4.系統測試實際環境和開發環境區別
1)被測系統所包含的代碼不同;
2)配置不同;
3)包含的dll不同;
驗證時盡可能的模擬實際的運行環境與條件。
2、系統測試類型
系統測試是針對一定的質量特性,采用一定的測試方法所進行的測試。
1.功能測試(Functional Testing)
1)功能測試概念
根據產品的需求規格說明書和測試需求列表,驗證產品的功能實現是否符合產品的需求規格。
2)功能測試目標
功能測試主要是為了發現以下幾類錯誤:
1)是否有不正確或遺漏了的功能?
2)功能實現是否滿足用戶需求和系統設計的隱藏需求?
3)能否正確的接受輸入?能否正確的輸出結果?
3)功能測試要點及舉例說明
功能測試需要注意以下幾點:
1)單一功能,例如打電話功能、聽歌功能等;
2)功能組合,例如對手機測試,可以測試接聽電話的時候是否可以查看信息、通訊錄等;
3)獨占資源的功能測試,對於服務器的軟件多考慮多用戶同時訪問、操作的情況,需要檢查用戶的同時使用是否會導致功能的失效。
2.性能測試(Performance Testing)
1)性能測試概念及介紹
*1* 在實時系統和嵌入系統中,符合功能需求但不符合性能需求的軟件是不能被接受的,所以需要進行性能測試,性能測試就是測試軟件在集成系統中的運行性能。
*2* 性能測試可以發生在測試過程的所有步驟中,即使是在單元層,一個單獨模塊的性能也可以使用白盒測試來進行評估,性能分析師需要知道系統內部的工作原理,並且定義特殊的系統資源來進行檢查。
*3* 性能測試是一個混合黑盒測試和白盒測試的方法,從黑盒測試角度來看,性能分析師不需要知道系統內部的工作原理,只需根據實際的工作符合或基准來比較一個系統版本與另一個系統版本在性能上的改進和降低。
*4* 注意:只有當整個系統的所有成分都集成到一起后,才能檢查一個系統的真正性能。
*5* 性能測試必須要有工具支持。
2)性能測試目標
*1* 度量系統相對於預定義目標的差距;
*2* 文檔化實際的性能級別和需求性能級別的差距 。
3)性能測試收集的信息有:
*1* CPU、IO、內存、信道使用情況;
*2* 每個模塊執行時間百分比以及一個模塊等待IO完工的百分比;
*3* 控制從一個模塊到另外一個模塊的次數;
*4* 指令隨時間的跟蹤路徑、每一組指令頁換入和換出的次數;
*5* 所有主要指令的單元執行時間;
*6* 系統反應時間;
*7* 系統吞吐量,即每個時間單元的處理數量。
3.壓力測試(Stress Testing)
1)壓力測試目的及介紹
*1* 調查系統在其資源超負荷的情況下的表現;
*2* 需要在一種反常數量、頻率或者資源的方式下執行系統;
*3* 研究系統在一個短時間內活動處在峰值時的反應(一個短時間內的吞吐量);
*4* 壓力測試通常發現主要的設計缺陷,會影響很多區域,因此應當在開發過程中盡早進行。
2)壓力測試目標
*1* 通過極限測試方法,發現系統在極限或者惡劣環境中自我保護能力;
*2* 驗證系統的可靠性。
3)壓力測試要點
必須將極限情況模擬出來,然后在該極限情況下進行測試,查看系統性能如何。
4)壓力測試舉例說明
*1* 將輸入數據的量提高一個數量級來測試輸入功能會如何響應?
*2* 某手機正常使用翻蓋次數為10萬,結果翻蓋15萬次,看是否還可以正常使用;
*3* 某電子商務網站的服務器的cpu占用率達到100%時,繼續訪問該網站,查看網頁響應時間。
4.容量測試(Volume Testing)
1)容量測試目的及介紹
*1* 目的是使系統承受超額的數據容量來發現它是否能夠正確的處理該數據容量;
*2* 容量測試是面向數據的。
2)容量測試目標
檢測系統處理大容量數據方面的能力。
3)容量測試要點
系統中對於用戶而言,非常重要的最大值都可以作為容量測試的對象。
4)容量測試舉例說明
*1* 檢查手機最多可以保存的短信數量,聯系人數量;
*2* 測試某電子商務網站最多支持的並發用戶數量;
*3* 發短信時,輸入足夠多的文字,顯示短信軟件可以處理的數據容量。
5.安全性測試(Security Testing)
1)安全性測試目的及介紹
*1* 通過模擬攻擊來尋找安全缺陷,以提高安全性質量;
*2* 用來驗證集成在系統內的保護機制是否能夠在實際中保護系統不受到非法的侵入;
*3* 用來保證系統本身數據的完整性和保密性。
2)安全性包含內容
*1* 環境安全(漏洞掃描、防病毒、緩沖區溢出);
*2* 產品安全(漏洞、產品本身會不會被破解);
*3* 權限安全(登錄、權限控制、跨站腳本攻擊、網頁安全漏洞);
*4* 信息安全(數據庫有特定的保密措施)。
3)常見功能性的安全性問題
*1* 沒有口令是否可以登錄到系統中?
*2* 各級用戶權限划分是否合理?
*3* 錯誤和文件訪問是否適當的被記錄?
*4* 系統配置數據是否能正確保存,系統故障時是否能恢復?
4)安全性測試要點
常見的web系統安全測試要點:
*1* 不登錄系統,直接輸入登陸后的頁面的url是否可以訪問;
*2* 退出登錄后,按后退按鈕是否能夠訪問之前的頁面;
*3* 重要信息(如密碼、身份證號碼、銀行卡號等)在輸入或查詢時是否會明文顯示;
*4* url中不可以修改的參數是否可以被修改等。
5)安全性測試舉例說明
*1* 多次錯誤登錄手機支付寶,查看是否可以自動鎖定賬號;
*2* 同一QQ賬號是否可以同時在多個用戶端登錄?
*3* 微信支付中解綁銀行卡時是否需要驗證方式。
6.GUI測試(Graphic User Interface Testing)
1)GUI測試內容
GUI測試是針對軟件系統GUI界面進行的測試,是一種可優化性測試,測試內容有兩方面:
*1* 測試界面實現和界面設計的吻合情況;
*2* 確認界面處理的正確性。
2)GUI測試對象(依據界面復雜性分類)
*1* 簡單界面元素,指功能和屬性相對比較單一的界面區域。例如:一個菜單項、一個按鈕、一個快捷鍵等;
*2* 界面組合元素,主要指一些復雜的界面元素。例如:工具欄,菜單欄、組合欄、表格等;
*3* 完整界面(窗口),指有一系列界面組合元素組成的能夠完成一個完整的輸入輸出功能的界面屬性組合,具有自己是視圖。例如:對話框等。
3)GUI測試要點
*1* 界面的顯示(是GUI測試的重點,包含整體性、文字、窗口、窗口中的元素(按鈕、字體等)、視覺、觸覺等各種感知方式);
*2* 控件的功能。
4)GUI測試舉例說明
測試QQ界面顯示,執行步驟:
*1* 電腦桌面上沒有其他任何窗口,運行QQ,查看QQ窗口界面顯示位置並記錄;
*2* 電腦桌面上有瀏覽器窗口,運行QQ,查看QQ窗口界面顯示位置並記錄;
*3* 比較在不同情況下QQ界面顯示的位置異同,如果不同,則有可能存在Bug。
7.可用性測試(Usability Testing)
1)可用性測試目的及介紹
*1* 是為了檢測用戶在理解和使用系統方面到底有多好;
*2* 主要考慮產品是否符合實際應用情況,是否符合用戶習慣和特殊需求;
*3* 考慮操作方式是否方便合理、設備和用戶間的交互信息是否准確易於理解、是否遵從行業習慣、外觀/界面是否美觀等;
*4* 應涉及到所有和用戶交互的功能或者子系統,包括:系統功能、系統發布、幫助文本和過程,以保證用戶能夠舒適的和系統進行交互。
2)可用性測試要點
在系統測試階段開展可用性測試,首先針對一些能量化的特性進行檢查,例如:菜單級數、快捷鍵的使用、網站導航。
3)可用性測試舉例說明
*1* 任何系統中菜單的級數一般不超過3級,這是為了方便用戶操作,例如word文檔;
*2* 網站導航,保證了網站的可用性,好的網站導航能讓用戶自由地任意的在網頁間切換;
*3* 手機上運行某一App軟件,會有幫助信息(新手導航等)。
8.安裝測試(Installation Testing)
1)安裝測試目的及介紹
*1* 定義
主要是根據軟件的測試特性列表、軟件安裝、配置文檔,設計安裝過程的測試用例,發現軟件在安裝過程中的錯誤。
*2* 目的
查找安裝軟件本身的錯誤;
查找安裝文檔的錯誤 ;
驗證成功安裝系統的能力。
*3* 測試對象
安裝包、安裝手冊
2)安裝測試要點
*1* 安裝前測試
檢查安裝包文件是否齊全,尤其是dll文件,還有檢查安裝手冊。
*2* 安裝中測試
主要是安裝流程的測試,以及檢查安裝時文件、注冊表、數據庫的變動。
*3* 安裝后測試
主要檢查安裝后的軟件能否運行,基本功能能否使用。
3)安裝測試舉例說明
安裝應用軟件,驗證安裝速度,安裝是否完整,安裝完功能是否可以正常使用
9.配置測試
1)配置測試目的及介紹
*1* 定義
配置測試主要測試系統在各種軟硬件配置、不同的參數配置下,系統具有的功能和性能。
*2* 目的
檢驗該配置是否滿足需求;
在一定條件下尋找最佳配置。
*3* 目標
驗證全部配置的可操作性和有效性,特別需要對最大配置、最小配置和特殊配置進行測試。
*4*軟件產品配置測試常見配置項
硬件配置、操作系統配置、基礎軟件配置、產品自身配置。
2)配置測試要點
配置測試並不是一個完全獨立的測試類型,需要和其他測試類型相結合,比如功能測試、性能測試、GUI測試等。
3)配置測試舉例說明
測試百度網址在不同版本360瀏覽器下的顯示測試。
10.異常測試/系統容錯和可恢復性測試
1)異常測試概念
異常測試是通過人工干預手段,是系統產生軟硬件異常,通過驗證系統異常前后的功能和運行狀態,達到檢驗系統的容錯、排錯和恢復的能力。
2)容錯處理分類
*1* 系統自動處理;
*2* 人工干預處理。
3)異常測試目的
驗證產品容錯、排錯、恢復能力,提高可靠性。
4)異常測試中需注意的問題
*1* 系統異常測試與系統的指標測試有關系,當系統需要提供的服務能力大於系統的設計指標時,也屬於系統異常的情況,因此應該結合起來加以考慮;
*2* 系統的可靠性是設計出來的,而不是測試出來的。測試出來的數據有助於我們進行進一步的系統優化設計積累經驗,設計和測試是一個互為反饋的過程。
5)測試過程
*1* 人為產生異常;
*2* 實施和檢查容錯、排錯、恢復過程;
*3* 檢查產品前后變化情況。
6)異常測試涉及知識
*1* 系統可靠性的指標:
系統平均失效間隔時間(MTBF)——>正常時間
系統平均恢復時間(MTTR)——>失效時間
*2* 系統可靠性設計技術
避開錯誤
容錯技術(結構冗余、信息冗余、時間冗余、硬件冗余、附加冗余技術)
7)異常測試舉例
瀏覽器異常退出,重啟啟動是否能夠恢復之前瀏覽的網頁
11.備份測試(Backup Testing)
備份測試是恢復性測試的一個補充,目的是驗證系統在軟件或者硬件失效的事件中備份它數據的能力。
12.健壯性測試(Robustness Testing)
健壯性測試有時也叫容錯性測試,主要用於測試系統在出現故障的時候,是否能夠自動恢復或者忽略故障繼續運行。
范例:下載App軟件,如果版本配置不符合,手機是否會自動提示,回避該問題
13.文檔測試(Documentation Testing)
1)文檔測試不同於評審和檢視工作。
2)主要是針對系統提交給用戶的文檔的驗證。
3)目標:驗證用戶文檔是正確的,並且保證操作手冊的過程能夠正確工作。
4)優點:改進系統的可用性、可靠性、可維護性和安裝性。
5)測試要點:文檔中內容是否有遺漏,是否模糊或者錯誤?
6)實例:手機使用手冊幫助信息的測試,Google書簽新建書簽功能中文字幫助信息的測試等。
14、在線幫助測試(Online Help Testing)
1)主要用於驗證系統的實時在線幫助的可用性和正確性。
2)測試時需要關注的問題:
*1*幫助文件的索引,以及內容是否正確?
*2*在系統運行過程中幫助是否能被正常的激活?
*3*在系統的不同位置激活的幫助內容與當前操作內容是否相關聯?
*4*幫助是否足夠詳細並能解決需要被解決的問題?
3)關注點:需要幫助的信息與當前界面是否對應。
4)實例:Windows在線幫助測試、手機應用軟件中的新手區提示等
15.網絡測試(Network Testing)
網絡測試是在網絡環境下和其他設備對接,進行系統功能、性能與指標方面的測試,保證系統對接正常。
1)測試內容
考察系統的處理能力,系統兼容性,系統穩定可靠性及用戶使用等方面。如通信產品,主要進行協議測試:
*1*一致性測試:檢測所實現的系統與協議規范符合程度。
*2*性能測試:檢測協議實體或系統的性能指標(數據傳輸率、聯接時間、執行速度、吞吐量、並發度等)
*3*互操作性測試:檢測同一協議不同實現廠商之間,同一協議不同實現版本之間,或同一協議不同實現版本之間互通能力和互聯操作能力。
*4*堅固性測試:檢測協議實體或系統在各種惡劣環境下運行的能力。
2)實例
連接網絡的情況下,訪問該網絡是否成功
16.穩定性測試
1)測試目的
評價系統在一定負荷情況下,長時間的運行情況。
2)測試內容
系統在一定負荷下,再增加新的業務,原有的業務是否會受影響,新的業務能否正常工作,系統資源有無泄露,數據有無不一致的情況,系統性能是否會下降?
3)測試關鍵點
確定一個一般的負載,然后在該負載下長時間讓系統工作,檢查系統是否會出現故障;
長時間運行后,系統的狀況如何,系統平均無故障時間MTBF是否滿足系統設計要求。
4)實例
手機保持長時間通話,檢查手機會不會死機,通話是否正常?
Windows系統連續開機兩天,會不會導致系統不穩定?
17.兼容性測試
1)檢測被測系統是否可以和其他元素共存,是一種對比性測試。
2)目的:測試能否與其它產品共存於一個運行環境。
3)實例:Android手機中微信和QQ能否同時運行
18.負載測試(Loaded Testing)
1)在用戶要求的負載范圍內,比較系統在不同負載情況下的性能。
2)實例:手機root后,分別開啟3個軟件、5個軟件、7個軟件運行,比較手機的運行性能屬於負載測試