想知道如何成為軟體測試工程師嗎?軟體測試領域未來趨勢如何呢?
本次Skyline國際機會平台專訪 OnedaySoftware 的創辦人『Howard』,將分享大企業到新創公司的職涯旅程,QA Engineer & SDET的職務與日常。
從學校到職場,十二年軟體測試經驗的濫觴
就讀長庚資訊管理的 Howard 在學校並未接觸過「軟體測試領域」,剛開始的他懵懵懂懂,無法確定未來的就業方向。正在思考未來的方向時,Howard 選擇了研發替代役的機會。決定申請研發替代役後,Howard 開始集中投遞大型公司的職缺,與一般人無異,只希望能在未來研發替代役的三年中在工作上能有穩定的發展。最終,投遞了 HTC 的軟體測試工程師的職位並且成功的取得 Offer ,開始了 Howard 的研發替代役生涯。在這三年的期間,他全心的投入軟體測試領域,即便離開了 HTC 仍持續在軟體測試領域積累,至今已有十二年的經驗。
註:研發替代役(Research and Development Substitute Services,RDSS)。研發替代役的流程是先在成功嶺完成 21 天的新訓。之後的三年期間,需要被綁定在同一間企業,從事與研發相關的工作。這段期間,等同於在當兵,不能隨意更換公司或職位。若要換單位服役,過程是相對繁瑣的。
Howard 眼中軟體測試工程師必備技能大公開!原來文組與理組準備的方向不同?!
Howard 也與我們分享軟體測試工程師該具備哪些技能、文組與理科背景不同技能的補足,與對該領域學歷的看法。
硬實力
- 技術能力:
- 基本的程式設計能力:雖然軟體測試工程師不需要像開發人員那樣大量的寫程式,但仍需具備基本的編程能力。理解和編寫測試程式碼,這對於理解產品和進行測試至關重要。
- 風險識別:在每個交付階段都要能夠識別風險,檢測出不符合預期的地方,並提前規避潛在問題。
- 專業知識:
- 需求理解能力:能夠理解和評估需求的來源和目標,確定是否值得投入資源進行測試。
- 參與各個環節:從需求會議到設計、開發、測試與最終的釋出並蒐集顧客反饋的每個環節,都要盡可能的參與並確保高品質的輸出。
軟實力
- 溝通能力:
- 跨部門協調:作為工程師和 PM 之間的溝通橋樑,能夠將技術需求和商業需求轉譯給相關人員,使雙方都能理解和配合。
- 需求轉譯:能夠將需求轉化為技術語言,並將技術細節反饋給 PM,定義出通用語言(Ubiquitous Language)確保專案能順利進行。
- 專案管理:
- 品質管理:從軟體測試的角度出發,管理和提升整體產品的品質,確保每個環節的輸出都符合預期。
- 資料整理與歸納:收集和整理資料,將「資料」轉化為有用的「資訊」並傳遞給相關人員,確保時程的管控。
- 用戶體驗:
- 用戶視角:從用戶體驗的角度來看需求和功能,確保產品符合使用者的期望和需求。
- 成本與技術評估:能夠評估技術實現的可行性和成本,並在項目初期就進行風險管理。
文科生v.s.理科生
- 理科背景:
- 需要學習更多關於用戶體驗和成本評估的知識,提升對產品的體驗理解。
- 文科背景:
- 需要補充程式設計和技術理解方面的知識,增強技術思維和邏輯。
學歷要求
- 大學學歷:大學學歷足以滿足軟體測試工程師的基本要求,重在學習基礎技能。
- 碩士學歷:碩士學歷會更有優勢,尤其在資料整理、歸納和分析能力方面有更好的訓練,對於高品質的資訊傳遞和專案管理非常有幫助。
從阿里巴巴到街口支付,Howard 的台灣洄歸之路
在一次意外的裁員事件中,Howard 所服務的外商公司因資金斷鏈,整間公司無法繼續正常營運,因而被迫離職。當時,他所在的測試團隊,面對這個突如其來的變化,Howard 意識到自己需要重新思考職業方向。在此之前,Howard 已在業界積累了四、五年的經驗,但與其他資深同事擁有十五至二十年的資歷相比,他並不具備競爭優勢。正是這個契機,讓 Howard 決定向國外發展。
2016年,Howard 選擇前往中國,當時中國的互聯網行業已經發展了一段時間,經過仔細考慮,他決定加入了阿里巴巴。這段經歷讓他學到了很多,同時也面臨著極大的挑戰!
在阿里巴巴,工作環境是996,即每天早上9點上班,晚上9點下班,每週工作6天。這樣的工作節奏成為一種習慣,甚至內化為一種企業文化。他的同事大多來自北大、清華等名校,他們的努力和拼搏精神也深深影響了 Howard。每天晚上加班到九點、十點,甚至到凌晨是常有的事。然而,這樣的高壓工作環境對於長期的身心健康並不友好。
Howard 在阿里巴巴工作了一年多後,台灣的街口支付老闆胡亦嘉(Kevin Hu)在 LinkedIn 上找到了他,而 Kevin 對於阿里巴巴的企業文化非常認可,並希望能將阿里的文化帶回台灣。這個機會對於 Howard 來說,無疑是一個展示自己能力,並將所學知識應用到不同領域中的一個好機會。
在阿里巴巴工作的時間裡,Howard 學到了很多知識和技能並希望能將這些經驗帶回台灣,賦能台灣軟體測試領域。
生存與生活—兩種截然不同的工作模式
Howard 以「生存與生活」為主軸,分享了他對中國與台灣不同企業生態的觀察。在中國,較多的資源會聚集在一、二線城市,而當所有的人才匯集在大城市,很容易會造成僧多粥少的現象。若要在大城市中生存,甚至在眾多人才的市場中脫穎而出,員工勢必得時刻保持積極且高效的工作模式。在台灣,貧富差距並不如中國明顯,因此,會更加強調如何同時兼顧工作與生活,這是本質上的不同,而造就了不一樣的工作模式。
在中國,員工必須時刻保持高效率,因為一旦老闆交辦了任務,你必須立即接受並完成,否則機會可能轉瞬即逝。這種環境下,晉升通道會因為你的努力和表現而打開,但如果你無法跟上節奏,可能會在同一個位置上停滯不前,無法獲得更多資源和獎勵。因此,員工在這種高壓環境中往往不敢放慢腳步,拼搏和內捲成為常態。
相比之下,台灣的工作模式更偏向於“生活”。台灣的資源相對充足,資訊也隨手可得,讓員工有更多的選擇空間,可以打聽哪間公司更好、哪種工作模式更適合達到工作與生活的平衡。人們有餘裕去挑選適合自己的工作,不必為了生存而拼命工作。因為我們基本的生存需求已經得到滿足,每月五、六萬的收入足以讓我們生活得比較舒適。
這兩種工作模式的不同,反映了其背後根本的底層邏輯。一個是為了生存,另一個是為了生活。中國的工作文化更具“狼性”,員工為了獲得表現的機會而拼搏不懈。這也解釋了為什麼中國人在休假時會大手筆消費,因為平時的工作壓力太大,他們沒有時間消費,所以當有機會休息時,他們希望盡情享受辛苦掙來的資源。
在台灣,工作更多的是實現自我價值。當我們在工作中感到委屈或不滿時,我們會考慮是否有必要繼續在這裡工作,因為我們已經能夠生存,並且有能力選擇更能實現自我價值的地方。
這兩種不同的工作模式各有優缺點,沒有絕對的好壞之分,只是不同的文化造就了不同的工作氣氛和學習內容。如果你能接受某種文化下的工作方式,那麼就可以在這種環境中持續發展;如果無法接受,那麼這個地方可能並不適合你,純粹如此而已。
不同企業文化的洗禮,Howard的視野拓展之旅
剛開始的前三年,Howard 把重點放在學習和成長上。這段時間內,努力提升自己的專業知識和技能,並深入了解軟體測試領域的各個方面。隨著經驗的積累,Howard 在外商公司,開始將所學的知識付諸實踐,並在真實的工作環境中檢驗自己的能力。而在阿里巴巴,除了應用所學外,他發現這裡有更多值得學習的地方,特別是豐富的文獻和技術資料,這些都極大地充實了 Howard 的知識儲備。
學習和應用後,Howard希望能有一個地方能真正實踐並檢驗自己的方法論。回到台灣後,加入了街口支付,首次擔任主管,從無到有地建立了一個十四人的軟體測試團隊。在新創公司中,這樣的團隊規模是相當大的。這段經歷讓他真正感受到管理和領導團隊的挑戰與成就。
之後,Howard 進入了台積電這家龐大的企業。台積電有著深厚的文化底蘊,內部運作模式已經根深蒂固。在這裡,他遇到了不少挑戰,特別是要改變其對軟體品質的傳統認識並不容易。台積電的文化和管理模式讓 Howard 認識到,在大型企業中推動變革需要更多的時間和耐心,並且需要在經歷過挑戰後再回過頭來進行改進。
在台積電的經歷後,Howard 重新審視了自己的職業方向與初心,發現自己更喜歡2C 的產品和協作的工作模式。於是,毅然決然地加入了阿福管家,這次面對的是一個資深的測試團隊。這裡的挑戰在於如何在既有的團隊中,引入新的價值觀和方法論,並將團隊的能力重新提升。這段經歷讓 Howard 學習到更多關於管理和領導的知識,特別是在與高層管理者的對話和協作中獲益匪淺。對 Howard 而言,每個職涯都有其要學習的課題,但在每個不同的階段都獲得非凡的收穫。
QA與SDET常常混為一談?!Howard對兩角色的職責解析
在軟體測試領域中,QA( 軟體測試工程師)與 SDET(軟體測試開發工程師)兩個角色常常被混淆。然而,對於Howard而言,它們在職能上還是具有些許的差異。
QA的角色與職能
QA的首要職能是確保產品滿足用戶需求,並提供良好的用戶體驗。QA人員通常通過模擬用戶情境來驗證產品功能,確保產品符合產品經理(PM)和相關團隊的預期。QA的職責包括:
- 需求驗證:確認產品需求的合理性,確保它們能夠滿足用戶和業務的需求。
- 業務邏輯討論:與不同團隊討論業務邏輯,揭露潛在風險。
- 測試策略制定:根據需求和業務邏輯制定測試策略,確保測試覆蓋全面。
QA在工作中偏重於軟技能,強調溝通、協作和用戶視角。這使得QA能夠在不同團隊之間橋接需求與實現,確保產品最終能夠達到預期的效果。
SDET的角色與職能
SDET則更側重於技術能力和自動化測試。他們不僅需要具備開發技能,還要能夠將這些技能應用到測試領域。SDET的職責包括:
- 測試工具開發:開發和維護測試工具,以提升測試自動化的效率和效果。
- 程式碼品質保證:關注整個系統的程式碼品質,確保程式碼在開發過程中的穩定性和可維護性。
- 技術協作:與開發團隊密切合作,確保測試覆蓋全面,並能夠及時發現並解決問題。
SDET的核心是技術能力,尤其是開發和自動化技術。他們的工作不僅限於測試本身,還包括對測試環境和工具的改進,從而提升整體的測試效率和品質。
無論是QA還是SDET,它們在軟體測試領域中都有其不可或缺的作用。QA偏重用戶視角和業務邏輯的核實,SDET則側重技術能力和自動化測試。兩者的協同合作,能夠最大化地提升產品品質,並確保產品能夠滿足用戶和業務需求。
此外,Howard 認為無論從哪個角度切入軟體測試領域,專業的深耕與技能的拓展都是必不可少的。只有在專精自身職能的同時,不斷學習和應用新的技術和方法,才能在競爭激烈的市場中立於不敗之地,並且不被AI取代。這正是成為一名T型人才的重要性所在:專精於某一領域,同時具備多方面的技能和知識,從而提升自己的核心競爭力。
軟體應用場景促成中西方軟體測試方案的差異,比較中國與台灣的軟體測試方法
軟體應用的場景差異導致了中、西方測試方案的不同。從中、西方的角度來看,這種差異體現在應用程式的設計和功能上。
在中國,應用程式的設計傾向於「贏者全拿」的思維模式。他們喜歡將所有功能都集成到一個應用程式中,形成所謂的「超級應用程式」(Super App)。例如,支付寶這個應用程式,不僅可以用來付款和轉帳,還涵蓋了借款、貸款、燃油、煤氣電費、小區管理費、學費等多種支付功能。這種一站式的設計旨在讓用戶在一個應用程式內完成所有相關操作,從而最大限度地留住用戶,避免流量分流到其他應用程式。
相較之下,西方的應用程式設計更注重專注於單一功能。例如,Uber專注於叫車服務,Uber Eats則專注於外賣服務。這些應用程式通常只具備核心功能,附加功能較少,這使得應用程式更加專注和簡潔。
這種設計思維的不同也反映在軟體測試的要求上。中國的超級應用程式需要更全局的思維方式,測試人員需要了解應用程式內所有組件的交互關係,以及這些組件之間的整合和兼容性。因此,中國對軟體測試的要求非常高,測試人員需要具備開發工程師的技能,能夠提出技術解決方案,並在品質方面做出貢獻。
相反,台灣的軟體測試工程師更注重使用者體驗和使用者流程的調整。他們通常在後期設計過程中進行調整,改進存在缺陷的部分。這樣的測試方法更注重細節和使用者的直觀感受。
Howard:「這兩種不同的測試方式各有其優勢和劣勢,但如果能將兩者整合,則可以創造出一個更加全面的測試專家角色。這個角色應該具備理解需求來源、風險控制、品質管理、自動化開發和使用者體驗改進等全局的能力。」
這樣的專家角色在任何地方都將具有競爭力,無論是在中國、台灣,還是其他國家。他們不僅能夠從全局角度進行品質測試,還能通過自動化測試提升效率,並且在產品上線前通過使用者體驗的改進來確保產品品質。這樣的融合角色將是未來軟體測試領域的重要發展方向。
Howard給予新進者的工具建議!
目前業界常用的測試框架有Pytest、Selenium、Robot Framework或Cucumber等,它們都是軟體測試領域耳熟能詳的工具。這些自動化框架在軟體測試中發揮著重要作用,使測試過程更加高效和可靠。除了工具,還需要了解各種測試方法論。等價測試方法、探索型測試、敏捷測試和猴子測試(Monkey Testing)等。理解不同的測試方法論有助於我們在遇到問題時能夠對症下藥,選擇最合適的測試方法來解決問題。
這些工具和方法的應用是日常測試工作中不可或缺的一部分。無論這些工具是開源的還是非開源的,它們都有其價值所在。新進人員應該了解市場上需求的技能和工具。 Howard 表示通過查看104上的招募訊息,可以了解現在市場需要的是怎樣的能力,讓自己培養其技能。
此外,如果今天想要的是一個通用的法則或通用的解決方案。Howard 推薦大家參考中國的一站式的解決方案,從中了解他們如何將所有能力集中在一個平台上,提供綜合性的解決方案。Howard 覺得平台解決方案較少出現在台灣軟體測試領域,有可能因領域或業務不同,而導致發展的方案不同,但 Howard 建議這些方案都可以參考,後面一旦遇到問題,才能知道該用何種技能或工具解決問題。
在AI浪潮下,軟體測試工程師的職務轉型
Howard表示AI一定會部分取代軟體測試,國際數據資訊公司(IDC)的報告指出,到2028年,AI工具將能夠編寫70%的軟體測試。雖然AI無法完全取代人類的角色,但它確實能夠大幅提升測試過程的效率和準確性。
由於測試程式相對不花俏,具有一定的模式和結構,因此AI可以快速編寫這些程式碼。未來,測試工程師的主要角色可能會轉變為測試結果的審查者,而不再是繁重的程式碼編寫者。這種轉變意味著AI能夠代替大部分的測試開發工作,但人類的介入仍然是必需的,特別是在最終的品質審查和決策上。
建立一套完善的品質管理系統和衡量指標,是每個組織必須關注的重點。無論是自動化生成的測試還是人類手動撰寫的測試,最終目標都是提升產品的品質和性能。自動化測試的普及,可以大幅減少回歸測試(Regression Testing)中的人力投入,提升測試效率。
隨著AI技術的不斷進步,Howard提出了「去測試化」的概念。未來的測試流程將朝著此方向發展。這並不意味著不進行測試,而是將測試深度嵌入到開發過程中,使得每一個交付的產品或服務都有高品質的保證。這需要開發者、測試工程師和產品經理等多方的共同努力,建立起高品質交付的習慣和能力。
未來的軟體測試工程師將不再僅僅是測試程式的編寫者,而是品質管理的架構師和分析師。他們需要具備更廣泛的技能,包括理解需求、風險評估、測試策略制定和AI工具的應用。這樣的角色轉變,將使測試工程師在AI驅動的時代中依然具有競爭力。
加碼!Howard那些在軟體測試領域有趣的事…
對Howard而言,在阿里巴巴有個難忘的工作經驗,由於其軟體測試領域已相對成熟和完善。在業界,軟體開發工程師和測試工程師的比例通常是三比一或四比一,也就是說,一位測試工程師通常需要對應三到四位開發工程師的工作。然而,Howard曾經和另一位測試工程師共同負責一個三十到四十人的專案,這意味著我們的開發與測試比例達到了十五比一。這種高比例的經驗提升Howard此領域的信心。
此外,Howard經常在軟體測試時忘記時間,由於全身心地投入到確保產品品質的工作中。有時候,他早上十一點開始開會,直到意識到需要休息時,已經晚上六點了。在Howard眼中,每個產品和服務的高品質交付,都是他工作投入和熱情的體現。
Howard也分享另個特別有趣的經歷,在街口參與雙十一活動的準備和實施。這個活動是向中國電商節致敬的一次嘗試,他在街口擔任 TPM(技術項目經理)的角色,負責從品質控制和品質保證的角度,確保整個活動的順利進行。這是一次大型的專案,影響到全台灣的電商市場,也標誌著台灣電子支付行業首次參與這類大型活動。
最後,Howard想送後輩一句話,「測試,從來就不是產品上線前的最後一道防線,而是迭代過程中高品質的交付」。在 Howard 眼中,對他而言:「做好軟體測試是一種使命感」,使命感其實是每次將產品釋出後,持續獲取使用者信任的產物。在每次的迭代過程中,確認各環節皆有高品質的交付輸出,是確保整體專案成功的關鍵,Detail matters,也希望大家不忘初心,找到自己的使命感!
最後,Skyline很榮幸地邀請Howard到來與大家分享啦!
立馬報名6/25(二)19:00~21:30的「從大企業到新創的走跳日誌,那些與軟體測試交戰的日子!——OnedaySoftware創辦人Howard」的講座吧!