1. 程式人生 > >怎樣高效地自學軟體測試

怎樣高效地自學軟體測試

我現在在做網路推廣,剛從大學出來沒有找到工作就做了網路推廣,我以前學得是.net軟體開發,我想自學軟體測試,應該從什麼地方入手?

[我的回答]2018年8月20日

題主的疑問應該包括了軟體測試應該學什麼,怎麼才能高效學習等問題。我做測試工作加測試培訓和諮詢工作時間超過了17年,結合自己的經驗和教訓,和大家聊聊高效學習的思路,只是針對的物件是軟體測試。相比起耳熟能詳的什麼記憶術、筆記法、時間策略、情緒管理等高效學習的手段,我認為如何通過結構化思維要求構建自己的測試知識體系,打造個人的核心競爭力更加重要。本文將從下面幾個方面,描述“自學軟體測試怎麼學”問題,供大家參考:

  1. 明確目的

  2. 選擇框架

  3. 填充內容

  4. 持續交付

  5. 不斷迭代

一、明確目的

做任何事情,一定要考慮背後的原因是什麼,對於自學軟體測試並構建測試知識體系也不例外。如果自學軟體測試的原因只是因為周圍的同學在學,或者覺得覺得軟體測試簡單,那很可能的結果是三天打魚兩天晒網,難以長久的堅持下去。

因此,明確題主自學軟體測試的目的就很有必要。假如和題主的動機培養相結合,制訂明確的長遠目標,形成強烈的內在驅動,自學軟體測試並構建測試知識體系,自然就能長時間堅持了。例如:

  1. 一流動機:題主發自內心喜歡軟體測試工作,覺得每天的測試工作能給自己帶來樂趣和成就感;

  2. 二流動機:題主有明確的長遠目標,例如:5年內達到測試管理職位,薪資待遇達到什麼樣的級別等;

簡單而言,題主在一個相對長時間內,會將軟體測試作為自己的一個職業,而不僅僅只是一個工作看待。那麼自學軟體測試可以讓自己充滿熱情,並通過每天獲取的成就感,推動自己長時間的自學。

二、選擇框架

明確了自學軟體測試的目的之後,接下來需要考慮學習什麼。假如題主在軟體測試沒有什麼經驗,自己摸索構建測試知識體系是很困難的。假如其他條件能滿足題主的要求,例如:時間、成本等,選擇一個合適的測試培訓公司,系統的學習測試體系是比較合適的(但更多的時間和精力是在培訓結束之後,將學到的知識通過刻意練習轉化為你的能力)。題主題目中更強調自學軟體測試,首先選擇一個經過實踐經驗的已有框架,通過自上而下的結構化構建方式是比較合適的。例如:

  1. ISTQB測試知識體系:從簡單的軟體測試基礎級別開始,到高階的測試分析師TA、技術測試分析師TTA和測試管理TM,再到專家級的不同領域的更專業深入的測試專題。具體內容可以參考ISTQB官網或國內的CSTQB官網

  2. PTMP測試知識體系:這是我在2009年以後逐步構建和完善的軟體測試知識體系,包括4個維度的內容:測試過程P、測試技術T、測試管理M和人P(屬於通用的軟體測試知識體系,並不涉及行業相關的內容)。詳細內容可以參考“構建高效的軟體測試知識體系”;

  3. 參考經典的測試書籍:看看都有哪些比較通用的框架,國內外可以參考的書籍很多,這裡不做推薦。也可以通過知乎的搜尋功能,有不少知乎牛人羅列了不同級別測試人員可以參考的測試書籍;

  4. 選擇支援工具:構建框架過程更多的是應用結構化思維,因此支援的工具可以選擇Xmind、MindManager、MindMaster等,我更喜歡用MindMaster;

基於已有的測試知識體系框架,隨著你的經驗和能力的不斷提升,就可以不斷改進甚至重新構建屬於你自己的測試知識體系。

