首先要說的是,比起目前最復雜的計算機系統,我們生物系統要復雜上不知道多少萬倍。但是,盡管經過數十億年的進化,經過了無數次的自然選擇,生物系統仍然存在瑕疵。人類開創的計算機文明還在一個非常初始的狀態,錯誤也會層出不窮,作為檢出錯誤的有效方法,測試一定會在很長一段時間內一直存在下去。因此,作為一個測試人,我不用太擔心我從事的職業會消失。
測試一直會存在,但未來的測試會是什么樣的呢?James Wittaker曾經在他的博文中說過大意是如下的一段話“幾十年間,開發技術日新月異,開發人員如果離開一線幾年,再跟上形勢就難了,但是90年代的測試人員只需要經過一定的培訓就能適應現在的測試工作。”從這些話里其實可以讀出兩層含義:一、測試工作最根本的部分是很有生命力的,如等價類法,簡直一切系統通吃,且有效;二、測試領域的發展有有些緩慢。
緩慢在哪里呢?首先我們來考慮一下測試工作的最根本目的是什么?我認為測試最根本的目的就是預防并發現保證被測系統的質量。被測系統的質量問題產生于系統被構建的所有環節,根據缺陷放大率理論,越早發現缺缺陷代價越小。但是放眼望去,我們的缺陷主要仍然是在系統開發的中后期被發現的,測試的預防職責并沒有很好的體現出來。
其次,我們構建的系統越來越龐大、復雜、牽一動百。根據經驗,越復雜的系統,bug的影響面越大,為消除這些bug需要作出的測試強度也會越大,有時候會指數級增長,如果手工測試會極大加大測試成本,這時候自動化測試就會變得不可避免。而據我了解,整個業界(也可能是國內)的自動化水平還處在一個相對低下的水平。
最后,其實也是作為測試者最為關注的,基礎測試理論及體系在多年沒有太大發展。自從V模型和W模型形成后,大多數企業都在應用它。隨著開發模式的發展,敏捷測試,測試驅動開發,實例化需求等理念被推出,測試的變革只是這些模式中的一部分,并沒有形成一個適應現代開發的新型測試體系(目前我有點懷疑僅在測試角度上是否能建立起這樣的體系)。
因此“缺陷發現晚“,“檢測成本高”,“測試體系理論有所停滯”是目前測試工作最明顯的短板,也是近幾年測試工作者、乃至整個IT行業共同努力的方向。在業界已經有了比較不錯的理論及技術,如各種優秀的開源自動化框架(Xnuit、selenium、Robot framework、Fitnesse等)、測試及開發方式變更(ET,敏捷,TDD,ATDD,BDD,CI、實例化需求等),只不過還有待深入探索及大力推廣,在這一過程中也會形成一個適應現代系統開發的測試理論。在變革大潮中,測試工作者的工作內容將會發生顯著變化。我們要主動的去擁抱變更,而不是被動的去接受、甚至抵觸,因為潮流是不可逆的。
最后扯一扯測試更遠的未來。高級動物的生物機體發展出了免疫系統來抵御細菌和病毒(可類比bug)入侵,總結一下免疫系統的三個特點:那就是內生、高效和智能。內生指的是不依靠生物體之外的力量來消除bug,高效指的是在bug出現的最初期就產生反應;智能指的是碰上新的bug以后會根據新的bug特性產生抗體并終生免疫。相比我們現在的測試工作就弱多了,我們不是內生,并不高效,依靠的是純粹人腦。在遙遠的未來,也許我們會為我們創造出來的系統制造一套免疫系統,而測試就是這個免疫系統中的重要組成部分。不過。。。那時候這些系統還需要人類么?
原文轉自:http://www.anti-gravitydesign.com