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

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

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

性能測試常常和壓力測試一塊兒進行,並且經常須要硬件和軟件測試設備,這就是說,經常有必要的在一種苛刻的環境中衡量資源的使用(好比,處理器週期)。外部的測試設備能夠監測測試執行,當出現狀況(如中斷)時記錄下來。經過對系統的檢測,測試者能夠發現致使效率下降和系統故障的緣由。 

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

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

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

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

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

壓力測試是爲了發現系統能支持的最大負載,他的前提是要求系統性能處在能夠接受的範圍內,好比常常規定的葉面3秒鐘內響應; 

因此一句話歸納就是:在性能能夠接受的前提下,測試系統能夠支持的最大負載。 

性能測試是爲了檢查系統的反映,運行速度等性能指標,他的前提是要求在必定負載下,如檢查一個網站在100人同時在線的狀況下的性能指標,每一個用戶是否都還能夠正常的完成操做等。 
歸納就是:在不一樣負載下(負載必定)時,經過一些系統參數(如反應時間等)檢查系統的運行狀況; 
好比咱們說某個網站的性能差,嚴格上應該說‘在N人同時在線狀況下,這個站點性能不好) 

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

綜合性能是固定的: 

壓力測試是爲了獲得性能指數最小時候(能夠接受的最小指數)最大的壓力數 。

性能測試是爲了獲得壓力數肯定下的性能指數。算法

相關文章
相關標籤/搜索