邊緣值分析法
出自 MBA智库百科(https://wiki.mbalib.com/)
目錄 |
實踐表明,程式員在處理邊界情況時,很容易因疏忽或考慮不周發生編碼錯誤。例如,在數組容量、迴圈次數以及輸入數據與輸出數據的邊界值附近程式出錯的概率往往較大。採用邊緣值分析法,就是要這樣來選擇測試用例,使得被測程式能在邊界值及其附近運行,從而更有效地暴露程式中潛藏的錯誤。
所謂邊緣值分析,就是要把測試的重點放在各個等價類的邊界上,選取剛好等於、大於和小於邊界值的數據為測試數據,並據此設計出相應的測試用例。
運用邊緣值分析法,需要有一定的創造性,以下幾點供使用時參考:
1、如果某個輸入條件說明瞭值的範圍,則可選擇一些恰好取到邊界值的例子,另外,再編寫一些代表不合理輸入數據的例子,它們的值恰好越過邊界。例如:輸入值的範圍是-1.0至1.0,則可選-1.0、1.0、-1.001和1.001等例子。
2、如果一個輸入條件指出了輸入數據的個數,則為最小個數、最大個數、比最小個數少1、比最大個數多1、分別設計例子。例如;一個輸入文件可以有1~255個記錄,則分別設計有0個、1個、255個和256個記錄的輸入文件。
3、為每個輸出條件使用上面第1)點,例如,某個程式的功能是計算折扣量,最低折扣量是0元,最高拆扣量是1050元,則設計一些例子,使它們恰好產生0元或1050元的結果,此外還應考慮是否可設計結果為負值或大幹1050元的例子。由於輸入值的邊界並不與輸出值的邊界相對應(例如計算SIN(x)的程式),所以要檢查輸出的邊界值不一定可能,要產生輸出值域之外的結果也不一定可能,儘管如此,考慮這種情況還是非常值得的。
4、為每個輸出條件使用上面第2)點。例如一個情報檢索系統根據用戶打入的命令顯示有關文獻的摘要,但是最多只提供4篇摘要,則可設計一些例子,使得程式分別產生0篇、1篇或4篇摘要,並設計一個有可能使程式錯誤地顯示5篇摘要的例子。
5、如果程式的輸入和輸出是有序集合(如順序文件、線性表等),則應特別註意集合的第一個或最後一個元素。
註意:等價分類法與邊緣值分析法的主要差別在於後者是著重檢查等價類邊界上的情況。
1、邊緣值分析法不是從一個等價類中任選一個例子作代表,而是選一個或幾個例子,使得該等價類的邊界情況成為測試的主要目標。
2、邊緣值分析不僅註意輸入條件,它還根據輸出的情況(即按輸出等價類)設計測試用例。