所謂軟件測試津畸,就是一個過程或一系列過程山涡,用來確認計算機代碼完成了其該完成的功能堤结,不執(zhí)行其不該有的操作。
軟件測試是一項技術性工作鸭丛,也涉及經濟學和人類心理學的一些重要因素霍殴。
測試是為發(fā)現錯誤而執(zhí)行程序的過程。
通常來說系吩,要發(fā)現程序中的所有錯誤是不切實際的来庭,也是不可能的。
黑盒測試穿挨、白盒測試是兩種最普遍的策略月弛。
黑盒測試:一種重要的測試策略,又稱為數據驅動的測試或者 輸入/輸出驅動的測試科盛。測試目標與程序的內部機制和結構無關帽衙。而是將重點集中在程序按其規(guī)范正確運行。測試數據完全來源與軟件規(guī)范(即不需要了解程序內部結構)
白盒測試:或稱邏輯驅動的測試贞绵,對程序的邏輯結構進行檢查厉萝,從中獲取測試數據。
由于時間和成本的約束,軟件測試的最關鍵問題是:
在所有可能的測試用例中谴垫,哪個子集最有可能發(fā)現最多的錯誤章母?
推薦做法:先使用黑盒測試方法,然后視情況使用白盒測試方法來補充測試用例翩剪。
黑盒測試:等價類劃分乳怎、邊界值分析、因果圖分析前弯、錯誤猜想
白盒測試:語句覆蓋蚪缀、判定覆蓋、條件覆蓋恕出、判定/條件覆蓋询枚、多重條件覆蓋
每一種方法都可以提供一組具體的測試用例,但是都不能單獨提供一個完整的測試用例集浙巫。
一組合理的策略如下:
1哩盲、如果規(guī)格說明中包含輸入條件組合的情況,首先使用因果圖分析法
2狈醉、任何情況下都應使用邊界值分析法廉油。(輸入/輸出的邊界值)
3、應為 輸入苗傅、輸出確定有效和無效等價類
4抒线、使用錯誤猜想技術增加更多的測試用例
5、針對上述測試用例集檢查程序的邏輯結構渣慕。使用判斷覆蓋嘶炭、條件覆蓋、判定/條件覆蓋或多重條件覆蓋(由于程序的限制逊桦,有些條件的組合也許是不可能實現的)
以上策略不保證發(fā)現所有的錯誤眨猎,但時間證明是個合理的折中方案。
模塊測試的用例設計過程:
先用白盒測試設計方法分析模塊的邏輯結構强经,然后使用黑盒測試方法對照模塊的規(guī)格說明補充測試用例睡陪。
bug的概念
當程序無法實現其最終用戶要求的合理功能時,就發(fā)生了一個軟件錯誤匿情。
軟件開發(fā)過程是溝通有關最終程序的信息兰迫、并將信息從一種形式轉換成另一種形式。由于這個原因炬称,絕大部分軟件錯誤都可以歸因為信息溝通和轉換時發(fā)生的故障汁果、差錯和干擾。