《xUnit Test Patterns》学习笔记4 - Principles of Test Automation
自動化測試過程中,有一些基本的原則,就如同宣言(Manifesto)。由于大部分的原則在前面其實都提到的,因此,有的不做太多說明了。
原則:Write the Tests First
原則:Design for Testability
原則:Use the Front Door First
意思是說,從最外層暴露的publish方法開始測試。
原則:Communicate Intent
意思是說,測試案例要意圖明確,這樣才容易理解和維護。比如,命名時,使用Intent-Revealing Names[SBPP]。參考:http://architects.dzone.com/news/intention-revealing-designs
原則:Don’t Modify the SUT
不要修改被測的對象。但有時需要使用一些Test Double或Fake對象時,要注意每個替代的對象都被測試。舉了個例子,有X,Y,Z三個模塊,X依賴于Y和Z,Y依賴于Z,測試X時,可以使用Test Double代替Y和Z,測試Y時,可以使用Test Double代替Z,但是在測試Z時,不能再把Z替換成Test Double了,因為Z就是被測對象。
原則:Keep Tests Independent
讓測試案例獨立,能夠單獨的執行,不依賴于別的案例。
原則:Isolate the SUT
讓SUT獨立,不依賴外部的環境。SUT往往會依賴一些外部的其他環境,比如,依賴一個外部的應用程序,依賴一個可用的http服務器等等。這使得測試變得不穩定,或者減慢了執行的速度。去除SUT依賴的方法是使用Test Double替換掉外部的因素。比如,需要http服務器,可以自己搭一個假的http服務器。
原則:Minimize Test Overlap
最小化重復的測試。我們知道,測試案例的組合是無窮無盡的,我們不可能覆蓋所有的組合。但我們可以選擇最佳的組合。對被測代碼的同一個條件進行重復的測試是沒有多少意義的。
原則:Minimize Untestable Code
最小化不可測試的代碼,方法就是,重構!
原則:Keep Test Logic Out of Production Code
上一節提到了,不要在產品的代碼里添加任何測試的邏輯。比如,像if tesing之類的判斷。
原則:Verify One Condition per Test
解釋的過程中,有個觀點比較有意思。手工測試時,通常會做一些復雜的操作,復雜的條件組合在一起,然后看是否出錯。這看起來和自動化測試或單元測試完全相反了,為什么呢?這是因為,人能夠在復雜的情況下去判斷各種執行結果,并能夠去分析其中的問題。而我們的案例其實并沒有那么智能,為了讓案例能夠更加精確的定位問題,我們只能檢查每個案例只檢查一種情況。
原則:Test Conerns Separtely
Separation of concerns的解釋見:http://en.wikipedia.org/wiki/Separation_of_concerns
這里的意思大概是讓測試案例做好分層,減少重復的部分,從而更加容易定位問題。
原則:Ensure Commensurate Effort and Responsibility
編寫和維護測試案例的時間,不能超過實現產品代碼的時間。因此,要平衡好測試與開發的付出。
轉載于:https://www.cnblogs.com/coderzh/archive/2010/01/23/xUnit-Test-Patterns-4.html
總結
以上是生活随笔為你收集整理的《xUnit Test Patterns》学习笔记4 - Principles of Test Automation的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【原】UCS-2和UTF-8的互相转换
- 下一篇: 今年的假期挺长的~~~