自動化測試軟體工程師  資訊硬體/自動化測試部 | 【小礦工】

年度工作目標
   黃色   測試軟體專案開發(55%)
橘色   測試環境需求軟體開發(40%)
紅色   技術文件撰寫(5%)

軟體工程師分為很多種,一般會依照任務的需求而去開發相對應的程式,像是不同的演算法,更高階的演算速度或是更完整的功能等等,以一隻手機來說,手機的外殼、耳機孔造型、散熱等等是由機構工程師負責設計,電路板Layout、線路設計等等則是由硬體工程師負責設計,手機裡面的操作介面、APP等等則是由軟體工程師負責設計。

在眾多的3C產品中,每一樣都需要經過量產才能供應人們廣大的需求,但是每一樣產品在製造的過程中或是完成後,都有可能因為人為疏失,或是處理不當而導致產品是有瑕疵的,因此每一樣產品在量產的最後一個過程中都要經過測試,測試通過才能出貨,測試的方法則是經由軟體工程師撰寫測試程式,來依據不同的產品進行不同的測試,已達到檢測的目的。

職場

績效評核

測試軟體專案開發(55%):專案完成時間符合時程規劃、程式穩定度、完整性、且可同時測試多種類型的產品與測試流程時間。衡量標準為開發時程、穩定度、完整性、測試時間。

測試環境需求軟體開發(40%):在產品測試時,有可能會依造環境需求而開發到機械手臂或是影像視覺的功能,這部分也包含在軟體工程師的職責內。衡量標準為開發穩定度、產量增加百分比。

技術文件撰寫(5%):當一個產品的測試流程專案開發完成後,必須寫成技術文件並教導產線人員做使用。衡量標準為文件完整性。

日常工時分佈
   黃色   測項功能程式撰寫(30%)
橘色   周邊環境開發(30%)
紅色   人機介面開發(20%)
綠色   量產協助(10%)
藍色   產品走向與測項討論(5%)
藍色   設計測試流程(5%)

工作內容

產品走向與測項討論(5%):在產品開發之前必須要不斷的與PM以及產品開發工程師討論產品未來的走向與測試項目,並且評估必要性與需求性。

設計測試流程(5%):設計產品測試的流程,有些產品必須循訊漸進的測試,有些則沒有固定流程,因此必須設計出最符合時間成本的流程。以測試監視器為例,如果再測試pcb板子的時候就發生問題,那關於pcb的測項就可以全部跳過,不用再而外花時間去測試,而省下一筆時間。

測項功能程式撰寫(30%):每個產品的每個測試項目都不盡相同,因此必須按照當前的產品去開發相對應的測項,但如果能用類似測項去含括多項產品,則是應用層面比較廣的程式,同時工程師的等級也會比較高,以測試監視器為例:可能需要測試攝影機的影像品質、夜間模式、錄影記憶體等等,但是又有很多不同種類的監視器,因此如果開發的程式能不只測試一種攝影機,那在應用上則比較廣泛。

人機介面開發(20%):當測試的功能開發完成之後,則需要撰寫人機介面,就是給工廠產線人員操作的介面,介面除了基本的測項功能外,還包含了存檔、上傳至資料庫、更換產品等功能。例如在開發攝影機完成後,在測試階段時,為了讓測試人員簡單的操作測試項目,因此要設計一個共給測試人員使用的介面做使用。

周邊環境開發(30%):若有需要使用到機械手臂、單晶片、影像視覺…等的其他技術做協助時,則也需要開發該技術的專案,並與測項整合在一起。例如在機台組裝時,如果用人工操作的話,時間金錢的消耗量都會比較大,失誤率也比較高,但如果使用機械手臂進行組裝時,則能有效減少失誤率,而這機械手臂的開發也是由我們處理。

量產協助(10%):產品量產時,必須在生產線附近待命,隨時幫忙解決量產時發生的不預期問題。

崗位關係

上級:軟體工程師的直接主管一般是由更資深的軟體工程師擔任。若是比較大的部門,經理下面還會分副經理或是資深工程師的名稱,一般來說經理會負責管理部門事務、考核、分配工作給工程師,並在過程中給予工程師必要的指導及協助。

同儕:在自動化軟體測試中,產品在一開始設計時就會開始與開發產品的軟體工程師、硬體工程師、機構工程師與專案人員(PM)…等等開會討論,此產品需要有什麼功能,需要測試什麼功能,並確保產品符合客戶或公司自身的需求,在產品的開發過程中,測試軟體工程師必須配合開發產品的各工程師去設計測試的方法與流程,當產品開發完後要進行量產的階段前,則開始導入測試軟體,針對不同的產品與不同的開發工程師進行溝通、測試及驗證,通過測試驗證之後,則將程式交由工廠生產線,並由他們進行量產作業。

產線人員:對於測試軟體開發工程來說,我們的客戶可以算是產線人員,因為會使用到我們設計的程式的人只有他們,因此如果程式上出現什麼問題,或是那邊不是很順手很好用,他們都會直接向我們反應,這時我們就必須教導或是討論改善程式的流程用法等等,再迴受給他們進行使用。

任職要求

教育程度/經驗

  • 學歷/經驗:一般要求為學士以上電子電機、資工機械相關科系畢業等有接觸過程式撰寫或是有自動化測試的相關經驗為主,若有韌體相關設計經驗則會增加面試分數或是跨部門合作機會。

特別知識和技能

  • 程式語言:一般而言主要是以C#為主,但面對需要與低階的設備做或是較底層的程式碼時,則需要一些C/C++的幫助,也需要寫過一些單晶片的經驗像Arduino等等。
  • 若有接觸過自動化相關的經驗都可以算是專業知識,像是單晶片的韌體撰寫,機械手臂的運動軸卡控制、運動學推導計算與設計,或是機械視覺影像處理相關實作,還有各式通訊介面的傳輸等,都會在自動化系統裡面用到。

工時薪水

薪資成長:新手軟體工程師起薪約在4.5萬元左右,經過2~3年的歷練後,月薪有機會上看至五萬元以上。

工作機會:資深的軟體工程師有機會可以晉升為主任工程師、副理、經理,或是經由跨部門合作增加往其他部門發展的機會。