什麼是正交表測試 (OATS)?(工具、技術、示例)
測試團隊經常面臨如何在短時間內正確測試應用程式的問題。
在這樣的情況下,詳盡測試變得有問題,帶來了諸如需要執行大量測試指令碼、如何對指令碼進行優先順序排序、人為錯誤以及如果由同一個人執行太多指令碼會導致疲勞等等問題。
因此,應用統計學被用於應用程式的測試以解決這些問題。因此,可以在不影響測試質量或效率的情況下執行更大範圍的測試指令碼。正交表測試方法是其中一種最重要的應用統計學方法,本文將對此進行深入解釋。
在本文結束時,讀者將全面瞭解如何在自己的應用程式中實施正交表測試,以及其優勢和應用方法。
正交表測試 (OATS)?
正交表測試方法是一種用於檢查成對互動的統計方法。我所見過的絕大多數缺陷都是由接觸和整合引起的。
這種互動或整合可能發生在各種物件、元件、應用程式頁面上的選項或檔案中的配置設定內部。應用程式的功能是透過這種物件和元件的組合實現的。
很明顯,一些組合沒有被測試,導致測試不足。因此,使用正交表測試來覆蓋測試範圍內的完整功能,並用適當數量的選項進行評估。
這是一種組合測試技術,它確保在不犧牲測試質量的情況下,用有限且成比例的組合在測試下評估應用程式的完整功能
這種方法的優勢在於,它可以在相對較少的測試用例下最大化覆蓋率。已識別的引數對應該彼此獨立。因為它是一種黑盒方法,所以我們不需要像其他 BB 技術那樣理解系統的實現。這裡的目標是找到合適的輸入引數對。
有幾種 CTD 方法,其中最常見的是 OATS(正交表測試技術)。
OAT(正交表測試)的目的是什麼?
由於程式碼的複雜性,在當前情況下,向客戶提供高質量的軟體產品變得困難。
傳統方法中的測試套件包含從輸入值和先決條件的任意組合建立的測試用例。因此,必須覆蓋一定數量的測試用例。
但是,在現實場景中,測試人員將沒有時間執行所有測試用例以查詢所有缺陷,因為在測試階段還需要考慮其他流程,例如文件、建議和客戶反饋
因此,測試經理試圖最佳化測試用例的數量和質量,以便以最少的努力獲得最大的測試覆蓋率。這被稱為測試用例最佳化。
一種系統且統計的方法來測試成對互動
互動和整合點是缺陷的重要來源。
執行一組定義明確、簡潔的測試用例,這些測試用例可能能夠發現大多數(但不是全部)問題。
正交方法確保所有變數都成對覆蓋。
OATS 實施方法
正交表測試方法中的階段如下:
確定將評估多少個變數以進行互動。這些變數應對映到陣列的因子。
確定每個自變數可能的最大值數。這些值應對映到陣列的水平。
選擇執行次數最少的正交表。可以使用各種網站來計算執行次數。這是一個此類網站的連結。
建立一個包含因子和水平的陣列。
將它們轉換為適當的測試用例。
注意是否有任何剩餘或唯一的測試用例(如果有)
完成上述步驟後,您的陣列將準備就緒以進行測試,涵蓋所有可能的組合。
如何表示 OATs?
要計算,請使用正交表測試 (OAT) 公式。
執行 (N) – 陣列中的行數,對應於建立的測試用例數。
因子 (K) – 陣列的列數,對應於可以處理的最大變數數。
水平 (V) - 單個因子的最大可能值數。
每個因子檢查兩個到三個輸入。水平由最大輸入數決定。
示例
在許多登錄檔單中,例如首次應用程式安裝或任何其他政府網站,我們提交我們的個人資訊,例如姓名、年齡、資格等等。
以下是一個此類應用程式表單的示例。考慮以下場景:登錄檔單(網頁)中有四個欄位,每個欄位都有特定的子選項。
年齡範圍:
未滿 18 歲
超過 18 歲
超過 60 歲
性別欄位可用。
男性
女性
不適用
最高學歷:
高中
大學本科
研究生
母語:
印地語
英語
其他
- 步驟 1:確定印地語和英語中自變數的數量。有四個自變數(登錄檔單欄位)= 四個因子。
步驟 2:確定每個變數可能的最大值數。有三個值(每個欄位中有三個子選項)= 三個水平。
步驟 3:建立一個具有四個因子和三個水平的正交表。使用該連結,我們計算了所需的行數,為九行。
正交表遵循 LRuns 模式(水平因子)。因此,我們情況下的正交表將是 L9 (34)。
| 執行 | 因子 1 | 因子 2 | 因子 3 | 因子 4 |
|---|---|---|---|---|
| 執行 1 | 0 | 0 | 0 | 0 |
| 執行 2 | 0 | 1 | 2 | 1 |
| 執行 3 | 0 | 2 | 1 | 2 |
| 執行 4 | 1 | 0 | 2 | 2 |
| 執行 5 | 1 | 1 | 1 | 0 |
| 執行 6 | 1 | 2 | 0 | 1 |
| 執行 7 | 2 | 0 | 1 | 1 |
| 執行 8 | 2 | 1 | 0 | 2 |
| 執行 9 | 2 | 2 | 2 | 0 |
步驟 4:對映生成的陣列的因子和水平。
“因子 1”將替換為 AGE。
“因子 2”將替換為性別。
“因子 3”將替換為最高學歷。
“因子 4”將替換為母語。
每個因子下的每個子選項將替換 0、1、2。(欄位)。
對映因子和水平後,正交表將如下所示:
| 執行 | 年齡 | 性別 | 更高學歷 | 母語 |
|---|---|---|---|---|
| 執行 1 | 未滿 18 歲 | 男性 | 高中 | 印地語 |
| 執行 2 | 未滿 18 歲 | 女性 | 研究生 | 英語 |
| 執行 3 | 未滿 18 歲 | 不適用 | 大學本科 | 其他 |
| 執行 4 | 超過 18 歲 | 男性 | 研究生 | 其他 |
| 執行 5 | 超過 18 歲 | 女性 | 大學本科 | 印地語 |
| 執行 6 | 超過 18 歲 | 不適用 | 高中 | 英語 |
| 執行 7 | 超過 60 歲 | 男性 | 大學本科 | 英語 |
| 執行 8 | 超過 60 歲 | 女性 | 高中 | 其他 |
| 執行 9 | 超過 60 歲 | 不適用 | 研究生 | 印地語 |
步驟 5:上表中的每個執行都表示一個將在測試過程中處理的測試用例。每個執行都會新增一個測試條件。
OAT 的優勢
確保測試所選變數的所有成對組合。
減少了測試用例的數量。
減少了覆蓋變數所有可能組合所需的測試用例數量
可以建立複雜的變數組合。
比手動建立的測試集更容易生成,並且錯誤更少。
整合測試是它的一個很好的應用。
減少的測試周期和測試時間提高了生產力。
OATS 的侷限性
任何測試方法都無法確保 100% 的覆蓋率。每種方法都有自己的確定測試條件的方法。同樣,使用這種方法也有一些缺點:
如果我們沒有識別出好的配對,測試就會失敗。
可能無法識別出最重要的組合,導致缺陷丟失。
如果我們不知道配對之間的互動,這種方法就會失敗。
僅此方法無法提供全面覆蓋。
它只能識別由於成對作為輸入引數而導致的缺陷。
在 OAT 中出現的錯誤或失誤
測試工作的重點不應放在應用程式的錯誤部分。
選擇錯誤的引數進行組合是大忌。
如果您只想測試一些內容,請避免使用正交表測試。
手動執行正交表測試
對於高風險應用程式,使用正交表測試。
結論
正交表測試是一種系統且統計的評估成對互動的方法。從大量情況中得出少量測試用例,並優先考慮組合輸出中多次出現的元素和水平。
正交表測試可以透過以下方式應用於我們日常的應用程式測試:
以系統的方式建立元件在其不同水平上的統計成對組合。
建立使用更少測試場景並生成負測試用例最佳化的測試套件。
檢測提供的輸入組合中的所有單、雙和三模式故障。
執行少量測試並查詢大部分問題。
現在您已經掌握了正交試驗法的實現,您可以快速將其整合到您的應用程式或網頁中,在少量測試用例中涵蓋程式功能的所有方面。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP