《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計應(yīng)用 > 一種大型軟件測試方法
一種大型軟件測試方法
來源:微型機(jī)與應(yīng)用2011年第9期
周強(qiáng)峰1,,周強(qiáng)強(qiáng)2
(1.廣東電網(wǎng)公司電力科學(xué)研究院,,廣東 廣州 510080,; 2.廣東電網(wǎng)公司廣州供電局,,廣東 廣州
摘要: 總結(jié)了一種結(jié)合功能測試和性能測試的測試方法,其中功能測試方法由功能測試流程和功能測試用例設(shè)計方法組成,。性能測試方法由性能測試流程,、測試工具選擇、性能測試指標(biāo)設(shè)計和性能調(diào)優(yōu)方法組成,。實踐證明,,該方法能夠達(dá)到對大型軟件進(jìn)行功能和性能把關(guān)的目的。
Abstract:
Key words :

摘  要: 總結(jié)了一種結(jié)合功能測試性能測試的測試方法,,其中功能測試方法由功能測試流程和功能測試用例設(shè)計方法組成。性能測試方法由性能測試流程,、測試工具選擇,、性能測試指標(biāo)設(shè)計和性能調(diào)優(yōu)方法組成,。實踐證明,該方法能夠達(dá)到對大型軟件進(jìn)行功能和性能把關(guān)的目的,。
關(guān)鍵詞: 功能測試,;性能測試;軟件質(zhì)量

 大型軟件具有涉及子模塊繁多,、建設(shè)過程復(fù)雜,、功能全面、性能具有較高要求的特點,。依據(jù)ISO/IEC 9126軟件產(chǎn)品評估標(biāo)準(zhǔn)[1],,需要對軟件的功能性、可靠性,、可用性,、效率、可維護(hù)性,、可移植性等方面進(jìn)行評估,。因此,需要有一種方法能夠?qū)Υ笮蛙浖M(jìn)行測試,,保障其軟件質(zhì)量,。
本論文針對大型軟件功能模塊多、流程復(fù)雜,、性能要求高的特點,,總結(jié)了一種測試方法,該方法主要由功能測試和性能測試方法組成,。功能測試方法由功能測試流程和功能測試用例設(shè)計方法組成,,其中功能測試用例設(shè)計方法采用以等價類劃分方法為主,多種其他黑盒方法為輔助的方法,。性能測試方法由性能測試流程,、測試工具選擇、性能測試指標(biāo)設(shè)計和性能調(diào)優(yōu)方法組成,。實踐表明,,該測試方法具有良好的效果,能夠達(dá)到大型軟件進(jìn)行功能和性能把關(guān)的目的,。
1 大型軟件的功能測試
 某大型軟件在企業(yè)統(tǒng)一的電網(wǎng)設(shè)備和客戶信息模型,、基礎(chǔ)資料和拓?fù)潢P(guān)系的基礎(chǔ)上,基于GIS的標(biāo)準(zhǔn)化,、一體化企業(yè)級信息平臺,,應(yīng)用于供電可靠性管理、客戶停電管理、線損四分管理,、業(yè)擴(kuò)報裝輔助決策及配網(wǎng)建設(shè)規(guī)劃等領(lǐng)域,。具有涉及子模塊繁多、建設(shè)過程復(fù)雜,、功能全面的特點,,需對其進(jìn)行功能測試。
1.1 功能測試流程
 功能測試目的是測試產(chǎn)品是否達(dá)到了合同技術(shù)協(xié)議書規(guī)定的功能,。其流程如圖1所示,。

