考慮事件的順序如下:測試正確的事情,技術,避免重複覆蓋
- 你寫一個函數
A()
,做一個工作單元 - 你寫AA測試函數A()到確保沒有bug存在
- 你寫功能
B()
使用功能A()
- 你寫AA測試功能
B()
,以確保沒有bug存在
個4.1試驗功能B()
蓋功能A()
正如你至少有2個試驗覆蓋了一些相同的功能
問題1的結果:是值得它來編寫函數A()
開始與測試?
- 您編寫大量的代碼
- 你寫了一個巨大的迴歸測試,測試程序功能的終端到終端
6.1實際上這單一的迴歸測試重複絕大多數已經寫
測試問題2:通過執行以下步驟,代碼中包含許多測試,這些測試不止一次覆蓋相同的事物。有沒有一種技術可以避免這種情況?
承擔:
對於這個問題的目的,請假設B則兩件事情,其中之一是在其整體
void performLifeChoice() { // B()
if (timeIsRight) {
askForPromotion(); // A()
} else {
goBackToSchool();
}
}
僅僅因爲'B()''使用A()'到一定程度,並不意味着它所調用的調用可能會導致所有的A()可能出現的問題,當直接用更多的輸入或條件進行測試時會出現這些問題。 – TheZ 2012-08-10 22:30:11
假設'B()'做了很多事情,其中一個是完整的'A()'。通過測試B,您可以間接測試A – JAM 2012-08-10 22:31:06
將'null'傳遞給'B()',您可能會發現問題並修復問題,使其無法達到'A()',但直接進行測試時,問題顯而易見。 – TheZ 2012-08-10 22:32:56