作者:鄭文強

時間:2018年10月19日

生活中的一句話:「道理都懂,但依然過不好這一生」,常常用來形容自己看了很多文章,聽了很多培訓,參加了很多會議,懂了不少道理,但是依然過得渾渾噩噩。包括我自己,以前每年會計劃看多少多少書,但是最後發現書架上有各種類型的書看了不少,但我還是那個我,發現並沒有什麼大的變化。做企業測試內訓和ISTQB認證培訓過程中,有時也會碰到類似的場景:你說的這些測試概念和理念我們都知道啊,測試流程、測試技術和測試管理等方面來來回回就這些內容,我們公司內部都有。但是我們希望你講得內容能夠和我們業務結合,我們要直接落地,要落地,要落地!而我只能是一臉的懵逼和無奈:測試知識確實是很常見的,很普通的東西。

人們總是寄希望於有個什麼特別或神秘的東西,它可以讓我們在很短時間內達到自己想要的成就,得到自己想要的東西,讓我們跨過最重要的努力和刻意練習階段。這也是為什麼《XX速成》、《7天精通XXX》、《21天攀上XXX》等書籍暢銷的原因。很可惜,這樣特別的東西是不存在的。追求這些所謂的「雞湯」,對我們的改變基本上沒有什麼卵用,只是表明了我們內心浮躁和焦慮的狀態,因此沒改變是很正常的。假如靠這些所謂的「雞湯」,只是隨隨便便看了幾篇文章,聽了幾天課程或者參加了一場會議,然後一夜醒來就成為了某個領域的大師,只能說這樣的世界太可怕了!!!

上面只是我的一點吐槽,大家看看就好。

作為在測試行業混跡超過17年的測試混混,還是希望能寫一些文章,能夠幫助到一些剛進入測試行業的新人。今天和大家談談高效學習方法之一的「費曼技巧」, 如何通過費曼技巧高效學習和掌握我們的軟體測試知識。

理查德·菲利普斯·費曼(Richard Phillips Feynman),美國猶太裔理論物理學家,量子電動力學創始人之一,納米技術之父,1965年獲得諾貝爾物理學獎。關於費曼其人其事,大家可以通過網路去了解更多。本文包含下面幾個方面的內容:

一、什麼是費曼技巧;

二、基於費曼技巧的學習過程;

三、費曼技巧為什麼高效;

一、什麼是費曼技巧

費曼技巧作為高效學習的一種方法,其強調的是教學相長,通過教學促進學習的學習策略,屬於主動學習的範疇。簡單而言,費曼技巧指的是:當你在學習任何知識時,如果你能用簡單的話和自己的話,沒有專業術語的情況下,可以向不同的聽眾解釋清楚,那就說明你把這個概念搞清楚了。更粗暴一點的解釋:說人話。當你用人話說出來,並且其他人聽得懂「什麼是什麼」時,說明你對概念把握的很清晰、很準確了。

二、基於費曼技巧的學習過程

基於費曼技巧的學習過程,其主要的步驟包括4個步驟:選擇概念、學習知識、模擬授課,以及簡化/可視化。具體見下圖:

我們以學習「軟體測試的定義」為例,闡述基於費曼技巧的學習過程。

STEP1:選擇概念

確定學習目標,作為剛入門的測試從業人員,想學習什麼是軟體測試的定義。儘管每天都能看到軟體測試書籍或文檔,或者每天都在做軟體測試相關工作,但詳細的測試定義卻並不是很明確。拿出一張白紙,在上面寫下「軟體測試的定義」幾個字,這就是你將要馬上學習的概念。

STEP2:學習知識

選擇概念「軟體測試的定義」之後,接下來需要找到「軟體測試的定義」相關的資料進行閱讀,嘗試記住並理解不同資料提供定義的含義。其中收集的資料包括:

資料1:軟體測試的經典著作《軟體測試的藝術》(The Art of Software Testing)給出的測試定義:程序測試是為了發現錯誤而執行程序的過程。