1.2 功能測試測試用例設(shè)計
 業(yè)務(wù)測試用例由10項內(nèi)容組成:(1)用例ID,(2)用例名稱,,(3)測試目的,,(4)測試級別,(5)參考信息,,(6)測試環(huán)境,,(7)前提條件,(8)測試步驟,,(9)預(yù)期結(jié)果,,(10)設(shè)計人員。業(yè)務(wù)測試用例的方法有包括等價類劃分方法,、邊界值分析方法,、錯誤推測方法、因果圖方法,、判定表驅(qū)動分析方法,、正交實驗設(shè)計方法、功能圖分析方法和場景設(shè)計方法等,,各種方法可以相互補充[2],。
 在本文中,對一個模塊依據(jù)邏輯功能不同將其細(xì)分,,并分別設(shè)計測試用例,,主要采用等價類劃分方法來設(shè)計測試用例[3-4]。同時采用邊界值分析方法,、錯誤推測方法,、因果圖方法等在測試過程中進(jìn)行輔助,輔助測試人員可以用較少的用例發(fā)現(xiàn)盡可能多的錯誤和缺陷,。對某大型軟件的所有模塊均采取這種測試用例設(shè)計方法,,其中某功能模塊的功能細(xì)分列表如表1所示。

 某功能模塊的一個具體業(yè)務(wù)測試用例(運行數(shù)據(jù)查詢)如表2所示,。

2 大型軟件的性能測試
2.1 性能測試流程

 性能測試需要驗證產(chǎn)品是否達(dá)到了合同技術(shù)協(xié)議書規(guī)定的性能指標(biāo),。通過自動化的測試工具模擬多種正常,、峰值及異常負(fù)載條件來對系統(tǒng)的各項性能指標(biāo)進(jìn)行測試。
 性能測試可以分為負(fù)載測試,、壓力測試,、配置測試、容量測試,、基準(zhǔn)測試和并發(fā)測試等[5]。本文主要通過負(fù)載測試,,確定在各種工作負(fù)載下系統(tǒng)的性能,,目標(biāo)是測試當(dāng)負(fù)載逐漸增加時,系統(tǒng)各項性能指標(biāo)的變化情況,。測試時監(jiān)控系統(tǒng)的各項性能指標(biāo),,以便為性能調(diào)優(yōu)提供支持。性能測試流程圖如圖2所示,。

2.2 測試工具選擇
 性能測試的工具種類很多,,簡單劃分為以下幾種:負(fù)載壓力測試工具、資源監(jiān)控工具,、故障定位工具以及調(diào)優(yōu)工具,。QA Load、SilkPerformer,、LoadRunner,、WebRunner都是主流的負(fù)載性能測試工具。本文采用LoadRunner作為測試工具,,它也可以作為監(jiān)控工具直接從中間件,、數(shù)據(jù)庫以及主機(jī)自身提供的性能數(shù)據(jù)采集接口獲取性能指標(biāo),在負(fù)載壓力測試的同時對業(yè)務(wù)系統(tǒng)所處的測試環(huán)境進(jìn)行監(jiān)控,。
2.3 性能測試指標(biāo)
 性能指標(biāo)包括應(yīng)用性能,、主機(jī)性能、網(wǎng)絡(luò)性能,、多任務(wù)性能,、可靠性、可用性,、易用性,、易學(xué)性、負(fù)載均衡等性能指標(biāo)[6],。
 本文的合同技術(shù)協(xié)議書主要考察系統(tǒng)的功能模塊在某測試點下的最大并發(fā)數(shù)和響應(yīng)時間指標(biāo),。測試時、對服務(wù)器的CPU使用率,、CPU等待隊列,、磁盤傳輸率(Mb/s),、內(nèi)存頁交換率(頁/s)、網(wǎng)絡(luò)傳輸率(包/s)等指標(biāo)進(jìn)行監(jiān)控,,編制服務(wù)器資源占用情況表,,格式如表3所示。


 對大型軟件的所有模塊均考察測試點的最大并發(fā)數(shù)和響應(yīng)時間指標(biāo),,其中某子系統(tǒng)的性能測試表如表4所示,。

