一、動態黑盒測試:帶上眼罩測試軟件
不深入代碼的細節測試軟件的方法稱為動態黑盒測試。它是動態的,因為程序在運行-軟件測試員像用戶一樣使用它;同時,它是黑盒子。因為測試時不知道程序如何工作-帶上了眼罩。測試員輸入數據、接受輸出、檢驗結果。動態黑盒測試常常被稱為行為測試,因為測試的是軟件在行為過程中的實際行為。
注: 選擇測試用例是軟件測試員最重要的一項任務。不正確的選擇可能導致測試量過大或過小,甚至測試目標不對。準確評估風險,把無窮盡的可能性減少到可以控制的范圍是成功的訣竅。
二、 通過性測試和失效性測試
測試軟件有兩種基本方法:通過性測試(test-to-pass)和失效性測試(test-to-fail)。在進行通過性測試時,實際上是確認軟件至少能做什么,而不會考驗其能力。軟件測試員并不需要想盡辦法讓軟件崩潰,僅僅運用最簡單、最直觀的測試用例。
注意:在設計和執行測試用例時,總是首先進行通過性測試。在破壞性測試之前看看軟件基本功能是否能實現是很總要的,軟件測試員可能會吃驚地發現僅僅正常使用軟件就會發現那么多軟件缺陷。
確信軟件在普通情況下能正常運行之后,就可以采取各種手段搞垮軟件來找出軟件缺陷了。純粹為了破壞軟件而設計和執行的測試用例稱為失效性測試或錯誤強制性測試。失效性測試蓄意攻擊軟件的薄弱環節。
三、等價類劃分
選擇測試用例是軟件測試員最重要的任務。選擇測試用例的方法是等價類劃分,有時稱為等價分類。等價類劃分是指分步驟地把海量(無限)的測試用例集減得很小,但過程同樣有效。
注意:一個等價類或者等價類劃分是指測試相同目標或者暴露相同軟件缺陷的一組測試用例。
在尋找等價類劃分時,考慮把軟件具有相似輸入、相似輸出、相似操作的分在一組。這些組就是等價劃分。
請記住,等價類劃分的目標是把可能的測試用例集縮減到可控制且仍然足以測試軟件的小范圍內。因為選擇了不完全測試,就要冒一定的風險,所以選擇分類時必須仔細。
如果為了減少測試用例的數量過度劃分等價類,就有漏掉那些可能暴露軟件缺陷的測試的風險。對于初涉軟件的測試者,一定要請經驗豐富的測試員審查劃分好的等價類。
關于等價類劃分可能主觀??茖W有時也是一門藝術。測試同一個復雜程序的兩個軟件測試員可能會得出兩組不同的等價劃分間。只要審查等價劃分的人認為足以覆蓋測試對象就行了。
四、數據測試
對軟件最簡單的認識就是將其分為兩部分:數據(或其范圍)和程序。數據包括鍵盤輸入、鼠標單擊、磁盤文件、打印輸出等。 程序是指可執行的流程、轉換、邏輯和運算。軟件測試常用的一個方法是把測試工作按同樣的形式劃分。
對數據進行測試,就是在檢查用戶輸入的信息、返回的結果以及中間計算結果是否正確。
1、邊界條件
描述邊界條件測試的最佳方式。如果在懸崖峭壁邊可以自信而安全的行走而不掉下去,平地就幾乎不在話下了。如果軟件能在其邊界運行,那么在正常情況下就應該不會有什么問題。
邊界條件是特殊情況,因為編程從根本上說在邊界上容易產生問題。軟件是很極端的--即要么對要么不對,令人奇怪的是如果對一定范圍的數據進行操作,程序員往往在處理大量中間數值時都是對的,但是可能在邊界處出現錯誤。
邊界條件是指軟件運行在計劃操作界限的邊界的情況。
如果要選擇在等價劃分中包含哪些數據,就根據邊界來選擇。