測試自動化工程師的基本技能
測試自動化工程師通過利用適當?shù)墓ぞ呋蚣夹g技能,與項目團隊密切聯(lián)系,準備、執(zhí)行和報告產(chǎn)品和服務的專業(yè)測試。在其領域內(nèi)有經(jīng)驗的測試自動化工程師能夠利用工具或腳本技能來管理、設計、開發(fā)、執(zhí)行和報告自動化測試。
根據(jù)ISTQB詞匯表(https://glossary.istqb.org/app/en/search/),測試自動化工程師是 "負責設計、實施和維護測試自動化架構(gòu),以及由此產(chǎn)生的測試自動化解決方案的技術演進的人"。
測試自動化工程師具備開發(fā)和測試技能:
- 測試技能
- 需求知識
- 手動測試
- IT技能
- 對SUT的了解
- 解決問題的能力
- 測試自動化工具方面的專業(yè)知識
- 對軟件開發(fā)過程和方法的了解
- 文檔技能
- 對最新的測試自動化趨勢的了解
- 報告技能
- 決策能力
測試技能
以下測試技能和知識領域是優(yōu)秀測試自動化工程師的先決條件。
- 了解項目架構(gòu)的能力,如概要設計、低層設計和網(wǎng)絡架構(gòu)
- 在項目、測試生命周期和測試過程中的經(jīng)驗
- 熟悉發(fā)布、變更和配置管理
- 具備開發(fā)方法的專業(yè)知識,如瀑布、敏捷、DevOps和CD
- 具有管理信息報告、溝通和利益相關者管理方面的知識
- 有能力制定自動化測試策略、計劃和方法
- 功能性、非功能性和手動測試的專業(yè)知識
- 估算、記錄和報告技能
- 有缺陷報告和跟蹤的經(jīng)驗
測試自動化工程師所需的技術技能。
- 擅長使用專業(yè)工具,例如Selenium, requests等用于功能測試自動化,Locust或JMeter用于性能測試。
- 分析功能或非功能需求,必要時與利益相關者和業(yè)務分析師聯(lián)系,對這些需求進行擴展。
- 根據(jù)需要創(chuàng)建自動測試腳本和場景,以測試功能或非功能需求。
- 執(zhí)行技術測試,分析和展示結(jié)果。
- 診斷測試中發(fā)現(xiàn)的問題。
- 安裝技術測試工具,進行工具使用的概念驗證工作,配置測試環(huán)境。
- 理解解決方案或系統(tǒng)架構(gòu)的主要組成部分。
- 能夠確定技術測試在SDLC中的位置。
- 有編碼或腳本語言的經(jīng)驗。
- 制作技術測試計劃(如自動化或性能測試)和技術測試退出報告。
- 創(chuàng)建自動化測試框架并指導其團隊使用該框架。
- 能夠有條不紊地和創(chuàng)造性地處理技術測試挑戰(zhàn)。
- 充當經(jīng)驗不足的測試自動化工程師的導師或教練。
- 報告進展情況并升級問題。
- 至少有一種創(chuàng)建和加載大量測試數(shù)據(jù)的方法的經(jīng)驗。
- 進行同行評審。
- 應用敏捷技術。
- 持有 ISTQB 高級測試自動化工程師或 ISTQB 高級技術測試分析師和特定工具的認證。
業(yè)務和需求知識
了解業(yè)務需求的好處:
- 識別測試自動化的業(yè)務關鍵場景。
- 理解解決方案以開發(fā)有效的自動化測試。
- 識別正確的測試自動化框架。
- 設計可擴展的自動化套件。
手動測試技能
- 識別手動和自動測試
- 識別回歸測試的場景
- 選擇高投資回報率測試
- 分離耗時的測試,如數(shù)據(jù)驅(qū)動或多瀏覽器的測試
- 更好地理解手動和自動測試
- 手動干預以解釋自動化測試結(jié)果
技術技能
- 熟練掌握編程語言,Python是自動化測試使用最多的語言,也是目前多數(shù)變成語言排名中第一的語言,強烈建議掌握。除了python,掌握c/c++,go,java等編譯語言也有幫助,下圖中排名前8的可以視為主流語言,前4的為核心語言。
- 從數(shù)據(jù)庫中檢索特定信息的SQL語言
- 良好的編碼技能
- 對自動化測試腳本的良好理解
- 精通測試自動化框架
- 對自動化工具有詳細的了解
- 調(diào)試技能
- 對平臺的了解,如內(nèi)部部署、云和混合平臺
- 環(huán)境經(jīng)驗,如開發(fā)、測試和生產(chǎn)
- 對IT基礎設施的了解
- 有工具安裝和配置的經(jīng)驗
- 閱讀和理解SUT架構(gòu)的能力
- 有自動化框架架構(gòu)的經(jīng)驗
- 具有PoT和PoC方面的專業(yè)知識
對被測系統(tǒng)的了解
- 功能和非功能的要求
- 開發(fā)SUT的編程語言
- SUT架構(gòu)
- 使用的接口、網(wǎng)絡服務和API
- 應用程序的功能和特點
- 數(shù)據(jù)庫
- 當前SUT的測試流程
- 發(fā)布環(huán)境
- 應用程序的復雜性
- 領域和部門
- 法規(guī),如《網(wǎng)絡內(nèi)容可及性指南》(WCAG)和《健康保險可及性和責任法案》(HIPAA)。
- 合規(guī)性,如針對瀏覽器、操作系統(tǒng)、移動和網(wǎng)絡的合規(guī)性
解決問題和決策能力
- 問題定義
- 調(diào)查問題的原因
- 確定解決方案
- 對解決方案進行優(yōu)先排序
- 選擇一個解決方案
- 實施選定的解決方案
這需要
- 積極傾聽和分析
- 研究和調(diào)查
- 創(chuàng)造性
- 積極的態(tài)度和能力
- 溝通
決策是編碼、測試管理和系統(tǒng)設計的重要部分。這是所有級別的測試自動化專業(yè)人員應具備的基本技能。決策是以算法或啟發(fā)的方式進行的。算法是一套精確的規(guī)則和條件,永遠不會改變,而啟發(fā)式是一套規(guī)則,可能會隨著時間的推移而改變條件。
初級水平
- 什么是5位數(shù)的最大素數(shù)?你是如何得出這個答案的?
- 覆蓋整個地球所需的最少衛(wèi)星數(shù)量是多少,為什么?解釋你的理由。
高級水平
- 請舉例說明你在項目中遇到的問題以及你是如何解決的。
- 你會如何管理一個不滿意的經(jīng)理、利益相關者或客戶?
測試自動化工程師需要良好的問題解決和決策能力以及技術知識才能取得成功。在自動化測試設計階段,測試自動化工程師會遇到一些場景,以創(chuàng)建涵蓋許多可能結(jié)果的腳本,包括積極的、備用的和錯誤處理的場景。在開發(fā)更好、更有效的自動化測試腳本以處理實時場景方面,良好的問題解決能力是一個優(yōu)勢。
測試自動化工具的知識
測試自動化工程師被要求熟練使用自動化工具和基礎編程語言。在實踐中,大多數(shù)項目和組織都會選擇業(yè)內(nèi)廣泛使用的工具和框架,測試自動化工程師被期望熟悉它們。
大多數(shù)工作描述都明確要求具備這些測試工具的專業(yè)知識,因為它們有活躍的社區(qū)支持,并提供即時的結(jié)果。定制的(根據(jù)客戶要求定制的)測試自動化工具和框架提供了許多好處和優(yōu)勢。掌握這些工具的專業(yè)知識可以減少自動化工作,提高進行PoC的能力。對自動化工具的事先了解避免了已知平臺的PoC,并提供了即時的回報。
在目前的環(huán)境中,公司和利益相關者期望快速的投資回報率以及快速和高質(zhì)量的交付成果,而自動化工具的專業(yè)知識是滿足這些利益相關者期望的一個額外優(yōu)勢。作為一名熟練的測試自動化工程師,在領先的/流行的自動化測試工具方面具有深入的技術知識和經(jīng)驗是必須的。測試自動化工程師還需要對工具的設置和基礎設施要求提出建議,如硬件、許可、安裝和配置。
軟件開發(fā)過程和方法的知識
瀑布、DevOps和敏捷的工作方式不同,缺乏這些過程的經(jīng)驗會影響到交付自動化測試的能力。對開發(fā)過程的良好了解會增強測試自動化工程師的職業(yè)生涯,而認證Scrum Master或認證產(chǎn)品負責人等證書會提供額外的優(yōu)勢。
測試自動化工程師還需要具備測試不同階段的專業(yè)知識,如測試計劃、設計、執(zhí)行、缺陷管理和報告。自動化測試遵循與軟件開發(fā)相似的生命周期:規(guī)劃、設計、執(zhí)行、維護和結(jié)束。
文檔、交流和報告技能
文檔和報告是任何測試自動化工程師的兩個關鍵技能。自動化測試策略、計劃和方法是自動化測試中涉及的基本文件。好的文件可以向利益相關者傳達明確的信息。自動化的資金和批準往往受制于良好的、清晰的文件,糟糕的文件影響決策過程。
另一個關鍵文件是測試報告,其中大部分是可以自動化的。自動化的測試執(zhí)行報告很容易管理,因為它們被安排自動創(chuàng)建和分發(fā),不需要任何人工干預。
文檔在很大程度上被許多開發(fā)和測試項目所忽視。然而,記錄良好的自動化測試為PoC、維護和錯誤修復的決策增加了價值。測試自動化工程師是測試腳本的開發(fā)者,他們的代碼必須被記錄下來,并在同行評審中進行評論,以支持團隊協(xié)作。
良好的溝通和協(xié)作是一個測試自動化工程師的基本技能。這對測試自動化工程師和其他團隊成員之間的團隊聯(lián)系很重要。具有有效溝通的測試報告對于建立與利益相關者的信任至關重要。請參考第1章中的利益相關者管理。
對測試自動化最新趨勢的了解
自動化測試在不斷發(fā)展,從 "記錄和回放 "到先進的自動化套件,從簡單的工具到高度復雜的框架,從手動測試到無代碼腳本。供應商的眼光超越了當前的市場,為未來的需求發(fā)布自動化工具。測試自動化工程師會走在趨勢的前面,并更新自己,以便站在最新的發(fā)展上。最佳實踐、標準、指南、自動化測試框架、工具和腳本開發(fā)流程都在不斷發(fā)展。測試自動化正在迅速向人工智能、ML和機器人發(fā)展,了解最新的趨勢、工具、產(chǎn)品等非常重要。最新的趨勢提供了了解不斷變化的挑戰(zhàn)并采取相應行動的機會。
技術的變化很快,要跟上技術的發(fā)展是很有挑戰(zhàn)性的。專業(yè)機構(gòu),如敏捷聯(lián)盟、計算機工程師和技術員協(xié)會以及BCS組織活動,以創(chuàng)造對新興趨勢的認識和討論。此外,知名從業(yè)者的書籍、觀點和文章是很好的信息來源。知名出版物和在線網(wǎng)站,如LinkedIn,定期發(fā)布最新趨勢。技術社區(qū)與IT會議一起是最新趨勢的良好來源。工具供應商積極與自動化測試從業(yè)人員聯(lián)系,以評估新的工具,給他們一個絕好的機會來親身體驗即將到來的工具功能。
要流利閱讀英文資料,摒棄使用百度的陋習。
輝煌你的職業(yè)生涯
- 測試的基本原理。建立優(yōu)秀的測試和測試自動化的基礎知識是非常重要的。
- 測試認證,例如ISTQB。認證有助于系統(tǒng)地建立基礎和高級知識。它通常被認為是測試自動化工作的先決條件,也是建立成功職業(yè)生涯的基礎。51testing、澤林,北大青鳥之類的培訓經(jīng)驗盡量不要寫到簡歷上,帶壞了方向。
- 與測試自動化相關的網(wǎng)站 - 有很多專門的自動化網(wǎng)站可以學習。
- 書籍 - 另一個很好的知識來源。
- 參加研討會 - 這有助于建立有關測試自動化的各種產(chǎn)品和服務的知識。測試會議是與其他測試自動化專家交流并發(fā)現(xiàn)最新趨勢的好地方。
- 測試策略和計劃 - 計劃是任何測試自動化的關鍵,測試自動化工程師和中小企業(yè)應在測試自動化計劃方面有良好的經(jīng)驗。
- 測試自動化和自動化測試的基礎知識。以下領域是測試自動化的關鍵。
- 獲得自動化認證
- 學習編程語言
- 建立編碼技能
- 了解測試自動化框架
- 測試腳本的靜態(tài)審查和代碼審查
- 修改現(xiàn)有的腳本
- 使用沙盒來練習自動化
- 開發(fā)框架
- 尋求有實際企業(yè)經(jīng)驗導師的指導
- 自動化的應用程序,包括登錄
- 創(chuàng)建一個計劃并與你的導師一起審查
- 創(chuàng)建一個簡單的框架
- 開發(fā)異常處理和報告等功能
- 學習工具,如Selenium、Appium、requests和Locust
- 找工作。這也可以用來測試市場,測試你在市場上的價值。
- 創(chuàng)建一份簡歷。
- 獲得一兩個推薦
- 保持一個活躍的LinkedIn個人資料。
- 在招聘網(wǎng)站上注冊。
- 參加面試和參加模擬面試。
- 加入你所在單位的面試小組;你總是可以從優(yōu)秀的候選人身上學習。
- 在你的職業(yè)生涯中不斷成長。
- 學習新的框架。
- 學習新的工具。
- 加入社區(qū)。
- 通過網(wǎng)絡提升知名度。