軟件性能測試的重要性及策略 軟件測試
【IT168 技術文檔】目前軟件性能測試是發現軟件性能問題最有效的手段,而完備有效的性能測試是最關鍵的,在本節中我們將從流程和技術的角度解析如何構建一個高效的性能測試模型。
1.2.1 性能測試在軟件測試的周期位置
首先,軟件性能測試屬于軟件測試范疇,存在于軟件測試的生命周期中。一個軟件的生產過程通常遵循V型圖,如圖1-3所示。
圖1-3 軟件開發-測試V型圖
在通常的軟件生產周期中,先由用戶提出用戶需求或經系統分析核定以后提出系統需求,開發人員再經過需求分析提出軟件需求規格說明,進行概要設計,提出概要設計說明,進行詳細設計,提出詳細設計說明,最后就是對每個模塊進行編碼。到測試階段,測試按照開發過程逐階段進行驗證并分步實施,體現了從局部到整體、從低層到高層逐層驗證系統的思想。對應軟件開發過程,軟件測試步驟分為代碼審查、單元測試、集成測試、系統測試。
而性能測試就屬于軟件系統級測試,其最終目的是驗證用戶的性能需求是否達到,在這個目標下,性能測試還常常用來做:
(1)識別系統瓶頸和產生瓶頸的原因;
(2)最優化和調整平臺的配置(包括硬件和軟件)來達到最高的性能;
(3)判斷一個新的模塊是否對整個系統的性能有影響。
系統瓶頸:
瓶頸本來是指玻璃瓶中直徑較小并影響流水速度的一段,用它來比喻軟件系統中出現性能問題的節點是很形象的,比如一個典型的分布式系統架構如圖1-4所示。
圖1-4 軟件系統壓力流動圖
如果把軟件系統看做是交通系統,那么網絡就是一條條大道,客戶端、防火墻、負載均衡器、Web服務器、應用服務器(中間件)、數據庫等各個系統節點就是交通要塞,客戶的請求和數據就像在道路上行駛的車輛,如果在某處發生堵車,那么整個交通系統都會不暢。在這個時候,我們就要分析是哪里出了問題,是道路不夠寬,還是某處立交橋設計不合理而引起堵塞等。找到問題的關鍵點,那么此關鍵點就是本系統的瓶頸。軟件系統也是如此,我們做性能測試的大部分工作都是為了尋找這個瓶頸到底在何處。
需要注意的是,軟件的性能瓶頸可能不止一處。
作為軟件測試的一種,軟件測試的規則同樣適用于性能測試中:
(1)確定預期輸出是測試必不可少的一部分
如果事先無法肯定預期的測試結果,往往會把看起來似是而非的東西當作正確結果。必須提倡用事先精確對應的輸入和輸出結果來詳細檢查所有的輸出。對于性能測試來說,預期輸出就是用戶的性能需求,一份明確的性能需求是成功性能測試的先決條件。
(2)必須徹底檢查每一個測試結果
事實上,在最終發現的錯誤,有相當一部分在前面的測試中已經暴露出來了,然而由于人們未能細心檢查先前的測試結果而遺漏了。
一段程序中存在的錯誤概率與在這段程序中發現的錯誤數呈正比。
文章來源于領測軟件測試網 http://www.k11sc111.com/