蘇晶
山東理工大學 山東 淄博 255049
軟件測試是軟件開發(fā)過程中的重要組成環(huán)節(jié),是發(fā)現(xiàn)軟件缺陷和提高軟件質(zhì)量的重要舉措,其本質(zhì)為通過建立輸入與輸出之間的映射關系驗證系統(tǒng)功能是否滿足用戶需求。
軟件測試的方法繁多,各有長處和不足,可分別適用于不同的應用場景中。對于參數(shù)配置類軟件的測試問題,由于不同輸入條件取值組合將產(chǎn)生不同的輸出結果,若采用傳統(tǒng)的基于軟件等價類的劃分方法設計測試用例,僅僅滿足于輸入條件取值的覆蓋,則勢必忽略重要組合的驗證,帶來遺漏缺陷的風險。
另外,由于輸入條件取值往往無法簡單通過邏輯值概括,加之其間毫無關聯(lián)、相互獨立,不具備合并化簡的必要條件,若采用判定表驅(qū)動法設計測試用例,則隨著輸入條件的增多,通常會導致排列組合數(shù)量過于龐大,在有限時間和成本的條件下,無法保證測試效率。反之若從海量規(guī)則中隨意選取輸入組合生成測試用例,雖然可以保證測試效率,但由于選取不具備代表性,測試的有效性無法得到保障,因此同樣不具備可行性。
為了解決上述問題,需要借鑒數(shù)理統(tǒng)計領域中的正交試驗法進行數(shù)據(jù)組合的科學采樣,通過較少的排列組合達成最佳測試效果,以提高測試的效率和有效性[1]。
微軟PowerPoint打印問題的測試需求描述如下:
打印范圍:必須在全部、當前幻燈片、給定范圍三者中選擇其一;
打印內(nèi)容:必須在幻燈片、講義、備注頁、大綱視圖四者中選擇其一;打印顏色:必須在彩色、灰度、純黑白三者中選擇其一;打印效果:必須在幻燈片加框、幻燈片不加框兩者中選擇其一。
打印問題屬于典型的參數(shù)配置類軟件測試,用戶選擇的配置項組合不同,打印效果千差萬別。四個輸入項取值的笛卡爾乘積為3×4×3×2=72,排列組合數(shù)量較為龐大,且該測試涉及輸入輸出設備,若窮舉測試勢必會花費大量的成本,但由于輸入條件間相互獨立,隨意篩選無法確保測試的有效性,此類測試需考慮使用正交試驗法解決。
正交試驗法是從大量的試驗點中挑選出適量的、有代表性的點,應用伽羅瓦理論導出的正交表,合理安排實驗的一種科學的試驗設計方法。軟件功能測試作為試驗的一種,完全可以利用正交試驗法進行測試數(shù)據(jù)的選擇,以提高測試的效率[2]。
正交表應用在軟件測試中的表示形式為:
L測試用例數(shù)(輸入條件取值數(shù)輸入條件數(shù))
正交試驗法在選擇數(shù)據(jù)時,可滿足所有因子和水平取值的均勻分配,以及兩兩組合取值的均勻搭配,因此在減少測試用例絕對數(shù)量的同時,測試效果不會大打折扣。
比如,L9(34)為三水平的正交表,其中“L”為正交表的代號,指數(shù)“4”為表的列數(shù),表示最多可安排4個輸入條件,底數(shù)“3”表示每個輸入條件可取3個不同的取值,下標“9”為表的行數(shù),表示若采用正交試驗法,可從34=81個排列組合中科學采樣選取9個輸入組合作為測試用例開展測試。
根據(jù)被測軟件的規(guī)格說明書找出影響其功能實現(xiàn)的操作對象和外部因素,將其作為因子,將各因子的取值作為水平。
根據(jù)測試需求描述,分解功能要求,確定影響打印功能的因子分別為打印范圍、打印內(nèi)容、打印顏色和打印效果。每個因子的取值均為離散集合,則直接構造因子-水平二維表[3]。
并非每個輸入條件及取值在測試過程中都是同等重要的,為了確保測試的有效性,可對因子及水平按其重要程度進行加權篩選,并生成因素分析表。
通常情況下,用戶較少關注打印的幻燈片是否加框,而備注頁由于不涉及關鍵信息往往被忽視,則在測試進度較為緊張的情況下,可舍棄重要程度偏低的因子及水平。加權篩選后,最終生成的因素分析表中保留的輸入條件排列組合數(shù)量為3×3×3=27。
若加權篩選后排列組合數(shù)量仍然超出預期,則需根據(jù)因子和水平的個數(shù)選擇合適的正交表。由于不存在三因子三水平的正交表,則需在現(xiàn)有正交表中選擇并套用因子數(shù)略大的,即四因子三水平正交表L9(34),并將多余因子舍棄,構造出的表格仍然滿足兩大正交特性,確保數(shù)據(jù)采樣的均勻性及科學性。
最后只需將保留的三個輸入條件及其取值依次映射并代入現(xiàn)成的正交表中,即可完成9個測試用例的設計任務[4]。
利用正交試驗法設計測試用例,較使用其他方法具有如下優(yōu)點:
(1)節(jié)省測試工作工時。由于把現(xiàn)成的規(guī)范化的正交表直接應用到測試用例選取中,不需要多步驟的推導,也不需要豐富的經(jīng)驗和創(chuàng)造力,可以有效減輕測試者的負擔。
(2)可控制生成測試用例的數(shù)量。利用加權篩選,考慮測試輸入條件與條件取值的重要程度及條件間的相互影響,做出一定的篩選,可以把生成測試用例的數(shù)量控制在允許范圍內(nèi)。
(3)測試用例具有一定的覆蓋度。正交試驗法是一種合理的、有效的抽樣方法,對被測軟件來說,測試用例的涉及范圍在整體上比較均勻,可排除偏向于功能某個局部的可能性。
通過上述分析可以看出,正交試驗法是科學有效的采樣方法,可應用于參數(shù)配置類軟件的測試過程中,以達到提高測試效率和有效性的目的。
但是這種方法受限于數(shù)理統(tǒng)計的應用背景,無法考慮輸入?yún)?shù)相互組合的實際意義,在一定程度上對測試效果產(chǎn)生了不利影響,通常需要與其他黑盒測試方法相結合用于解決實際問題。