From http://techblog.youdao.com/?p=769
Star (測試開發工程師)
有道筆記組用敏捷開發兩年多了,對於敏捷,有很多的文章在寫,我就不班門弄斧了,我只說下和我們測試相關的一些情況。
每次迭代,都有大量的測試用例,評審往往要花很多時間,效果不好;產品更新快,開發沒有合適的依據自測,提測的質量沒有預期的好;需求根據市場的需求不斷有改動,所有人都為跟上需求而發愁;需求的內容量大,測試執行的時候會不記得有些功能的設計,如果找文檔速度往往比較慢;准入測試沒有很好的依據,不能在短時間內發現block測試的問題。
像是個魔咒,又像一個怪圈,每次都在抱怨這些問題,然而卻遲遲得不到很好的解決,直到有一天,我們遇到了思維導圖…
思維導圖是英國著名心理學家東尼.博贊在20世紀60年代發明的風靡世界的思維工具。通俗地說,思維導圖是一個簡單、有效、美麗的思維工具。它依據全腦的概念,按照大腦自身的規律進行思考,全面調動左腦的邏輯、順序、條例、文字、數字以及右腦的圖像、想象、顏色、空間、整體思維,使大腦潛能得到最充分的開發,從而極大地發掘人的記憶、創造、身體、語言、精神、社交等各方面的潛能。
思維導圖是一種將放射性思考具體化的方法。放射性思考是人力大腦的自然思考方式,每一種進入大腦的資料,都可以成為一個思考中心,並由此中心向外發散出成千上萬的關鍵點,每一個關鍵點代表與中心主題的一個連接,而每一個連接又可以成為另一個中心主題,再再向外發散出成千上萬的關鍵點,呈現出放射性立體結構。
通常的記錄方式都是線性的,一行一行,一頁一頁的下去,無法體現出來關系,也不能突出中心和重點,更不方便記憶。而思維導圖就是用圖形結構的方式,列出相關內容,並表示出內容之間的關系,並顯示出重點和核心,詳細特點如下:
1. 簡單,易用
2. 關聯,每一思想主意都可能有聯系
3. 可視化,容易記憶
4. 線狀輻射,允許從各個角度展開工作
5. 提綱挈領,幫助我們立足全局把握問題之間的聯系
說了這么多都是在說思維導圖的思想和特點,那結合到我們的應用中,就是使用思維導圖的軟件(見附注),改善我們測試的工作,走出測試的困境。
首先體現在測試用例評審的准備上。使用思維導圖,按思維導圖的思路,將整個功能作為一個中心,相關的作為分支,分支自己又作為一個新的中心,列出和它相關的部分,如此循環,直到窮盡。在列這些的時候,實際上是測試技能本身和思維導圖工具的一種結合。在寫case的時候,是一個從上到下的過程,每一層都進行分類,然后查看分類是否完全,類似MECE的思想,當前層分類和覆蓋足夠以后,再進行下一層。
在使用思維導圖之前的情況是,在你對當前層進行細分的時候,忽然發現上一層好像遺漏掉了什么,於是又要各種的添加補充。當然用excel做這個事情也可以,但是使用excel進行添加,往往需要仔細查找該添加到什么地方,層級關系也不好對應,而且在查找的過程也會打斷原來的思路,不知道原來做到什么地方了,而且后續添加不得不一再的調整格式,添加行,合並單元格…
但是使用思維導圖就簡單多了,發現哪一層少了什么,一眼就能找到,而且添加方便,添加之后並不會影響到之前想到的地方。這個思維導圖列出來,就相當於介於產品文檔和case之間的一個產物,十分清晰的體現出各個功能之間的聯系,如下圖:
然后是用在具體的用例評審。評審是必不可少的一個環節,因為產品、開發、測試三方的理解會有差異,所以需要在評審過程中達成一致。之前的評審,是使用excel,對着一條條的用例進行說明。通常思維導圖上列的一個功能至少對兩條測試用例,每個測試用例至少有兩個操作步驟,當思維導圖最下一層的分支量達到100個的時候, 測試用例 行數往往能達到400行。當一條一條過 測試用例的時候,參與者往往就會陷在具體的 測試用例里,背景,大分類都可能不記得了,時間往往也要2個小時以上,而且如果是用例寫出來之后,過一段時間再做的評審,那么寫用例的人需要很長時間才能記起當時寫用例的思路,但是看思維導圖往往只需要很短的時間就能記起來,而且本身思維導圖的內容也不容易忘記。
當使用思維導圖評審的時候,思維導圖的精簡,內容相關,結構清晰,關聯清楚的特點就一覽無遺了,雖然不是過測試用例(其實測試用例本身是測試同事的事情,如果功能點列的足夠全,又都達成一致的情況下,大家寫出來的用例都是差不多的),但是所有該涉及到的地方都應該包含了。開會的時間往往也會少很多。在評審過程中,如果有錯誤或不一致的地方,當時就可以修改完成,添加修改非常方便。
第三是用在把思維導圖轉換為測試用例。思維導圖是介於需求和測試用例之間的產物,思維導圖會列出所有的功能點和各種組合,已經是很全面了。但是測試用例要求的是有正向反向的測試用例,需要有具體的步驟,所以后面在寫測試用例的時候就根據思維導圖所列的情況,加上步驟,加上正向反向的測試用例,就可以了,而不用像之前那樣,根據需求一條條的想測試用例,又怕漏掉,寫測試用例的工作變的簡單很多。在根據思維導圖寫用例的時候,思路會很清楚,功能之間的關聯,寫過的和沒寫過的部分,剩余多少工作,一目了然。
第四是評審結果的其它應用。評審過的思維導圖可以作為開發自測和測試執行准入測試的依據。要求開發自測一方面是因為bug發現的越早,修改的成本越低,即使同樣是在產品發布之前,由測試人員測試出來的bug還是比開發自測出來的bug的代價要高(當然是指的用簡單的方式就能發現的bug,而不是要做很多嘗試才能發現的);另一方面,開發同事在提交一個測試版本的時候,往往是覺得自己做的已經很好了,而事實上常常會有明顯的遺漏,那根據思維導圖進行自測一下,時間不長,而且又比較全面,比提供給開發的同事一些具體的測試用例效果要好的多。准入測試也和開發自測類似,要求快速,全面,抓住重點,所以按思維導圖執行是個很好的選擇。
關於開發的自測,我還想多說一點。敏捷開發的一個核心實踐和技術是TDD(Test-Driven Development),即測試驅動開發。原理是在開發功能代碼之前,先編寫單元測試用例代碼,測試代碼確定需要編寫什么產品代碼。這當然是個理想的狀態,大部分情況下都達不到。而我們使用思維導圖作為參照並進行自測,實際上算是我們走向TDD的過渡階段,同樣有助於產品的理解和開發質量的提高。
第五是我們還希望這個思維導圖能幫助開發的同事在開發的過程中做一些檢查,看看是否有遺漏的地方,是否有沒有想到的地方(事實上,當我們開發的同事在評審過我們的思維導圖之后,說的最多的就是“這個東西要是早出來就好了”),只是現在我們出圖的時間比較落后,所以還需要進一步的努力。
在合適的場景下使用合適工具,對工作效率會有很大的提升;在不需要工具的場合勉強使用工具,只會讓你的工作更加痛苦。思維導圖使用方便,功能強大,但是也不是在每個場合都需要用到的。比如很小的功能的場合,硬要走這個流程,使用思維導圖,浪費人力。不過對於小的零散的功能,可以列在一個思維導圖里,持續更新,但是不走評審的流程,對於整個測試的積累還是很有用的。
趙本山有一句很經典的話:鞋合不合適,腳知道。套用到我們這里就是,工具好不好用,用的人知道,思維導圖本身是一個很有上手容易,又能給我們帶來很多便利,不妨來嘗試一下吧。
附注:思維導圖的軟件:
imindmap
Mindmanager
iMindMate,簡單、易用、靈巧心智圖軟件,基於數據庫,支持中、日、英。
mindmapper
FreeMind開源導圖軟件
Sharemind 基於FreeMind 二次開發,支持中文
XMIND跨平台的思維導圖軟件,支持多國語言,可以運行在Windows,Mac OS X和Linux三大操作系統上。
Linux下有一款叫VYM的軟件
Mindv,在線軟件,瀏覽器中運行,支持繁,簡中文,英文
novamind
Xmind
此條目由 youdao 發表在 技術分享 分類目錄,並貼了 有道雲筆記、測試、思維導圖 標簽。將固定鏈接加入收藏夾。