qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          用正交表設計測試用例

           正交試驗設計(Orthogonal experimental design)是研究多因素多水平的一種設計方法,它是根據正交性從全面試驗中挑選出部分有代表性的點進行試驗,這些有代表性的點具備了“均勻分散,齊整可比”的特點,正交試驗設計是一種基于正交表的、高效率、快速、經濟的試驗。
            什么是因素(Factor):在一項試驗中,凡欲考察的變量稱為因素(變量)
            什么是水平(位級)(Level):在試驗范圍內,因素被考察的值稱為水平(變量的取值)
            正交表的構成:
            行數(Runs):正交表中的行的個數,即試驗的次數。
            因素數(Factors):正交表中列的個數。
            水平數(Levels):任何單個因素能夠取得的值的最大個數。正交表中的包含的值為從0到數“水平數-1”或從1到“水平數”
            正交表的表示形式: L行數(水平數因素數)
            正交表:
            各列中出現的最大數字相同的正交表稱為相同水平正交表。如L4(23)、L8(27)、L12(211)等各列中最大數字為2,稱為兩水平正交表;L9(34)、L27(313)等各列中最大數字為3,稱為3水平正交表。凡是標準表,水平數都相等,且水平數只能取素數或素數冪。因此有7水平、9水平的標準表,沒有6水平,8水平的標準表。
            例如L9(34),它表示需做9次實驗,最多可觀察4個因素,每個因素均為3水平。
            混合正交表:
            一個正交表中也可以各列的水平數不相等,我們稱它為混合型正交表,如L8(4×24),即:L8(41×24)此表的5列中,有1列為4水平,4列為2水平。再如L16(44×23),L16(4×212)等都混合水平正交表。
            正交表的兩個特點:
            正交表必須滿足這兩個特點,有一條不滿足,就不是正交表。
            1)每列中不同數字出現的次數相等。例如,在兩水平正交表中,任何一列都有數碼“1”與“2”,且任何一列中它們出現的次數是相等的;在三水平正交表中,任何一列都有“1”、“2”、“3”,且在任一列的出現數均相等。這一特點表明每個因素的每個水平與其它因素的每個水平參與試驗的幾率是完全相同的,從而保證了在各個水平中最大限度地排除了其它因素水平的干擾,能有效地比較試驗結果并找出最優的試驗條件。
            2)在任意兩列其橫向組成的數字對中,每種數字對出現的次數相等。例如,在兩水平正交表中,任何兩列(同一橫行內)有序對子共有4種:(1,1)、(1,2)、(2,1)、(2,2)。每種對數出現次數相等。在三水平情況下,任何兩列(同一橫行內)有序對共有9種,1.1、1.2、1.3、2.1、2.2、2.3、3.1、3.2、3.3,且每對出現數也均相等。這個特點保證了試驗點均勻地分散在因素與水平的完全組合之中,因此具有很強的代表性。
            以上兩點充分的體現了正交表的兩大優越性,即“均勻分散性,整齊可比”。通俗的說,每個因素的每個水平與另一個因素各水平各碰一次,這就是正交性。
            混合正交表選擇正交表的時候需滿足:水平數>=max(水平1,水平2,...),因素數>=(因素1+因素2+因素3+…)
            混合正交表選擇正交表的示例:
            我們分析一下:
            1、被測項目中一共有四個被測對象(4個因素),每個被測對象的狀態(水平數)都不一樣。其中,A、C水平數均為3,B的水平數為4,D的水平數為2。
            2、選擇正交表:
            本題,水平數>=max(3,4,2)=4,因素數>=4,查詢附錄中的正交表,只有L16(45)的行數最少,行數取最少的一個,比較適合。
            3、最后選中正交表公式:L16(45)
            另外,當水平數和因素數的具體值確定時,正確的行數(試驗次數)的計算方法是:
            試驗次數(行數)=∑(每列水平數-1)+1
            如:L18(36 *61)=(3-1)*6+(6-1)*1+1=18;L8(27)=(2-1)*7+1=8
          用正交表設計測試用例
            設計測試用例的步驟:
            1、有哪些因素(變量)
            2、每個因素有哪幾個水平(變量的取值)
            3、選擇一個合適的正交表
            4、把變量的值映射到表中
            5、把每一行的各因素水平的組合作為一個測試用例
            6、加上你認為可疑且沒有在表中出現的用例組合
            如何選擇正交表
            1、考慮因素(變量)的個數
            2、考慮因素水平(變量的取值)的個數
            3、考慮正交表的行數
            4、取行數最少的一個
            設計測試用例時的三種情況:
            1、因素數(變量)、水平數(變量值)相符
            水平數(變量的取值)相同、因素數(變量)剛好符合某一正交表,則直接套用正交表,得到用例。
            例子:
            對某人進行查詢,假設查詢某個人時有三個查詢條件:
            根據“姓名”進行查詢
            根據“身份證號碼”查詢
            根據“手機號碼”查詢
            考慮查詢條件要么不填寫,要么填寫,此時可用正交表進行設計
            ① 因素數和水平數
            有三個因素:姓名、身份證號、手機號碼。每個因素有兩個水平:
            姓名:填、不填
            身份證號:填、不填
            手機號碼:填、不填
            ② 選擇正交表
            表中的因素數>=3
            表中至少有三個因素的水平數>=2
            行數取最少的一個
            結果:L4(2^3)
            ③ 變量映射
            姓名:1→填寫,2→不填寫;
            身份證號:1→填寫,2→不填寫;
            手機號碼:1→填寫,2→不填寫;
            ④ 用L4(2^3)設計的測試用例
            測試用例如下:
            1:填寫姓名、填寫身份證號、填寫手機號
            2:填寫姓名、不填身份證號、不填手機號
            3:不填姓名、填寫身份證號、不填手機號
            4:不填姓名、不填身份證號、填寫手機號
            ⑤增補測試用例
            5:不填姓名、不填身份證號、不填手機號
            測試用例減少數:8→5
            2、因素數不相同
            水平數(變量的取值)與某正交表相同,但因素數(變量)卻不相同,則取因素數最接近但略大于實際值的正交表表,套用之后,最后一列因素去掉即可。
            例子:
            兼容性測試:
            操作系統:2000、XP、2003
            瀏覽器:IE6.0、IE7.0、TT
            殺毒軟件:卡巴、金山、諾頓
            如果全部進行測試的話,3^3=27個組合,需要進行27次測試。
            ① 因素數和水平數
            有三個因素:
            操作系統、瀏覽器、殺毒軟件
            每個因素有三個水平。
            ② 選擇正交表
            表中的因素數>=3
            表中至少有三個因素的水平數>=3
            行數取最少的一個
            結果:L9(3^4),如下圖:

          ③ 變量映射
            操作系統:1→2000,2→XP,3→2003
            瀏覽器:1→IE6.0,2→IE7.0,3→TT
            殺毒軟件:1→卡巴,2→金山,3→諾頓
            ④用L9(3^4)設計的測試用例
            測試用例如下:
            2000、IE6.0、卡巴
            2000、IE7.0、諾頓
            2000、TT、金山
            XP、IE6.0、諾頓
            XP、IE7.0、金山
            XP、TT、卡巴
            2003、IE6.0、金山
            2003、IE7.0、卡巴
            2003、TT、諾頓
            ⑤增補測試用例
            由于目前IE6.0、XP、卡巴的使用量很高,故增添以下測試用例:
            XP、IE6.0、金山
            XP、IE6.0、卡巴
            2003、IE6.0、卡巴
            測試用例減少數:27→12
            3、水平數不相同
            因素(變量)與某正交表相同,但水平數(變量的取值)不相同。
            例子:
            假設有一個系統有5個獨立的變量(A,B,C,D,E)。變量A和B都有兩個取值(A1 、A2和B1、B2)。變量C和D都有三個可能的取值(C1、C2、C3和D1、D2、D3)。變量E有六個可能的取值(E1、E2、E3、E4、E5、E6)。
            ① 因素數和水平數
            有五個因素(變量):
            A、B、C、D和E
            兩個因素有兩個水平(變量的取值)、兩個因素有三個水平,一個因素有六個水平:
            A:A1、A2
            B:B1、B2
            C:C1、C2、C3
            D:D1、D2、D3
            E:E1、E2、E3、E4、E5、E6
            ② 選擇正交表
            表中的因素數(變量)>=5
            表中至少有二個因素的水平數(變量的取值)>=2
            至少有另外二個因素的水平數>=3
            還至少有另外一個因素的水平數>=6
            行數取最少的一個:L49(7^8)或者L18(3^6 6^1))
            結果:L18(3^6 6^1)(如下圖)
            ③ 變量映射
            A:1→A1、2→A2
            B:1→B1、2→B2
            C:1→C1、2→C2、3→C3
            D:1→D1、2→D2、3→D3
            E1、2→E2、3→E3、4→E4、5→E5、6→E6
            ④ 用L18(3^6 6^1)設計的測試用例
            略
            測試用例減少數:216→18
            加上一些可疑的情況(設為n個)為18+n,它比原來也少多了。

          posted on 2014-11-10 10:09 順其自然EVO 閱讀(7711) 評論(1)  編輯  收藏 所屬分類: 測試學習專欄

          評論

          # re: 用正交表設計測試用例 2015-01-20 10:35 李仁玲

          32 ×23  回復  更多評論   

          <2014年11月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 岑巩县| 潼南县| 老河口市| 宁蒗| 车致| 封开县| 壶关县| 清水县| 奉化市| 兴隆县| 霍邱县| 民勤县| 清原| 太原市| 上栗县| 安塞县| 闵行区| 沁阳市| 洪泽县| 孟津县| 安徽省| 金寨县| 永靖县| 西丰县| 当涂县| 甘南县| 玉屏| 黄大仙区| 东乡族自治县| 临沂市| 珲春市| 禄劝| 南川市| 游戏| 吉林省| 南丹县| 海晏县| 河津市| 浙江省| 安远县| 会东县|