發表文章

目前顯示的是 8月, 2017的文章

2017-devops-taiwan-x-agile-kaohsiung-心得

寫在這裡了: https://hackmd.io/s/rJAdUY8O-

怎麼讓工程師們願意學習?

圖片
這是我覺得很重要的問題,因為我覺得太多人選擇蹲在自己的舒適圈了,還有太多人擠進了相對穩定的公司,每天就是日復一日,年復一年的做重複的事,變成了 IT 業界的公務員。當新創事業的工程師是拿命在拼,那些穩定的公司的工程師卻是佔好了位置,準備養老。 我覺得這很糟糕,當我們在抱怨台灣低薪、不尊重專業、不懂軟體的時候,我們的軟體工程師又拿出了什麼態度、什麼專業來交換呢?

Automation tests 6 — conclusion

圖片
我花了大概一年吧,在眾多不同語言不同平台的 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,希望我們在各自的工作崗位上各自加油,都一定會有很不錯的發展的。 繼續加油!

Automation tests 5 — Code Architecture 之三

圖片
再承上,來講這張圖的最下面

Automation tests 5 — Code Architecture 之二

圖片
承上,繼續來講這張圖的中間:

Automation tests 5 — Code Architecture 之一

圖片
以下從上到下介紹:

Automation tests 4 — run

圖片
那要怎麼跑起來咧?

Automation tests 3 — installations

圖片
當然,先把東西裝一裝吧...

Automation tests 2 — Choose Framework

其實 automation tests 就是寫程式去測試程式,而目前做 automation tests 的框架有很多,搭配的語言也不一樣,比如說: cucumber cucumber-JVM SpecFlow Capybara Fit Fitness selendroid Robotium UIAutomation 最後我們選擇的是 cucumber 系列。他的好處是:泛用、無腦,乍看之下他不是程式。

敏捷小筆記

圖片
1. 把開發團隊視為是一個運動團隊,比如說籃球隊,這樣一來主管就不會想要去 micro-manage 每個人了。 你無法規定控球後衛要運幾下球過前場,然後在哪個位置傳給哪個人,等等。 2. 這世上已經沒有標準答案了,只有好的答案跟爛的答案,但大家都不希望你給出爛的答案,所以這世上只剩下好的跟更好的答案了。 3. 人不是一味的變強就好,還要有選擇。但要對做出的選擇負責任。 4. programming is about thinking, not typing. 所以要邊寫邊想,不可能先寫好 spec,然後大家照著 spec 打字。

Automation tests 1 — Why Automation

一開始,先用一點篇幅來聊聊,為什麼要做 automation tests。 一般導入自動化測試,無非有以下幾點原因: 把重複性的動作自動執行 把需要人工輸入的動作自動執行 以較低的成本做 regression tests 以較低的成本做壓力測試 但這樣就... 沒什麼了不起。

敏捷小筆記

圖片
1. 把開發團隊視為是一個運動團隊,比如說籃球隊,這樣一來主管就不會想要去 micro-manage 每個人了。 你無法規定控球後衛要運幾下球過前場,然後在哪個位置傳給哪個人,等等。 2. 這世上已經沒有標準答案了,只有好的答案跟爛的答案,但大家都不希望你給出爛的答案,所以這世上只剩下好的跟更好的答案了。 3. 人不是一味的變強就好,還要有選擇。但要對做出的選擇負責任。 4. programming is about thinking, typing. 所以要邊寫邊想,不可能先寫好 spec,然後大家照著 spec 打字。 5. Games: spec game, 4 格 game. 6. Product 與 project 不同,Product 的定義決定了開發團隊的組成。