qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          非功能測試類型匯總

          功能測試涉及了軟件在功能上正反兩面的測試,而非功能測試就是所有其他方面的測試。非功能測試包括性能、負載、安全、可靠性和其他很多方面。非功能測試有時也被稱作行為測試或質量測試。非功能測試的眾多屬性的一個普遍特征是一般不能直接測量。這些屬性是被間接地測量,例如用失敗率來衡量可靠性或圈復雜度,用設計審議指標來評估可測性。
            國際標準化組織(ISO)在ISO 9216和ISO 25000:2005中定義了幾個非功能屬性。這些屬性包括:
            可靠性
            軟件使用者期望軟件能夠無誤運行。可靠性是度量軟件如何在主流情形和非預期情形下維持它的功能,有時也包括軟件出錯時的自恢復能力。例如,自動定時保存現行文件的功能就可以歸類到可靠性。
            可用性
            如果用戶不明白應該如何使用,那么,即使是零差錯的軟件也會變得毫無用處。可用性測量的是用戶學習和控制軟件以達到用戶需求的容易程度。進行可用性研究、重視顧客反饋意見和對錯誤信息和交互內容的檢查都能提高可用性。
            可維護性
            可維護性描述了修改軟件而不引入新錯誤所需的工作量。產品代碼和測試代碼都必須具備高度的可維護性。團隊成員對代碼的熟悉程度、產品的可測性和復雜度都對可維護性有影響。
            可移植性
            可移植性指一種計算機上的軟件轉置到其它計算機上的能力。軟件移植是實現功能的等價聯系,而不是等同聯系。從狹義上講,是指可移植軟件應獨立于計算機的硬件環境;從廣義上講,可移植軟件還應獨立于計算機的軟件,即高級的標準化的軟件,它的功能與機器系統結構無關,可跨越很多機器界限。
            性能測試
            性能測試目的是驗證軟件系統是否能夠達到用戶提出的性能指標,同時發現軟件系統中存在的性能瓶頸,優化軟件,最后起到優化系統的目的。性能測試類型包括壓力測試、負載測試,強度測試,容量測試等。因為各屬性之間在范圍上有重疊,很多非功能屬性的名字是可以通用的。
            壓力測試
            一般來說,壓力測試的目的是要通過模擬比預期要大的工作負載來讓只在峰值條件下才出現的缺陷曝光。內存泄漏、競態條件、數據庫中的線程或數據行之間的死鎖條件、和其他同步問題等等,都是壓力測試能發掘出來的常見缺陷。 壓力測試主要是為了測試硬件系統是否達到需求文檔設計的性能目標,譬如在一定時期內,系統的cpu利用率,內存使用率,磁盤I/O吞吐率,網絡吞吐量等。
            負載測試
            負載測試是要探討在高峰或高于正常水平的負載下,系統或應用軟件會發生什么情況。例如,一個網絡服務的負載測試會試圖模擬幾千名用戶同時連線使用該服務。測試的主要是軟件系統的性能,譬如軟件在一定時期內,最大支持多少并發用戶數,軟件請求出錯率等。
            平均無故障時間(MTBF)測試
            MTBF測試是測量系統或應用軟件在出錯或當機前的平均運行時間。這一測試有幾個變體,包括平均無錯時間(MTTF)或平均無當機時間(MTTC)。技術含義略有不同,但實踐上,這些詞匯都是一個意思。
            低資源測試
            低資源測試是要確定當系統在重要資源(內存、硬盤空間或其他系統定義的資源)降低或完全沒有的情況下會出現的狀況。重要的是要預估將會發生什么,例如為文件存盤而無足夠空間、或一個應用程序的內存分配失敗時將會發生什么。
            容量測試
            與負載測試非常相似,容量測試一般是用來執行服務器或服務測試。目的是要確定系統最大承受量,譬如系統最大用戶數,最大存儲量,最多處理的數據流量等。容量模型通常建立在容量測試數據基礎上。有了這些數據,營運團隊(Operations)就能定計劃什么時候增加系統容量:要么增加單機資源,如RAM、CPU和磁盤空間等;要么干脆增加計算機數目。
            重復性測試
            重復性測試是為了確定重復某一程序或場景的效果而采取的一項簡單而“粗暴”(brute force)的技術。這個技術的精髓是循環運行測試直到達到一個具體界限或臨界值,或者是不妙的境況。舉個例子,一個操作也許會泄漏20字節的內存。這并不足以在軟件的其他地方產生任何問題,但如果測試連續運行2000次,泄漏就可以增長到4萬字節。如果是提供核心功能的程序有泄漏,那么這個重復性測試就抓到了只有長時間連續運行該軟件才能發現的內存泄漏。通常有更好的辦法來發現內存泄漏,但有時候,這種簡單“粗暴”的方法也可以很有效。
          兼容性測試
            兼容性測試是指測試軟件在特定的硬件平臺上、不同的應用軟件之間、不同的操縱系統平臺上、不同的網絡等環境中是否能夠很友好的運行的測試。主要測試軟件是否能在不同的操作系統平臺上兼容,或測試軟件是否能在同一操作平臺的不同版本上兼容;軟件本身能否向前或向后兼容;測試軟件能否與其他相關的軟件兼容;數據兼容性測試,主要是指數據能否共享等。
            安全性測試
            安全性測試是檢查系統對非法侵入的防范能力。主要包括用戶認證、系統網絡安全和數據庫安全方面的測試。安全測試期間,測試人員假扮非法入侵者,采用各種辦法試圖突破防線。例如:想方設法截取或破譯口令;專門開發軟件來破壞系統的保護機制;故意導致系統失敗,企圖趁恢復之機非法進入;試圖通過瀏覽非保密數據,推導所需信息等。理論上講,只要有足夠的時間和資源,沒有無法進入的系統。因此系統安全設計的準則是使非法侵入的代價超過被保護信息的價值,此時非法侵入者已無利圖。
            輔助功能測試
            輔助功能測試保證軟件公司開發的軟件能被傷殘人使用。其中任何應用程序都必須測試的特性包括:操作系統的設置測試、“內置”輔助特性的測試(包括Tab 鍵順序、熱鍵和快捷鍵)、編程訪問的測試、以及輔助的技術工具的測試。輔助功能測試的一個重要方面就是使用輔助功能工具去測試應用程序,  這些工具包括,屏幕閱讀器、放大鏡、語音識別或者其他輸入程序。
            本地化測試
            本地化就是將軟件版本語言進行更改,本地化測試的對象是軟件的本地化版本。本地化測試的目的是測試特定目標區域設置的軟件本地化質量。本地化測試的環境是在本地化的操作系統上安裝本地化的軟件。從測試方法上可以分為基本功能測試,安裝/卸載測試,當地區域的軟硬件兼容性測試。測試的內容主要包括軟件本地化后的界面布局和軟件翻譯的語言質量,包含軟件、文檔和聯機幫助等部分。
            配置測試
            配置測試就是測試軟件是否和系統的其他與之交互的元素之間兼容,如瀏覽器、操作系統、硬件等,驗證被測軟件在不同的軟件和硬件配置中的運行情況。配置測試執行的環境是所支持軟件運行的環境。測試環境適合與否嚴重影響測試結果的真實性和正確性。硬件環境指測試必須的服務器、客戶端、網絡連接設備、打印機等,軟件環境指被測試軟件運行時的操作系統、軟件平臺、數據庫其他應用軟件構成的環境。
            可用性測試
            可用性測試是在產品或產品原型階段實施的通過觀察或訪談或二者相結合的方法,發現產品或產品原型存在的可用性問題,為設計改進提供依據。可用性測試不是用來評估產品整體的用戶體驗,主要是發現潛在的誤解或功能在使用時存在的錯誤。可用性測試適于解決的問題:確定測試產品的可用性水平;與預期目標、與競爭對手、與老版設計相比的可用性水平;比較不同方案,確定哪個方案更加可行。
            一些在設計階段能幫助發現潛在的性能問題的技巧:
            提出疑問:
            找出有潛在性能問題的地方。對網絡交通的擁塞狀況、內存管理的效率、數據庫設計的合理性、或其他任何有關地方提出疑問。即使你并沒有性能設計的解決方案,而只是通過讓其他團隊成員考慮性能問題,測試工程師也一樣能夠產生很大的影響力。
            考慮全局:
            不是片面地考慮局部的優化,而是考慮全面的用戶場景。你將會在整個開發過程中有相對充足的時間深入性能場景的細節,但是在設計階段的時間最好是花費在考慮從頭到尾的場景上。
            明確目標:
            象“響應時間應該很快”這樣的目標是不可度量的。應用SMART(Specific-具體的, Measurable-可度量的, Achievable-可實現的, Relevant-相關的, Time-bound –  有時限的)標準來設計目標。舉個例子,“每個用戶操作的執行時間必須不超過100毫秒,或上一版本的10%的時間之內將控制權返回應用程序”。
            還有一個要考慮的技巧是預測哪里可能有性能問題,或者說分辨出哪些操作對用戶來說是最重要的,從而是需要度量的。而往往最有效的辦法就是在設計階段就定義這些場景。
            注:本文為《微軟的軟件測試之道》一書第12章內容以及網絡收集后整理后的知識筆記,感謝本書作者Alan Page及網絡內容相關作者。

          posted on 2014-09-24 13:57 順其自然EVO 閱讀(258) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2014年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 东阳市| 伊宁县| 清流县| 郴州市| 北碚区| 鹿泉市| 阳谷县| 宁强县| 买车| 宝坻区| 河东区| 都安| 通化市| 滨海县| 宁河县| 台江县| 泸定县| 长顺县| 临武县| 肥东县| 泰宁县| 柏乡县| 万盛区| 滨州市| 恭城| 三明市| 枣强县| 安陆市| 衡水市| 兖州市| 扶余县| 当阳市| 德昌县| 清河县| 富锦市| 霍林郭勒市| 大新县| 青铜峡市| 依安县| 南汇区| 徐州市|