天天看點

測試的三重境界

當我看到王國維先生在《人間詞話》中所談到人生三種境界,我就會有一個問題,軟體測試這項工作的三種境界又是什麼?軟體測試的最高境界是什麼?先讓我們複習一下人生的三種境界:

  Ⅰ.“昨夜西風凋碧樹,獨上高樓,望盡天涯路。”,有遠大志向,不同一般人的志向,高瞻遠矚。

  Ⅱ.“衣帶漸寬終不悔,為伊消得人憔悴。”,為了自己的遠大志向,孜孜以求,努力、勤奮地工作,無怨無悔。

  Ⅲ.“衆裡尋他千百度,蓦然回首,那人卻在,燈火闌珊處。”,反複追尋、研究,專注、下足功夫,自然會豁然貫通、功到自然成。

  三種境界可以看成是一個完整的、成功的人生過程,宏偉目标、奮鬥、收獲。

  聯想到測試,這樣的境界也是适用的。但是,如果更具體地看到這個問題,那麼如何定義其三種境界呢?

  軟體測試簡單地說就是發現軟體中的缺陷,是以從找缺陷的境界看,軟體測試的三重境界是:

  Ⅰ.測試過程中,一直渴望發現缺陷,看到别的工程師發現了不少缺陷,但自己就是發現不了缺陷,比較迷茫。

  Ⅱ.有了更多的測試經驗和技巧,對客戶需求也有較好的了解,測試有針對性,能夠有效地發現缺陷,并能舉一反三,找到更多的缺陷。

  Ⅲ.當水準到了爐火純青的地步,隻要缺陷出現在面前,絕對逃脫不了,而且知道什麼地方會存在缺陷,手到擒來,有缺陷想不發現都難。

  當然,軟體測試不局限于“找bug”,還要跟蹤缺陷、分析缺陷,而且要不斷提高測試效率,如引入自動化測試等。從更全面的角度去看,軟體測試的境界又如何描述呢?在描述之前,需要說明一下,境界和功能是不一樣的,雖然它們之間有關系。能力是掌握了實實在在的知識、技術和工具的程度,而境界更多展現在抽象的形态上,包括心态、思想境界以及處理問題的習慣、自然方式等。下面就讨論一下軟體測試的三層境界。

  第一境界:測試和人是分離的。測試僅僅是一份工作,做測試是被動的,測試工作往往停留在表面上,别人說什麼就什麼,容易受産品設計人員、開發人員等左右。雖然也會學習一些軟體測試知識,但不夠深入,不會主動多問自己幾個“為什麼”。測試過程中很難發現缺陷,發現的缺陷也是比較膚淺的缺陷。發現了缺陷後,也隻是報告出來,不會追究下去,不會舉一反三。也不會主動配合開發人員工作——挖掘缺陷産生的根本原因。

  第二境界:測試和人靠得比較近。喜歡測試,測試工作中有很強的主動性,開始鑽研測試的方法。測試過程中,了解使用者的需求,從使用者需求出發來指導自己的測試,對實作的功能有自己的了解,不再被開發工程師左右。測試過程中,針對性更強,善于思考,能夠采用不同的測試手段來完成測試任務,包括使用測試工具。開發測試腳本來執行測試,提供測試效率。

  第三境界:測試盒人融合在一起。把測試視為自己的一生事業,全身心緻力于測試,真正了解了測試真谛。測試不再隻是發現缺陷,而是對産品品質的評估,發現産品産生的根本原因,幫助整個開發團隊預防缺陷。在工作中,主動和産品設計人員讨論使用者需求,幫助開發人員建立設計規範、代碼規範,督促開發人員遵守規範。建立良好的自動化測試架構,不僅使測試工作更輕松、有趣,還能助開發人員的單元測試一臂之力。利用業餘時間鑽研測試,重新思考現有的軟體測試思想,樹立一套自己認可的思想體系,努力在測試方法上有所創新。這時候,測試不僅出現在工作中,而且出現在生活中,碰到任何一個産品,都會不自覺地檢查它,找到它的不足。對生活中的任何對象,都有一種審視的态度,一種積極的看待問題辦法,包括提出如何改進産品的建議。生活還是樂觀、積極的,而不是抱怨、挑剔,隻是看待問題的角度不同,或不會錯過任何“測試(審視)”的機會。