三、填充內容

題主選擇了測試知識體系框架之後,接下來對框架進行分層分類,以我的PTMP測試知識體系為例,第二層分類包括:

  1. 測試過程P:例如過程階段和活動、測試文件、測試環境、迴歸測試、指令碼化測試與探索性測試、測試基本原則等;

  2. 測試技術T:例如靜態測試、測試用例分析與設計、測試工具與自動化等;

  3. 測試管理M:例如測試計劃、測試估算、測試風險、缺陷管理、測試度量、測試團隊管理、測試過程改進等;

  4. 人P:例如學習能力、思考能力、解決問題能力、思維能力、溝通能力、寫作能力、時間策略等;

框架經過分層分類之後,基本上得到的是測試過程中的一些關鍵測試域,然後不斷地往框架內填充具體的測試知識:

  1. 選擇優先順序:基於你當前的測試工作要求和經驗,選擇對你而言最迫切和重要的測試關鍵域,例如:測試分析與設計;

  2. 專注一個領域:將主要時間和精力放在選擇出來的高優先順序測試關鍵域,通過一段時間,例如3個月努力學習讓自己入門;

  3. 利用網路資源:除了書籍之外,一定要好好利用豐富的網路資源,例如:知乎的問答、測試牛人的部落格和專欄等;

  4. 選擇支援工具:我常用的是有道雲筆記和印象筆記,收集和整理資料非常方便,而且可以在不同終端使用;

四、持續交付

隨著學習的不斷深入和測試經驗的增加,一定要嘗試不斷地輸出,這也是學習金字塔原理的一個要求。輸出包括:

  1. 撰寫文章:學習到的測試知識,結合你的測試經驗,不斷嘗試通過文章的方式寫出來。自己感覺懂和輸出文章是不一樣的能力層次。通過不斷輸出文章,不僅可以提高你學習測試知識的理解,更可以不斷提高你的寫作能力、思維能力;

  2. 溝通交流:與周圍測試同事交流、參加測試大會或沙龍與其他測試人員面對面討論,都可以讓自己在測試知識的理解和應用上面有新的收穫;

  3. 教授他人:根據學習金字塔原理,主動學習的最高層次是教授他人。也就是說,假如你懂了某塊測試知識,通過認真準備,比如PPT形式,能夠將內容清晰地傳遞給其他人,那就說明對這塊測試知識的瞭解已經有深度了。假如你能以脫稿的方式講解清楚,那就更上一層;

  4. 輸出平臺:個人網站、CSDN部落格、知乎等,對自己有信心,可以開始到外面的企業上課等;

五、不斷迭代

經過上面的幾個步驟,應該可以基本構建了你自己的測試知識體系。但軟體測試知識體系也是不斷動態調整和更新的,而不是一成不變的。隨著知識面的不斷拓寬、測試經驗的不斷豐富,測試知識體系也就越來越完備。特別是在解決測試過程中碰到問題時,不再從單個角度分析和解決問題,而是會綜合應用測試知識體系中的技能,多角度多層次審視問題。

總結一下:自學軟體測試怎麼學

  1. 明確目的:明確你自學的目的,來源你的興趣、長遠目標,還是周圍環境的影響;

  2. 選擇框架:選擇已有的測試知識體系框架,例如ISTQB、PTMP等,再進行改進框架和重構框架;

  3. 填充內容:對框架進行分層分類,選擇對自己最重要的測試域,專注持續學習併入門;

  4. 持續交付:通過文章、交流甚至教授他人方式,快速積累知識體系;

  5. 不斷迭代:不斷動態調整和完善測試知識體系,多角度多層次分析和解決問題;

構建測試知識體系的高效學習方式很清楚,但難在長時間的堅持。同時,學習過程中需要不斷地進行刻意練習,把測試知識轉換成你的能力,測試知識體系才能發揮出它的價值!

分享完畢,希望對大家所有幫助!