王紹婷 倫立軍
摘 要:在白盒測(cè)試中,包括的測(cè)試方法有代碼檢查法、靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋法、基路徑測(cè)試法等等,而這其中,最為普遍運(yùn)用測(cè)試的方法是基路徑測(cè)試法。它是在程序控制流圖的基礎(chǔ)上,分析控制結(jié)構(gòu)的圈復(fù)雜度,導(dǎo)出一個(gè)基本可執(zhí)行路徑的集合,從而設(shè)計(jì)并產(chǎn)生測(cè)試用例的方法,它擁有著最強(qiáng)壯的覆蓋標(biāo)準(zhǔn)。本文從實(shí)際出發(fā),理論結(jié)合實(shí)踐,深入研究基路徑測(cè)試的概念、定義、理論,并設(shè)計(jì)出一個(gè)新的基路徑算法BPA算法獲取基路徑,并給出一個(gè)案例研究證明該算法的有效性。
關(guān)鍵詞:軟件測(cè)試;基路徑;BPA
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)號(hào):A 文章編號(hào):2095-2163(2014)06-
Abstract: There are some testing methods in white box testing such as code inspection, static structure analyzing, static quality measurement, logical coverage, basis path testing. The method of basis path testing has been widely used among those. Based on the program control flow graph, the method analyzes the cyclomatic complexity of control structure, derives the set of basis executable paths, and finally, devises and generates the test cases. It is the strongest coverage criterion. The paper proceeds from the actual situation, bonding the theory and practice, researching deeply the concept, definition and theory of basis path testing. Thus, propose a new strategy BPA to obtain the basis testing paths. As a result, give a case study to show the efficiency.
Key words: Software Testing; Basis Path; BPA
0 引言
隨著軟件產(chǎn)業(yè)的興盛發(fā)展,軟件系統(tǒng)的設(shè)計(jì)規(guī)模與復(fù)雜程度正在與日俱增,并且軟件的生產(chǎn)成本也將隨之而一路走高;連帶性地,在軟件系統(tǒng)中暗存的bug所可能造成的損失也已不可小視,甚至可能發(fā)生災(zāi)難性的后果。有鑒于此,軟件產(chǎn)品作為人腦高度智力化的精粹與明證,而且正是基于這一特殊重要性,就是的軟件產(chǎn)品的質(zhì)量得到了學(xué)界廣泛的重視與研究。
軟件質(zhì)量就是軟件的生命。為了保證軟件產(chǎn)品的質(zhì)量,人們?cè)陂L(zhǎng)期的開發(fā)過程中累積了大量經(jīng)驗(yàn)和有效方法。雖然如此,也只能盡量減少軟件中的錯(cuò)誤與不足,卻未能完全避免軟件系統(tǒng)中不再有bug。
針對(duì)以上狀況,軟件測(cè)試即應(yīng)運(yùn)而生。測(cè)試就是檢查軟件質(zhì)量,排除軟件故障的最有效和完備的技術(shù)手段與方法,并由此推進(jìn)了軟件測(cè)試?yán)碚撛诂F(xiàn)實(shí)應(yīng)用中的蓬勃發(fā)展。其中,運(yùn)用最為廣泛的就是基路徑測(cè)試法[1]。
1 基路徑測(cè)試
基路徑測(cè)試方法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的圈復(fù)雜度[2],以導(dǎo)出基本可執(zhí)行路徑的集合,從而設(shè)計(jì)出測(cè)試用例的方法。基路徑測(cè)試的實(shí)現(xiàn)步驟如下[3]:
(1)程序控制流圖。根據(jù)程序內(nèi)容,畫出程序控制流圖[4]。
(2)程序圈復(fù)雜度。計(jì)算程序的環(huán)路復(fù)雜性,導(dǎo)出程序基路徑集合中的獨(dú)立路徑數(shù),這是確定程序中每個(gè)可執(zhí)行語句至少執(zhí)行一次所必須的測(cè)試用例數(shù)目的上界。
(3)導(dǎo)出測(cè)試用例。根據(jù)圈復(fù)雜度和程序結(jié)構(gòu)設(shè)計(jì)用例數(shù)據(jù)輸入和預(yù)期結(jié)果。
(4)準(zhǔn)備測(cè)試用例。確?;窂郊现械拿恳粭l路徑的執(zhí)行。
2 一個(gè)新的基路徑算法BPA
運(yùn)用基路徑測(cè)試法(三種方式)計(jì)算從結(jié)點(diǎn)1到結(jié)點(diǎn)13的基路徑數(shù)為6;運(yùn)用新提出的算法也找到了6條基路徑,且路徑相同,證明了新算法的有效性、正確性、完備性。
4 結(jié)束語
基路徑測(cè)試是白盒測(cè)試中應(yīng)用最普遍的技術(shù),利用圈復(fù)雜度計(jì)算獨(dú)立路徑數(shù)目,即能保證測(cè)試的完備性。本文正是以此為基礎(chǔ),設(shè)計(jì)了一個(gè)新的算法來實(shí)現(xiàn)基路徑集合的獲取,找到所有獨(dú)立的基路徑,旨在以使程序達(dá)到合理有效地覆蓋測(cè)試,下一步工作將考慮研發(fā)基路徑覆蓋工具,并結(jié)合遺傳算法實(shí)現(xiàn)基路徑集合的獲取,再與測(cè)試工具[6]進(jìn)行性能上的比較分析。
參考文獻(xiàn):
[1]杜慶峰,肖瀟.基本路徑測(cè)試技術(shù)研究[J].信息與電腦(理論版),2010,(6):129-130.
[2]肖自乾,王弗雄,陳經(jīng)優(yōu). 基本路徑測(cè)試方法之圈復(fù)雜度計(jì)算[J].軟件導(dǎo)刊,2009,8(7):10-12.
[3]賈曉強(qiáng). 基于白盒測(cè)試的基本路徑測(cè)試[J].渭南師范學(xué)院學(xué)報(bào),2008,23(2):71-73
[4]解圣霞.基于基本路徑測(cè)試的程序圖自動(dòng)生成的應(yīng)用研究[J].通化師范學(xué)院學(xué)報(bào),2009,30(12):32-35.
[5]GHIDUK A S. Automatic generation of basis test paths using variable length genetic algorithm[J]. Information Processing Letters,2014,114(6):304-316.
[6]單錦輝,王戟,齊治昌,等. 面向路徑的測(cè)試數(shù)據(jù)自動(dòng)生成工具的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2002,24(1):103-107.