那么測試人員應該如何發現數據庫相關的性能問題呢?
首先要分析什么會引起數據庫的性能問題,一般來說有兩個主要原因:數據庫的設計和SQL語句。
數據庫的設計又分為數據庫的參數配置和邏輯結構設計,前一種比較好解決,后一種則是測試人員需要關注的,糟糕的表結構設計會導致很差的性能表現。例如,沒有合理地設置主鍵和索引則可能導致查詢速度大大降低。沒有合理地選擇數據類型也可能導致排序性能降低。
低效率的SQL語句是引起數據庫性能問題的主要原因之一,其中又包括程序請求的SQL語句和存儲過程、函數等SQL語句。對這些語句進行優化能大幅度地提高數據庫性能,因此是測試人員需要重點關注的對象。
技巧:可以借助一些工具來幫助找出有性能問題的語句,例如SQL Best Practices Analyzer、SQLServer數據庫自帶的事件探查器和查詢分析器、LECCO SQLExpert等。
軟件的“極限考驗”——壓力測試
是否想知道軟件系統在某方面的能力可以達到一個怎樣的極限呢?軟件項目的管理者以及市場人員會尤其關心壓力測試的結果,想知道軟件系統究竟能達到一個怎樣的極限。壓力測試(stress testing)就是一種驗證軟件系統極限能力的性能測試。
壓力測試與負載測試(load testing)的區別在于,負載測試需要進行多次的測試和記錄,例如隨著并發的虛擬用戶數的增加,系統的響應時間、內存使用、CPU使用情況等方面的變化如何。壓力測試的目的很明確,就是要找到系統的極限點。在系統崩潰或與指定的性能指標不符時的點,就是軟件系統的極限點。
說明:實際上,在做性能測試的過程中不會嚴格區分這些概念,它們的界限有些模糊。對于測試人員來說,更關心的是如何滿足性能需求,如何進行性能測試。
經常碰到性能需求不明確的情況。用戶通常不會明確地提出性能需求,在進行需求分析和設計時也通常把性能考慮在后面。即使提出了性能上的要求,也是很模糊的,例如:“不能感覺到明顯的延遲”。
對于不明確的性能需求,通常需要進行的不是極限測試,而是負載測試,需要逐級驗證系統在每一個數據量和并發量的情況下的性能響應,然后綜合分析系統的性能表現形式。
文章來源于領測軟件測試網 http://www.kjueaiud.com/