一種大型軟件測(cè)試方法
大型軟件具有涉及子模塊繁多、建設(shè)過程復(fù)雜、功能全面、性能具有較高要求的特點(diǎn)。依據(jù)ISO/IEC 9126軟件產(chǎn)品評(píng)估標(biāo)準(zhǔn)[1],需要對(duì)軟件的功能性、可靠性、可用性、效率、可維護(hù)性、可移植性等方面進(jìn)行評(píng)估。因此,需要有一種方法能夠?qū)Υ笮蛙浖M(jìn)行測(cè)試,保障其軟件質(zhì)量。
本論文針對(duì)大型軟件功能模塊多、流程復(fù)雜、性能要求高的特點(diǎn),總結(jié)了一種測(cè)試方法,該方法主要由功能測(cè)試和性能測(cè)試方法組成。功能測(cè)試方法由功能測(cè)試流程和功能測(cè)試用例設(shè)計(jì)方法組成,其中功能測(cè)試用例設(shè)計(jì)方法采用以等價(jià)類劃分方法為主,多種其他黑盒方法為輔助的方法。性能測(cè)試方法由性能測(cè)試流程、測(cè)試工具選擇、性能測(cè)試指標(biāo)設(shè)計(jì)和性能調(diào)優(yōu)方法組成。實(shí)踐表明,該測(cè)試方法具有良好的效果,能夠達(dá)到大型軟件進(jìn)行功能和性能把關(guān)的目的。
1 大型軟件的功能測(cè)試
某大型軟件在企業(yè)統(tǒng)一的電網(wǎng)設(shè)備和客戶信息模型、基礎(chǔ)資料和拓?fù)潢P(guān)系的基礎(chǔ)上,基于GIS的標(biāo)準(zhǔn)化、一體化企業(yè)級(jí)信息平臺(tái),應(yīng)用于供電可靠性管理、客戶停電管理、線損四分管理、業(yè)擴(kuò)報(bào)裝輔助決策及配網(wǎng)建設(shè)規(guī)劃等領(lǐng)域。具有涉及子模塊繁多、建設(shè)過程復(fù)雜、功能全面的特點(diǎn),需對(duì)其進(jìn)行功能測(cè)試。
1.1 功能測(cè)試流程
功能測(cè)試目的是測(cè)試產(chǎn)品是否達(dá)到了合同技術(shù)協(xié)議書規(guī)定的功能。其流程如圖1所示。
1.2 功能測(cè)試測(cè)試用例設(shè)計(jì)
業(yè)務(wù)測(cè)試用例由10項(xiàng)內(nèi)容組成:(1)用例ID,(2)用例名稱,(3)測(cè)試目的,(4)測(cè)試級(jí)別,(5)參考信息,(6)測(cè)試環(huán)境,(7)前提條件,(8)測(cè)試步驟,(9)預(yù)期結(jié)果,(10)設(shè)計(jì)人員。業(yè)務(wù)測(cè)試用例的方法有包括等價(jià)類劃分方法、邊界值分析方法、錯(cuò)誤推測(cè)方法、因果圖方法、判定表驅(qū)動(dòng)分析方法、正交實(shí)驗(yàn)設(shè)計(jì)方法、功能圖分析方法和場(chǎng)景設(shè)計(jì)方法等,各種方法可以相互補(bǔ)充[2]。
在本文中,對(duì)一個(gè)模塊依據(jù)邏輯功能不同將其細(xì)分,并分別設(shè)計(jì)測(cè)試用例,主要采用等價(jià)類劃分方法來設(shè)計(jì)測(cè)試用例[3-4]。同時(shí)采用邊界值分析方法、錯(cuò)誤推測(cè)方法、因果圖方法等在測(cè)試過程中進(jìn)行輔助,輔助測(cè)試人員可以用較少的用例發(fā)現(xiàn)盡可能多的錯(cuò)誤和缺陷。對(duì)某大型軟件的所有模塊均采取這種測(cè)試用例設(shè)計(jì)方法,其中某功能模塊的功能細(xì)分列表如表1所示。
某功能模塊的一個(gè)具體業(yè)務(wù)測(cè)試用例(運(yùn)行數(shù)據(jù)查詢)如表2所示。
2 大型軟件的性能測(cè)試
2.1 性能測(cè)試流程
性能測(cè)試需要驗(yàn)證產(chǎn)品是否達(dá)到了合同技術(shù)協(xié)議書規(guī)定的性能指標(biāo)。通過自動(dòng)化的測(cè)試工具模擬多種正常、峰值及異常負(fù)載條件來對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試。
性能測(cè)試可以分為負(fù)載測(cè)試、壓力測(cè)試、配置測(cè)試、容量測(cè)試、基準(zhǔn)測(cè)試和并發(fā)測(cè)試等[5]。本文主要通過負(fù)載測(cè)試,確定在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)是測(cè)試當(dāng)負(fù)載逐漸增加時(shí),系統(tǒng)各項(xiàng)性能指標(biāo)的變化情況。測(cè)試時(shí)監(jiān)控系統(tǒng)的各項(xiàng)性能指標(biāo),以便為性能調(diào)優(yōu)提供支持。性能測(cè)試流程圖如圖2所示。
2.2 測(cè)試工具選擇
性能測(cè)試的工具種類很多,簡單劃分為以下幾種:負(fù)載壓力測(cè)試工具、資源監(jiān)控工具、故障定位工具以及調(diào)優(yōu)工具。QA Load、SilkPerformer、LoadRunner、WebRunner都是主流的負(fù)載性能測(cè)試工具。本文采用LoadRunner作為測(cè)試工具,它也可以作為監(jiān)控工具直接從中間件、數(shù)據(jù)庫以及主機(jī)自身提供的性能數(shù)據(jù)采集接口獲取性能指標(biāo),在負(fù)載壓力測(cè)試的同時(shí)對(duì)業(yè)務(wù)系統(tǒng)所處的測(cè)試環(huán)境進(jìn)行監(jiān)控。
2.3 性能測(cè)試指標(biāo)
性能指標(biāo)包括應(yīng)用性能、主機(jī)性能、網(wǎng)絡(luò)性能、多任務(wù)性能、可靠性、可用性、易用性、易學(xué)性、負(fù)載均衡等性能指標(biāo)[6]。
本文的合同技術(shù)協(xié)議書主要考察系統(tǒng)的功能模塊在某測(cè)試點(diǎn)下的最大并發(fā)數(shù)和響應(yīng)時(shí)間指標(biāo)。測(cè)試時(shí)、對(duì)服務(wù)器的CPU使用率、CPU等待隊(duì)列、磁盤傳輸率(Mb/s)、內(nèi)存頁交換率(頁/s)、網(wǎng)絡(luò)傳輸率(包/s)等指標(biāo)進(jìn)行監(jiān)控,編制服務(wù)器資源占用情況表,格式如表3所示。
對(duì)大型軟件的所有模塊均考察測(cè)試點(diǎn)的最大并發(fā)數(shù)和響應(yīng)時(shí)間指標(biāo),其中某子系統(tǒng)的性能測(cè)試表如表4所示。
2.4 性能調(diào)優(yōu)
性能測(cè)試調(diào)優(yōu)是為了改善系統(tǒng)某些方面的性能,而對(duì)系統(tǒng)軟件或硬件進(jìn)行的修改,它與負(fù)載測(cè)試是性能測(cè)試的兩個(gè)核心內(nèi)容,它們是多次交替進(jìn)行的。
當(dāng)性能測(cè)試發(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的個(gè)數(shù)和主頻、磁盤的容量和速度及是否使用RAID,內(nèi)存大小等;(6)網(wǎng)絡(luò)狀況。是否會(huì)有網(wǎng)絡(luò)負(fù)載過重的情況;(7)問題的影響是什么,比如影響響應(yīng)速度或吞吐量等;(8)多少用戶遇到了問題,遇到問題的用戶與其他用戶的操作有什么不同;(9)系統(tǒng)資源監(jiān)控的結(jié)果是否正常,如CPU和I/O是否正常;(10)問題是否集中在某一類模塊中;(11)是客戶端還是服務(wù)器出現(xiàn)問題;(12)實(shí)際負(fù)載是否超過了系統(tǒng)的負(fù)載能力;(13)是否未對(duì)系統(tǒng)進(jìn)行優(yōu)化。
收集完以上必要的信息后,即確定調(diào)優(yōu)的具體目標(biāo),如:(1)提高系統(tǒng)吞吐量;(2)縮短響應(yīng)時(shí)間;(3)更好地支持并發(fā);(4)提高硬件配置(如CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)等)。
調(diào)優(yōu)完成后,再次進(jìn)行負(fù)載測(cè)試,確定調(diào)優(yōu)后的系統(tǒng)性能指標(biāo)是否達(dá)到合同技術(shù)協(xié)議書的要求。若仍未達(dá)到,則需要再次進(jìn)行調(diào)優(yōu),并讓開發(fā)方也改進(jìn)程序。
實(shí)踐證明,這種功能測(cè)試與性能測(cè)試方法能夠有效地驗(yàn)證多個(gè)廠商的產(chǎn)品是否達(dá)到了合同技術(shù)協(xié)議書規(guī)定的功能和性能指標(biāo)。性能測(cè)試是控制系統(tǒng)性能的有效手段,在軟件的能力驗(yàn)證、能力規(guī)劃、性能調(diào)優(yōu)、缺陷修復(fù)等方面都發(fā)揮著重要作用。本文總結(jié)的功能測(cè)試與性能測(cè)試方法可以對(duì)多模塊、有具體性能要求的大型軟件進(jìn)行測(cè)試,功能測(cè)試具有步驟明確、設(shè)計(jì)測(cè)試用例效率高和執(zhí)行簡單的特點(diǎn);性能測(cè)試具有步驟明確、監(jiān)控全面和能夠進(jìn)行調(diào)優(yōu)的特點(diǎn),是一種較好的測(cè)試方法。
評(píng)論