王德敏
(公安部第一研究所,北京,100048)
基于影響域分析的軟件回歸測試設(shè)計
王德敏
(公安部第一研究所,北京,100048)
本文就軟件回歸測試開展分析,并對基于控制流和數(shù)據(jù)流的影響域分析、影響域重定位、基于影響域的回歸測試設(shè)計進行了詳細論述,希望由此能夠為相關(guān)業(yè)內(nèi)人士帶來一定啟發(fā)。
影響域;回歸測試;數(shù)據(jù)流;控制流
作為軟件工程的重要組成,軟件測試屬于保證軟件質(zhì)量的重要手段,本文研究的回歸測試便是軟件測試的重要組成,其與首輪測試均在軟件工程中占據(jù)著較為重要的地位。首輪測試主要采用追蹤法保證測試需求覆蓋率,回歸測試則將開展的重點放在了更改內(nèi)容的確認與影響方面,而這便需要回歸測試開展中相關(guān)測試人員對更改后的軟件開展更改影響域分析。為了實現(xiàn)高質(zhì)量的回歸測試并設(shè)計針對性較強的測試用例,高水準的更改影響域估計和確定必不可缺,可以說更改影響域估計和確定直接關(guān)系著軟件回歸測試的成敗,很多回歸測試難度大、風險高便是由于軟件更改影響域在確定階段出現(xiàn)了問題。值得注意的是,長期以來學界提出了“Link”算法、基于概念格軟件修改分析等多種回歸測試的更改影響域確定方法,不過這類方法多局限于理論層次,很多軟件因此開展的軟件回歸測試往往較為容易出現(xiàn)問題[1]。
軟件工程更改影響域超出實際范圍往往會導致測試用例冗余較高、浪費測試資源、降低測試效率等問題的出現(xiàn),而如果不能完全覆蓋實際范圍,則會導致軟件升級后出現(xiàn)的缺陷漏測,軟件回歸測試的意義自然難以實現(xiàn)最大化發(fā)揮。在筆者的實際調(diào)查中發(fā)現(xiàn),我國當下軟件工程更改影響域分析存在著三種分析方法,即經(jīng)驗判斷法、直觀分析法、完全覆蓋法,三種方法的詳細介紹如下所示:(1)經(jīng)驗判斷法。軟件測試人員長期從業(yè)積累的經(jīng)驗是經(jīng)驗判斷法的主要依據(jù),這一分析方法的高質(zhì)量應(yīng)用需要測試人員較為深入了解被測試軟件,同時自然也需要擁有較為豐富的從業(yè)經(jīng)驗,由此基于更改報告開展的分析質(zhì)量才能夠得到保證。(2)直觀分析法。結(jié)合設(shè)計人員提供的更改報告將更改內(nèi)容對應(yīng)到具體模塊屬于直觀分析法應(yīng)用的主要流程,應(yīng)用簡單是這一分析方法的優(yōu)勢,但只能應(yīng)用于邏輯簡單軟件是其不足,否則漏測出現(xiàn)的幾率將大大提升。(3)完全覆蓋法。完全基于首輪測試用例開展分析是完全覆蓋法的應(yīng)用理念,不過這一方法僅能服務(wù)于軟件規(guī)模小、軟件功能單一的軟件項目[2]。
考慮到業(yè)界在回歸測試領(lǐng)域存在的不足,本文提出了基于控制流和數(shù)據(jù)流的影響域分析方法,這一方法的原理如下所示。
2.1.1 基于控制流的影響域分析原理
假設(shè)某軟件系統(tǒng)全域集合為R,更改后n個更改點對程序的影響范圍為Rn,由此便可以確定關(guān)系式,而考慮到軟件的程序更處于程序控制流的某個分支之中,便可以應(yīng)用圖1開展分析,本文將圖1中處理過程A所在模塊稱作過程模塊A,而如果處理過程中過程模塊A發(fā)生變化,便能夠確定出更改結(jié)果的類型,即:①程序執(zhí)行時序不發(fā)生變化、②過程模塊A執(zhí)行時序發(fā)生變化、③過程模塊A輸出數(shù)據(jù)結(jié)構(gòu)發(fā)生變化、④同時出現(xiàn)②和③的變化,由此情況①的更改影響域可以確定為過程模塊A的內(nèi)部,而情況②、③、④則存在著更改影響域向外擴散的情況,開展時序和全局資源被改變后的使用情況分析便顯得較為重要[3]。
圖1 控制流示意圖
圖 2 數(shù)據(jù)流示意圖
2.1.2 基于數(shù)據(jù)流的影響域分析原理
假設(shè)圖2為圖1處理過程A更改過程數(shù)據(jù)流圖,該圖中的數(shù)據(jù)處理A便與圖1的處理過程A相對應(yīng),考慮到數(shù)據(jù)處理A的更改,便能夠得出數(shù)據(jù)流變化的三層含義,即:①數(shù)據(jù)流“DATA2.1”不再流向數(shù)據(jù)處理C、②“DATA2.1”數(shù)據(jù)流向不變但結(jié)構(gòu)發(fā)生變化、③“DATA2.1”結(jié)構(gòu)發(fā)生變化,其中①和②的情況將對后續(xù)數(shù)據(jù)流造成影響,而③的情況帶來的影響則需要結(jié)合實際環(huán)境展開分析。
基于控制流和數(shù)據(jù)流的影響域分析在具體操作中存在著較大差別,具體操作如下所示:(1)基于控制流的影響域分析操作步驟。步驟流程可概括為:“確定更改類型→獲得受影響控制流→獲得更改影響域”,這一過程需要結(jié)合軟件更改情況等信息,而如果設(shè)軟件存在n處更改,則可以結(jié)合公式完成影響域的求得,該公式中的i≥0且i≤n。(2)基于數(shù)據(jù)流的影響域分析步驟。步驟流程可以概括為:“獲得變化數(shù)據(jù)流集合→獲得數(shù)據(jù)流影響集合→獲得更改影響域”,這一過程同樣需要開展軟件更改情況分析,而結(jié)合公式這一公式支持下完成更改影響域計算。
在基于控制流和數(shù)據(jù)流分析的支持下,即可實現(xiàn)高質(zhì)量的軟件更改影響域求得,而隨后結(jié)合軟件具體情況開展的影響域重定位也不能被忽視,這是由于影響域重定位能夠通過縮小或擴大軟件更改影響域進一步提升其精度,本文對一般情況下需要增加和縮小軟件修改影響域范圍的情況進行了總結(jié),具體內(nèi)容如下所示:(1)增加影響域范圍的情形。不在軟件修改和升級的更改影響范圍內(nèi),不過需要重新確認以保證測試質(zhì)量;處于被更改點前,但軟件的修改和升級對其造成了影響;軟件修改和升級涉及的控制流和數(shù)據(jù)流路徑與其不接觸,但同時帶來的時序改變對其造成了影響。(2)縮小影響域范圍的情形。處于軟件修改和升級涉及的控制流和數(shù)據(jù)流路徑上,由于可以直觀確定其處于更改影響域內(nèi),故無需再次開展測試;對于軟件的特殊流程,雖然其處于軟件修改和升級涉及的影響域中,但無需進行再次測試。
完成最終意義上的軟件修改和升級后的軟件更改影響域確定后,即可真正開展基于影響域的回歸測試設(shè)計,這一設(shè)計需要結(jié)合影響域和測試范圍的映射關(guān)系,以此實現(xiàn)影響域映射在測試范圍上,這正是保證軟件回歸測試質(zhì)量的關(guān)鍵點。
基于控制流和數(shù)據(jù)流分析的軟件回歸測試設(shè)計具備較高實用性。而在此基礎(chǔ)上,本文涉及的影響域重定位、基于影響域的回歸測試設(shè)計等具體內(nèi)容,則證明了研究的價值。因此,在相關(guān)領(lǐng)域的理論研究和實踐探索中,本文內(nèi)容便能夠發(fā)揮一定程度的參考作用。
[1]夏同飛,鄭浩.大型軟件回歸測試用例選擇優(yōu)化策略[J].測試技術(shù)學報,2016,30(02):106-113.
[2]吳川,鞏敦衛(wèi),姚香娟.基于分支覆蓋的回歸測試路徑選擇[J].軟件學報,2016,27(04):839-854.
The influence domain analysis software design based on regression test
Wang Demin
(The first Research Institute of the Ministry of public security, Beijing ,100048)
In this paper, the regression test carried out analysis, and the influence of control flow and data flow analysis, based on the domain of the re positioning, regression test design influence based on domain are discussed, the hope can bring some inspiration for the related industry.
Influence domain; regression testing ;data flow ;control flow
王德敏(1982年6月--),女,河南信陽人,碩士研究生,工程師,研究方向軟件測試。