軟件測試規范(10)

發表于:2016-01-11來源:博客園作者:我思故我在點擊數: 標簽:軟件測試規范
4.6因果圖 前面介紹的等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯系。如果在測試時必須考慮輸入條件的各種

  4.6因果圖

  前面介紹的等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯系。如果在測試時必須考慮輸入條件的各種組合,可能的組合數將是天文數字。因此必須考慮使用一種適合于描述對于多種條件的組合,相應產生多個動作的形式來考慮設計測試用例,這就需要利用因果圖。

  因果圖方法最終生成的就是判定表。它適合于檢查程序輸入條件的各種組合情況。

  利用因果圖生成測試用例的基本步驟是:

  分析軟件規格說明描述中,哪些是原因(即輸入條件或輸入條件的等價類),哪些是結果(即輸出條件),并給每個原因和結果賦予一個標識符。

  分析軟件規格說明描述中的語義,找出原因與結果之間,原因與原因之間對應的是什么關系? 根據這些關系,畫出因果圖。

  由于語法或環境限制,有些原因與原因之間,原因與結果之間的組合情況不可能出現。為表明這些特殊情況,在因果圖上用一些記號標明約束或限制條件。

  把因果圖轉換成判定表。

  把判定表的每一列拿出來作為依據,設計測試用例。

  通常,在因果圖中,用Ci表示原因,Ei表示結果,其基本符號如圖7所示。各結點表示狀態,可取值“0”或“1”。“0”表示某狀態不出現,“1”表示某狀態出現。

  恒等:若原因出現,則結果出現。若原因不出現,則結果也不出現。

  非:若原因出現,則結果不出現。若原因不出現,反而結果出現。

  或(∨):若幾個原因中有一個出現,則結果出現,幾個原因都不出現,結果不出現。

  與(∧):若幾個原因都出現,結果才出現。若其中有一個原因不出現,結果不出現。

  為了表示原因與原因之間,結果與結果之間可能存在的約束條件,在因果圖中可以附加一些表示約束條件的符號。從輸入(原因)考慮,有四種約束;從輸出(結果)考慮,還有一種約束,參看圖8:

  E(互斥):表示a,b兩個原因不會同時成立,兩個中最多有一個可能成立。

  I(包含):表示a,b,c三個原因中至少有一個必須成立。

  O(唯一):表示a和b當中必須有一個,且僅有一個成立。

  R(要求):表示當a出現時,b必須也出現。不可能a出現,b不出現。

  M(屏蔽):表示當a是1時,b必須是0。而當a為0時,b的值不定。

  因果圖方法是一個非常有效的黑盒測試方法,它能夠生成沒有重復性的且發現錯誤能力強的測試用例,而且對輸入、輸出同時進行了分析。

  4.7測試方法選擇的綜合策略

  Myers提出了使用各種測試方法的綜合策略:

  在任何情況下都必須使用邊界值分析方法。經驗表明用這種方法設計出測試用例發現程序錯誤的能力最強。

  必要時用等價類劃分方法補充一些測試用例。

  用錯誤推測法再追加一些測試用例。

  對照程序邏輯,檢查已設計出的測試用例的邏輯覆蓋程度。如果沒有達到要求的覆蓋標準,應當再補充足夠的測試用例。

  如果程序的功能說明中含有輸入條件的組合情況,則一開始就可選用因果圖法。

  5. 程序的靜態測試

  5.1源程序靜態分析

  通常采用以下一些方法進行源程序的靜態分析。

 ?、?生成各種引用表

  直接從表中查出說明/使用錯誤等。如,循環層次表、變量交叉引用表、標號交叉引用表等。

  為用戶提供輔助信息。如,子程序(宏、函數)引用表、等價(變量、標號)表、常數表等。

  用來做錯誤預測和程序復雜度計算。如,操作符和操作數的統計表等。

 ?、?靜態錯誤分析

  靜態錯誤分析主要用于確定在源程序中是否有某類錯誤或“危險”結構。

  類型和單位分析 :為了強化對源程序中數據類型的檢查,發現在數據類型上的錯誤和單位上的不一致性,在程序設計語言中擴充了一些結構。如單位分析要求使用一種預處理器,它能夠通過使用一般的組合/消去規則,確定表達式的單位。

  引用分析 :最廣泛使用的靜態錯誤分析方法就是發現引用異常。如果沿著程序的控制路徑,變量在賦值以前被引用,或變數在賦值以后未被引用,這時就發生了引用異常。為了檢測引用異常,需要檢查通過程序的每一條路徑。也可以建立引用異常的探測工具。

原文轉自:http://www.uml.org.cn/Test/201511262.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97