待在趨勢的兩個月雖然短暫,但學到許多,心靈層面也提升不少。 當初逛 104 學生實習的時候,發現滿多軟體公司除了招收 RD、QA 外,還有使用者經驗、UI/UX 設計相關的職缺,像是 IBM,趨勢科技。
因為自己對於前端有興趣,想說來投個 Front-End Design。可是身為研究生,好像還是要寫程式或是做資料分析的工作比較有深度,跟產生論文比較有關,也希望可以找到靈感,讓論文順利產出啊。於是申請軟體開發的職缺,經過面試的洗禮,榮幸的成為 2016 趨勢科技實習生。
歡樂開工,領取新手包
第一天既期待又興奮,要進入台灣最厲害的防毒軟體公司啦!
這個暑期實習計劃,大概招收二十幾位實習生,有一半是 RD、QA,一半則是設計相關的工作。早上報到完畢後,發給每人一包新手包,HR 帶了些破冰活動,讓大家互相認識,接著開心吃 Buffet,下午就由各部門的主管或 Mentor 帶去上工啦!
新手包內容
- 基本文具組、趨勢筆記本
- 趨勢室內拖鞋 (有拖鞋超酷的啊)
- 個人名牌、逼逼卡
- 名片一盒 (結果實習期間沒發到很多張Q)
第一天的餐點
測試工程師,不僅測試,更要重現問題
其實接到 HR 電話,通知錄取測試工程師 (QA) 的工作後,還在猶豫是否要來。當初的想法比較單純,想說 QA 不就等於 Debug,而 Debug 不就是打雜的工作嗎,未來的發展性是不是比較低?面試的時候我還一直問面試官,QA 可以學到很多東西嗎,跟 RD 有什麼差別?畢竟在學校很少接觸到軟體測試,我所知道的頂多就是中斷點, Printf 還有肉眼了!
實習後才發現,測試工程師並不是想像中簡單。
與一般硬體廠的測試工程師不同,這裡的測試要寫程式做自動化,發現問題後,還必須找出發生的原因,把問題重現出來。比如提供一個重現步驟 (Reproduce Steps),或是打包一個重現環境給研發工程師去解決。這要有清楚的邏輯,有時後搞錯了就會在原地打轉,需要善用心智圖、流程圖等方式來幫助理清脈絡。
好比前陣子遇到一個難解的問題,某些產品安裝在一塊後,開啟瀏覽器會造成系統當機,我就看到前輩使用一些 Debug tool 去分析 System dump,最後抽絲剝繭的發現遇到了 Dead lock,並指出是哪一個 Thread 造成問題,也提出解決方案,看似簡單,但是要能這樣分析,還是要有相當的功力阿!
軟體開發必備的自動化測試
俗話說不管黑貓白貓,能抓到老鼠的就是好貓。對於測試來說,也有黑箱白箱,不管用甚麼方法,能抓到問題最重要。
我負責的工作是使用者介面自動化測試 (UI Automation Test),屬於黑箱測試,在不知道程式碼的狀況下,要測各個按鈕功能是否正常。每當有新版本 (Build) 出現的時候,都要確保程式運作沒有問題,但因為程式太龐大,不可能手動測試,需要撰寫自動化腳本。
根據需求會使用不同的測試工具,例如 PhantomJS、AutoIt、Selenium、PywinAuto 等等,像是以前玩遊戲想作弊,會使用按鍵精靈,讓你的遊戲角色根據腳本自動練功,但這裡提到的工具,可以做更多事情,比如自動操作網頁擷取資訊,自動安裝程式,然後讓他自動找出軟體中的錯誤。
想要知道更多軟體測試工具,可以看別人的整理:Python 自動化測試開源(免費)工具集,我就不多說啦。
學思並進,挺充實的
在這個暑期實習計劃中,除了部門指派的任務外,公司有安排一系列培訓活動,包含資安的基本概念,最新的勒索病毒是什麼,軟體測試的簡介與實作,還有在學校沒聽過的專案管理 Scrum、Agile。除此之外,趨勢還有很多學習資源,透過每週的讀書會、公司內部的技術講座、Team內部累積的經驗分享文件,多學多看,都是很好的練工方式,讓自己更上一層樓。
Team 內部的報告,與最後的期末分享,則是終極的實戰演練,會發現報告方式與學校大不同。身為研究生,好像已經被那幾個英文字母洗腦,做簡報的時候一定要有 Introduction、Related work、Experiment、Evaluation、Conclusion。在學校裡,這是學習發現問題,解決問題的過程,用一個有系統化的架構進行研究,並驗證結果。可是在公司就不是這麼一回事了,重視的是能帶來多少效益。
所以開頭就該告訴大家,聽這個簡報你會獲得甚麼,那麼我們用甚麼方法可以做到甚麼事,比較瑣碎的細節則是備著,當有人發問時可以做補充。
趨勢三寶 +1,輕鬆的工作氣氛
「可樂、拖鞋、牛仔褲」是趨勢的三寶,也是企業文化,讓員工能在輕鬆的氣氛下,接受工作上的各種挑戰。因為對於衣著沒有那麼限制,常常可以看到有人在公司裡面穿短褲配拖鞋,疑,好像回到交大啊,以前好多人都穿拖鞋上課 XD
很紅的寶可夢 Go (Pokemon Go),就算是第四寶了!儘管上班時間大家都在忙,可是休息時間一到,每個人都是立志要成為寶可夢大師的訓練家啊,一起分享抓到的寶貝、丟球經驗,對於整個團隊的感情維繫加分不少。透過遊戲,大家也會去思考背後的架構設計,比如系統應該是如何運作,或是尋寶程式 Poke Radar 是如何解出 API 並抓到寶可夢的位置,玩得很有意義啊。
總結來說,趨勢是個不錯的地方,氣氛良好,也有很多學習資源,可以讓自己的功力大幅提升。加上外商的緣故?(其實也是台灣人成立的啦) 工作時間比較彈性,雖然身為實習生的我,都準時離開,或許沒有看到真實全貌,但這兩個月時光,我感到很愉快,也會推薦有興趣走軟體方向的朋友來趨勢實習,了解防毒是在做什麼,體驗學校與業界的差異,讓暑假更充實!
友情連結:趨勢科技暑期實習網站
其實……待過很多大小公司, 都有所謂的讀書會或 Team 內部會議;
個人還是比較傾向單開 Team 內部會議就好, 並且各自報告專案進度, 困難點與客戶合作狀況;
光是剛提到的進度和困難點……等, 就已經相當花時間了;
更何況各自還有身上數個 Project 還在跑 (每次開這個會, 還是下班後的時間被集合起來總質詢);
偏偏公司或 Team 內部又有 “讀書會” 這種東西來插花, 開完有時是 20:00, 有時更晚 21:xx;
那….底下的人事情還要不要做 ?
麻煩以後看到這篇的路人甲乙丙, 日後當了主管後: 請勇於 Say NO……
(當你知道碗筷一堆沒洗, 衣服一堆沒洗, 垃圾一堆沒倒, 報告 & 測試都還沒跑完;
幸運的人, 最多去小 7 吃飯)
要私下交流討論 & 要念書, 煩請 “各自” 開小房間好好的促膝長談……
真不得已要例行心得報告, 也請大家 “精簡” 為要
(小弟私人雖不太看書, 但 SPEC 已經厚到夠你翻求微乎其微的 Solution 了)
我也曾遇過有 Guts 的 Leader, “部門會議層級” : 本 TEAM 沒有人心得報告…… 讚啦 !
這邊, 又微微牽涉到模糊地帶的 “彈性工時”, 因為各人狀況不一, 能否準點到還真無法捉摸;
但畢竟設計 & 找 BUG 就是要 “花時間”, Project 一下來, 會遇到相互合作的狀況;
是的, 準點到的人, 下班前總是要被那些個晚到的人協助幫找 Solution
(我們願意相信, 晚到的人工作到很晚, 所以隔天 “必然” 很晚到, 額外理由可能包括聚餐, 夜遊, 某人家過夜, 聊太久……etc)
可以的話, 希望路過的 HR 斟酌斟酌: 非特殊條件下, 不應使用彈性工時;
個人所在的幾個公司距離有 1.5 ~ 2 hr 的機車車程, 不敢說特早到 (現場已有 2~ 3個更資深 RD),
但至少還能標準工時的前 30 分內就定位處理事情 (不論哪間公司), 前面提到的 RD 我看就不用講了;
簡而言之, 同事雖然會相互體諒, 但也請帶一絲絲相互尊重
個人曾看過某糾紛 (印象非常模糊, 各位純參考):
資方和員工薪資喬不攏, 中間不清楚攻防過程, 後來資方提出員工績效不佳, 經常不在位置上,
可能是在上班期間跑去使用健身器材……. 等等之類;
主要看到這點, 是要提醒大家, 公司或許福利不錯, 但缺乏某方面共識時, 或許用一些奇怪的理由,
來相互攻防, 有點……
而什麼案例就不用來問小弟了, 我不是 HR
當然上班就是工作, 是否四處喝下午茶或使用您的公司福利排遣時間, 就各自見仁見智吧;
So , 有門禁的, 記得 “自己出入” 要刷卡, 至少可以當佐證 (辦公室 & 走道有攝影機更好)
感謝版主大量, 讓小弟可以順便晾出一些相處的細節
Hi CJ, 謝謝你的分享😊
上班距離遙遠真的很辛苦呀~~~
謝謝你的經驗分享!可以請大大分享面試經驗嗎?
好唷 不過要稍微整理一下
如果有問題想知道可以先透過fb專頁敲我
好!請問大大的fb專頁是?
在這裡唷~
https://www.facebook.com/jerrynest.io/