使用 SenTestCase 為後續整合更快速

繼上篇 使用 SenTestCase 為 Continuous Integration 之路更踏實 ,對應到 iPhone App Project 開發,以 Model-View-Control 架構來看,Model 是最可以撰寫的地方。而根據過去經驗,這邊是最少修改被挑剔批評,同時也是邏輯重要陣地。

再來進一步談談對於 TestCase 撰寫對於後續開發不同程式介接而言的收獲,是可以讓整合測試進行相當的快速。

速度一、增加 Code base 幫自己留意,也讓夥伴有個參考。
現在很多 iPhone App 都是希望跟 Web Service 做介接,而 iPhone app 與 Web service 的溝通良好關鍵在 API 設計 ,所以當 Model 部份的程式都對應寫了 XXModelTests,裡面針對各種呼叫 API 行為都敲定好,也都測試完畢,那麼當開發人員轉移到 View 和 Controller 開發時候就不會有後顧之憂,甚至在接的時候,都已經擁有使用 Model 的測試 Code base,看一下馬上就接上手。甚至不論今天是自己接自己寫的程式碼順手,當夥伴們要接的時候,可以很有信心跟他說,參考我的 Test Case 即可。

速度二、犯過的錯誤要累積下來。
我們在經驗不是很豐富情況下,在開發設想角度不足情況下,我們的程式功能和測試情境是不夠的。不要忘記,開發人員自己的邏輯 思考錯誤,測試又將錯誤程式測試成對的,這樣荒謬的情況是真的會發生的。所以事後的矯正 Test Case,或者回來不充測試案例是要一直進行的。當曾經粗心的錯寫下來到 Test Case,這樣到後面開發過程,Test Suite 整個包裝下去測試,都是可以涵蓋進去不會忘的。

速度三、為跨系統整合把關。
iPhone App 在整個產品服務下的角色扮演是 Client 最終端的部份,所以也不要忘記了後面支撐我們的 Server side。Server side 也是會變動的,不論是功能新增、條款異動、情境改變等等因素,進行呼叫的參數值、回傳值都會跟著改變。而作為 iPhone App 的開發人員,如果平日都有寫好 Test Case,每天執行很多次都沒有問題,突然在某一次原本對的測試情境突然出錯了,那麼就能進一步分析問題出在原因,如果是 Server side 沒有講好的默契,這時候趕緊跟 Server side 的開發人員做個溝通協調,也能為這道溝通的關卡把關。 

使用 SenTestCase 帶給 iPhone App 開發人員最大的收獲就是,今日的你會謝謝昨天的你,程式不如預期就發生警訊,儘快處理;如果如預期都過關,就讓我們就可以把更多心力放在 User Interface 的設計上。

剛剛跑了一個開發中的 iPhone App 專案,結果得到:
Executed 41 tests, with 0 failures (0 unexpected) in 54.148 (54.166) seconds
Test Suite 'All tests' finished at 2011-11-18 16:43:52 +0000.

您的測試程式有在更新、維護和累進嗎!

Comments