近年來,由於IT行業的人才稀缺,越來越多人轉向了IT相關職業。由於IT軟體業的薪資較高,吸引了不少人選擇了IT軟體專業,IT軟體專業包括軟體開發、Java工程師、軟體測試工程師等。
從薪資來說,軟體測試工程師相比軟體開發類的職業會偏低一點,但是它的難度性也會偏低,而且,隨著技術的不斷積累發展為測試架構師,薪資待遇絕對上升一個臺階,所以不少人選擇了軟體測試工程。那麼在轉向這個專業的同時,首先還是得了解它主要是做什麼的,需具備哪些職業素質。
軟體測試工程師主要是負責理解產品的功能要求,並對其進行測試,檢查軟體有沒有錯誤(Bug),決定軟體是否具有穩定性(Robustness),寫出相應的測試規範和測試案例。簡單的說,軟體測試工程師在一家軟體企業中擔當的是「質量管理」角色,及時糾錯及時更正,確保產品的正常運作。
下面我們就來具體了解下一個完整的測試流程中,測試工程師到底要幹些什麼?
需求分析
需求分析由產品人員制定,他們要做的不是一份簡單的文檔,而是細化每一個功能的細節,每一個按鈕的位置,對於稍大或複雜一點的需求都進行建模。
需求評審
需求評審(產品需求人員、開發人員、測試人員、設計人員)前期需求進入會大大增加測試人員對產品的功能的整體把握,現在測試人員擔任的是測試和產品體驗員的身份。測試人員提出需求,開發人員考慮功能實現的方案與可行性、當然開發負責也是要參與的。測試人員主要是對需求的理解提出疑問,以便才能根據需求寫用例。QA人員是最終對軟體質量進行驗證的人,所以也需求了解需求。
開發人員編寫排期
開發人員需求根據需求功能點進行排期。然後將開計劃轉交給測試人員。
測試計劃排期
測試人員根據開發計劃,對測試具體測試時間,也就是開發功能完成後的時間,進行幾輪測試等。然後,把項目的開發與測試計劃發送給各部門負責人及參與項目的所有人員。
編寫測試用例
根據詳細的需求分檔,開始進行用例的編寫。
【開發人員寫開發計劃--》測試人員編寫測試計劃--》郵件通知所有人員及部門負責人。】
用例評審
在用例進行評審之間,先以郵件形式將用例發送給相關人員,以便他們事先了解用例對哪些功能進行驗證以及驗證的細節。
然後,測試人員組進行用例評審,開發人員對用例與實際功能不符合有哪些,產品人員對會通過用例對功能的具體實現進行把握等等。
【測試用例評審(產品需求人員、開發人員、測試人員、QA人員)】
提交基線
開發人員完成所有功能後,會對自己的功能進行一個自測。自測完成後提交測試人員進行基線。【開發代碼及自測---》編寫測試用例】
具體測試流程
開發人員對於基到測試線的功能進行測試,發現的問題通過缺陷管理工具進行反饋,開發人員對問題進行修復,然後,準備第二輪測試。
測試人員完成第一輪測試後,需要寫測試結論,發到相關人員。然後對基線後的第二輪進行測試,第二輪會對第一輪中發現的問題進行重點回歸。
測試具體流程如下:
1 、測試和發現軟體中存在的軟體缺陷
使用各種測試技術和方法來測試和發現軟體中存在的軟體缺陷。測試技術主要分為黑盒測試和白盒測試兩大類。
其中黑盒測試技術主要有等價類劃分法、邊界值法、因果圖法、狀態圖法、測試大綱法以及各類典型的軟體故障模型等;白盒測試的主要技術有語句覆蓋、分支覆蓋、判定覆蓋、基本路徑覆蓋等;
2 、測試工作需要貫穿整個軟體開發生命周期
完整的軟體測試工作包括單元測試、集成測試、確認測試和系統測試工作。
單元測試工作主要在編碼階段完成,由開發人員和軟體測試工程師共同完成,其主要依據是詳細測試。集成測試的主要工作測試軟體模塊之間的接口是否正確實現,基本依據是軟體體系結構設計。確認測試和系統測試是在軟體開發完成後,驗證軟體的功能與需求的一致性、驗證軟體在相應的硬體條件下的系統功能是否滿足用戶需求,其主要依據是用戶需求。
3 、缺陷報告編寫及提交
測試人員將發現的缺陷編寫成正式的缺陷報告,提交給開發人員進行缺陷的確認和修復。缺陷報告編寫最主要的要求是保證缺陷的重現。要求測試人員具有很好的文字表達能力和語言組織能力。
4、軟體質量分析
測試人員需要分析軟體質量。
在測試完成後,測試人員需要根據測試結果來分析軟體質量,包括缺陷率、缺陷分布、缺陷修復趨勢等。給出軟體各種質量特性包括有功能性、可靠性、易用性、安全性、時間與資源特性等的具體度量。最後給出一個軟體是否可以發布或提交用戶使用的結論。
5、測試計劃制定
測試過程中,為了更好地組織與實施測試工作,測試負責人需要制定測試計劃,包括有測試資源、測試進度、測試策略、測試方法、測試工具、測試風險等。
6、測試用例報告形成
測試人員為了更好更有效地進行測試,保證測試工作質量,需要在執行測試工作之前首先需要設計測試用例,形成測試用例報告。設計測試用例是保證測試質量的核心工作,很多測試技術都可以用來指導設計用例。
7 、自動化測試工具引進
為了提高工作效率或提高測試水平,測試工作需要引進自動化測試工具,測試人員需要學會使用自動化測試工具,編寫測試腳本,進行性能測試等。
8 、測試水平提高
測試負責人在測試工作中,還需要根據實際情況不斷改進測試過程,提高測試水平,進行測試隊伍的建設等。
缺陷管理
使用bug缺陷管理工具,redmine項目管理,通過測試對發現的問題提交到redmine上並進行跟蹤。視情況可以將比較簡單的bug直接對接開發人員,通過當面交流的方式闡明簡單bug的問題所在,提高開發人員修復bug的效率,同時要在redmine上做好bug記錄,發布測試新的版本的時候覆測問題。
測試管理
經過兩到三輪或四輪的測試後,直到沒發現新的問題,或暫時無法解決,或不緊急的問題。通過上級確認,可以通過。編寫測試報告與驗收方案。
驗收方案是交由QA進行驗證的。在現公司的流程中是將測試與QA分開的,測試人員重點關注的是功能是否可以正常運行。QA關注的是整個流程的質量以及最終用戶的質量。有些公司QA與測試是不區分的,但這對測試的要求會更高,除了關心功能,還需要關心整體流程與質量。
上線後測試
產品上線後需要再次測試產品的功能性,確保發布線上的環境配置正確,產品功能流暢。這是我們一個面向大眾用戶的網站,給於測試人員的定位是測試員兼用戶體驗員,測試員將發現的bug和體驗問題提交到缺陷管理系統,由經理對問題進行分析,指派開發人員解決。定期對系統進行更新。(測試人員以用戶的角度出發體驗功能完整性和功能流暢度以及功能的體驗,為產品的長期發展起到一個促進的作用!)
總結:
軟體測試現已成為新薪熱門行業,行業前景發展迅猛,在很多企業的開發團隊中,測試人員的地位也越來越重要,測試人員把控著產品的質量,驅動著開發的流程。國際標準開發團隊的開發人員和測試人員的比例為1:1,而我們國內卻是8:1,一個測試人員要對方8個開發人員。巨大的測試人才缺口期待我們的選擇。