? ? 會做的人不一定會教。
? ? 1.軟件誡律
? ? 1)汝應使用大量輸入反復錘煉汝之應用程序
? ? 雖然前面盡量使用合適的輸入集合來面對無窮輸入,但總會有遺漏。因此可使用大規模的隨機測試,通過自動化的方式,進行健全性檢查。
? ? 2)汝應貪圖汝之鄰居的應用程序
? ? 這里的鄰居是指其它的應用程序或操作系統,你應該不希望你的應用程序做了某些事導致別的程序失效。
? ? 3)汝應親自尋找睿智的預言家
? ? 盡量將測試基準自動化,測試基準(預言家)了解在給定特定輸入和環境條件組合的情況下,應用程序應有的行為。
? ? 4)汝不應崇拜無法重現的失效
? ? 這條誡律的意義在于:第一,盡最大的努力注意并記住對軟件采取的動作次序,同時記住應用程序的響應;第二,考慮使用調試器之類能追蹤動作和軟件狀態的工具。
? ? 5)汝應尊重汝之模型和自動化測試
? ? 智能的隨機測試和自動化測試合二為一,其結果就是基于模型的測試。測試模型是關于應用程序做些什么和怎么去做的點滴智慧的結晶。
? ? 6)汝應利用開發人員的過錯與他們作對
? ? 理解開發人員的錯誤模式,從而避免那些錯誤。如果某個特定的開發人員傾向于寫死循環,那么我們需要保證在該開發人員編寫的每個模塊中都測試這類錯誤。
? ? 7)汝應醉心于應用程序謀殺
? ? 這條誡律的教育意義在于每一個好缺陷背后,都可能隱藏著一個更好的缺陷。在你確實了解缺陷的影響程度和破壞力之前永遠不要停止探索。
? ? 8)汝應保持安息日(指產品發布時刻)的圣潔
? ? 什么時候將應用程序發布給用戶,除了質量之外還有許多因素需要考慮。我們不應該抱怨發布日期,而是應該提前警告后果。
? ? 9)汝應貪圖開發人員的源代碼
? ? 應該像一個測試人員而不是像開發人員那樣利用源代碼。閱讀源代碼時,我工作列表上的第一項就是尋找錯誤處理代碼和能為我們指明錯誤代碼正在執行的對話框。從用戶界面上最難見到或得到的代碼就是錯誤處理代碼。
? ? 2.測試錯誤代碼
? ? 一般開發人員寫兩種代碼:功能代碼和錯誤代碼。軟件應合理地回應錯誤的輸入,我試圖區分三種不同的錯誤處理程序:
? ? a)輸入過濾器(Input Filter):可以用于防止錯誤的輸入進入被測試的軟件。
? ? b)輸入檢查(Input checking):用于保證軟件不會使用錯誤的輸入。每當有輸入進入系統時,開發人員就插入一個IF語句在處理輸入前保證該輸入是合法的。
? ? c)異常處理程序(Exception handler):用于清理軟件因為處理錯誤輸入而導致的失效。
? ? 在執行測試時必須考慮輸入的如下屬性:
? ? a)輸入類型:如果要求輸入為整數,則可嘗試輸入一個字符。
? ? b)輸入長度:輸入過多的字符
? ? c)邊界值
? ? 3.真正的職業測試人員,請上前一步
? ? 經常聽到測試人員抱怨地位低,得不到應有的尊重。但發現在技術領域,只有當一樣東西值得尊重時,才能被尊重。
? ? 1)被尊重的團隊的共同特性:不斷超越自我,質量至上(對產品的貢獻最大化)、持續教育、為測試職位聘請有學位的工程師
? ? 2)建議總結:命運掌握在自己手中,力爭自我超越,認識到自己對一個項目的重要性。
? ? 附錄2的上篇到此為止,主要包含軟件誡律、測試錯誤代碼和真正的測試人員如何獲得尊重,總結成一點就是自我超越。