一般的原則:
測試任何可能失敗的地方。 測試任何已經失敗的地方。 對于新加的代碼,在被證明正確之前,都可能是有問題的。 至少編寫和產品代碼一樣多的測試代碼。 針對每次編譯都做局部測試。 簽入代碼之前做全局測試。要回答的問題:
我如何知道代碼運行是否正確呢? 我要如何對它進行測試? 還有哪些方面可能會發生錯誤? 這個問題是否會在其他的地方出現呢?測試哪些方面:使用你的RIGHT-BICEP
結果是否正確(Right)? 邊界(boundary)條件是否正確? 是否可以檢查反向(inverse)關聯? 是否可以使用其他方法來交叉檢查(cross-check)結果? 錯誤條件(error condition)是否可以重現? 性能方面是否滿足條件?好的測試是A TRIP
Automatic(自動的)。 Thorough(全面的)。 Repeatable(可重復的)。 Independent(獨立的)。 Professional(專業的)。CORRECT邊界條件
一致性(Conformance)--值是否符合預期的格式? 有序性(Ordering)--一組值是該有序的,還是該無序的? 區間性(Range)--值是否在一個合理的最大值和最小值的范圍之內? 引用,耦合性(Reference)--代碼是否引用了一些不受代碼本身直接控制的外部因素? 存在性(Existence)--值是否存在(例如:非null,非零,包含于某個集合等)? 基數性(Cardinality)--是否恰好有足夠的值? 時間性,絕對的或者相對的(Time)--所有事情是否都是按順序發生的?是否在正確的時間?是否及時?原文轉自:http://www.anti-gravitydesign.com