什么是性能、功能測試?常見的性能檢測方法有哪些?
日期:2021-09-13 11:21:00 瀏覽量:3995 標(biāo)簽: 性能檢測 關(guān)鍵功能測試 功能檢測
性能測試一般指的是功能測試,主要測試還設(shè)備運(yùn)用的功能有哪些,就測那些固定參數(shù)是否符合規(guī)定。性能測試是通過自動(dòng)化的測試工具模擬多種正常、峰值以及異常負(fù)載條件來對系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測試。負(fù)載測試和壓力測試都屬于性能測試,兩者可以結(jié)合進(jìn)行。功能測試就是對產(chǎn)品的各功能進(jìn)行驗(yàn)證,根據(jù)功能測試用例,逐項(xiàng)測試,檢查產(chǎn)品是否達(dá)到用戶要求的功能。
性能是一種指標(biāo),表明軟件系統(tǒng)或構(gòu)件對其及時(shí)性要求的符合程度;其次,性能是軟件產(chǎn)品的一種特性,可以用時(shí)間來進(jìn)行度量。性能的及時(shí)性用響應(yīng)時(shí)間或吞吐量來衡量。響應(yīng)時(shí)間是指服務(wù)器對請求作出響應(yīng)所需要的時(shí)間。常見的性能測試方法如下:
1.負(fù)載測試
在這里,負(fù)載測試指的是最常見的驗(yàn)證一般性能需求而進(jìn)行的性能測試,在上面我們提到了用戶最常見的性能需求就是“既要馬兒跑,又要馬兒少吃草”。因此負(fù)載測試主要是考察軟件系統(tǒng)在既定負(fù)載下的性能表現(xiàn)。我們對負(fù)載測試可以有如下理解:
(1)負(fù)載測試是站在用戶的角度去觀察在一定條件下軟件系統(tǒng)的性能表現(xiàn)。
(2)負(fù)載測試的預(yù)期結(jié)果是用戶的性能需求得到滿足。此指標(biāo)一般體現(xiàn)為響應(yīng)時(shí)間、交易容量、并發(fā)容量、資源使用率等。
2.壓力測試
壓力測試是為了考察系統(tǒng)在極端條件下的表現(xiàn),極端條件可以是超負(fù)荷的交易量和并發(fā)用戶數(shù)。注意,這個(gè)極端條件并不一定是用戶的性能需求,可能要遠(yuǎn)遠(yuǎn)高于用戶的性能需求??梢赃@樣理解,壓力測試和負(fù)載測試不同的是,壓力測試的預(yù)期結(jié)果就是系統(tǒng)出現(xiàn)問題,而我們要考察的是系統(tǒng)處理問題的方式。比如說,我們期待一個(gè)系統(tǒng)在面臨壓力的情況下能夠保持穩(wěn)定,處理速度可以變慢,但不能系統(tǒng)崩潰。因此,壓力測試是能讓我們識別系統(tǒng)的弱點(diǎn)和在極限負(fù)載下程序?qū)⑷绾芜\(yùn)行。
3.并發(fā)測試
驗(yàn)證系統(tǒng)的并發(fā)處理能力。一般是和服務(wù)器端建立大量的并發(fā)連接,通過客戶端的響應(yīng)時(shí)間和服務(wù)器端的性能監(jiān)測情況來判斷系統(tǒng)是否達(dá)到了既定的并發(fā)能力指標(biāo)。負(fù)載測試往往就會(huì)使用并發(fā)來創(chuàng)造負(fù)載,之所以把并發(fā)測試單獨(dú)提出來,是因?yàn)椴l(fā)測試往往涉及服務(wù)器的并發(fā)容量,以及多進(jìn)程/多線程協(xié)調(diào)同步可能帶來的問題。這是要特別注意,必須測試的。
4.基準(zhǔn)測試
當(dāng)軟件系統(tǒng)中增加一個(gè)新的模塊的時(shí)候,需要做基準(zhǔn)測試,以判斷新模塊對整個(gè)軟件系統(tǒng)的性能影響。按照基準(zhǔn)測試的方法,需要打開/關(guān)閉新模塊至少各做一次測試。關(guān)閉模塊之前的系統(tǒng)各個(gè)性能指標(biāo)記下來作為基準(zhǔn)(Benchmark),然后與打開模塊狀態(tài)下的系統(tǒng)性能指標(biāo)作比較,以判斷模塊對系統(tǒng)性能的影響。
5.穩(wěn)定性測試
“路遙知馬力”,在這里我們要說的是和性能測試有關(guān)的穩(wěn)定性測試,即測試系統(tǒng)在一定負(fù)載下運(yùn)行長時(shí)間后是否會(huì)發(fā)生問題。軟件系統(tǒng)的有些問題是不能一下子就暴露出來的,或者說是需要時(shí)間積累才能達(dá)到能夠度量的程度。為什么會(huì)需要這樣的測試呢?因?yàn)橛行┸浖膯栴}只有在運(yùn)行一天或一個(gè)星期甚至更長的時(shí)間才會(huì)暴露。這種問題一般是程序占用資源卻不能及時(shí)釋放而引起的。比如,內(nèi)存泄漏問題就是經(jīng)過一段時(shí)間積累才會(huì)慢慢變得顯著,在運(yùn)行初期卻很難檢測出來;還有客戶端和服務(wù)器在負(fù)載運(yùn)行一段時(shí)間后,建立了大量的連接通路,卻不能有效地復(fù)用或及時(shí)釋放。
6.可恢復(fù)測試
測試系統(tǒng)能否快速地從錯(cuò)誤狀態(tài)中恢復(fù)到正常狀態(tài)。比如,在一個(gè)配有負(fù)載均衡的系統(tǒng)中,主機(jī)承受了壓力無法正常工作后,備份機(jī)是否能夠快速地接管負(fù)載??苫謴?fù)測試通常結(jié)合壓力測試一起來做。
提示:每種測試有其存在的空間和目的。當(dāng)我們接手一個(gè)軟件項(xiàng)目后,在有限的資源條件下,選擇去做哪一種測試,這應(yīng)該根據(jù)當(dāng)前軟件過程階段和項(xiàng)目的本身特點(diǎn)來做選擇。比如,在集成測試的時(shí)候要做基準(zhǔn)測試,在軟件產(chǎn)品每個(gè)發(fā)布點(diǎn)要做性能測試。
總的來說,系統(tǒng)性能包括時(shí)間和空間兩個(gè)維度,時(shí)間是指客戶操作業(yè)務(wù)的響應(yīng)時(shí)間,空間是指系統(tǒng)執(zhí)行客戶端請求時(shí),系統(tǒng)資源消耗情況。客戶關(guān)注的性能只是時(shí)間的表現(xiàn),客戶不關(guān)注是什么原因引起的性能問題,但性能測試工程師和系統(tǒng)工程師就必須關(guān)注系統(tǒng)資源使用的情況。性能測試是測試系統(tǒng)端到端(即客戶端發(fā)送請求經(jīng)過服務(wù)器將信息返回的過程)的性能指標(biāo),目前在系統(tǒng)設(shè)計(jì)階段無法設(shè)計(jì)出一個(gè)定量性能的系統(tǒng),即開發(fā)工程師無法保證設(shè)計(jì)好的系統(tǒng)其性能表現(xiàn)如何,還是得靠測試來驗(yàn)證性能的表現(xiàn),性能測試是一系列的測試過程。在系統(tǒng)投入到市場之前,必須對系統(tǒng)的性能進(jìn)行測試,否則無法確定系統(tǒng)的性能是否能滿足客戶的需求。