譯者前言:大概是2008年年底的時(shí)候,我和一位幾乎在Sun工作了一輩子的工程師有過(guò)交流(那時(shí)候Sun即將被收購(gòu),他很低落),他詳細(xì)的講解了Sun的內(nèi)部測(cè)試架構(gòu),其中提到了Sun在幾十年中自主研發(fā)了大量自動(dòng)化測(cè)試工具,所以我產(chǎn)生了一個(gè)疑問(wèn):自動(dòng)化測(cè)試不是近幾年興起的概念嗎?自動(dòng)化測(cè)試的地位和作用是什么?自動(dòng)化測(cè)試能否解決測(cè)試面臨的問(wèn)題?這幾年我對(duì)測(cè)試的理解又提升了,正好又看到James Bach的文章《What is Test Automation?》,我與他觀點(diǎn)近似,翻譯出來(lái)給大家看看,歡迎討論。

  測(cè)試自動(dòng)化是任何利用工具來(lái)輔助的測(cè)試,幾乎在計(jì)算機(jī)工業(yè)產(chǎn)生的第,這種測(cè)試出現(xiàn)了。而且歷史上從來(lái)沒(méi)有出現(xiàn)過(guò)“測(cè)試自動(dòng)化取代測(cè)試工程師工作”這種事情發(fā)生,除非你完全忽略測(cè)試人員們的真正工作。

  基于同樣的原因,自動(dòng)空間探測(cè)器從來(lái)都不是用來(lái)“取代太空科學(xué)家的工作”,他們只是拓展了科學(xué)家的探索范圍。自動(dòng)化測(cè)試也是意味著拓展了測(cè)試者的探索范圍。

  測(cè)試自動(dòng)化根本不是新生事物(轉(zhuǎn)著圈兒的同意??譯者Orz),獨(dú)立測(cè)試工程師的理念都要比它新。在很久以前,大約在上世紀(jì)40年代末期,獨(dú)立測(cè)試工程師根本沒(méi)有出現(xiàn)。開(kāi)發(fā)人員自己測(cè)試程序。到了六十年代,關(guān)于測(cè)試的論文(比如IFIPS會(huì)議中的那些)都是在論述開(kāi)發(fā)人員如何測(cè)試他們自己的程序。測(cè)試(test)和調(diào)試(debug)這兩個(gè)概念也沒(méi)有被區(qū)分開(kāi)。隨著軟件系統(tǒng)的規(guī)模越來(lái)越大,獨(dú)立測(cè)試的理念還是變得時(shí)髦起來(lái)。在1972年的Chapel Hill,關(guān)于軟件測(cè)試的第一次會(huì)議召開(kāi),這次會(huì)議推動(dòng)了軟件測(cè)試開(kāi)始作為獨(dú)立于開(kāi)發(fā)的技術(shù)被討論。

  不過(guò)在這個(gè)會(huì)議上,我想他們把一件事情搞錯(cuò)了。是他們對(duì)測(cè)試自動(dòng)化寄予了很多期望和熱情。這種期望后沒(méi)有成功實(shí)現(xiàn),不過(guò)不是因?yàn)槿鄙賹?shí)踐,而是缺乏足夠好的理解。

  他們沒(méi)有理解的,同時(shí)也是許多同時(shí)代程序員(我覺(jué)得到很多程序員也沒(méi)有理解??譯者)沒(méi)有理解的是:好的軟件測(cè)試,天然的,必然的是一種人類(lèi)活動(dòng),必然的,而不是偶然的。測(cè)試是一種社會(huì)活動(dòng),一種心理活動(dòng)。軟件越復(fù)雜,人在使用和識(shí)別軟件問(wèn)題上的作用越大。但是Chapel Hill會(huì)議被那些受訓(xùn)練為程序員和電子工程師的人占據(jù)了,這個(gè)會(huì)上缺乏那些懂得如何去思考的人。

  (誰(shuí)是這種會(huì)思考的人? Jerry Weinberg. 他的論文1965 Ph.D. thesis on problem solving簡(jiǎn)直太棒了。他在1970年寫(xiě)了計(jì)算機(jī)編程心理學(xué),包含了一系列關(guān)于60年代的軟件測(cè)試的論文。在他1961年的書(shū),軟件開(kāi)發(fā)基礎(chǔ)中,他專門(mén)用一章討論軟件測(cè)試。很遺憾Jerry沒(méi)有參加Chapel Hill會(huì)議,但是他參加了在多倫多的CAST會(huì)議)

  受訓(xùn)的獨(dú)立測(cè)試人員的理念要比自動(dòng)化測(cè)試的理念還要新,但是和測(cè)試自動(dòng)化比起來(lái),這個(gè)理念的接受程度還不夠,因?yàn)閷?duì)測(cè)試人員的培訓(xùn)實(shí)在是太糟糕了!(我們國(guó)內(nèi)又何嘗不是??譯者)

  所以有人理解測(cè)試是一種簡(jiǎn)單的技術(shù),測(cè)試是保證對(duì)API的調(diào)用不會(huì)讓程序像個(gè)不受控的野獸一樣滾到不知哪里去。這種理念還在那,我是說(shuō)微軟。我老婆到現(xiàn)在還得讓我來(lái)幫她做微軟Office軟件的問(wèn)題定位。我被告知,Microsoft Office,一個(gè)仍然在膨脹中的軟件,是由那些沒(méi)有系統(tǒng)學(xué)習(xí)過(guò)軟件測(cè)試的開(kāi)發(fā)人員,在那些“自動(dòng)化測(cè)試工具”的支持下寫(xiě)出來(lái)的。(好在我的同事,Michael Bolton??這哥們是不是唱歌也不錯(cuò)?譯者Orz??近在微軟開(kāi)了一堂測(cè)試課,所以,也許,還有希望)

  測(cè)試自動(dòng)化無(wú)法再現(xiàn)測(cè)試工程師構(gòu)想測(cè)試、控制測(cè)試、修改測(cè)試、觀察和評(píng)估產(chǎn)品時(shí)的那些創(chuàng)造性思維。測(cè)試自動(dòng)化不能完成那些高質(zhì)量的測(cè)試。所以,測(cè)試自動(dòng)化從來(lái)不意味著:把那些測(cè)試工程師提供的服務(wù)自動(dòng)化。

  總之一句話,測(cè)試自動(dòng)化意味著使用測(cè)試工具。測(cè)試自動(dòng)化是個(gè)古老的理念,獨(dú)立測(cè)試工程師的理念比這個(gè)要新。業(yè)界現(xiàn)在還沒(méi)有嘗試過(guò)(除了在很小的內(nèi)部范圍)系統(tǒng)的培訓(xùn)測(cè)試人員,他們僅僅把職位命名為“測(cè)試工程師”或者“開(kāi)發(fā)測(cè)試工程師”,然后把一些他們都不熟悉的測(cè)試工具丟給他們,然后一廂情愿的希望他們可以努力!Fighting!

  (另外,我也是程序員。我用我的Apple II電腦敲程序,這比我聽(tīng)說(shuō)assemblers這個(gè)東東還要早。在上世紀(jì)90年代早期,我在Borland C++項(xiàng)目帶領(lǐng)Borland Turbo Debugger測(cè)試組??Debugger是給開(kāi)發(fā)人員使用的調(diào)試工具,說(shuō)明James對(duì)開(kāi)發(fā)人員的工作很了解。譯者??在這之前,我在蘋(píng)果公司帶領(lǐng)測(cè)試工具開(kāi)發(fā)組。開(kāi)人人員測(cè)試,基于GUI的自動(dòng)化測(cè)試,不基于GUI的自動(dòng)化測(cè)試,這些東西我都做過(guò)。

  我的這些經(jīng)歷甚至給我?guī)?lái)了一些新問(wèn)題,當(dāng)我面對(duì)新一代測(cè)試人員??指受訓(xùn)獨(dú)立測(cè)試人員,譯者注??和那些沒(méi)用過(guò)所謂的自動(dòng)化測(cè)試工具的開(kāi)發(fā)人員時(shí),我顯得有點(diǎn)缺乏耐心)

  譯者:James Bach的意思是,應(yīng)該是獨(dú)立測(cè)試工程師革自動(dòng)化測(cè)試的命,而不是反過(guò)來(lái)。50年前自動(dòng)化測(cè)試沒(méi)有解決的問(wèn)題,可以解決了嗎?歡迎討論。