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

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


Ⅱ.“衣帶漸寬終不悔,為伊消得人憔悴!保瑸榱俗约旱倪h大志向,孜孜以求,努力、勤奮地工作,無怨無悔。


Ⅲ.“眾里尋他千百度,驀然回首,那人卻在,燈火闌珊處!保磸妥穼、研究,專注、下足功夫,自然會豁然貫通、功到自然成。


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


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


軟件測試簡單地說是發(fā)現軟件中的缺陷,所以從找缺陷的境界看,軟件測試的三重境界是:


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


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


Ⅲ.當水平到了爐火純青的地步,只要缺陷出現在面前,逃脫不了,而且知道什么地方會存在缺陷,手到擒來,有缺陷想不發(fā)現都難。


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


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


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


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