工作環境介紹
我是在精誠隨想實習,精誠隨想股份有限公司是精誠集團旗下的公司,在行動應用及使用者體驗上不斷精進,鼓勵創新思維,勇於嘗試各項行動應用技術及導入前瞻性的設計流程,提供客戶最具市場競爭力的產品。 不過我們部門是在精誠總部四樓的辦公室,我們辦公室以NBA球衣以及許多開放的討論空間佈置,尤其我們辦公室最特別的是沒有固定坐位,像是隔壁組就會因應討論內容常常換座位上班。還有每週公司很常帶一批人來參訪我們辦公室環境,是間特別設計過對外展示的辦公室!
工作詳述
我在精誠隨想的理財產品研發處,我們部門主要是在做app的開發及維護,大部分的同事都是做android或ios的工作,Android Studio 使用 Java 或 Kotlin 語言,並使用 XML 來設計用戶界面,而 Xcode 則主要使用 Swift 或 Objective-C 語言。
我的工作內容是DevOps,DevOps,DevOp是一種將軟體開發與IT運維相結合的方法論和文化。其主要目的是通過改進團隊協作、自動化流程和持續交付,來加速軟體開發和交付的速度,並提高產品的質量和穩定性。核心概念包括持續整合(CI)、持續交付(CD)、自動化、監控與日誌管理以及跨部門協作。常用工具有Git、Jenkins、Docker和Kubernetes等。
而我的實習目標是透過jenkins運行自動化排程來幫助部門減少工作內容等等,像是目前已經完成了自動從gitlab拉取專案到本地,還有使用python 的unittest套件寫透過appium操作模擬機的自動測試app腳本。
實習期間完成之進度
在寒假期間,我花了大量時間研究如何架設實習期間需要使用的工具和運行環境。這段時間幾乎整個寒假都在重複下載工具、解決版本衝突等問題,使用Mac的終端機進行操作。特別是安裝Appium server時,需要處理眾多的前置環境安裝和版本衝突,讓架設環境的過程變得相當痛苦。
在架設完環境後,二月到三月期間,我專注於使用Python的腳本編寫,利用Appium driver套件連接Appium server,並對Android或iOS模擬機下達操作指令或查找頁面元素。我使用unittest的assert功能進行測試結果的斷言,最後使用HTMLTestRunner將執行過程的log輸出成HTML報告。
我的工作涉及為App制定自動檢測腳本的順序,通過Appium Inspector查看App元素的XPath定位,然後回到Python中撰寫點擊流程和判斷元素的代碼,生成測試報告以檢測是否存在bug或錯誤。
而在四月到五月間負責的是Jenkins自動化研究,透過Jenkins上的專案建置裡的功能操作像是gitlab clone專案到本地或是執行Python的測試腳本等,接下來的目標是要將iOS App專案的ipa的打包過成透過Jenkins執行。
app的Android還有iOS腳本檢測。在這期間晚上運行的測試也常常遇到各種情況,因此花了許多時間在反覆排查問題跟等待報告,發現腳本裡某些地方可能要增加判斷或是更換判斷對象或是增加等待時間等等,還有想一些新的排錯功能,讓腳本能在出錯時有更多的彈性繼續執行下去。
Python腳本,使用Appium driver套件與Appium server連接,並進行自動化測試。而在四月到五月期間,我則專注於研究Jenkins的自動化功能,並將目標設定為將iOS App專案的IPA文件打包成可通過Jenkins執行的形式。下半年我完善先前腳本功能,並開發其他金融App的測試腳本,還有透過增強邏輯與排錯機制提升腳本穩定性。經過不斷學習成長,並克服了許多技術和挑戰,獲得了實踐和成就。
工作當中扮演的角色
目前我在團隊內主要負責研究工作。成的由於其他正式員工主要專注於開發維護Android或iOS的產品專案,我所進行的Python腳本開發和Jenkins命令行腳本編寫主要是自行研究和探索完。在這些研究和開發過程中,我大多從主管那邊得到指示和建議,進而有研究開發的目標方向。