軟件測試中的壓力測試和性能測試


軟件測試的目的是盡可能發現並改正被測試軟件中的錯誤,提高軟件的可靠性。
,這個定義聽起來很正確,但用它來指導測試會帶來很多問題。比如有的組織用發現的bug數來衡量測試人員的業績,其實這就是這種測試目的論在后面作祟,其結果如何呢:其一,有一些不夠敬業的測試人員會找來一些無關痛癢的bug來充數,結果許多時間會被浪費在這些無關痛癢的bug上(其實應該修復,何時修復,嚴重程度是什么,優先級是什么,等等);其二,測試人員會花很大力氣設計一些復雜的測試用例去發現一些迄今尚未發現的缺陷,而不關心這些缺陷是否在實際用戶的使用過程當中是否會發生,從而浪費了大量的寶貴時間。究其根源,就是因為對測試目的的這種錯誤理解造成的,為什么這么說呢?因為軟件里bug的數量是無從估計的,那么如果測試的目的是為了找bug
,那么測試工作將變成一項無法完成也無法衡量進度而且部分無效的工作(因為有些bug在實際的運行過程當中根本不會發生)。
  
測試的目的就是為了保證軟件質量
,這個定義也是看似正確,但實際上,混淆了測試和質量保證工作的邊界。軟件質量要素有很多,包括:
Understandability、Conciseness、Portability、Consistency、Maintainability、Testability、Usability、Structures、Efficiency、Security等等,所以,軟件質量保證和測試其實關注的方向是不同的。
使用人工或自動手段來運行或測定某個系統的過程,其目的在於檢驗它是否滿足規定的需求或是弄清預期結果與實際結果之間的差別。
  所以,簡言之,測試的目的應該是驗證需求,
bug(預期結果與實際結果之間的差別)是這個過程中的產品而非目標。測試人員應該象工兵一樣,在大部隊(客戶)預期前進的方向上探雷、掃雷(bug)
,而不需要去關心那些根本沒有人會去碰的地雷。衡量一個測試人員應該去衡量他/她測試了多少需求(測試工作量)。

性能測試就是用來測試軟件在系統中的運行性能的。性能測試可以發生在各個測試階段中,即使是在單元層,一個單獨模塊的性能也可以使用白盒測試來進行評估,然而,只有當整個系統的所有成分都集成到一起之后,才能檢查一個系統的真正性能。 

性能測試經常和壓力測試一起進行,而且常常需要硬件和軟件測試設備,這就是說,常常有必要的在一種苛刻的環境中衡量資源的使用(比如,處理器周期)。外部的測試設備可以監測測試執行,當出現情況(如中斷)時記錄下來。通過對系統的檢測,測試者可以發現導致效率降低和系統故障的原因。 

壓力測試:對系統不斷施加壓力的測試,是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。例如測試一個 Web 站點在大量的負荷下,何時系統的響應會退化或失敗。 

性能測試:在交替進行負荷和強迫測試時常用的術語。性能測試關注的是系統的整體。它和通常所說的強度、壓力/負載測試測試有密切關系。所以壓力和強度測試應該於性能測試一同進行。 
舉例說明:針對一個網站進行測試,模擬10到50個用戶就是在進行常規性能測試,用戶增加到1000乃至上萬就變成了壓力/負載測試。如果同時對系統進行大量的數據查詢操作,就包含了強度測試。 

性能測試(Performance) 正常使用的時間內系統完成一個任務需要的時間,多人同時使用的時候響應時間,在可以接受范圍內.J2EE技術實現的系統在性能方面更是需要照顧的,一般原則是3秒以下接受,3-5秒可以接受,5秒以上就影響易用性了. 如果在測試過程中發現性能問題,修復起來是非常艱難的,因為這常常意味着程序的算法不好,結構不好,或者設計有問題。因此在產品開發的開始階段,就要考慮到軟件的性能問題 

壓力測試 (Stress) 多用戶情況可以考慮使用壓力測試工具,建議將壓力和性能測試結合起來進行.如果有負載平衡的話還要在服務器端打開監測工具,查看服務器CPU使用率,內存占用情況, 如果有必要可以模擬大量數據輸入,對硬盤的影響等等信息.如果有必要的話必須進行性能優化(軟硬件都可以). 

壓力測試和性能的測試的區別是在於他們不同的測試目的 

壓力測試是為了發現系統能支持的最大負載,他的前提是要求系統性能處在可以接受的范圍內,比如經常規定的葉面3秒鍾內響應; 

所以一句話概括就是:在性能可以接受的前提下,測試系統可以支持的最大負載。 

性能測試是為了檢查系統的反映,運行速度等性能指標,他的前提是要求在一定負載下,如檢查一個網站在100人同時在線的情況下的性能指標,每個用戶是否都還可以正常的完成操作等。 
概括就是:在不同負載下(負載一定)時,通過一些系統參數(如反應時間等)檢查系統的運行情況; 
比如我們說某個網站的性能差,嚴格上應該說‘在N人同時在線情況下,這個站點性能很差) 

總之,就像一個方程式:綜合性能=壓力數*性能指數, 

綜合性能是固定的: 

壓力測試是為了得到性能指數最小時候(可以接受的最小指數)最大的壓力數 。

性能測試是為了得到壓力數確定下的性能指數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM