軟體測試工程師
出自 MBA智库百科(https://wiki.mbalib.com/)
軟體測試工程師(Software Testing Engineer)
目錄 |
軟體測試工程師是指理解產品的功能要求,並對其進行測試,檢查軟體有沒有錯誤,測試軟體是否具有穩定性,寫出相應的測試規範和測試用例的專門工作人員。
按其級別和職位的不同,可分為三類:
高級軟體測試工程師:熟練掌握軟體測試與開發技術,且對所測試軟體對口行業非常瞭解,能夠對可能出現的問題進行分析評估;
中級軟體測試工程師:編寫軟體測試方案、測試文檔,與項目組一起制定軟體測試階段的工作計劃,能夠在項目運行中合理利用測試工具完成測試任務;
初級軟體測試工程師:其工作通常都是按照軟體測試方案和流程對產品進行功能測驗,檢察產品是否有缺陷。
軟體測試就是使用人工或自動手段,來運行或測試某個系統的過程,其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。軟體測試工程師簡單的說是軟體開發過程中的質量檢測者和保障者,負責軟體質量的把關工作。軟體測試工程師具體工作有:
1、使用各種測試技術和方法來測試和發現軟體中存在的軟體缺陷。測試技術主要分為黑盒測試和白盒測試兩大類。其中黑盒測試技術主要有等價類劃分法、邊界值法、因果圖法、狀態圖法、測試大綱法以及各類典型的軟體故障模型等;白盒測試的主要技術有語句覆蓋、分支覆蓋、判定覆蓋、基本路徑覆蓋等;
2、測試工作需要貫穿整個軟體開發生命周期。完整的軟體測試工作包括單元測試、集成測試、確認測試和系統測試工作。單元測試工作主要在編碼階段完成,由開發人員和軟體測試工程師共同完成,其主要依據是詳細測試。集成測試的主要工作測試軟體模塊之間的介面是否正確實現,基本依據是軟體體繫結構設計。確認測試和系統測試是在軟體開發完成後,驗證軟體的功能與需求的一致性、驗證軟體在相應的硬體條件下的系統功能是否滿足用戶需求,其主要依據是用戶需求。
3、測試人員將發現的缺陷編寫成正式的缺陷報告,提交給開發人員進行缺陷的確認和修複。缺陷報告編寫最主要的要求是保證缺陷的重現。要求測試人員具有很好的文字表達能力和語言組織能力。
4、測試人員需要分析軟體質量。在測試完成後,測試人員需要根據測試結果來分析軟體質量,包括缺陷率、缺陷分佈、缺陷修複趨勢等。給出軟體各種質量特性包括有功能性、可靠性、易用性、安全性、時間與資源特性等的具體度量。最後給出一個軟體是否可以發佈或提交用戶使用的結論。
5、測試過程中,為了更好地組織與實施測試工作,測試負責人需要制定測試計劃,包括有測試資源、測試進度、測試策略、測試方法、測試工具、測試風險等。
6、測試人員為了更好更有效地進行測試,保證測試工作質量,需要在執行測試工作之前首先需要設計測試用例,形成測試用例報告。設計測試用例是保證測試質量的核心工作,很多測試技術都可以用來指導設計用例。
7、為了提高工作效率或提高測試水平,測試工作需要引進自動化測試工具,測試人員需要學會使用自動化測試工具,編寫測試腳本,進行性能測試等。
8、測試負責人在測試工作中,還需要根據實際情況不斷改進測試過程,提高測試水平,進行測試隊伍的建設等。
電腦領域的專業技能是測試工程師應該必備的一項素質,是做好測試工作的前提條件,主要包含三個方面:
1、測試專業技能
測試專業知識很多,本書內容主要以測試人員應該掌握的基礎專業技能為主。測試專業技能涉及的範圍很廣:既包括黑盒測試、白盒測試、測試用例設計等基礎測試技術,也包括單元測試、功能測試、集成測試、系統測試、性能測試等測試方法,還包括基礎的測試流程管理、缺陷管理、自動化測試技術等知識。
2、軟體編程技能
軟體編程技能實際應該是測試人員的必備技能之一,在微軟,很多測試人員都擁有多年的開發經驗。因此,測試人員要想得到較好的職業發展,必須能夠編寫程式。只有能夠編寫程式,才可以勝任諸如單元測試、集成測試、性能測試等難度較大的測試工作。
此外,對軟體測試人員的編程技能要求也有別於開發人員:測試人員編寫的程式應著眼於運行正確,同時兼顧高效率,尤其體現在與性能測試相關的測試代碼編寫上。因此測試人員要具備一定的演算法設計能力。依據資深測試工程師的經驗,測試工程師至少應該掌握Java、C#、C++之類的一門語言以及相應的開發工具。
由於測試中經常需要配置、調試各種測試環境,而且在性能測試中還要對各種系統平臺進行分析與調優,因此測試人員需要掌握更多網路、操作系統、資料庫等知識。
在網路方面,測試人員應該掌握基本的網路協議以及網路工作原理,尤其要掌握一些網路環境的配置,這些都是測試工作中經常遇到的知識。
操作系統和中間件方面,應該掌握基本的使用以及安裝、配置等。例如很多應用系統都是基於Unix、linux來運行的,這就要求測試人員掌握基本的操作命令以及相關的工具軟體。而WebLogic、Websphere等中間件的安裝、配置很多時候也需要掌握一些。
現在的應用系統幾乎離不開資料庫。因此不但要掌握基本的安裝、配置,還要掌握SQL。測試人員至少應該掌握Mysql、MSSqlserver、Oracle等常見資料庫的使用。