• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      正交試驗法在連鎖選擇結(jié)構(gòu)基本路徑測試中的應(yīng)用

      2018-01-16 11:27:18蘇晶張冬梅
      科技視界 2018年27期

      蘇晶 張冬梅

      【摘 要】基本路徑測試是應(yīng)用最廣泛且測試覆蓋率較強的一種動態(tài)白盒測試方法,但該方法在處理連鎖選擇結(jié)構(gòu)時存在局限性。在分析了基本路徑測試法和正交試驗法的特點后,本文通過示例闡述了兩者結(jié)合的測試方案,該方案可提高測試的效率和有效性。

      【關(guān)鍵詞】基本路徑測試;正交試驗法;連鎖選擇

      中圖分類號: TP311.53 文獻標識碼: A 文章編號: 2095-2457(2018)27-0156-002

      DOI:10.19694/j.cnki.issn2095-2457.2018.27.069

      【Abstract】Basic path testing is one of the most widely used dynamic white-box testing methods with high test coverage,but it has limitations in dealing with chain selection structures.After analyzing the characteristics of the basic path testing and the orthogonal test, this paper elaborates the test scheme of the combination of the two methods through examples,which can improve the efficiency and effectivenessof the test.

      【Key words】Basic path testing;Orthogonal experiment;Chain selection

      0 前言

      基本路徑測試是McCabe提出的一種動態(tài)白盒測試方法,該方法設(shè)計出的測試用例可保證在被測程序的每一條可執(zhí)行語句上至少執(zhí)行一次,而且每個條件在執(zhí)行時都能夠取到真假兩種值。因此該方法具有較強的覆蓋率和較好的測試效果,且應(yīng)用最為廣泛。但該方法在處理連鎖選擇結(jié)構(gòu)時,會出現(xiàn)獨立路徑難以確定、測試路徑覆蓋不均衡等問題,因此需要借助正交試驗法進行路徑的科學采樣,以提高測試的效率和有效性。

      1 基本路徑測試面臨問題

      1.1 基本路徑測試簡介

      基本路徑測試[1,2]是在程序控制流程圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法。該方法包括以下4個基本步驟。

      (1)繪制程序控制流程圖

      控制流程圖是描述程序控制流的一種圖示方式,是對程序流程圖的簡化,可以更加突出的表示程序控制流的結(jié)構(gòu)??刂屏鞒虉D中包括結(jié)點和控制流線兩種圖形符號

      (2)計算程序環(huán)路復(fù)雜性

      環(huán)路復(fù)雜性是定量度量程序邏輯復(fù)雜度的一種尺度,在數(shù)量上表現(xiàn)為獨立路徑的條數(shù),是確保程序控制流程圖中每條控制流線至少覆蓋一次所必須的測試用例數(shù)目的上界。

      (3)確定獨立路徑集合

      獨立路徑是指至少引入被測程序的一個新的可執(zhí)行語句集或者一條新的條件路徑。由獨立路徑組成的基本路徑集合并不唯一,但每條路徑是唯一的。

      (4)設(shè)計測試用例

      根據(jù)程序判定結(jié)點給出的條件,選擇適當?shù)臄?shù)據(jù)以保證某一條路徑可以被測試到,設(shè)計測試用例的輸入數(shù)據(jù)和預(yù)期輸出,確保基本路徑集中的每一條路徑的執(zhí)行。

      1.2 基本路徑測試的局限性

      當程序中判定多于一個時,形成的復(fù)雜選擇結(jié)構(gòu)可以分為兩類:嵌套選擇結(jié)構(gòu)和連鎖選擇結(jié)構(gòu)。

      對于嵌套選擇結(jié)構(gòu),若有n個判定語句,則其路徑總數(shù)為n+1,其數(shù)目與基本路徑測試法中獨立路徑數(shù)目相同,則滿足基本路徑覆蓋的測試用例,即可實現(xiàn)對路徑的100%覆蓋。

      對于連鎖選擇結(jié)構(gòu),若有n個判定語句,則其路徑總數(shù)為2n,為了達成路徑覆蓋,需至少設(shè)計2n個測試用例,這種做法,雖然可保證測試的完備性,但隨著n的數(shù)目的不斷增加,測試路徑呈現(xiàn)指數(shù)級的增長趨勢,在有限時間和成本的條件下,無法保證測試的效率。

      為了減輕測試負擔,可采用基本路徑測試法選取測試用例,其獨立路徑數(shù)目為n+1,與嵌套選擇結(jié)構(gòu)的路徑數(shù)量級一致,可有效提高測試效率。但與此同時,也帶來了新的問題。若從2n條總路徑中隨機挑選n條路徑,并使其滿足基本路徑覆蓋準則,一方面路徑集合難以確定;另一方面,即使獲取了路徑集合,卻未必兼顧多個連鎖分支間的關(guān)聯(lián)關(guān)系,不能保證測試路徑的均勻分布。

      綜上所述,在連鎖選擇結(jié)構(gòu)的基本路徑測試中,需要借助于路徑的科學采樣方法,使得獨立路徑難以確定、測試路徑覆蓋不均衡等問題能夠得到妥善解決。

      1.3 正交試驗法的引入

      正交試驗法是從大量的試驗點中挑選出適量的、有代表性的點,應(yīng)用伽羅瓦理論導(dǎo)出的正交表,合理安排實驗的一種科學的試驗設(shè)計方法。利用這種方法,可使所有的因子和水平在試驗中均勻的分配與搭配,均勻規(guī)律的變化[3]。軟件功能測試作為試驗的一種,完全可以利用正交試驗法進行測試數(shù)據(jù)的選擇,以提高測試的效率。

      正交表應(yīng)用在軟件測試中的表示形式為:

      L測試用例數(shù)(輸入條件取值數(shù)輸入條件數(shù))

      利用正交試驗法設(shè)計測試用例,較使用其他方法具有如下優(yōu)點[4]:

      (1)節(jié)省測試工作工時。由于把現(xiàn)成的規(guī)范化的正交表直接應(yīng)用到測試用例選取中,不需要多步驟的推導(dǎo),也不需要豐富的經(jīng)驗和創(chuàng)造力,可以有效減輕測試者的負擔。

      (2)可控制生成測試用例的數(shù)量。利用加權(quán)篩選,考慮測試輸入條件與條件取值的重要程度及條件間的相互影響,做出一定的篩選,可以把生成測試用例的數(shù)量控制在允許范圍內(nèi)。

      (3)測試用例具有一定的覆蓋度。正交試驗法是一種合理的、有效的抽樣方法,對被測軟件來說,測試用例的涉及范圍在整體上比較均勻,可排除偏向于功能某個局部的可能性,與結(jié)構(gòu)測試相配合,檢出故障率可高達50%以上。

      通過上述分析可以看出,正交試驗法是科學有效的采樣方法,可應(yīng)用于獨立路徑的確定過程中,以達到提高測試效率和有效性的目的。

      2 連鎖選擇結(jié)構(gòu)的測試方案

      以下是被測試源代碼。

      public static int test(int a,int b,int c){

      1 int x=1;

      2 if(a>=1)

      3 x=x/a;

      4 if(b==2)

      5 x=x+2;

      6 if(c<3)

      7 x=x-1;

      8 return x;

      9 }

      采用基本路徑測試法和正交試驗法生成測試用例的步驟如下。

      (1)根據(jù)被測源代碼導(dǎo)出的程序控制流程圖如圖1所示。

      (2)依據(jù)程序控制流圖計算環(huán)路復(fù)雜性。

      McCabe給出了程序環(huán)路復(fù)雜性的三種計算方法。

      ①將環(huán)路復(fù)雜性定義為程序控制流程圖中的區(qū)域數(shù),則V(G)=區(qū)域數(shù)=4。

      ②設(shè)E為程序控制流程圖的邊數(shù),N為圖的結(jié)點數(shù),則定義環(huán)路復(fù)雜性為V(G)=E-N+2=4。

      ③設(shè)P為程序控制流圖中的判定結(jié)點數(shù),判定結(jié)點即為圖中出度大于1的結(jié)點,則定義環(huán)路復(fù)雜性為V(G)=P+1=4。

      (3)根據(jù)程序環(huán)路復(fù)雜性確定獨立路徑數(shù)目。

      該程序為連鎖選擇結(jié)構(gòu),總路徑數(shù)為23=8,而依據(jù)步驟(2)計算出的環(huán)路復(fù)雜性,表明最多只需確定4條獨立路徑,即可保證程序控制流程圖中每個結(jié)點及每條控制流線的覆蓋。

      (4)借助正交試驗法進行路徑科學采樣,確定獨立路徑集合[5]。

      通過分析可以看出,輸入條件的個數(shù)即為判定結(jié)點個數(shù)3;由于判定結(jié)點均為邏輯值,則輸入條件取值數(shù)為2。由此選擇出合適的二水平正交表L4(23),如表1所示。

      將正交表中的值0映射為判定結(jié)點取假分支,值1映射為判定結(jié)點取真分支,則從8條路徑中采樣出的4條路徑分別為:

      P1:1-2-4-6-8-9

      P2:1-2-3-4-6-7-8-9

      P3:1-2-4-5-6-7-8-9

      P4:1-2-3-4-5-6-8-9

      其中P4未包含之前3條路徑未訪問過的結(jié)點或弧,因此不需加入獨立路徑集合。

      (5)設(shè)計測試用例。

      根據(jù)獨立路徑集合中的3條獨立路徑,設(shè)計滿足基本路徑覆蓋的測試用例:

      ①覆蓋P1:a=0,b=1,c=3,預(yù)期輸出x=1;

      ②覆蓋P2:a=1,b=0,c=1,預(yù)期輸出x=0;

      ③覆蓋P3:a=0,b=2,c=1,預(yù)期輸出x=2。

      3 結(jié)論

      采用基本路徑測試法分析路徑,正交試驗法對路徑進行科學采樣,兩種測試方法雙劍合璧,可以有效解決連鎖選擇結(jié)構(gòu)的測試問題。一方面,大大減少了測試用例的數(shù)量,力爭用盡可能少的測試發(fā)現(xiàn)盡可能多的缺陷,保證了測試的效率;另一方面,測試用例不僅滿足基本路徑的覆蓋準則,而且能夠?qū)崿F(xiàn)每個判定結(jié)點取值的均勻分配及判定結(jié)點取值間兩兩組合的均勻搭配,保證了測試的有效性。

      【參考文獻】

      [1]佟偉光.軟件測試(第二版)[M].北京:人民郵電出版社, 2015.

      [2]佘鳳.淺談白盒測試之基本路徑測試方法研究[J].軟件工程師,2014,(12):17-18.

      [3]王蕾.基于正交試驗法的測試用例設(shè)計[J].電腦知識與技術(shù),2010,6(21):5782-5783.

      [4]鄭人杰.軟件測試[M].北京:人民郵電出版社,2011.

      [5]向華.關(guān)于白盒測試基本方法的分析[J].江漢大學學報(自然科學版),2003,(1):38-41.

      布拖县| 奉新县| 息烽县| 晋江市| 沙坪坝区| 沭阳县| 商丘市| 冀州市| 铜川市| 德清县| 广丰县| 漳州市| 利川市| 兴山县| 太康县| 商河县| 临江市| 洪湖市| 嵊州市| 天津市| 华亭县| 临城县| 桃园县| 察隅县| 新竹市| 措勤县| 汶川县| 景洪市| 浪卡子县| 漳浦县| 崇州市| 贺兰县| 东兰县| 平遥县| 余庆县| 浠水县| 湘西| 罗山县| 德阳市| 普兰县| 伊宁县|