(1)軟件質量
功能性 可靠性 易用性 效率性 維護性 可移植性
(2)測試類型
?功能測試 ? ? ? ? ? 需求規格說明書、或概要、詳細設計文檔 ?與軟件實際實現是否一致
? 性能測試 ? ?? ? ? 集成系統中的運行性能 ? ?(可包括 負載 壓力 穩定性 兼容性)
? 負載測試 ? ? ? ? ?不同的負載下的性能表現
? 壓力測試 ? ? ? ? ?系統在超負荷的情況下的表現
? 容量測試 ? ? ? ? 面向數據 顯示處理的確定數據容量
? 穩定性測試 ? ? 一定負荷下的運行情況
? 安全性測試 ? ? 數據完整性與保密性
? 兼容性測試 ? ? 不同軟件 不同操作系統之間 能夠良好運行
? GUI測試 ? ? ? ? ?界面實現與設計的吻合 處理正確性 ? 是否美觀
?可用性測試 ? ? 用戶理解使用方面
?異常測試 ? ? ? ? 容錯、可恢復性 ?實際性能與指標不符 ?可靠性是設計出來的?
?文檔測試 ? ? ? ?用戶文檔與軟件實現相符
?安裝與卸載測試 ? ? ? ? ?安裝,卸載可符合用例設計,順利完成
?接口測試 ? ? ? ?內部、外部交互點 ?系統組件間接口
功能測試
概念:?
????功能測試是根據產品的需求規格說明書、或概要、詳細設計文檔,驗證被測試對象的功能實現是否符合預期。
目標:
??? 功能測試主要是為了發現以下幾類錯誤:
?是否有不正確或遺漏了的功能?
?功能實現是否滿足用戶需求和系統設計的隱藏需求?
?輸入能否正確接受?能否正確輸出結果?
例如:
???????? 單元測試中的某個函數功能是否正確。
???????? 系統測試中的登錄功能是否正常。
性能測試
? ???性能測試(Performance ?Testing)就是用來測試軟件在集成系統中的運行性能的,驗證被測試對象的性能是否符合預期。
?性能測試有時需要有工具支持,市面上有一些專門用于性能測試的工具,如Loadrunner,Jmeter等 。
?例如:
???? 單元測試時測試加法函數完成加法運算消耗的時間
???? 系統測試時測試大量用戶使用淘寶系統時,確認系統的響應時間
關注指標:
?響應時間
?業務成功率
?CPU占用情況
?內存占用情況
?硬盤讀寫情況
?并發用戶量
負載測試
負載測試是通過給被測試系統施加不同的符合,觀察被測試系統在不同的負載下的性能表現。
目標:
驗證系統在不同用戶壓力下,性能的相關指標和表現。
找到系統處理能力的極限和臨界點。
例子:
-分別測試50個用戶、100個用戶、500個用戶同時去登陸系統,驗證在不同的用戶負載下系統的性能指標
壓力測試
?壓力測試(Stress Testing)的目的是調查系統在其資源超負荷的情況下的表現。尤其感興趣的是這些對系統的處理時間有什么影響。這類測試在一種需要反常數量、頻率或資源的方式下執行系統。
目標:
???通過極限測試方法,發現系統在極限或惡劣環境中自我保護能力。主要驗證系統的可靠性,找到系統薄弱環節。
例子:
-模擬1000個用戶同時去購物,讓cpu占用率達到100%,運行一段時間看系統哪個節點先崩潰
容量測試
?容量測試(VolumeTesting)的目的是使系統承受超額的數據容量來發現它是否能夠正確處理。容量測試是面向數據的,并且它的目的是顯示系統可以處理目標內確定的數據容量。
例子:
-使用編譯器編譯一個極其龐大的源程序;
-一個操作系統的任務隊列被充滿;
-龐大的Email信息和文件充滿了Internet。
穩定性測試
系統穩定性測試目的是評價系統在一定負荷情況下、長時間的運行情況。包括系統在一定負荷下,再增加新的業務,原有的業務是否受影響,新的業務是否能正常工作,系統資源有無泄漏,數據有無不一致的情況,系統性能是否會降下來,關鍵點是長時間的運行后,系統的狀況如何,系統平均無故障時間MTBF(MeanTimeBetweenFailure)是否滿足系統設計要求。
安全性測試
?安全測試(Security Testing)用來驗證集成在系統內的保護機制是否能夠在實際中保護系統不受到非法的侵入。 用來保證系統本身數據的完整性和保密性。如當受到惡意攻擊時,設備的自我保護能力,病毒防護能力,自定義通信協議安全性等。
一些功能性的安全性問題:
-沒有口令是否可以登錄到系統中?
-各級用戶權限劃分是否合理?
-錯誤和文件訪問是否適當地被記錄?
-系統配置數據是否能正確保存,系統故障時是否能恢復?
一般可以從以下方面考慮安全性測試
?系統的登錄
?用戶管理
?防火墻
?系統數據
?WEB安全性,如WEB的加密,解密,數字簽名等
?數據庫的安全性
?內部通信協議
?系統防病毒測試
兼容性測試
兼容性測試是指測試軟件在特定的硬件平臺上、不同的應用軟件之間、不同的操作系統平臺上、不同的網絡等環境中是否能夠很友好的運行的測試
例如:app在不同的Android系統版本上運行
? ? ? ? ? ? app軟件軟件在不同的分辨率的手機上運行
?????????? 使用不同的瀏覽器訪問網站
GUI(GraphicalUserInterface)測試
?GUI測試是針對軟件系統GUI界面進行的測試
?GUI測試主要包括兩方面的內容:
???? 界面實現與界面設計的吻合情況;
???? 確認界面處理的正確性。
???? 界面是否美觀
可用性測試
可用性測試(Usability Testing)是為了檢測用戶在理解和使用系統方面到底有多好。主要考慮產品是否符合實際應用情況,是否符合用戶習慣或特殊要求,操作方式是否方便合理、設備和用戶間的交互信息是否準確易于理解、是否遵從行業習慣、外觀/界面是否美觀等。應涉及到所有和用戶有交互的功能或子系統。這包括系統功能、系統發布、幫助文本和過程,以保證用戶能夠舒適地和系統交互。
一些測試人員應當關注的可用性問題:
-過分復雜的功能或者指令;
-困難的安裝過程;
-錯誤信息不準確或者過于簡單;
-用戶被迫去記住太多的信息;
-語法、格式和定義不一致。
安裝卸載測試
定義:
?系統的可安裝性測試,主要是根據軟件的測試特性列表、軟件安裝、配置文檔,設計安裝過程的測試用例,發現軟件在安裝過程中的錯誤。安裝測試同時測試安裝文檔的正確性。
?另外驗證通過程序提供的方式進行卸載,能否正常卸載,另外卸載后還可以成功的安裝。
異常測試
概念:
????系統異常測試又叫系統容錯和可恢復性測試,它是通過人工干預手段使系統產生軟、硬件異常,通過驗證系統異常前后的功能和運行狀態,達到檢驗系統的容錯、排錯和恢復的能力。它是系統可靠性評價的重要手段
容錯處理:
?系統自動處理
?人工干預處理
注意:
?系統異常測試還與系統的指標測試有關系,當系統需要提供的服務能力大于系統的設計指標時,也屬于系統異常的情況,因此應該結合起來加以考慮
?系統的可靠性是設計出來的,而不是測試出來的。測試出來的數據有助于為我們進行進一步的系統優化設計積累經驗,設計和測試是一個互為反饋的過程
文檔測試
?文檔測試(Documentation ?Testing)的目標是驗證用戶文檔是正確的
并且保證操作手冊的過程能夠正確工作。
接口測試
概念:
???????接口測試是測試系統組件間接口的一種測試。接口測試主要用于檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。
?現在很多系統前后端架構是分離的,從安全層面來說,只依賴前端進行限制已經完全不能滿足系統的安全要求(繞過前端太容易了),需要后端同樣進行控制,在這種情況下就需要從接口層面進行驗證。
?如今系統越來越復雜,傳統的靠前端測試已經大大降低了效率,而且現在我們都推崇測試前移,希望測試能更早的介入測試,那接口測試就是一種及早介入的方式。例如傳統測試,你是不是得等前后端都完成你才能進行測試,才能進行自動化代碼編寫。 而如果是接口測試,只需要前后端定義好接口,那這時自動化就可以介入編寫接口自動化測試代碼,手工測試只需要后端代碼完成就可以介入測試后端邏輯而不用等待前端工作完成。