師洛蓓
(四川長虹網(wǎng)絡(luò)科技有限責(zé)任公司媒體終端軟件研發(fā)部 四川省綿陽市 621000)
軟件測試過程中,需要做好質(zhì)量度量工作,使軟件運(yùn)行質(zhì)量能夠得到準(zhǔn)確地評估,使其運(yùn)行效果更加地穩(wěn)定。為此,需要采取有效地測試手段,合理地對質(zhì)量度量方法進(jìn)行應(yīng)用,使軟件測試水平能夠得到提升,對軟件實(shí)現(xiàn)精準(zhǔn)化地測試。通過質(zhì)量度量測試方法,可以提高測試結(jié)果的可靠性,使軟件運(yùn)行狀況能夠得到準(zhǔn)確地驗(yàn)證,進(jìn)而使軟件測試效率得到保障。
質(zhì)量度量測試過程中,需要按照一定的流程進(jìn)行,使測試過程能夠有序完成,保障測試流程的規(guī)范性。具體測試流程如下:第一,需要明確質(zhì)量度量的需求,通過軟件的功能確定軟件中可能存在的問題,將其作為質(zhì)量度量的依據(jù),使測試內(nèi)容更加地全面。第二,確定軟件度量單元,以度量框架作為出發(fā)點(diǎn),對質(zhì)量度量進(jìn)行定義,使度量準(zhǔn)則能夠清晰地把握,同時合理地進(jìn)行度量用例設(shè)計,使度量問題能夠得到有效地分析,測試度量具有完善的流程。第三,實(shí)施軟件度量過程,根據(jù)測試用例對度量數(shù)據(jù)進(jìn)行采集,為數(shù)據(jù)分析過程提供依據(jù),同時需要度量結(jié)果進(jìn)行記錄。第四,對測試結(jié)果進(jìn)行度量分析,確定軟件運(yùn)行過程中存在的問題,并且對問題進(jìn)行重現(xiàn),使故障原因能夠得到準(zhǔn)確地分析。第五,對度量結(jié)果進(jìn)行驗(yàn)證,確定度量的影響范圍,對軟件性能進(jìn)行準(zhǔn)確地評估[1]。
通過邏輯覆蓋法可以對軟件內(nèi)部邏輯進(jìn)行測試,使程序的語句能夠得到有效地分析,使軟件具有良好的代碼特征。采用該測試方法時,需要對測試點(diǎn)數(shù)進(jìn)行統(tǒng)計,確定測試內(nèi)容的覆蓋度,計算公式如下:
通過覆蓋度可以對測試結(jié)果進(jìn)行評估,確定測試用例的匹配度,實(shí)現(xiàn)精準(zhǔn)化地度量測試。以條件語句測試為例,在代碼中由if 判斷句構(gòu)成,可以對程序執(zhí)行過程進(jìn)行判斷,使軟件能夠執(zhí)行相應(yīng)的功能。在測試過程中,需要對判斷條件進(jìn)行修改,進(jìn)而實(shí)現(xiàn)功能邏輯上的覆蓋,對軟件功能進(jìn)行快速測試。
等價類劃分法具有黑盒測試的效果,不用考慮程序的內(nèi)部構(gòu)造,進(jìn)而對軟件運(yùn)行性能進(jìn)行測試。該方法的重點(diǎn)在于測試子集的選取,通過測試子集來反應(yīng)整體的測試狀況,進(jìn)而發(fā)現(xiàn)軟件中存在的缺陷。該方法主要分為兩種形式:第一,有效等價劃分。將具有實(shí)際意義的數(shù)據(jù)作為輸入,對軟件系統(tǒng)的性能進(jìn)行測試,能夠反映出真實(shí)的測試結(jié)果。第二,無效等價劃分。將不具備實(shí)際意義的數(shù)據(jù)作為輸入,對軟件的異常狀況進(jìn)行判斷,可以對軟件異常形成有效地預(yù)測,使軟件在未來能夠穩(wěn)定工作。
通過邊界值法可以確定數(shù)據(jù)的范圍,對軟件運(yùn)行數(shù)據(jù)的變化范圍進(jìn)行測試,使軟件具有穩(wěn)定的工作狀態(tài)。邊界值法需要基于輸入、輸出進(jìn)行測試,由確定的輸入值對輸出值的范圍進(jìn)行評估。若輸出值不在規(guī)定范圍內(nèi),則說明軟件存在運(yùn)行問題;若輸出值在規(guī)定范圍內(nèi),則說明軟件運(yùn)行狀態(tài)良好。邊界值是重要的特征值,需要著重對其進(jìn)行分析,對其進(jìn)行測試,保障軟件能夠在邊界條件下問題運(yùn)行。以位置邊界為例,若測試數(shù)據(jù)為圓形區(qū)域,則圓形的邊界便是特征值,需要對邊界點(diǎn)進(jìn)行測試,使軟件的邊界范圍更加地明確[2]。
表1:度量元組成
表2:度量指示器組成
表3:度量權(quán)重定義
表4:度量項(xiàng)及度量值
軟件測試具有較強(qiáng)的邏輯性,可以采用因果圖法對測試案例進(jìn)行編寫,使測試過程更加地流程化。因果圖法測試流程如下:首先,需要對程序進(jìn)行分析,同時對原因和結(jié)果進(jìn)行描述。測試過程中,需要將原因作為輸入,將結(jié)果作為輸出,這樣便可以形成良好的測試關(guān)系。其次,需要繪制出因果圖,為測試過程提供依據(jù),保障測試過程能夠有序進(jìn)行,使測試更加地清晰化。最后,需要做好因果轉(zhuǎn)換工作,能夠根據(jù)結(jié)果推測問題的原因,對軟件運(yùn)行問題進(jìn)行再現(xiàn)。
3.1.1 度量框架
度量框架是構(gòu)建度量模型的重要依據(jù),從框架整體角度分析,可以將框架分為四個部分,主要構(gòu)成如下:第一,度量需求?;诳蛻粜枨蟆⑾到y(tǒng)需求等確定度量標(biāo)準(zhǔn),對度量形成有效地分析,保障軟件測試內(nèi)容的完善性,使度量分析過程更加地全面。第二,度量準(zhǔn)備。明確軟件測試的度量指標(biāo),對度量元進(jìn)行構(gòu)建,同時對度量環(huán)境進(jìn)行搭建,形成標(biāo)準(zhǔn)的測量環(huán)境,進(jìn)而形成準(zhǔn)確的軟件測試結(jié)果。度量元組成見表1 所示。第三,開始度量。根據(jù)測試用例對軟件進(jìn)行質(zhì)量度量,對數(shù)據(jù)進(jìn)行采集與構(gòu)建,使數(shù)據(jù)單元能夠得到有效地檢測,同時對數(shù)據(jù)進(jìn)行記錄。第四,度量結(jié)果。對度量數(shù)據(jù)進(jìn)行評價,得出軟件質(zhì)量測試的結(jié)果,使軟件性能得到有效地評估[3]。
3.1.2 度量評價
為了保障軟件度量測試的可行性,需要對質(zhì)量度量過程進(jìn)行評價,對度量的風(fēng)險進(jìn)行評估,進(jìn)而提高測試結(jié)果的準(zhǔn)確性。假設(shè)測試對象為i,則測試風(fēng)險值R(i)可以表示如下:
其中,p(i)為出錯可能性;g(i)為出錯代價。
當(dāng)檢測出軟件測試存在風(fēng)險后,對風(fēng)險進(jìn)行管理,具體步驟如下:第一,測試設(shè)計。針對風(fēng)險對測試用例進(jìn)行設(shè)計,合理地現(xiàn)有資源環(huán)境進(jìn)行運(yùn)用,保障測試過程能夠順利完成。第二,明確風(fēng)險。通過度量模塊對風(fēng)險進(jìn)行評估,對風(fēng)險的存在性進(jìn)行確定,確定風(fēng)險對軟件功能的影響范圍。第三,風(fēng)險估計。確定風(fēng)險問題將會造成的成本損失C(g),進(jìn)而確定風(fēng)險的影響。計算公式如下:
其中,SC(g)為軟件開發(fā)者的風(fēng)險損失,CC(g)為對用戶造成的風(fēng)險損失。
第四,風(fēng)險預(yù)測。對風(fēng)險系數(shù)進(jìn)行評估,并且按照風(fēng)險權(quán)重進(jìn)行排列,風(fēng)險較高的問題需要優(yōu)先進(jìn)行測試。例如:設(shè)計質(zhì)量、功能實(shí)現(xiàn)等,這些屬于高風(fēng)險的權(quán)重,需要優(yōu)先進(jìn)行測試。而編碼規(guī)范、結(jié)構(gòu)優(yōu)化等,這些屬于低風(fēng)險的權(quán)重,可以在后續(xù)階段進(jìn)行測試。度量評價可由度量指示器來實(shí)現(xiàn),指示器組成見表2 所示,可以對風(fēng)險進(jìn)行準(zhǔn)確評估。
3.2.1 確定目標(biāo)
為了保障度量定義的準(zhǔn)確性,需要對度量目標(biāo)進(jìn)行明確,形成有效的度量標(biāo)準(zhǔn)。度量目標(biāo)確定標(biāo)準(zhǔn)如下:第一,安全性。為軟件穩(wěn)定運(yùn)行提供保障,使測試結(jié)果更加地準(zhǔn)確,進(jìn)而保障測試對象的有效性。第二,適用性。保障度量目標(biāo)能夠順利實(shí)現(xiàn),確保度量手段的有效性,第三,可維護(hù)性。度量方法需要易于維護(hù),能夠準(zhǔn)確地對軟件進(jìn)行測試,對軟件質(zhì)量模型進(jìn)行評估。以缺陷測試為例,需要對缺陷方案進(jìn)行分析,使缺陷數(shù)得到有效地統(tǒng)計,最終對缺陷形成控制。缺陷程度可由缺陷密度(Dd)進(jìn)行衡量,計算公式如下:
其中,D 為缺陷數(shù);KLSOC 為源碼行數(shù)。
當(dāng)缺陷得到解決后,可以由缺陷移除率(DRE)進(jìn)行衡量,DRE=發(fā)現(xiàn)BUG 數(shù)/(發(fā)現(xiàn)BUG 數(shù)+未發(fā)現(xiàn)BUG 數(shù))×100%,進(jìn)而對缺陷的解決情況進(jìn)行確定。
3.2.2 權(quán)重定義
度量測試過程中,需要具有一定的權(quán)重,對質(zhì)量度量的權(quán)重進(jìn)行規(guī)定,使測試過程更加地具有針對性。測試權(quán)重見表3 所示,可以按照表中數(shù)據(jù)對度量項(xiàng)進(jìn)行權(quán)重構(gòu)建,使權(quán)重定義更加地標(biāo)準(zhǔn)。通過權(quán)重可以對軟件整體質(zhì)量進(jìn)行衡量,其中,P1+P2+P3=1,即總權(quán)重需要為1,避免權(quán)重發(fā)生缺失現(xiàn)象,對權(quán)重定義造成影響[4]。質(zhì)量權(quán)重計算方法如下:
其中,角標(biāo)ik 為度量項(xiàng);pik為權(quán)重;uik為測量值。通過上述公式,便可以對軟件的整體質(zhì)量進(jìn)行評估,權(quán)重定義越規(guī)范,測試結(jié)果就越精準(zhǔn)。
權(quán)重定義完成后,需要對數(shù)據(jù)進(jìn)行分析,得到準(zhǔn)確的測試結(jié)果,提高質(zhì)量度量的準(zhǔn)確性。首先,需要對各個度量項(xiàng)進(jìn)行計算,得出對應(yīng)的度量值,計算結(jié)果見表4 所示。
其次,需要計算質(zhì)量特性度量值,計算過程如下:
質(zhì)量特性1=0.2×(0.86+0.81+0.76)=0.478
質(zhì)量特性2=1/6×(0.84+0.96)=0.3
質(zhì)量特性3=0.2×(0.96+0.86)=0.36
最后,需要進(jìn)行加權(quán)計算,得到整體質(zhì)量特性M。由表1 可知,質(zhì)量特性1-3 對應(yīng)的權(quán)重分別為0.2、0.3、0.5,將其代入公式計算可得:
由此可見,軟件的整體質(zhì)量水平較低,軟件功能還需要進(jìn)一步進(jìn)行完善,使軟件具有良好的整體質(zhì)量特性。
綜上所述,通過質(zhì)量度量可以提高軟件測試的效率,能夠準(zhǔn)確地反應(yīng)軟件的運(yùn)行情況,對軟件故障能夠得到清晰地識別,使故障問題能夠得到有效解決。在測試過程中,需要質(zhì)量度量測試流程進(jìn)行,合理地對度量模型進(jìn)行構(gòu)建,實(shí)現(xiàn)精準(zhǔn)化地定義,進(jìn)而保障測試結(jié)果的準(zhǔn)確性,提高軟件質(zhì)量度量精度,保障軟件測試過程順利地進(jìn)行。