資料2:IEEE 610 - 1990標準中提供的測試定義:在規定條件下運行系統或組件的過程,觀察和記錄結果,並對系統或組件的某些方面給出評價。分析軟體項目的過程。檢測現有狀況和所需狀況之間的不同,並評估軟體項目的特性。

資料3:ISTQB基礎級大綱中提供的測試定義:測試是一個由生命周期內所有靜態活動和動態活動組成的過程,這些活動包括計劃和控制、分析和設計、實現和執行、評估出口準則和編寫報告、測試的結束工作以及對軟體產品和相關工作產品的評估,其目的包括:發現缺陷、增加信心、提供信息和預防缺陷。

通過對上面資料的學習,接下來需要回答的一個問題:你是否理解了軟體測試的定義?已經理解到什麼樣的程度?此時就需要通過步驟3進行檢驗。

STEP3:模擬授課

模擬你自己就是一位軟體測試方面的講師,面前坐著一位剛入職的測試新手,正望眼欲穿地要聽你講解軟體測試定義這個概念。根據你的理解,用你自己的話,將測試的定義一字一句的解釋給學員聽。判斷一下,是否能順利得講解下去?是否能解釋清楚?講解過程中是否會卡殼?發現自己還有不明白的地方?沒有關係,這很正常。

將卡殼的內容,或者自己也不理解的內容都記錄下來,重新返回到STEP2步驟,逐步將這些內容梳理和闡述清楚。

步驟STEP2和STEP3是一個不斷迭代不斷反饋的過程,不僅可以作為檢驗自己學習效果的反饋機制,也可以檢驗他人的經驗和能力。學習對象(本文指的是軟體測試定義)通過步驟STEP2和STPE3得到不斷的分解,類似於開發過程中對軟體產品的不斷分解和測試過程中對測試對象的不同分解,直到分解到我們可以掌控的顆粒度為止。例如:針對軟體測試的定義,我們以ISTQB基礎級大綱中提供的定義為例,你可能在學習過程中不了解「靜態活動」、「動態活動」、「測試實現」、「工作產品」等概念,同樣你把它們記錄到白紙上。作為一個小的迭代,繼續循環步驟STEP2和STPE3,直到將其中的每個小概念都弄清楚,再將它們集成之後就可以對整體的軟體測試定義有更深入的了解。

假如將費曼技巧的學習過程看成是一個瀑布模型,那麼其中的步驟STEP2和STPE3是其中的增量迭代開發,甚至是敏捷開發模型:更關注個人的主動學習和自我管理,不斷理解的軟體測試定義細分概念(不斷提供可工作的軟體工作產品),通過不斷收集和反饋模擬授課的信息以改進學習知識過程。

那麼,我們可以對軟體測試的定義進行解釋,是否就可以了呢?再想想:我們是否可以用更簡單語言進行解釋?甚至是通過可視化的方式表達出來?

STEP4:簡化/可視化

對於剛入門的測試新手而言,即使我們可以按照ISTQB基礎級大綱中提供的軟體測試定義進行解釋,他們也還是有可能聽得一知半解。我們是否還能有更簡化的方式,或者圖示的方式,讓測試新手理解的更加牢固?這就是簡化和可視化的過程,再高深一點的說法就是可視化思維。可視化思維不僅能對學員的學習上有明顯的促進作用,而且可以幫助提高我們的創造能力。高效的學習過程應該是將隱性的內容顯性化(不斷理解的過程),再將顯性的零散內容結構化(結構化思維的過程),然後將結構化的內容可視化(畫圖即思考的過程)。

三、費曼技巧為什麼高效

費曼技巧在學習實踐上有很高的價值,也有許多人從中受益,最著名的例子,應該就是Scott H.Young,他利用費曼技巧,在一年內自學完MIT計算機專業的全部33門課程。那麼,為什麼費曼技巧在學習方面有這麼高的效率?我覺得至少可以從下面幾個方面考慮:

