系統測試(System Testing)是將已經集成好的軟件系統,做爲整個基於計算機系統的一個元素,與計算機硬件、外設、某些支持軟件、數據和人員等其餘元素結合在一塊兒,在實際運行環境下,對計算機系統進行一系列的組裝測試和確認測試。數據庫
系統測試的目的在於經過與系統的需求定義作比較,發現軟件與系統定義不符合或與之矛盾的地方,以驗證軟件系統的功能和性能知足指定的要求。緩存
一、真實環境:測出的結果比較真實,可是成本高。安全
二、仿真環境:成本低,可重複使用;可是結果不真實。服務器
針對必定的質量特性,採用必定的測試方法,叫測試類型。測試類型能夠分爲如下幾種:微信
範例:測試手機是否有打電話,發短信功能。
功能測試主要是根據需求規格說明書和測試需求列表,驗證產品的功能實現是否符合產品的需求規格。網絡
功能測試的質量特性是:功能特性。工具
功能測試的目標就是發現如下四類錯誤:性能
(1)是否有不正確或遺漏的功能。 (2)功能實現是否知足用戶需求和系統設計的隱藏需求。 (3)可否正確的接受輸入,可否正確的輸出結果。 (4)功能是否有冗餘。
功能測試的要點:學習
(1)考慮用戶是在什麼狀況下如何使用該功能的,好比網絡斷掉的時候訪問網站。 (2)考慮用戶對多個功能的組合應用。 (3)對於服務器軟件,要考慮多用戶同時訪問、操做的狀況,須要檢查用戶的同時使用是否會致使功能的失效。
功能測試的過程:執行、比較。測試
範例:手機發短信的功能是否正確,對方可否成功接收短信,短信發送的時間效率,短信功能佔用的內存空間大小等等。
性能測試是用來測試軟件在集成系統中的運行性能的,性能測試能夠發生在測試過程的全部步驟中,即便是在單元層,一個單獨的模塊的性能也可使用白盒測試開進行評估,可是,只有當整個系統的全部成分都集成到一塊兒以後,才能檢查一個系統的真正性能。
性能測試的質量特性是:效率特性、穩定特性、可靠特性。
性能指標:
(1)硬件指標。
CPU的佔用率,硬盤
(2)軟件指標。
系統的緩存、主要內存使用狀況,系統吞吐量...
(3)時間指標。
咱們的目標是在10M帶寬下,QQ登陸的時間爲5秒(效率的時間特性),對CPU的佔用不能超過200M(效率的資源利用性)
(4)成功率指標。
性能測試的要點:
(1)驗證系統實現的性能是否與性能需求徹底一致。 (2)檢測系統實現的具體性能到底怎樣。
性能測試的過程:
(1)設定性能指標。 (2)執行。 (3)分析。 (4)優化。
壓力測試的目的是調查系統在其資源超負荷的狀況下的表現,尤爲感興趣的是這些對系統的處理時間有什麼影響。
壓力測試能夠分爲兩種:一種是穩定性壓力測試;另一種是破壞性壓力測試。
(1)穩定性壓力測試:長時間運行,系統是否還能知足客戶的需求。
例如:咱們將電腦連續一週不關機,檢查系統的穩定性會不會變弱,效率會不會降低。 例如:手機保持通話一天,檢查手機會不會死機,是否還能進行正常通話。
(2)破壞性壓力測試:在遠超過客戶需求的狀況下,測試極限狀況下,有無不能容忍的錯誤。
例如:客戶要求,能夠容許20000我的在同一時間內在微信上使用發紅包功能,咱們就能夠測試在同一時間內50000我的可否發紅包,能夠發送不成功,可是絕對不能容許,在從銀行卡里扣除錢以後,對方沒有收到紅包,可是錢卻沒有返回。
壓力測試的要點:要想作到壓力測試,必須將極限狀況模擬出來,而後再在該極限狀況下進行測試,看系統性能如何。
範例:手機ROOT後,在手機後天運行不一樣的軟件數量,來比較手機性能的差別。
承載的壓力在不一樣負載狀況下的一個對比。
範例:手機和電腦鏈接,進行數據傳輸,檢查手機可以存儲數據的最大值,以及此時性能的表現。 範例:不停的拍照片,直到手機相冊不能存儲爲止,檢驗相冊的最大容量。
容量測試的目的是使系統承受超額的數據容量來發現它是否可以處理的數據容量。
容量測試的要點:容量測試關鍵是在於測試一個最大值,能打開的最大文件大小,能保存的最大數據量等等,只要是系統中對於用戶而言很是重要的最大值均可以做爲容量測試的對象。
範例:鎖屏界面,若是屢次解鎖不正確,應該鎖定15分鐘或者固定時間。 範例:登陸手機QQ,輸入錯誤密碼,檢查是否依然能夠登陸成功,若是能夠成功登陸,則安全性存在問題。
質量特性:安全性。
目的:經過模擬攻擊來尋找安全缺陷,以提升安全性質量。
指標:
(1)環境安全
好比:對硬件系統進行的破壞性測試:植入木馬、病毒等,檢查系統系統是否可以啓用安全機制,消除這些隱患。
(2)產品安全
好比被測產品會不會被破解。
(3)權限安全
*有用戶名和密碼,則能夠作該權限指定的事情。 *沒有用戶名和密碼,則不能夠作該權限指定的事情。 *權限指定是否分配正確。
(4)信息安全
當咱們打開網頁時:檢查是否由http轉向https,也就是是否進行了加密處理。
範例:使用各個控件的功能,是否易用,GUI界面是否美觀。
質量特性:易用性。
缺陷:可優化缺陷。
被測對象:
(1)界面中的簡單元素。 (2)元素的組合。 (3)窗口。
測試點:
(1)總體性。例如:界面的顯示。 (2)文字。 (3)窗口。 (4)窗口中的元素。例如:控件的功能。 (5)視覺、各類感知方式。
範例:運行手機微信,打開發紅包功能,是否很容易學習和操做,運行過程是否複雜繁瑣,幫助文檔是否清晰易懂,提示信息是否正確。
可用性測試(Usability Testing)和可操做性測試(Operate Testing)有很大類似性,它們都是檢驗用戶在理解和使用系統方面到底有多好,這包括系統功能,幫助文本和過程等等,以保證用戶可以溫馨的和系統進行交互,在實際測試過程當中,每每把這二者放到一塊兒進行考慮,不多嚴格區別這二者之間的關係。
測試對象:
(1)產品功能。 (2)安裝包。 (3)幫助文檔。
測試點:
(1)過度複雜的功能或指令。 (2)困難的安裝過程。 (3)幫助是否準確易懂。 (4)提示是否準確易懂。
範例:在手機上安裝微信軟件,安裝包文件是否齊全,安裝過程是否正確,若是須要取消,點擊相應按鈕是否能夠成功取消,安裝完軟件以後,點擊進入微信,檢查各個功能可否正常運行。
質量特性:功能特性;可用性特性。
對象:
(1)安裝包。 (2)安裝手冊。
測試過程:
(1)多臺相同的符合條件的乾淨的系統。 (2)輔助工具。 (3)執行安裝過程。 (4)做對比(文件、註冊表、配置文件、安裝順序、共享文件、衝突文件、安裝過程的可逆可恢復性)。
測試點:
(1)安裝前測試:檢查安裝包文件是否齊全。 (2)安裝中測試:主要是對安裝流程的測試以及安裝時文件、註冊表、數據庫的變更,所謂安裝流程的測試就是檢查用戶按照不一樣的順序點擊back、next、cancle是否能安裝成功或者放棄安裝。 (3)安裝人員如何知道系統已經被正確的安裝了。例如:是否有一個適當的安裝測試過程。 (4)安裝後測試:主要是檢查安裝好的軟件是否能運行,基本功能可否使用。
範例:檢查手機自身的配置,進入設置功能裏面,看看配置是否正常。
配置測試主要測試系統在各類軟硬件配置,不一樣的參數配置下具備的功能和性能。
質量特性:所有的特性。
目的:
(1)檢驗該配置是否知足要求。 (2)在必定條件下尋找最佳配置。
軟件產品配置測試常見配置項:
(1)硬件配置(例如:CPU、網卡等等) (2)操做系統配置。 (3)基礎軟件。 (4)產品自身(例如:「設置」裏面就是產品自身的配置)
範例:手機QQ正在傳輸文件,忽然斷網,在網絡恢復以後,文件可否自動從新發送。
系統異常測試又叫系統容錯和可恢復性測試,它是經過人工干預手段使系統產生軟、硬件異常,經過驗證系統異常先後的功能和運行狀態。
質量特性:可靠性。
目的:驗證產品容錯、排錯、恢復能力,提升可靠性。
異常測試過程:
(1)人爲製造異常。 (2)實施和檢查容錯、排錯、恢復過程。 (3)檢查產品先後變化狀況。
異常測試要點:
(1)系統斷電。 (2)系統斷網。 (3)系統死掉。 (4)系統數據丟失。
範例:打開word文檔,寫入文字以後,在沒有保存的狀況下,忽然斷電,檢查在系統恢復以後,有無word備份文件,備份文件的格式是否正確。
質量特性:恢復性。備份測試時恢復性測試的一個補充,而且應當是恢復性測試的一個部分。
備份測試的目的:驗證系統在軟件或者硬件失敗的狀況下備份數據的能力。
備份測試要點:
(1)備份出來的格式如何。
(2)備份是否成功,還須要經過數據的導入來進行檢查。
範例:下載一個手機APP,若是該APP不符合手機的版本,自動顯示提示信息,迴避這個問題。
健壯性測試(Robustness Testing)有時也叫容錯性測試(Fault Tolerance),主要用於測試系統在出現故障的時候,是否可以自動恢復或者忽略故障繼續運行。
一個健壯性的系統是設計出來的,而不是測試出來的。
範例:手機安裝一個APP,有時會有一些安裝和使用的手冊,按照手冊進行操做,驗證手冊流程是否正確。
這裏的文檔測試不一樣於評審和檢視工做,主要是針對系統提交給用戶的文檔的驗證。
文檔測試的目的:驗證用戶文檔是正確的而且保證操做手冊的過程可以正確工做。
文檔測試的優勢:改進系統的可用性、可靠性、可維護性和安裝性。
範例:打開微信,在關於微信裏面有幫助和反饋,這個就屬於在線幫助,咱們打開在新幫助,按照幫助進行操做,驗證是否和事實相吻合。
用戶在使用系統的時候,若是出現問題,首先求助的就是在線幫助,一個糟糕的在線幫助會很大的打擊用戶對系統的信心,所以一個好的系統,必需要有完備的幫助體系,包括用戶操做手冊,實時在線幫助。
在線幫助測試(Online Help Testing):主要用於驗證明時在線幫助的可用性和正確性。
範例:在網絡鏈接正常的狀況下,檢查是否能正常打開網頁,打開網頁的時間快慢。
網絡測試是在網絡環境下和其餘設備對接,進行系統功能、性能與指標方面的測試,保證設備對接正常。