測試和測試之間的差別在哪裏

測試和測試之間的差別在哪裏?

大家都是測試工程師,大家會的技能感覺都差不多,爲什麼有的人可以步步高昇,有的人三五年後卻依然在最底層點點點。

是因爲對測試的理解出現了差異,還是所掌握的技術不夠先進,又或者是思想層次不在一個級別?

同樣的一門課,兩個人都學會了,都可以熟練的應用到項目裏,爲什麼有的人就能夠成爲leader,有的人卻只能打雜。

 


[我的回答]

首先,我們先圈定範圍:第一個,題主提到的測試Leader,應該更多的是偏向軟件項目層面的測試管理,甚至是做一部分測試管理的測試人員,其主要工作還是測試分析、設計、執行等任務,而不是測試部門經理之類的角色;第二個,儘管測試團隊有些人是因爲關係或運氣好而步步高昇的,確實存在一些不公平和偏差。但我們這裏探討的是由於人與人之間真的存在差別,從而有的人做Leader,而有的人只能打雜。

 

其次,回答題主提到的“大家都是測試工程師,大家會的技能感覺都差不多”這個問題,這應該只是你的表面感覺而已。就以題主提到的“同樣的一門課,兩個人都學會了,都可以熟練的應用到項目裏”,我們以經常說的黑盒技術中的等價類劃分和邊界值分析爲例,通過培訓,你們兩位都可以熟練的應用到項目中,比如知道怎麼劃分等價類和邊界值,如何組合數據,如何計算覆蓋率等,但這還都是表面的。

 

我們都知道通過培訓或自學學習知識,其能力提升是有層次結構的,從記住、理解、應用(就是題主提到的層次)、分析、評估再到創建這樣不斷提升路徑。你看到的是你已經會應用等價類劃分和邊界值分析了,但是對於另一個人B而言,等價類和邊界值他也會應用,但這只是他整個測試知識體系中很小的一部分(此時B的層次處於差不多創建的層次)。我們都知道,測試過程中應用某些測試技術、測試工具都是爲了更好的解決問題。那麼,等價類和邊界值主要是爲了解決什麼問題?解決測試輸入和輸入組合太多的問題,而窮盡測試又不可能。你可能只是被動的應用了這2兩個技術,而B除了考慮了這2個技術本身,可能還考慮了:

  1. 窮盡測試不可能,通過等價類和邊界值,可以減少輸入和輸入組合;

  2. 基於這2個技術選擇輸入和輸入組合,測試內容還是太多,還需要基於風險的思路選擇測試重點;

  3. 時間還是太有限,通過測試執行再去發現等價類和邊界值方面的問題,效率和有效性太差,要求測試人員前期參與代碼評審,此時等價類和邊界值選擇的輸入可以減少很多;

  4. 根據前期的需求評審和代碼評審發現的缺陷情況,以及分析該部分的質量要求,可能你需要應用等價類和邊界值分析的功能,其重要性很低,因此在資源有限情況,測試人員B可能將它的優先級設置爲很低;

 

從上面的等價類和邊界值應用過程分析,可以看出,你可能只是懂了兩個技術,並被動的應用到測試用例分析和設計過程。而對於B而言,這只是他考慮問題的一小部分,B在應用的時候,已經是置於他構建的整個測試知識體系範疇之下考慮的。但是從你表面看到的感覺兩個都差不多。

 

第三,我們說,每個人都有自己的優點和缺點。假如另一個人B步高升,而我自己在原地踏步,測試人員B一定有很多我所不具備的優勢和能力,這應該是去深入模仿和學習的。人與人之間的差別是很大的,表面的測試工作大家可能都差不多,但更多的不同體現在背後的思維不同。

 

我簡單聊聊要做好測試工作,我們需要從哪些維度去學習知識,並作爲構建測試知識體系的輸入。明確了測試知識體系的構建維度,也就可以從這些層面去查找我和其他人之間的差距在哪裏?

  1. 領域知識:做好測試工作的基礎是你需要深入瞭解軟件產品的行業背景知識,即領域知識。例如我以前是做通訊產品的,那麼瞭解TCP/IP等知識是必須的。而你的測試對象又不是孤立的一個產品,它一定需要和周圍很多不同軟件產品共同集成爲一個更大的系統,因此外圍產品的知識你是否也需要去了解?

  2. 測試過程:測試不再僅僅關注在測試執行上,我們將測試貫穿於整個軟件開發生命週期。因此,你需要知道在整個生命週期內需要做哪些事情,和開發團隊等的關係是什麼?舉個例子:與定義需求的團隊的關係是什麼?輸入輸出之間的依賴關係?與項目管理團隊的關係?輸入輸出之間的依賴關係等;就算是測試執行工作,它也不是孤立的,它是整個軟件開發生命週期內的組成部分,它必定和周圍的所有相關開發活動相關;

  3. 測試技術:測試過程中的每個活動,都需要有適合的測試技術支持,從而可以更好的提高測試效率和測試有效性。例如:測試分析與設計,你就需要選擇合適的測試分析技術和測試設計技術;制訂測試計劃,你必定需要測試估算技術和測試風險技術等的支持;

  4. 測試管理:測試過程中的每個測試活動都是相互依賴和反饋的,因此對整個測試過程的管理和監控就是必須的,包括收集和分析每個活動的測試數據,並基於分析結果與計劃目標進行比較,假如出現大的偏差,必須要採取合適的應對措施活動,以保證測試過程符合計劃中的目標要求。

  5. 人:前面提到的4個維度,最終一定要落實到人身上,即所有的事情都需要測試人員去完成。此時,每個測試人員除了要具備前面的能力之外,還需要具備其他能力,例如:學習能力、思維能力、溝通能力、解決問題能力、時間管理、動機、性格和價值觀等,都會影響你的測試工作。

 

因此,當測試工作中出現A和B差距不斷加大時,大家可以從領域知識、測試過程、測試技術和測試管理,以及關鍵實施的人幾個角度去分析差距的原因,同時,需要將這幾個維度構建成適合自己的知識體系,此時你在考慮問題和解決問題時將會從比較全局的視角看待和分析問題。更多內容,也可以參考我的文章:構建高效的軟件測試知識體系

 

希望,我這個回答能給大家一點思考的思路和方向!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章