性能測試與故障診斷 軟件測試
1.認識軟件性能測試
一般說來,軟件性能是衡量軟件對于用戶及時性要求的符合程度,它是軟件產品的一種特征,可以用響應時間或效率來度量,如果從廣義上來說,軟件的性能還包括軟件的可擴展性,可靠性等。
大多數情況下,軟件性能往往是通過軟件和其它組件一起工作時表現出來,如所涉及的各種硬件設備,網絡設備,各種應用中間件,數據庫服務器等,特別是在一些大型分布式應用中更是如此,所以我們通常所說的軟件性能測試就是考察軟件在特定軟硬件環境中的整體性能狀況。
通常對軟件性能的關注有多個方面,不同的人員關注點不同,從用戶角度說,軟件性能是軟件對用戶操作的響應時間,更簡單地說,用戶更關注于在打開一個鏈接或按一個按鈕時,頁面返回所需要多長時間,如果太長,用戶無法忍受,他對于此軟件所得出的結論就是:性能太差!從系統管理員角度來說,他更關注的可能是整個系統所處的狀態,如各個服務器 CPU 、內存、磁盤流量如何?應用服務器 JVM 目前占用為多少?另外管理員還會關注系統具有多大的可擴展性,也就是說系統可能的最大容量是什么,處理并發的能力等等。但對于開發商來講,如何通過調整系統設置等提高軟件的性能表現?如何發現并解決軟件設計和開發過程中產生的由于多用戶訪問引發的軟件故障,也就是說,最關注的是使性能表現不佳的因素和由于大量用戶訪問引發的軟件故障。
2.性能測試與故障診斷的關系
有人把測試比作給病人看病的過程,這個比喻很恰當。如果說性能測試是給人做普通健康體檢的話,那么故障診斷就是進一步給人做病理分析、進而確診的過程。我們知道,人在做體檢的話,體檢項目不外乎是身高、體重、眼耳口鼻、肝功、血液等一般常規檢查,但卻很少做 CT 、胃鏡等非常規檢驗。在做軟件性能測試時,我們往往關注的是系統所表現出來的整體狀況,如系統響應時間、服務器資源占用、系統在可接受時間內所達到的最大并發數等。而故障診斷則是針對系統所表現出的整體性能不佳所進行的進一步的檢查。當系統響應時間超長時,我們就查看是什么因素導致了問題的產生,是數據庫服務器響應慢,還是應用服務器起主要原因,如果是數據庫服務器響應慢,是因為 SQL 語句直接引起,還是數據庫參數配置不當等原因,另外諸如內存泄露,短期對象,性能瓶頸,數據庫配置, Web Server 配置, J2EE 資源配置等問題,這些深層次的東西才屬于故障診斷所要解決的問題。在性能測試的基礎上,我們為用戶提供性能診斷建議報告。
3. 幫助用戶解決的問題
作為軟件性能測試的工作者,必須立足于為所有與系統有關的群體服務,解決他們所關心的性能問題,我們通過性能測試和故障診斷,一方面能夠告知終端用戶在大量用戶并發訪問系統時響應時間表現如何,同時也可以告知系統管理者在大量用戶并發訪問系統時,服務器或是網絡所處的狀態如何,同時通過進一步地進行故障診斷,幫助開發人員找到問題原因,使他們盡快地進行修改。
性能調優
在經過性能測試、故障診斷過程之后,接下來要進行的工作就是系統性能調優。
如果仍以給病人看病比喻軟件測試過程,那么性能調優將類似于給病人開藥方。開藥方的目的是讓病人盡快恢復健康,而性能調優的過程是使整個系統性能處于最佳狀況。
由于目前大多數應用系統都是基于分布式架構進行布署,系統性能會與所涉及的各個組件有關:操作系統、應用中間件,數據庫服務器、硬件設備等,因此性能調優的過程也應圍繞這幾部分來進行。
(1)操作系統的調優
文章來源于領測軟件測試網 http://www.kjueaiud.com/