一、網路概念養成
我在實習初期先熟悉了網路基礎概論,在完成任務的過程中深入了解網路知識以及Linux操作命令的應用,並架設路由器及伺服器環境。工程師推薦了一個叫做「鳥哥私房菜」的網站,這個教學資源基本上包含了初期工作所需的內容。但對於我這個對於計算機概論距離較遠的大三生來說,這部分的學習確實相當具有挑戰性。由於學校的網路相關課程相對有限,這也成為我選擇進入網通產業的原因之一,我希望能夠獲得那些在學校課程中難以學到的實用知識。
二、手動測試Router firmware upgrade
手動測試的主要工作是對路由器的韌體進行更新測試,以確保在整合過程中不會出現功能性錯誤。在這個過程中,我們會收到一塊主機板,然後使用Console連接,並使用網路線將其連接到測試電腦上,連接完成後,我們在網頁搜尋欄中輸入網域,進入這塊主機板的GUI(使用者介面)。在這個介面中,我們會進行韌體的上傳操作,這個過程通常需要約三分鐘的時間,同時,我們會打開並記錄一個叫做Tera Term的軟體,以記錄下整個操作過程的Log。這些Log記錄了在過程中主機板發生的事件,包括開機和關機等狀態。完成後,我們將這些Log檔案提交給RD進行分析。手動測試是一個不需要進行編程的工作,但是重複手動操作相同的步驟20次可能會讓人感到乏味。
三、Auto Test
在完成了基礎網路知識的複習後,我的Mentor詢問了我是否具備程式設計的能力,並表示有意讓我學習Auto Test的工作。由於之前自學過Python爬蟲的經驗,我確認Auto Test和爬蟲工作幾乎如出一轍,主要是使用Selenium套件來自動控制網頁進行Router Firmware升級的操作,Mentor給了我兩週的時間來完成這項任務。接著,我拿到一塊Router板子並將其連接到測試電腦,進入GUI界面,然後使用Python來編寫控制點擊、輸入和等待等各個階段的自動化測試腳本。
四、API Auto Test Script
Mentor首先提供了一塊板子,我的任務是為每個API連結編寫相對應的環境設定,將包含所有功能的二進制檔案上傳至Swagger Editor進行解析。解析完成後,所有功能連結都被有序分類。
接下來,我需要編寫測試腳本,其中一個關鍵步驟是確保擁有可攜帶的登入令牌,這是一種廣泛運用的測試方法,並且可以輕易找到可信賴的參考資料。
此外,我必須專注於分析呼叫功能未成功的API情況。當在終端機中看到狀態碼以400/401/3或5開頭時,可能是由於語法錯誤或網路斷線等原因導致的。因此,需要對API邏輯和網路知識有深入的了解,以更好地分析錯誤原因並進行腳本修改。
為了確保正確地傳輸封包,我使用了Wireshark這個軟體,它提供了完整的界面,使用者可以檢查和調整網路問題,同時還可以查看封包的內容,例如封包攜帶的資料。如果封包中包含request的資訊,那麼錯誤的原因可能不是語法問題,而是其他因素。我使用這些封包的詳細資訊來進行逐步分析。分析完成後,我將結果匯出到Excel中,針對不符合預期的結果,我使用Python控制Excel儲存格變色,以提高數據的可視性。我期待在未來的學習和成長過程中更詳細地描述這些技能的應用和提高。
五、Easy Project Test
(一)APP
這個專案針對新開發的Gateway Manage APP進行了使用測試,並撰寫測試報告,測試過程中,我使用了Android和iOS這兩種系統下載了這款APP,並扮演用戶的角色進行了設備設定。在測試過程中,我發現了大約6到7個問題,這些問題主要涉及到介面顯示、等待時間以及其他功能。
(二)GUI
由於GUI TEST相對於整套測試而言屬於較為簡單的工作,因此在暑期我被指派參與了兩個GUI TEST專案。首先,我會收到GUI的原始設定文件,這些文件記錄了Gateway應該具備的各種功能以及這些功能的具體作用,這些文件中幾乎包含了所有與網路相關的專業術語和描述。我的工作是按照文件的描述逐一測試GUI的各個部分,並將發現的不符合文件描述的問題紀錄在公司專門報錯的軟體。RD每天都會對這些問題進行修復,然後我會對已修復的功能進行再次驗證。
值得一提的是,公司內部的工作語言通常是英文,因此我需要使用英文來記錄和報告錯誤。儘管偶爾需要依靠翻譯軟件,但長期以來,我的英語能力也有所提升。
六、Throughput tool
在網路設備開發領域,實際測試非常重要。一般而言,有兩種主要的測試方法,一種是將設備直接部署至實際網路環境,觀察其在真實流量下的運作情況,另一種方式則是利用工具來獲取流量數據。目前市面上最常見的測試流量工具之一是 iPerf,它能夠提供吞吐量報告,包括封包丟失率、最大傳輸單元大小等統計信息。藉由這些,開發人員能夠分析和定位網路中的瓶頸。需要注意的是,iPerf等工具僅限於在作業系統中使用,如果能夠將這類工具嵌入到路由器中,並加入其他開發者所需的其他訊息,就能更深入了解設備在不同負載條件下的性能表現。因此,我協助RD一同編寫了一個用於測量吞吐量的工具。在這個過程中,我對網路協定有了更深入的了解,對於原本複雜難懂的網路術語也有了初步的認識。這個專案進一步提升了我的程式語言能力。特別是在測量HTTP的吞吐量方面,我採用了分段傳輸整個文件的方式,並且在穩定性方面得到了RD的稱讚,後續將方法交接給RD繼續進行吞吐量計算。
七、Auto test extender
在暑假期間,我接到了一個自動化測試案例,這是我第二次加入公司專案。我的工作是測試Extender與Gateway之間的連線,我撰寫了自動化測試腳本,模擬了客戶遇到的問題,並觀察問題的規律,找出根本原因。隨後,我將記錄的Log文件交給RD。當RD修復了問題後,我需要更新Extender的軟體版本,並修改自動化測試腳本以符合新情境。重複這個循環,直到確保連線是順利的,並且連續多次執行測試不再出現問題。
八、測試將作為Wi-Fi 7 STA 之產品功能
2023年下半年,網通廠即將開始對Wi-Fi 7 (802.11be)產品進行量產。我很幸運地參與了這個產品的測試工作,這期間公司的股價近乎翻倍,外界的重視也讓我倍感壓力,但同時也充滿了工作的熱情。我的主要工作任務是負責GUI功能以及部分的Wi-Fi功能測試。
在GUI功能的測試中,我會先拿到產品的原始文件,這些文件詳細記載了各項功能的描述。我按照這些描述來檢查每個功能是否正常運作。至於Wi-Fi功能的測試,這個項目涵蓋眾多不同的測試,但最終目標都是確保使用者能夠順利連接到存取點(AP)。我必須根據各項功能的描述,進行設定並檢查是否能夠成功更改這些設定,並觀察客戶端的反應,以確定一切是否正常運作。最後,我必須將每一個完整的測試流程詳細記錄在報告中,並附上每一步的結果截圖,以確保測試的準確性。
九、手動更新韌體版本、申請憑證
這項工作的主要內容是針對新出廠的電路板,手動進行內部韌體的升級,以符合公司的版本要求。由於這些板子是全新的,因此無法使用GUI進行自動化處理,只能從原始資料的灌入開始,逐步進行韌體的升級。此外,某些板子,只需要向其他開發公司申請使用憑證,然後輸入相應的憑證號碼即可完成設定。整個工作流程相對簡單,但有時可能會面臨大量板子需要處理,可能需要分數天的時間才能完成。