不知不覺間做軟體測試已經將近兩年了,這兩年間在QA這個工作崗位上學到了不少東西。下面是我對軟體測試一點感悟。
相對於開發,軟體測試通常給人的印象是:技術含量低,枯燥乏味,大量的重複工作,將來的職業發展局限性大⋯⋯的確軟體測試工作存在這樣的問題。但是任何事情都是相對的,要把軟體測試這份工作做到出色也並非易事。軟體測試需要工程師掌握廣泛的知識面,發散思維,以及對新知識的快速學習能力。
以我的親身體驗來講,入行前我對軟體測試的理解就是找出軟體中的bug。入行後,才發現軟體測試工程師要參與到項目的各個階段:需求分析,文檔review,FC,Beta,RC,GM,直至最後產品的release,以及release後產品各個版本的升級。對於每個feature的理解程度,甚至項目架構的瞭解程度決定了軟體測試工程師所找出的bug的品質和數量。同時與Dev的溝通和交流也有利於找出和narrow down出bug,以及最後的fix bug。養成閱讀release note及組裡面其他人報的bug,尤其是高手所報的bug的習慣非常有利於軟體測試工程師的成長。
之所以說軟體測試工程師需要掌握廣泛的知識面,是因為軟體開發設計作業系統,底層的資料存放區,前端的設計,以及使用者體驗。作為一名軟體測試工程師或多或少都要對這些知識有所瞭解。有一段時間我做安全性測試,在此期間我瞭解了安全性測試的基本概念,學會了XSS,JS攻擊等安全性測試手段。在做自動化測試時,需要學習一些指令碼語言以及自動化測試載入器。
項目的不同階段對於測試的要求的側重點有所不同,如FC和Beta Accept之前,需要深入的測試所有的feature,儘可能的dig出所有的bug。到了RC和GM階段測試則要最廣的範圍,保證產品的穩定性。這時候設計良好的測試案例就發揮作用了,它能幫你從之前遺忘或忽略的角落裡找出bug。週期性迴歸測試也能起到保證產品穩定性的作用。
以上便是到目前為止我對軟體測試的一些淺顯的感悟。我相信隨著今後工作的進一步深入我對軟體測試會有更深刻的理解。