软件测试之正交法
正交法
通過分析我們發現,對于圖中的程序而言,我們要設計81條測試用例,那么有沒有一種方法能夠使用最小的測試過程集合獲得最大的測試覆蓋率呢?
1. 概述
1.1 定義
正交法,也叫正交實驗法或者正交排列法, 就是使用最小的測試過程集合獲得最大的測試覆蓋率。
“正交實驗”是研究多因素、多水平的一種實驗方法,它利用正交表來對實驗進行設計,通過少數實驗代替全面的實驗.
在一項實驗中,把影響試驗結果的量稱為試驗因素(因子),簡稱因素。因素可以理解為試驗過程中的自變量,試驗結果可以看成因素的函數。在試驗過程中,每一個因素可以處于不同的狀態或狀況,把因素所處的狀態或狀況,稱為因素的水平,簡稱水平。
1992年AT&T公司,針對某一個軟件做了一個回歸測試:
在18個周(4個半月)的時間范圍內測試1500條測試用例。后來開發時間推遲了,測試時間被壓縮了。測試經理想了一個辦法,兩個人在8個周(2個月)測試1000條測試用例。但是測試經理不能保證該軟件就是完全沒有問題的。后來他決定用正交表去重新設計一下測試用例,422條測試用例,42個bug。測試完畢后,軟件上線了。在上線的兩年時間內。凡事被測試到的領域,都沒有發現任何問題。后來呢,他從頭到尾有總結了一番:有可能只會測試出32條bug。
前后對比:
-
測試用例的條數少了
-
測試出來bug的數量多了
1.2 正交表的構成
˙正交表時一種特制的表, 一般記為Ln(mk)Ln(m^k)Ln(mk)
- n是表的行數,也就是需要測試組合的次數
- k是表的行數, 表示控件個數(因素的個數,或因子的個數)
- m是每個控件包含的取值個數(各因素的水平數,即各因素的狀態數)
**例如: **L9(34)L9(3^4)L9(34) 正交表如下
2. 使用正交法設計測試用例
2.1 步驟
- 根據控件的個數,選擇正交表的次冪,也就是正交表中包含的最大值, 例如,4個控件,選擇4次冪
- 根據控件取值個數,選擇正交表的底,也就是正交表包含的最大值, 例如, 每個控件有3個取值,底是3
- 把控件名字分別映射到正交表的列名位置
- 把正交表中每一列的數字分別用對應的控件取值替代
2.2 案例
實現“字符屬性設置”的測試用例編寫
(1). 列舉因子表
| 仿宋 | 粗體 | 紅色 | 20號 |
| 楷體 | 斜體 | 綠色 | 30號 |
| 華文彩云 | 下劃線 | 藍色 | 40號 |
(2) 確定使用的正交表
| L9(34)L9(3^4)L9(34) |
(3). 把控件及其取值映射到正交表中
(4). 編寫測試用例
上圖正交表每一行都是一條測試用例, 此處僅列出2條
| UT-設置字符子項測-01 | 字體:仿宋; 字符樣式: 粗體; 顏色:紅色; 字號:20 | 仿宋、 粗體、 紅色、20號 | ||
| UT-設置字符子項測-02 | 字體:仿宋; 字符樣式: 粗體; 顏色:紅色; 字號:30 | 仿宋、 粗體、 紅色、20號 |
3. 小結
3.1 使用場景
- 需求中條件的組合量比較大的時候
- 需求兩個兩個相互組合的時候
3.2 局限性
正交表的個數有限,一般要求每個控件的取值相等,但是這在實際中很難應用,所以在實際使用時要進行取舍
- 對于控件個數,如果沒有,就選擇一個接近的
- 對于控制的取值,應該少數服從多數, 有更多空間的取值一樣
邊界值測試法
1. 介紹
邊界值分析法就是對輸入或輸出邊界值進行測試的,也是一種黑盒測試.
邊界值分析法通常作為等價類劃分法的補充,其測試用例來自等價類的邊界;長期的經驗得知,大量的錯誤是發現在輸入或輸出范圍的邊界上,而不是發生再輸入輸出范圍的內部,因此針對各種邊界情況設計測試用例,可以查出更多錯誤.
和等價類劃分法的區別:
- 是等價類劃分法的補充
- 等價類劃分法可以挑選等價范圍內任意一個數據作為代表,邊界值分析法要求每個邊界值都要作為測試條件
- 邊界值分析法不僅考慮輸入條件,同樣考慮輸出產生的測試情況
常見的邊界值:
- **邊界點(上點)😗*輸入范圍的邊界點
- 離點: 離邊界點最近的點
- 內點: 輸入范圍內的任意一個點
對于邊界值的說明:
邊界值數據本質上屬于等價類的范疇,測試時確實是一種冗余(重復),但是為了更好的測試質量(邊界值特別容易出bug),邊界值必須要單獨測,適當必要的冗余是可以接受的.
舉例: 0-100內的整數
| 離點 | 1, 99; -1,101; 1,101; 0, 99; |
| 內點 | 34 |
2. 使用邊界值設計測試用用例
2.1 步驟:
- 明確需求
- 確定有效和無效等價類
- 明確輸入條件中的邊界值
- 編寫測試用例
注意: 邊界值法應用時,如果測試時間緊張,應該優先測試最大值和最小值
2.2 案例
要求:測試qq賬號是否符合規范
| 離點 | 5個, 9個, 7個,11個 |
| 內點 | 8個 |
| UT-QQ是否符合規范-01 | 有效等價類 | 6個 | 正確 | |
| UT-QQ是否符合規范-02 | 有效等價類 | 10個 | 正確 | |
| UT-QQ是否符合規范-03 | 無效等價類 | 5個 | 錯誤 | |
| UT-QQ是否符合規范-04 | 有效等價類 | 7個 | 正確 | |
| UT-QQ是否符合規范-05 | 無效等價類 | 11個 | 錯誤 | |
| UT-QQ是否符合規范-06 | 有效等價類 | 9個 | 正確 | |
| UT-QQ是否符合規范-07 | 有效等價類 | 8個 | 正確 | |
| UT-QQ是否符合規范-08 | 無效等價類 | 特殊符號,例如: #,¥ *、空格等 | 錯誤 | |
| UT-QQ是否符合規范-09 | 無效等價類 | 數字+特殊符號 | 錯誤 |
3. 小結
邊界值分析法作為等價類劃分法的補充,經常和等價類劃分一起使用.
使用的場景是:有輸入并且存在邊界值的位置.
總結
- 上一篇: 丽水数据可视化设计价格_大数据可视化项目
- 下一篇: ms office word2013教程