|
什么才是軟件測試的核心? 1.很多人認(rèn)為最重要并且最不值錢(這里的值錢指的是值多少工資,并不代表做這件事的價(jià)值)的是手工測試,實(shí)際上手工測試是最具有價(jià)值的測試 本人對這個觀點(diǎn)甚為認(rèn)同,從事了這么久的測試工作,大多數(shù)時(shí)間都是在做或者在帶同事做手工測試的工作,項(xiàng)目中絕大多數(shù)的問題都是通過手工測試發(fā)現(xiàn)的。但不知到從什么時(shí)候起,從哪里起源一種說法,手工測試是低級的,無技術(shù)含量的,測試人員要發(fā)展就要從事自動化測試和性能測試。面試過不少剛?cè)胄袦y試的同學(xué),普遍持有這種觀點(diǎn),覺得職業(yè)發(fā)展就需要從事自動化測試和性能測試。 2.用走路和乘車來比喻不同的測試方法,是軟件測試中一個經(jīng)典的demo 軟件測試就好比要去一個目的地,手工測試就像是走路,自動化就像是乘車,乘車自然要比走路要省時(shí)省力,當(dāng)然成本也比較高?,F(xiàn)實(shí)中,乘車已經(jīng)很普遍了,效果也非常好,但為什么在軟件測試中,自動化所起到的作用沒有像乘車那樣明顯呢?我覺得是“路”的問題。現(xiàn)實(shí)中為了開車,先要修路,但軟件測試中有沒有為自動化所修的路呢?現(xiàn)在大多數(shù)的軟件,使用對象都是人,都是人手操作的,用手工測試最能模擬到真實(shí)的使用環(huán)境和使用場景,所以手工測試能發(fā)現(xiàn)很多問題。而自動化測試只是用程序去測試了程序,很大程度上忽略了環(huán)境和場景,就好像去往目的地有2條路,一條窄窄的人行道和一條寬闊的水泥路,你的車只能在水泥路上行駛,于是人行道的問題自然無法發(fā)現(xiàn)。而不幸的是,真實(shí)的用戶都是走人行道的。 所以,手工測試和自動化測試并不是低級和高級的區(qū)別,而是不同的手段而已,究竟使用什么手段,要根據(jù)不同的情況而定,就好像根據(jù)不同目的地的路況來選擇走路還是乘車一樣。 3.最沒有市場的應(yīng)該是自動化測試 為什么這么說呢,因?yàn)榫湍壳皣鴥?nèi)的情況來說,的確是這樣。國內(nèi)的軟件項(xiàng)目普普遍周期短,工期緊,資源少,而自動化測試卻剛好相反,需要耗費(fèi)大量的人力物力和時(shí)間,在這兩者可以達(dá)到平衡之前,我也覺得自動化測試舉步維艱。也來打個比喻,自動化測試就像開車去一個目的地需要2天,之前需要修路1個月、買車上牌要1個星期、每天需要加油,如果要求你1個月內(nèi)就要去到目的地的話,你可能路還沒修好。換了手工測試就像是走路,從第1天起就可以走啊走,不停走,可能20天就到了。換到實(shí)際中,修路買車就是編寫你的自動化程序,加油就是維護(hù)你的程序,能不能及時(shí)到達(dá)目的地,就要看你的程序能不能及時(shí)完成。 有的人會發(fā)現(xiàn),自動化程序和道路汽車一樣,是可以重復(fù)使用的,就是說下次我再去的時(shí)候,就不用重新修路買車了。如果目的地一樣的話,的確是這樣的,例如一些做通用產(chǎn)品的同學(xué)可能會好一點(diǎn),因?yàn)樗麄儗芏喑Hサ哪康牡囟夹蘖寺?,但多?shù)同學(xué)面對的可能都是各種各樣不常去的目的地。正是因?yàn)橛羞@些問題,所以國內(nèi)的自動化測試很難開展。但正如前文所說,作為測試的一種手段,即使存在很多先天不足,我還是覺得自動化測試很有必要,因此我才會對原文的觀點(diǎn)同意大半,剩下的小半,是我覺得自動化測試可以用另外的形式去開展。 以怎樣的另外形式去開展呢?我的想法是用工具輔助測試,自動化的優(yōu)點(diǎn)在于用工具(程序)去完成測試,比手工測試要快捷和省力,但缺點(diǎn)是實(shí)現(xiàn)成本高,可用范圍小(如果擴(kuò)大使用范圍的話,成本將進(jìn)一步升高)。相反,手工測試則是可用范圍大,成本低,但費(fèi)時(shí)費(fèi)力。如果可以將二者結(jié)合,在一些手工測試中適合使用工具的場景,使用一些現(xiàn)成的工具或者可快速開發(fā)的測試程序,這樣就可以吸取兩者的優(yōu)點(diǎn),提高測試的效率。當(dāng)然,說起來容易,做起來并不簡單,這里先不展開講,以后有機(jī)會再另文講述吧。 說完了自動化測試,怎能不說說性能測試呢,這兩個都是做測試的人非常向往的東西。現(xiàn)實(shí)中我也和不少做測試的同學(xué)聊過,聊到自動化和性能測試,大多都能說出不少自動化/性能測試軟件的名字,至于用到什么程度,用來做過些什么,就很少人能深入談下去了。我心目中的自動化和性能測試并不是安裝個軟件,照著教程上運(yùn)行幾個demo,然后就可以在實(shí)際項(xiàng)目中使用的。因?yàn)槲覀冃枰氖?b>做自動化/性能測試,而不是用自動化/性能測試工具,這可是有很大區(qū)別的。舉個例子,我問一個小學(xué)生,會不會學(xué)作文啊?他回答我,說會用圓珠筆寫字了。呵呵。 4.說了這么多,其實(shí)想表達(dá)什么呢? 軟件測試,無論手工也好,自動化也好,功能測試也好,性能測試也好,歸根究底就是為了高效地發(fā)現(xiàn)問題,提高軟件質(zhì)量。至于用什么手段,用什么工具,需要按實(shí)際情況而定,不能一概而論,也不能說怎樣怎樣就一定好,怎樣怎樣就一定差。好比寫文章,有用圓珠筆的、有用毛筆的、有用電腦的,無論用什么工具,目的都是為了寫出文章。既然工具不是測試的核心,那什么才是呢?我認(rèn)為是,知道要測什么,知道要怎樣測。
|
|
|