• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 設計軟件測試用例的一般方法(3)

    發表于:2012-04-26來源:不祥作者:caianying點擊數: 標簽:測試用例
    (6)路徑覆蓋。 路徑覆蓋是指設計足夠的測試用例,覆蓋被測程序中所有可能的路徑。 在實際的邏輯覆蓋測試中,一般以條件組合覆蓋為主設計測試用例,

      (6)路徑覆蓋。

      路徑覆蓋是指設計足夠的測試用例,覆蓋被測程序中所有可能的路徑。

      在實際的邏輯覆蓋測試中,一般以條件組合覆蓋為主設計測試用例,然后再補充部分用例,以達到路徑覆蓋測試標準。

      2.循環覆蓋

      3.基本路徑測試

      (二)黑盒技術

      1.等價類劃分

      (1)劃分等價類。

     ?、偃绻硞€輸入條件規定了取值范圍或值的個數。則可確定一個合理的等價類(輸入值或數在此范圍內)和兩個不合理等價類(輸入值或個數小于這個范圍的最小值或大于這個范圍的最大值)。

     ?、谌绻幎溯斎霐祿囊唤M值,而且程序對不同的輸入值做不同的處理,則每個允許輸入值是一個合理等價類,此處還有一個不合理等價類(任何一個不允許的輸入值)。

     ?、廴绻幎溯斎霐祿仨氉裱囊巹t,可確定一個合理等價類(符合規則)和若干個不合理等價類(從各種不同角度違反規則)。

     ?、苋绻褎澐值牡葍r類中各元素在程序中的處理方式不同,則應將此等價類進一步劃分為更小的等價類。

      (2)確定測試用例。

     ?、贋槊恳粋€等價類編號。

     ?、谠O計一個測試用例,使其盡可能多地覆蓋尚未被覆蓋過的合理等價類。重復這步,直到所有合理等價類被測試用例覆蓋。

     ?、墼O計一個測試用例,使其只覆蓋一個不合理等價類。

      2.邊界值分析

      使用邊界值分析方法設計測試用例時一般與等價類劃分結合起來。但它不是從一個等價類中任選一個例子作為代表,而是將測試邊界情況作為重點目標,選取正好等于、剛剛大于或剛剛小于邊界值的測試數據。

      (1)如果輸入條件規定了值的范圍,可以選擇正好等于邊界值的數據作為合理的測試用例,同時還要選擇剛好越過邊界值的數據作為不合理的測試用例。如輸入值的范圍是[1,100],可取0,1,100,101等值作為測試數據。

      (2)如果輸入條件指出了輸入數據的個數,則按最大個數、最小個數、比最小個數少1、比最大個數多1等情況分別設計測試用例。如,一個輸入文件可包括1--255個記錄,則分別設計有1個記錄、255個記錄,以及0個記錄的輸入文件的測試用例。

      (3)對每個輸出條件分別按照以上原則(1)或(2)確定輸出值的邊界情況。如,一個學生成績管理系統規定,只能查詢95--98級大學生的各科成績,可以設計測試用例,使得查詢范圍內的某一屆或四屆學生的學生成績,還需設計查詢94級、99級學生成績的測試用例(不合理輸出等價類)。

      由于輸出值的邊界不與輸入值的邊界相對應,所以要檢查輸出值的邊界不一定可能,要產生超出輸出值之外的結果也不一定能做到,但必要時還需試一試。

      (4)如果程序的規格說明給出的輸入或輸出域是個有序集合(如順序文件、線形表、鏈表等),則應選取集合的第一個元素和最后一個元素作為測試用例。

      3.錯誤推測

      在測試程序時,人們可能根據經驗或直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的測試用例,這就是錯誤推測法。

      4.因果圖

      等價類劃分和邊界值方法分析方法都只是孤立地考慮各個輸入數據的測試功能,而沒有考慮多個輸入數據的組合引起的錯誤。

      5.綜合策略

      每種方法都能設計出一組有用例子,用這組例子容易發現某種類型的錯誤,但可能不易發現另一類型的錯誤。因此在實際測試中,聯合使用各種測試方法,形成綜合策略,通常先用黑盒法設計基本的測試用例,再用白盒法補充一些必要的測試用例。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>