qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

          非功能測試類型匯總

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

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

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

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 南康市| 莱芜市| 湟中县| 九台市| 肃宁县| 修武县| 兰坪| 新昌县| 江西省| 宁远县| 奇台县| 辉南县| 濉溪县| 上犹县| 铁力市| 梨树县| 府谷县| 勐海县| 邵东县| 扎鲁特旗| 西充县| 磐安县| 弥渡县| 安溪县| 万全县| 泰安市| 绥芬河市| 蓝田县| 德兴市| 甘孜县| 高淳县| 来凤县| 岳普湖县| 奉节县| 杂多县| 方山县| 玉山县| 益阳市| 延津县| 潢川县| 莱阳市|