1:符合大腦的認知規律。大腦認識世界的過程,有點類似於蓋房子的過程,需要一層一層往上蓋的,不可能存在不需要地基和前面樓層的空中樓閣。同樣對於軟體測試知識的學習,也需要這樣一個過程:從記住軟體測試的定義開始,逐步嘗試理解測試的定義,再到將測試定義應用的測試過程中。同樣對於測試的培訓過程,假如想要將測試技術或理念落地,其前提條件是不僅要記住相關的技術或理念,同時理解它們的具體含義以及適合場景,然後再嘗試應用到你的測試上下文中,沒有前面兩步作為基礎,那測試的應用就是空中樓閣。

2:訓練大腦的思維過程。假如按照我們大腦的自然屬性,其思維過程必然是自發性的、發散性的、無自律性的。因此我們的大腦就像是一匹野馬,我們必須要學會控制它。而費曼技巧有助於控制我們的思維過程。首先,費曼技巧明確了目標,我們要學習什麼概念,或者要解決什麼問題;其次,提供了檢驗的標準,我們是否可以通過自己的語言將概念解釋清楚;確定了目標和經驗的標準,通過在學習過程中的不斷迭代和不斷反饋收集的信息,我們就可以知道我們當前的狀態是什麼,與目標之間的差距在哪裡,是否需要採取控制措施以應對目標與當前狀態之間的偏差。這裡就涉及到大腦中的理性人與感性象之間的平衡,而費曼技巧類似於理性人手中的韁繩,有助於控制感性象的自由散漫。

3:思維結果的可視化。我們在學習過程中一定要把重要的內容和關鍵詞寫下來,而不是在大腦中想。因為大家都知道,我們大腦的短期記憶(工作記憶)容量是非常有限的,有點類似於電腦中的內存;大腦本身更重要的工作應該是思考,因此為了優化使用大腦,將學習過程中的重點寫下來,讓大腦騰出空間,做更重要的事情。記錄的過程,在我們的大腦完全記住概念或知識使之成為長期記憶之前(類似於電腦中的硬碟),可以作為我們長期記憶的有效替代。

4:滿足金字塔學習原理。費曼技巧更強調通過教學促進學習,鼓勵的是主動學習過程。通過費曼技巧的模擬教學,可以使學習的吸收率達到90%,也就是屬於學習金字塔原理中主動學習的最高一級。因此,在測試培訓過程中,我經常會要求學員在上課過程中,努力做到:聽進去、寫下來並講出來!不過,從實踐過程看,做到最後一個要求是挺難的。下圖是學習金字塔原理結構圖。

根據上述的費曼技巧描述,可以看出其過程是大腦對學習的內容不斷記憶、理解、應用和教授的過程,是大腦從混沌走向有序、從零散走向結構的過程。混沌和零散是因為儘管在你的大腦中已經有相關的知識或信息,但是沒有經過結構化分層和分類形成系統化的框架。而大腦從混沌到有序再到系統化,是我們不斷的追求,沒有止境,即沒有最好,只有更好。

不管是自學過程中的費曼技巧模擬授課過程,還是測試培訓過程中的轉教別人,其目標都是為了快速學到知識和概念,並不斷應用到實際的測試過程中,去解決測試過程中碰到的各種問題。但不管是學習知識還是解決問題,都是需要一個過程和時間累積的,在科學的訓練方法的基礎之上,通過不斷努力將知識轉換為能力。

我不知道一個人是否真的只是看看書,聽聽別人的演講或觀點,就能真正悟道。如果有,我非常好奇他是怎麼做到的。作為測試從業人員,除了需要不斷閱讀和學習測試相關知識之外,還需要我們放下書本,不斷去觀察、模仿、實踐、反饋、總結、再創新,把學到的或者聽到的內容真正轉變成你自己的東西,形成能真正解決問題的測試知識體系架構,這才是我們學習的目標!

下面兩張圖是關於費曼技巧,我自己的總結框架,也算是對費曼技巧的簡化和可視化過程。


推薦閱讀:
查看原文 >>
相关文章