回顧生科轉資工的我,入職趨勢科技一週年QA的大小事。時差問題如何克服?多團隊專案到底能多雷?能多心累?利用科學方法除錯?與infra團隊合作所遇到的問題與改善?員工旅遊去考潛水證照?第一次潛水就掛彩?
文章連結
(四)第一個自己發現並解決的錯誤:Behavior Monitoring exclusions
- Deep Security Agent - 20.0.1-3180 (20 LTS Update 2024-02-29)
- Behavior Monitoring exclusions sometimes failed to apply because they were case sensitive.
- Behavior Monitoring會監控執行中的程式,看有沒有做出壞壞的行為,如果有就做出預設的行動,如:砍掉或暫停。
- Behavior Monitoring exclusions則是使用者因信任某程式,而允許它做出有風險的行為,所以防毒軟體不會阻擋它的行為。
1. 實驗組與對照組
這專案是我解客戶問題而來的,所以算是第一個由我發現且解決的案子。最初是有4個相同的案子湧入,然後在log中明確看到目標路徑沒有被加入到排除列中,因此我就試著在實驗室環境中複製問題,結果是可以複製的出來。
為此我就收兩份log,一份是實驗組(有問題的),一份是對照組(無問題的),把兩者log比對來看,結果一位眼睛很利的同事就發現路徑的大小寫不一樣。然後詢問負責此功能的團隊,對方也回答可能是之前整合時,沒有把大小寫的程式碼整合進去。因此我就開始著手驗證:
- 驗證好眼力同事猜想:在有問題的版本中,使用萬用字元(*就是這個無敵星星)去取代大寫,結果功能正常。
- 驗證功能團隊猜想:將關於大小寫的程式碼整合進去,結果功能正常。
2. 專案問題與改善
- 大小寫的程式碼沒有被整進產品中:雖然忘記是難免的,但我們應該要開案子,去提醒我們還有東西沒做。
- 自動化驗證缺少Behavior Monitoring exclusions:這部分是我未來必須補強的。
所以這告訴我們,開案子紀錄以及自動化驗證是非常重要的。
(五)第一個DevOps專案:Automation pipeline migration
1. 與infra團隊合作
這個案子我們想把自動化測試的pipeline搬到其他地方,所以是一個關於DevOps的案子。這除了是我第一次深入接觸DevOps外,也是第一次和platform infrastructure團隊合作寫程式碼。起初的需求是由我們一位資深QA和對方開需求,然後雙方再安排資源去規劃這個專案。我自己則是到中期,需求與資源都規劃的差不多後,才加進去實作程式碼。
Infra團隊主要負責建構主pipeline以及VM機器的設定,我這邊則是處理測試環境部署:
- 手動操作自動化測試環境部署流程
- 將環境部署流程寫成自動化腳本
- 將我的自動化腳本串接到新pipeline上
- 驗證新pipeline跑出來的自動化測試結果符合預期
2. 專案問題與改善
- 時程延後一個月:原本預計花2個月3位人力去完成這個專案,結果花了3個月才完成專案的第一階段,而且專案的第二階段必要性可能沒那麼高,這代表我們一開始可能錯估這個專案的大小與難度。
- 需求切割:需求應該要切階段,不應該一次就完成所有需求,而且需求分割,可更容易釐清與管理需求間的輕重緩急。
- 完整需求在中期才被釐清:我認為一開始的需求比較著重在自動化技術需求上,而缺少RD使用者體驗的需求。
- 收集使用者的需求:一開始先收集使用者對新pipeline的需求,應該可以改善這問題。
- 技術與體驗需求是同等重要的
- 中期才整理與紀錄進度:這部分真的是我們的疏忽,這確實可以更早就做。到中期主要是受到主管的關切,我才會狂開案子紀錄與量化進度。
- 即時開案子:這有助於量化進度,讓專案更容易追蹤與理解,不僅主管看得到進度數字,開發者也可以和主管協商這樣的進度是否合理?
- 詳實紀錄案子前因後果:案子應該要紀錄詳實,不然只有標題,少少的內容也無助於和別人溝通。
- 我被主管問過這問題有log?事實上有,但我沒即時紀錄起來,所以主管也無法給出協助與建議。
- 我被合作夥伴問過為什麼要開這案子?我有理由,但沒有放實際例子圖片,這導致我很難用言語形容。
- Pipeline與腳本分開開發:為了分工,我們切成兩大塊(pipeline與環境部署腳本),但當整合時,才發現有不少是沒有整合不容易發現的問題。
- 儘早整合並發現問題:我這邊進度是比較快,但我因為不熟pipeline,所以在等對方整合。但事實上,我應該要更主動先拿對方半成品的pipeline來先做串接測試,這有助於提早發現問題。
- 積極分擔不熟的工作:
- 有一個案子是在A環境ok,但在B環境不ok,且我已經看過自動化框架這邊的程式碼,沒看出什麼問題,因此起初這案子是分給對方。但其實貧頸在對方,所以我是有時間可以繼續研究這案子,只不過我研究的方向就要朝環境面,但我不熟處理環境問題,所以我起初並沒有很積極處理環境,而是在看框架。
- 後來主管請我協助,我只好硬著頭皮嘗試,先嘗試把JAVA和Python模組版本與數量弄成一致,都無果。最後是一位資深QA找到一篇文章,我嘗試裝文章提到的新模組,才解掉這問題。
- 我後來仔細想了一下,我其實應該可以找到這篇文章,只是我下的關鍵字太長,導致沒找到這篇文章,所以把關鍵字下短一點,可能有助於找到更多不同的問題。然後除了關鍵字下短一點之外,參考前人的程式碼也是解決不熟領域很有用的方式。
- 手動測試不夠全面:Pipeline migration的前提是,在新環境中,手動測試能夠運作。
- 全面的手動測試:所以一開始如果手動測試能夠夠全面且紀錄起來,我們就可以更早發現潛在問題。
- 定期即時更新進度:這部分我們一開始就有做,但缺少主管的部分,因此主管與我們的進度是存在時間落差的。
- 建立所有人的溝通管道:如果一開始建立一個更大的群組,包含所有開發人員與主管,這樣可以有效消彌時間落差問題。
二、一週年體驗
除了工作外,我自己也會多參加活動,參加活動的目的可能是要為了蹭飯、蹭福利與認識更多人,當然參加活動,就意味著可能會用到自己的下班時間。
(一)公司活動
我自己會參與公司活動,主要大型活動有運動會與春酒,同時我自己也是工作人員之一。說真的當任工作人員,一定會佔用到自己的休息與下班時間,因為開會多半會使用中午且道具採買與製作會花不少時間,但可以更深入與人有所連結。
- 運動會:我的小組負責進場事宜,我主要負責採買素材與道具製作。
- 春酒:我的小組是活動組,我主要負責瑪利歐賽車活動的抽獎準備,主要準備抽獎箱。
(二)實習生
敝公司每年都會有實習生,而2023年我們團隊也有一位實習生名額。雖然實習生的mentor不是我,但我是主要負責教實習生要做什麼的人?過程中相處得非常好,也會和一群實習生一起吃飯,結束後,也有私下去玩以及交流。
(三)員工旅遊
敝公司員工旅遊是讓員工自主揪團去玩,而非公司統一總籌,因此公司會有一個揪團平台,只要成團後,相關的核銷符合規則就可以核銷。合銷金額隨著每年規定而定,2023年的金額是依照人數而分(1-4人5k、 5-9人9k、10+人12k),然後如果真的不想出遊,也是可以拿錢去買書之類的,所以其實這福利很好用。
我自己是參加4天3夜小琉球潛水考照團,不含吃共花費17,630(14,400考照費+住宿+機車,3,230高鐵+船票),證照是SSI,然後有拿到12k補助。我自己大學有開潛水課,我有上潛水課,但當時並沒有去參加考照,所以透過員工旅遊考照,超讚。
撇除交通費好貴外,小琉球真的很漂亮,當時都是晴天且9月秋天,很適合玩水。第一天都花在交通上,第二天是在沙灘旁練習,第三與四天才正式下潛,一天兩潛,一次約一小時,共潛了4支氣瓶。我覺得這頻率是非常適合且舒適的,不然潛水其實也蠻累的。
然後潛水有筆試與術試,基本上有讀有準備,就都會通過。然後要讀的內容其實不少(約80頁),我自己是分批慢慢看,所以潛水前我就看完,但我後來才發現,我們團只有我看完,不過我們團隊最後all pass。然後第一次下潛時,由於我誤解耳壓平衡的動作,所以我第一次下潛時,耳朵超痛,一直求助教練,上岸時,流著鼻血並想著活著真好。然後第二次下潛就知道,原來捏鼻吐氣時,嘴巴要閉合,不能真的吐出氣來。第三四次潛水,耳壓平衡就有做好,所以就也沒流鼻血了。
(四)社團活動
由於敝公司在大安區,而大安區有很多大學(北教大、台大、台科大、台師大),所以我有時候下班會去台大參加學生的社團活動。可能很多人不知道,其實社會人士是可以參加學生社團活動,甚至旁聽課程都可以,只要社團與老師同意即可。
雖然敝公司也有不少社團(至少40+個),但我比較常參加台大的,畢竟我想參加社團的目的之一就是想多認識年輕人,同時也想回味以前參加社團的經驗。例如:談天說地直到天亮、參加社遊大家一起出去玩、吸收有趣的新知識。我自己是參加異議性社團,社課主要以社會議題為主,聚餐出遊為輔,所以會來的人形形色色,且有機會遇到思辨與論述能力很強的人。
留言
張貼留言