James Bach:什么是測(cè)試自動(dòng)化?
譯者前言:大概是2008年年底的時(shí)候,我和一位幾乎在Sun工作了一輩子的工程師有過交流(那時(shí)候Sun即將被收購(gòu),他很低落),他詳細(xì)的講解了Sun的內(nèi)部測(cè)試架構(gòu),其中提到了Sun在幾十年中自主研發(fā)了大量自動(dòng)化測(cè)試工具,所以我產(chǎn)生了一個(gè)疑問:自動(dòng)化測(cè)試不是最近幾年興起的概念嗎?自動(dòng)化測(cè)試的地位和作用是什么?自動(dòng)化測(cè)試能否解決測(cè)試面臨的問題?這幾年我對(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)沒有出現(xiàn)過“測(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è)試工程師根本沒有出現(xiàn)。開發(fā)人員自己測(cè)試程序。到了六十年代,關(guān)于測(cè)試的論文(比如IFIPS會(huì)議中的那些)都是在論述開發(fā)人員如何測(cè)試他們自己的程序。測(cè)試(test)和調(diào)試(debug)這兩個(gè)概念也沒有被區(qū)分開。隨著軟件系統(tǒng)的規(guī)模越來(lái)越大,獨(dú)立測(cè)試的理念還是變得時(shí)髦起來(lái)。在1972年的Chapel Hill,關(guān)于軟件測(cè)試的第一次會(huì)議召開,這次會(huì)議推動(dòng)了軟件測(cè)試開始作為獨(dú)立于開發(fā)的技術(shù)被討論。
不過在這個(gè)會(huì)議上,我想他們把一件事情搞錯(cuò)了。就是他們對(duì)測(cè)試自動(dòng)化寄予了很多期望和熱情。這種期望最后沒有成功實(shí)現(xiàn),不過不是因?yàn)槿鄙賹?shí)踐,而是缺乏足夠好的理解。
他們沒有理解的,同時(shí)也是許多同時(shí)代程序員(我覺得到今天很多程序員也沒有理解——譯者)沒有理解的是:好的軟件測(cè)試,天然的,必然的是一種人類活動(dòng),必然的,而不是偶然的。測(cè)試是一種社會(huì)活動(dòng),一種心理活動(dòng)。軟件越復(fù)雜,人在使用和識(shí)別軟件問題上的作用就越大。但是Chapel Hill會(huì)議被那些受訓(xùn)練為程序員和電子工程師的人占據(jù)了,這個(gè)會(huì)上缺乏那些懂得如何去思考的人。
(誰(shuí)是這種會(huì)思考的人? Jerry Weinberg. 他的論文1965 Ph.D. thesis on problem solving簡(jiǎn)直太棒了。他在1970年寫了計(jì)算機(jī)編程心理學(xué),包含了一系列關(guān)于60年代的軟件測(cè)試的論文。在他1961年的書,軟件開發(fā)基礎(chǔ)中,他專門用一章討論軟件測(cè)試。很遺憾Jerry沒有參加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軟件的問題定位。我被告知,Microsoft Office,一個(gè)仍然在膨脹中的軟件,是由那些沒有系統(tǒng)學(xué)習(xí)過軟件測(cè)試的開發(fā)人員,在那些“自動(dòng)化測(cè)試工具”的支持下寫出來(lái)的。(好在我的同事,Michael Bolton——這哥們是不是唱歌也不錯(cuò)?譯者Orz——最近在微軟開了一堂測(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)在還沒有嘗試過(除了在很小的內(nèi)部范圍)系統(tǒng)的培訓(xùn)測(cè)試人員,他們僅僅把職位命名為“測(cè)試工程師”或者“開發(fā)測(cè)試工程師”,然后把一些他們都不熟悉的測(cè)試工具丟給他們,然后一廂情愿的希望他們可以努力!Fighting!
(另外,我也是程序員。我用我的Apple II電腦敲程序,這比我聽說(shuō)assemblers這個(gè)東東還要早。在上世紀(jì)90年代早期,我在Borland C++項(xiàng)目帶領(lǐng)Borland Turbo Debugger測(cè)試組——Debugger是給開發(fā)人員使用的調(diào)試工具,說(shuō)明James對(duì)開發(fā)人員的工作很了解。譯者——在這之前,我在蘋果公司帶領(lǐng)測(cè)試工具開發(fā)組。開人人員測(cè)試,基于GUI的自動(dòng)化測(cè)試,不基于GUI的自動(dòng)化測(cè)試,這些東西我都做過。
我的這些經(jīng)歷甚至給我?guī)?lái)了一些新問題,當(dāng)我面對(duì)新一代測(cè)試人員——指受訓(xùn)獨(dú)立測(cè)試人員,譯者注——和那些沒用過所謂的自動(dòng)化測(cè)試工具的開發(fā)人員時(shí),我顯得有點(diǎn)缺乏耐心)
譯者:James Bach的意思是,應(yīng)該是獨(dú)立測(cè)試工程師革自動(dòng)化測(cè)試的命,而不是反過來(lái)。50年前自動(dòng)化測(cè)試沒有解決的問題,今天就可以解決了嗎?歡迎討論。
【編輯推薦】