性能測試的幾個階段

發表于:2008-07-03來源:作者:點擊數: 標簽:互聯網性能測試周磊軟件生命周期應用軟件
性能測試 的幾個階段 作者: 陳衛俊 趙璨 周磊等 前面已經說過,對于互聯網應用軟件,性能是其 質量 的一個非常重要的組成部分。作為解決軟件性能問題的重要手段,軟件性能測試已經廣為人們所熟悉,并受到很高的關注。一般而言,性能測試都是在項目的后期才開


 性能測試的幾個階段

作者: 陳衛俊 趙璨 周磊等


        前面已經說過,對于互聯網應用軟件,性能是其質量的一個非常重要的組成部分。作為解決軟件性能問題的重要手段,軟件性能測試已經廣為人們所熟悉,并受到很高的關注。一般而言,性能測試都是在項目的后期才開展,被測試的對象通常是已經具備一定穩定性的產品。而實際上,性能測試應貫穿于整個軟件生命周期中,和功能測試一樣,性能測試也分為幾個階段。

 軟件生命周期與性能測試

        不論哪種軟件生命周期模型,需求分析、設計、編碼、測試和運行維護這幾個階段都是其中的基本要素,只是在不同的軟件生命周期模型中可能迭代、合并、拆分或重組這幾個階段,在此不做過多的描述。與其他幾個階段相對應,測試從軟件開發過程按階段可以劃分為:單元測試、集成測試、系統測試,在其他的書上可能還能見到諸如確認測試、驗收測試等名詞,但是前3種測試確實是最基本的測試活動,而其他的測試活動只是在某些軟件開發過程中會發生。
        值得注意的是,通常在談論單元測試、集成測試和系統測試時,其實僅僅談論的是不同階段的功能測試;而當討論性能測試時,絕大多數的情況是,一個已經開發完畢或基本開發完畢的軟件,測試人員用一種或幾種性能測試工具,以盡量模擬真實用戶行為的方式對該軟件進行并發操作,收集并比較不同場景的結果,然后對軟件的性能進行分析,這個活動通常發生在系統測試階段,甚至更往后的階段,如運行維護階段。
        一直以來,性能測試跟單元測試、集成測試似乎都是絕緣的??墒撬鼈冋娴膽撌墙^緣的嗎?沒有任何理由可以說明性能測試跟單元測試、集成測試無關,除非你認為“這太難了,我不會做”(這正好是本章主要想說的)或者“做這個沒什么意義,浪費時間”(那么請接著往下看)。
        眾所周知,把測試劃分為單元測試、集成測試和系統測試,而不僅僅是在最后關頭做一個系統測試,其主要原因有兩點:
        1.同樣的缺陷在不同階段被發現,其修復成本差異極大,而越早發現缺陷,修復成本越??;
        2.某些缺陷幾乎只能在某個階段被發現,即在其他階段需要投入巨大的人力才能發現這些缺陷或根本不可能發現這些缺陷。
        簡而言之,對于不同階段的測試活動,總有一些缺陷是最適合被發現和修復的。對于功能性缺陷這點早已達成共識,而對于性能性缺陷,由于性能測試本身起步較晚、性能問題比較難以暴露、早期用戶對性能問題容忍度比較高、商業性能測試工具價格昂貴等原因,很多時候可能根本不會進行性能測試,或僅進行比較簡單的性能測試,因此雖然性能性缺陷同樣有這個特性,但卻被人們遺忘了。簡單地列舉幾個在不同階段進行性能測試的好處。
        1.在單元性能測試中運行一遍后就能發現的內存泄漏問題,如果這個問題遺留到系統測試階段,可能需要花費幾天的時間才能找到問題的所在,尤其是當Dump 內存信息后發現大量對象是到處都在使用的基本對象時,欲哭無淚可能是性能優化人員此時的真實寫照,這點筆者曾有幸體驗過;而實際上運行一遍單元測試的時間可能也就幾分鐘,此時發現問題極易解決。
        2.異構系統之間的接口,通常是先完成接口,而調用接口的系統可能過很久才會完成。當然,可以等完成調用接口的系統后直接對該系統進行測試,接口的性能自然被測試到了,但是萬一很不幸——性能測試結果不佳,再花費一番力氣后終于確定是接口性能不佳,那可能就得大費周折地重新寫接口了。更倒霉的是別的系統已經在用新的接口了,而不巧的是新老接口又不兼容(比如差一個參數什么的),那代價可就大了;如果進行過接口性能測試,問題早就發現并解決了,這時候真是想想都會笑了。
        3.越早開始性能調優,調優工作就會越容易。當組件小規模的集成后即可運行并調優時,由于系統復雜度低,自然而然地性能調優的難度會比較低。很顯然,性能調優是以性能測試為基礎的,那么較早階段的性能測試就很有必要了。
        4.在運行維護階段,系統已經在穩定地為用戶提供服務了,這時候還需要進行性能測試嗎?需要。因為生產系統可能會表現出疑似性能問題的癥狀,這時候性能測試是查找問題的有效手段,有助于為用戶提供更好的服務;性能再好的系統也會有極限,當用戶數不斷增長的時候,通過性能測試來評估系統的容量,以確定系統應如何進行擴容或者需要更換新的架構,通常這稱之為容量評估。
        很明顯,性能測試和功能測試一樣貫穿于多個階段?;旧?,各階段的性能測試包括以下幾種:單元性能測試、集成性能測試、系統性能測試、多系統性能測試、容量評估、接口性能測試。接下來看看這些不同階段的性能測試活動到底做些什么。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97