先前,Joseph Morgan 詳細討論了 JMP 中單元測試的想法。一些優秀的讀物:
為了在本部落格中保持簡單,我使用 Whittaker (2000) 的術語來定義單元測試。
單元測試:輸入域
術語「單元測試」是指測試單一軟體組件或組件集合。測試人員定義相關單元的輸入域並忽略系統的其餘部分。
讓我們專注於第二部分,測試人員定義輸入域。如果我們有一個想要測試的函數,但想要將各個參數視為單位呢?
例如,採用 JSL 中的 Beta Distribution 函數(來自腳本索引的螢幕截圖)。 Beta 分佈函數用於對介於 0 和 1 之間的隨機變數進行建模,通常用於貝葉斯統計。

我們可以將 alpha 和 beta 固定為 0.5 之類的值,並測試 q 的多個不同值。
alpha = 0.5;
beta = 0.5;
Beta Distribution( 0.5, alpha, beta );
Beta Distribution( -1, alpha, beta );
Beta Distribution( 0, alpha, beta );
現在,確定我們對 Beta 分佈函數的每個函數呼叫的期望本身就是一篇部落格文章(稱為預言機問題)。然而,假設我們知道我們的期望(在本例中為 0.5、缺失值和 0),我們可以測試 q。每個輸入都可以透過這種方式單獨檢查,例如 alpha、beta,甚至 theta 和 sigma。
一次單因子 (OFAT) 測試
如果我們一次只專注在一個論點,這又意味著什麼?透過將其他參數設為固定(例如預設)值並更改一個參數的值,聽起來就像透過 OFAT 進行測試。
當介紹(典型的)設計實驗時,我們討論了 OFAT 的缺陷。特別是,OFAT 由於資源效率低下和缺乏互動而受到阻礙。我們可以看到這種測試方法也有同樣的問題。但是,如果我們正在測試軟體,我們可以稍後重複使用這些測試案例,因此建立這些測試並確定預期結果並不一定會浪費測試資源。如果我們發現問題(即結果不是預期的),我們就知道哪個輸入被更改導致了問題。如果作為應用程式開發過程的一部分完成,這將特別有用,其中可以定期運行這些測試(同樣,這是未來部落格的主題)。
我們該去哪裡?
如果您閱讀此部落格並想知道為什麼我們不會一次更改多個輸入,請放心,我們會的。事實上,未來的部落格將討論將此測試挑戰視為實驗設計問題。敬請關注!
Whittaker, JA, 2000。為什麼這麼難? IEEE 軟體, 17 (1),第 70-79 頁。