1. 程式人生 > >軟件測試 —— 用例設計2(邊界值)

軟件測試 —— 用例設計2(邊界值)

本場 幾歲 新建 也會 出現 點擊 自己 輸入輸出 無限

  在現實生活中,無論做什麽,都會有一個“度”的概念。比如,我們知道在NBA總決賽的時候,很多運動員會特意在剛開始比賽不久就增加身體對抗去試探裁判員本場的尺度怎麽樣;還有MMA比賽的時候,一些有經驗的運動員也會有意去吃對手一拳來試探下對手的力度怎麽樣。生活中有很多這種現象存在,清晰了這些度才能知道自己該如何做,即便是幾歲的小朋友也是深諳此道的。而我們測試在對待系統的時候,更是要非常熟悉這些“度”在哪裏。假設上篇文章裏一樣,如果三角形邊長可以為無限大,那麽我們去測試這個無限大,姑且不論測試方法,是否有意義呢?系統的存在永遠是根據現實的需求出現的,而且很多時候,這個度是需要量化出來的,比如你ATM

你單筆取錢的最大額度不能大於銀行規定的單筆最大額,而不能超過你自己的存款額,這兩個就是單筆取錢的度。

接下來進入正題,聊聊系統的度。就如“等價類”中說的,系統主要組成成分是函數,函數的三個關鍵是輸入,邏輯運算和輸出。系統的邊界,也就由一些列的函數來構成。所以,邊界值分析法是對等價類得到的用例的一個補充和細化。

  • 邊界值分析法。

    在等價類取了任意值的基礎上,再取最大值(max)、max-1max+1、最小值(min)、min+1min-1的用例。而且,我們不單單是需要考慮輸入的邊界,也需要考慮輸出的邊界。

  • 常見的邊界。

    長度、大小、空間、速度、重量等用數字表示的量

    報表的前兩行、最後兩行

    分頁的前兩頁、最後兩頁

    屏幕(邊邊角角的坐標)

    時間,時間上的邊界,除了輸入輸出,還有一個容易忽略的點。比如今天上線,那今天之前的歷史數據,和今天之後的新建的數據一般都經過了測試,而一些昨天計算好了存在數據庫中,然後上線了之後再去顯示的數據就有可能有問題。舉個例子說,輸入三邊,點擊一個按鈕顯示三角形的周長。實現邏輯是,輸入三邊之後,將計算的結果保存到周長這個字段中,然後點擊按鈕顯示周長的時候直接讀取這個值。新需求改成,顯示周長的時候都要乘以0.8。那麽昨天輸入的三邊計算好了之後,今天去查看就可能還是原來邏輯的結果。

    還有一些空間大小,比如上傳功能,在文件為0,或者幾個

G的時候都需要仔細考慮下。

  在實現過程中,定義類型的時候,也需要考慮類型的範圍。比如下面這個例子,單獨拿出來大家都能馬上看出來,這個會出現死循環,但是在一個大的項目過程中,往往不會這麽簡單。

byte i = 10;
		
while(i < 300){
	i += 10;
}

  

軟件測試 —— 用例設計2(邊界值)