什么樣的測試才是好的測試?
1。 隨便運行
什么樣的單元測試是隨便運行?答案很簡單,自動化的單元測試就是隨便運行的測試。如果一批測試在運行之前每次都需要重裝系統然后還要找一大堆需要依賴的軟件來裝上,最后還要輸入希罕的命令才能運行,那么就不是一個好的測試(自己真的見過這樣的測試,囧)。個人認為,配置好的延續集成系統,可以完成很好的自動化測試;如果沒有一個圓滿的CI,那么一個one click的自動化測試運行也是一個較好的選擇。
2。 自動檢查效果
一句話:沒有自動檢查效果,再好的自動化也是白搭。
3。 可重復
一句話:只能運行一次的單元測試也是白搭。
4。 獨立
其實測試的獨立,也有利于完成可重復。剛做單元測試的時候,曾經犯過這樣的伙伴,我在寫A測試的時候,給數據庫插入了一條記錄,然后我在寫B測試的時候,就認為我為什么要在兩個測試中離別創建兩條數據?直接用上一個測試的數據就可以了。不當時果還好,我很快就發現這樣做是有問題。單元測試的獨立,就是運行測試的人可以先運行A測試,也可以先運行B測試,也可以單獨運行A或者B測試,甚至可以A和B測試同時運行。
5。 簡單
有時候,測試的代碼寫的有點復雜,嵌套的語句有點多,可以有些人會認為寫出復雜的單元測試代碼才能體現自己的水平,但是,我認為關于單元測試代碼來說,應該越簡單越好。最好就是順序執行下來了,不要有什么分支。因為測試代碼自身就是也是代碼,那么怎么去驗證測試代碼寫的正確呢?答案可以是再寫一個測試代碼去驗證第一個測試代碼。這樣就會有逝世循環了。一個簡單的如果就是,如果測試代碼足夠簡單,那么就可以認為測試代碼是正確的,無需其他代碼對之進行測試。
6。 專注
一個測試應該只測試一個點。如果在一個測試里面驗證多個測試點,看起來是對照高效的一種做法,但是當測試中有Assert語句拋出異常的時候,很有可以需要花大批的時間才能找到真正伙伴的代碼,這樣不利于完成前面提及到的“定位BUG”。
7。 注釋
注釋其實就是把代碼抽取成可閱讀的測試用例,如果別人看自己的順序,可以快速理解測試代碼;同時注釋還能喚醒自己覺悟的記憶和事前的測試思路。
海外做單元測試的測試工程師少,做集成測試、接口測試的也不多,埋頭做事,別忘抬頭看路。時?偨Y,提高自我。
文章來源于領測軟件測試網 http://www.kjueaiud.com/