2.4 性能調(diào)優(yōu)
 性能測試調(diào)優(yōu)是為了改善系統(tǒng)某些方面的性能,而對系統(tǒng)軟件或硬件進(jìn)行的修改,,它與負(fù)載測試是性能測試的兩個核心內(nèi)容,,它們是多次交替進(jìn)行的。
 當(dāng)性能測試發(fā)現(xiàn)問題后,,通過檢查如下幾方面來收集系統(tǒng)的信息以便診斷系統(tǒng):(1)應(yīng)用環(huán)境(如JDK版本),;(2)應(yīng)用程序代碼;(3)數(shù)據(jù)庫配置參數(shù),;(4)操作系統(tǒng)配置參數(shù),;(5)硬件配置。如CPU的個數(shù)和主頻,、磁盤的容量和速度及是否使用RAID,,內(nèi)存大小等;(6)網(wǎng)絡(luò)狀況,。是否會有網(wǎng)絡(luò)負(fù)載過重的情況,;(7)問題的影響是什么,比如影響響應(yīng)速度或吞吐量等,;(8)多少用戶遇到了問題,,遇到問題的用戶與其他用戶的操作有什么不同;(9)系統(tǒng)資源監(jiān)控的結(jié)果是否正常,,如CPU和I/O是否正常,;(10)問題是否集中在某一類模塊中;(11)是客戶端還是服務(wù)器出現(xiàn)問題,;(12)實際負(fù)載是否超過了系統(tǒng)的負(fù)載能力,;(13)是否未對系統(tǒng)進(jìn)行優(yōu)化。
 收集完以上必要的信息后,,即確定調(diào)優(yōu)的具體目標(biāo),,如:(1)提高系統(tǒng)吞吐量;(2)縮短響應(yīng)時間,;(3)更好地支持并發(fā),;(4)提高硬件配置(如CPU、內(nèi)存,、硬盤,、網(wǎng)絡(luò)等),。
 調(diào)優(yōu)完成后,再次進(jìn)行負(fù)載測試,,確定調(diào)優(yōu)后的系統(tǒng)性能指標(biāo)是否達(dá)到合同技術(shù)協(xié)議書的要求,。若仍未達(dá)到,則需要再次進(jìn)行調(diào)優(yōu),,并讓開發(fā)方也改進(jìn)程序,。
 實踐證明,這種功能測試與性能測試方法能夠有效地驗證多個廠商的產(chǎn)品是否達(dá)到了合同技術(shù)協(xié)議書規(guī)定的功能和性能指標(biāo),。性能測試是控制系統(tǒng)性能的有效手段,,在軟件的能力驗證、能力規(guī)劃,、性能調(diào)優(yōu)、缺陷修復(fù)等方面都發(fā)揮著重要作用,。本文總結(jié)的功能測試與性能測試方法可以對多模塊,、有具體性能要求的大型軟件進(jìn)行測試,功能測試具有步驟明確,、設(shè)計測試用例效率高和執(zhí)行簡單的特點,;性能測試具有步驟明確、監(jiān)控全面和能夠進(jìn)行調(diào)優(yōu)的特點,,是一種較好的測試方法,。
參考文獻(xiàn)
[1] ISO/IEC 9126: Information technology-Software quality characteristics and metrics[S]. 1991.
[2] MYERS G J, SANDLER C,, BADGETT T. The art of software testing,, second edition[M]. USA: John Wiley & Sons, 2004.
[3] 范明紅,,浦云明,,汪志華.等價類測試與劃分研究[J].計算機(jī)技術(shù)與發(fā)展,2009,,19(7):62-65.
[4] 浦云明,,陳黎震.基于劃分的等價類測試[J].計算機(jī)工程與設(shè)計,2009,,30(19):4429-4431.
[5] 于涌.軟件性能測試與LoadRunner實戰(zhàn)[M].北京:人民郵電出版社,,2008.
[6] 鄭人杰.計算機(jī)軟件測試技術(shù).[M].北京:清華大學(xué)出版社,1990.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。