實踐證明,程序往往在輸入輸出的處理邊界情況下發生錯誤。邊界情況指輸入等價類
和輸出等價類邊界上的情況,檢查邊界情況的測試用例是比較高效的,-,J以蟄出更多的錯誤。如上面介紹的處理報表日期的例子,等價類劃分法就忽略了幾個邊界條件,如200001(邊界有效最小值)、202012(邊界有效最大值)以及邊界無效值199901、199912、202101、202112等,而程序往往會在這些地方出錯。這就是下面要討論的邊界值分析法的優點。邊界值分析法就是在某個變量范圍的邊界上,驗證獨立的輸入/輸出是否正確的測試方法。邊界值分析法取決于變量的范圍和范圍的類型,確認所有輸入的邊界條件或臨界值,然后選擇這些邊界條件/臨界值及其附近的值來進行相關功能的測試。邊界值分析法處理技巧有:
· 如果輸入條件規定了值的范圍,則取剛達到這個范圍的邊界值(如上述200001、
202012),以及剛剛超過這個范圍邊界的值(如上述199912、202101)a
· 如果輸八條件規定了值的個數,則用最大個數、最小個數、比最大個數多1個、比最小個數少1個的數等作為測試數據。
· 根據規格說明的每一個輸出條件,分別使用以上兩個規則。
· 如果程序的規格隨明給出的輸入域或輸出域是有序集合(如有序表、順序文件等),則應選取集合的第一個和最后一個元素作為測試數據。
· 如果程序用了一個內部結構,應該選取這個內部數據結構的邊界值作為測試數據。
· 分析規格說明,找出其他可能的邊界條件。
這里給出測試一個排序程序的邊界值分析法的例子,其邊界條件有:
· 排序序列為空。
· 排序序列僅有一個數據。
· 排序序列為滿,用猜錯法補充一下測試用例。
· 排序序列已經按要求排好序。
· 排序序列的順序與要求的順序恰好相反。
· 排序序列中的所有數據全部相等。
因為錯誤最容易發生在邊界值附近,所以邊界值分析法對于多變量函數的測試很有效,尤其是對于像c,C++這種數據類型要求不足很嚴格的語言有用。缺點是對布爾值或邏輯變量無效,也不能很好地測試不同的輸入組合。邊界值分析法也幣具有隨機性,常被看做是等價類劃分法的一種補充,兩者結合起來使用史有效。
文章來源于領測軟件測試網 http://www.kjueaiud.com/