天天看點

軟體測試項目非功能測試方法,非功能測試類型彙總

功能測試涉及了軟體在功能上正反兩面的測試,而非功能測試就是所有其他方面的測試。非功能測試包括性能、負載、安全、可靠性和其他很多方面。非功能測試有時也被稱作行為測試或品質測試。非功能測試的衆多屬性的一個普遍特征是一般不能直接測量。這些屬性是被間接地測量,例如用失敗率來衡量可靠性或圈複雜度,用設計審議名額來評估可測性。

國際标準化組織(ISO)在ISO 9216和ISO 25000:2005中定義了幾個非功能屬性。這些屬性包括:

可靠性

軟體使用者期望軟體能夠無誤運作。可靠性是度量軟體如何在主流情形和非預期情形下維持它的功能,有時也包括軟體出錯時的自恢複能力。例如,自動定時儲存現行檔案的功能就可以歸類到可靠性。

可用性

如果使用者不明白應該如何使用,那麼,即使是零差錯的軟體也會變得毫無用處。可用性測量的是使用者學習和控制軟體以達到使用者需求的容易程度。進行可用性研究、重視顧客回報意見和對錯誤資訊和互動内容的檢查都能提高可用性。

可維護性

可維護性描述了修改軟體而不引入新錯誤所需的工作量。産品代碼和測試代碼都必須具備高度的可維護性。團隊成員對代碼的熟悉程度、産品的可測性和複雜度都對可維護性有影響。

可移植性

可移植性指一種計算機上的軟體轉置到其它計算機上的能力。軟體移植是實作功能的等價聯系,而不是等同聯系。從狹義上講,是指可移植軟體應獨立于計算機的硬體環境;從廣義上講,可移植軟體還應獨立于計算機的軟體,即進階的标準化的軟體,它的功能與機器系統結構無關,可跨越很多機器界限。

性能測試目的是驗證軟體系統是否能夠達到使用者提出的性能名額,同時發現軟體系統中存在的性能瓶頸,優化軟體,最後起到優化系統的目的。性能測試類型包括壓力測試、負載測試,強度測試,容量測試等。因為各屬性之間在範圍上有重疊,很多非功能屬性的名字是可以通用的。

壓力測試

一般來說,壓力測試的目的是要通過模拟比預期要大的工作負載來讓隻在峰值條件下才出現的缺陷曝光。記憶體洩漏、競态條件、資料庫中的線程或資料行之間的死鎖條件、和其他同步問題等等,都是壓力測試能發掘出來的常見缺陷。 壓力測試主要是為了測試硬體系統是否達到需求文檔設計的性能目标,譬如在一定時期内,系統的cpu使用率,記憶體使用率,磁盤I/O吞吐率,網絡吞吐量等。

負載測試

負載測試是要探讨在高峰或高于正常水準的負載下,系統或應用軟體會發生什麼情況。例如,一個網絡服務的負載測試會試圖模拟幾千名使用者同時連線使用該服務。測試的主要是軟體系統的性能,譬如軟體在一定時期内,最大支援多少并發使用者數,軟體請求出錯率等。

平均無故障時間(MTBF)測試

MTBF測試是測量系統或應用軟體在出錯或當機前的平均運作時間。這一測試有幾個變體,包括平均無錯時間(MTTF)或平均無當機時間(MTTC)。技術含義略有不同,但實踐上,這些詞彙都是一個意思。

低資源測試

低資源測試是要确定當系統在重要資源(記憶體、硬碟空間或其他系統定義的資源)降低或完全沒有的情況下會出現的狀況。重要的是要預估将會發生什麼,例如為檔案存盤而無足夠空間、或一個應用程式的記憶體配置設定失敗時将會發生什麼。

容量測試

與負載測試非常相似,容量測試一般是用來執行伺服器或服務測試。目的是要确定系統最大承受量,譬如系統最大使用者數,最大存儲量,最多處理的資料流量等。容量模型通常建立在容量測試資料基礎上。有了這些資料,營運團隊(Operations)就能定計劃什麼時候增加系統容量:要麼增加單機資源,如RAM、CPU和磁盤空間等;要麼幹脆增加計算機數目。

重複性測試

重複性測試是為了确定重複某一程式或場景的效果而采取的一項簡單而“粗暴”(brute force)的技術。這個技術的精髓是循環運作測試直到達到一個具體界限或臨界值,或者是不妙的境況。舉個例子,一個操作也許會洩漏20位元組的記憶體。這并不足以在軟體的其他地方産生任何問題,但如果測試連續運作2000次,洩漏就可以增長到4萬位元組。如果是提供核心功能的程式有洩漏,那麼這個重複性測試就抓到了隻有長時間連續運作該軟體才能發現的記憶體洩漏。通常有更好的辦法來發現記憶體洩漏,但有時候,這種簡單“粗暴”的方法也可以很有效。

21/212>