我花了大概一年吧,在眾多不同語言不同平台的 automation solution 中,選了 cucumber 系列,然後,用OO 的概念,把整個架構架了起來。 其實就是這張圖: 因為我們有三個平台要弄,而這些平台的操作是很類似的,所以我希望能 reuse 越多越好。 如同圖中所示,Gherkins 語法可以完全共用、step_definition 可以部分共用、page_definition 可以完全共用,其他就必須依照各平台的 driver 與 framework 去實作各自的 page_objects 了。 然後,我們把下面的各個 page object 做好後,就可以使用一些 design pattern 去自動產生要測試的組合;甚至我們可以再去進行優化,讓 feature 檔是可以由程式產生的,讓 simulator 不要一直重開等等,但那就比較機密,不方便說了。 做了這麼久,其實我覺得自動化測試或許由 programmer 來寫會比較好,因為現在個平台都有各自平台的自己的自動化測試的解法與框架了,甚至,使用的語言會是跟 production code 一樣的,所以由 programmer 來寫,會又快又好。但是一般而言,通常 programmer 都在努力的衝刺 production code,不太有時間寫自動化測試,所以由 QA 人員來寫,好像是一種不得不的做法。 然後,在 page_definition 的那邊,好像不應該用 module 來實作,這邊我做得不好,讓整個程式看起來很沒有魯味 ( ruby 的味道 ),一看就知道是個 java 的人寫出來的... 0rz 但,自動化測試很好玩 :) 謝謝 Joseph, Jackson 跟 柴叔 教我自動化測試,我也的確把它用出來了。或許還有可以做得更好的地方,但我盡力了就是。 還有就是,我只是把這個架構的骨頭立起來,很多人幫我填了肉進去,在這邊也要謝謝 Jason, Tony, Peter, Regina, River,希望我們在各自的工作崗位上各自加油,都一定會有很不錯的發展的。 繼續加油!