軟件測試自動化
最近公司在搞大規(guī)模弄自動化測試,所以今天想來談?wù)?a href="" target="_self" style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; ">測試自動化這個問題,當然我說的“測試自動化”跟“自動化測試”是不同概念,一樣的字,不同的順序。
所謂的“自動化測試”,一般是說用一些工具來幫助測試,比如LoadRunner可以幫忙測試負載,QTP可以幫忙做功能測試,當然很多公司還自己寫一些腳本做單元測試。這些工具的幫忙,可以極大地提高公司的測試效率,從而可以解放很多資源去做更加復雜、高級的測試。(所以“自動化測試”只是一個工具或者技術(shù))
而所謂的“測試自動化”,主要是說我們的測試流程,應(yīng)該怎樣來充分地結(jié)合各種工具/系統(tǒng)(測試管理工具、自動化測試工具等等工具/系統(tǒng)),使得這個測試流程更加合理、更加高效。前面說的LoadRunner這類“自動化測試”工具對于“測試自動化”而言只是一個幫助因素。(所以“測試自動化”是一個方向,一個理論,一門科學研究)
在像LoadRunner這類工具出現(xiàn)之前,其實我們對于“測試自動化”的理論早已存在,出現(xiàn)的原因是由于軟件發(fā)展速度太快,帶來了越來越多光靠人力難解決的問題,比如:
1、性能問題:很多軟件都是很多人一起使用的,比如股票系統(tǒng),可能會幾百萬、幾千萬人在用,但是股票系統(tǒng)開發(fā)公司不可能用人力來模擬這么多人一起使用
2、功能問題:軟件功能和邏輯是越來越多、越來越復雜,但是有不少舊的邏輯其實一直沒怎么變,比如新建項目,備份項目等操作,但是這些雖然不變化,但是在每個Release時,總是需要測試的,這樣子,就需要人力和時間了
3、變更問題:很多功能雖然表面上看起來樣子沒啥變化,但是其實內(nèi)在邏輯什么都可能在不斷變化,優(yōu)化算法啊,修Bug,都可能帶來改變,怎么去保證能Catch到每次改變呢?這個是問題。
4、……
就這樣子,大家為了解決這種問題,推出了各種各樣的工具,而且也解決地很不錯,不過其實很多公司還是繼續(xù)存在著問題,什么原因呢?過度地認為工具能幫忙解決一切,整天叫囂著工具代替人,而忽視了一個重要因素:人的思維。
我們知道工具雖然很厲害,但是思維絕對無法超過人,工具里面的邏輯都是人編進去的,而人的思維確實無限的,如果工具真的解決一切,為啥這些工具還不斷經(jīng)常推出新版本,不正是說明還有很多事情工具做不到,需要人來幫忙去讓它們實現(xiàn)嗎?
所以在“測試自動化”的理論體系中,人總是在“訓練”工具,而不是在“使用”工具。
在測試自動化現(xiàn)有理論體系中,主要由以下幾部分組成:
1、人
2、自動化測試工具(LoadRunner,QTP,Selenium,Test Complete……)
3、測試管理工具 (DevTest, TestDirector ……)
關(guān)于“人”,我最后介紹了,先把2和3介紹一下,2其實已經(jīng)介紹過了,對于3而言,雖然表面上可能沒2厲害,但是其實起得作用可能比2還大,因為自動化測試工具只能測試產(chǎn)品的一個部分,而怎樣能保證整個產(chǎn)品的所有部分都能被測好呢,這個就需要用到測試管理工具,比如TechExcel的DevTest,它的測試用例可以綁定自動化測試工具,而所有的測試用例就代表了一個完整的產(chǎn)品了,當這些測試用例去觸發(fā)綁定的自動化測試工具運行后返回結(jié)果以后,相當于這個產(chǎn)品全部測完了。
而最重要的“人”的作用呢?其實我不說,大家應(yīng)該都能想出很多作用來,接下來我來總結(jié)一下:
1、維護產(chǎn)品的完整性:需要根據(jù)功能的變化,Bug的發(fā)現(xiàn)、自動化測試工具的局限性,經(jīng)常地更新測試用例、測試腳本。這個是最基本的。
2、發(fā)揮人的能動性、發(fā)散性:自動化工具永遠無法把一個產(chǎn)品測好,所以作為人而言,不要以為懂了自動化測試工具而驕傲,也不用因為只懂手工測試而感到沮喪,關(guān)鍵是要了解測試的內(nèi)涵,從而就能了解產(chǎn)品的內(nèi)涵,最后讓產(chǎn)品在你的腦海中能融會貫通,這樣子,你自己的腦袋就是無敵的自動化測試工具了。
3、吸收+創(chuàng)新+創(chuàng)造:相信我,即使一個完美的產(chǎn)品的測試,如果真正意義上說完成了是永遠無法做到的,更何況普通產(chǎn)品了。所以這也就意味著這里面會有大量的地方可以得到加強,吸收以往經(jīng)驗,發(fā)掘與加強遺漏點,追尋潛在點,創(chuàng)造新方法,都是一個“人”都能做到的,當然你需要大量地去思考、去探索。
4、更新體系:我們說“測試自動化”是一個方向,是一個理論,是一個科學研究,這個就意味著它可以不斷進步,至于進步到什么程度,我也無法想象,有可能會出現(xiàn)類似自動分析產(chǎn)品邏輯從而得到測試用例與腳本這樣子,不過唯一能知道的是,人還是會占主導地位,無論更新到什么樣子,人會一直帶領(lǐng)著這個系統(tǒng)前進!
posted on 2012-05-09 09:26 順其自然EVO 閱讀(190) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄 、管理方向