如何學(xué)習(xí)自動化測試
從事了幾年測試工作,也著實見證了測試的發(fā)展,如今測試行業(yè)對從業(yè)者的要**越來越高,不再僅僅局限于要求會寫測試用例、會細致的執(zhí)行測試、能有效的發(fā)現(xiàn)系統(tǒng)缺陷等;越來越多的企業(yè)對應(yīng)聘者本身的技能要求也越來越高,招聘信息中諸如“精通VBscrīpt、Perl/Rbuy等至少一門腳本語言”、“至少熟悉一門開發(fā)語言”、“精通QTP、LR等自動化測試工具”、“有大型項目自動化實施成功經(jīng)驗”此類的字眼也逐漸增多。目前看來,除白盒測試內(nèi)容和測試管理外,主流的方向有兩個:功能自動化測試和性能測試。這就要求從業(yè)人員能夠在短時間內(nèi)快速的掌握這些知識,才能獲取到更好的工作機會。本人是名功能自動化測試的工程師,以自己學(xué)習(xí)、工作的過程結(jié)合QTP講講該如何學(xué)習(xí)自動化測試。 首先,想從事自動化測試,必須先了解What/Why/How,也就是常說的去了解什么是自動化測試、為什么要進行自動化測試、該如何進行自動化測試,這類的資料在網(wǎng)上有很多,這里就不做重復(fù)了;
其次,需要根據(jù)項目的特點,選擇合適的自動化測試工具,并了解工具的特性。以QTP為例,該如何去掌握它呢?對于初學(xué)者,大多數(shù)都是通過錄制的方式來生成腳本,這個階段應(yīng)該掌握的基礎(chǔ)知識有:
1) QTP是如何去識別對象的,對于新手經(jīng)常會出現(xiàn)錄制的腳本回放的時候報錯的現(xiàn)象,這個時候就應(yīng)該考慮為什么呢?如果很了解QTP識別對象的原理啊,我想就能很快定位到原因了
2) 去掌握一些QTP對象的方法,如GetROPreperty、GetTOPreperty、ChildObjects等等,對于相似的方法應(yīng)該去搞清楚到底區(qū)別在哪?像GetROPreperty、GetTOPreperty有什么區(qū)別等
3) 什么是Action參數(shù)、什么又是Test參數(shù)?兩者有什么區(qū)別,又有什么聯(lián)系,在同一Test和不同Test間這些參數(shù)如何工作
4) 什么是環(huán)境變量?環(huán)境變量是如何建立和使用的,環(huán)境變量在參數(shù)傳遞中和action參數(shù)、test參數(shù)有什么不同
5) 了解檢查點的知識,明白什么是內(nèi)置檢查點,什么又是自定義檢查點。并搞清楚在什么時候該如何使用檢查點
6) 掌握對象庫的操作,了解對象庫對于測試的意義,象是否啟用智能識別對測試腳本有何影響、為什么同一對象識別起來會有_1、_2之類的后綴等都是需要去研究清楚的問題
這幾個問題都搞清楚的話,那基本就能夠利用QTP生成正確的腳本了,當(dāng)然以上只是部分必須掌握的內(nèi)容,其實還是很多細節(jié)的設(shè)置,就需要在實際運用中去掌握了。
接下來,就可以進一步提升自己的QTP運用水平了,這個階段就需要去學(xué)習(xí)vbs知識和如何運用描述性編程實現(xiàn)腳本了,同時在這個過程中還需要去學(xué)習(xí)html知識、DOM、XML、以及像excel、word等的API知識了,總的來說,這個階段應(yīng)該掌握的內(nèi)容大體上包括:
1) VBscrīpt的基礎(chǔ)知識,熟悉常用的方法和函數(shù),掌握文件對象的操作等
2) 熟練掌握XML技術(shù);excel、word等API對象,可以根據(jù)需要創(chuàng)建日志等
3) 熟練掌握DOM和HTML知識,能夠結(jié)合這些技術(shù)對Web頁面進行解析
4) 掌握數(shù)據(jù)庫的基本操作語句,能夠利用ADO對象進行數(shù)據(jù)操縱
5) 熟練掌握正則表達式,很多時候處理對象問題相當(dāng)方便
6) 掌握如何調(diào)用dll進行工作
7) 能夠利用QTP的自動化對象模型創(chuàng)建出需要的運行模式
8) 掌握WMI知識
以上只是我考慮到的部分,并不**,呵呵,供大家參考,當(dāng)然這些技術(shù)主要是針對Web系統(tǒng)運行,因為我們的系統(tǒng)就是B/S的,呵呵。如果這些知識都能夠扎實的掌握的話,個人認為,基本上能夠處理自動化過程中的絕大多數(shù)問題了,這個時候你對自動化測試的技術(shù)應(yīng)該是有一定積累了。
接下來就需要考慮自動化測試框架問題了。當(dāng)腳本規(guī)模到了一定的程度,就會面臨一些問題,如:
1) 如何有效的管理并調(diào)度腳本
2) 如何實現(xiàn)腳本運行的無人值守,測試過程中能夠自動進行錯誤處理并進行日志記錄
3) 如何生成簡介明確的測試報告
4) 如何能夠更加高效的維護測試腳本
5) 實現(xiàn)框架代碼和業(yè)務(wù)代碼的分層、業(yè)務(wù)腳本和業(yè)務(wù)數(shù)據(jù)的分離
這個階段主要體現(xiàn)的是測試人員的測試思想,是可以脫離工具獨立存在的過程。當(dāng)然各個公司項目的實際情況不同,導(dǎo)致設(shè)計出來的思想不同,但總體上來說一般包括數(shù)據(jù)驅(qū)動和關(guān)鍵字驅(qū)動兩種模式。后者實現(xiàn)的技術(shù)難度大于前者,大多數(shù)公司目前都采用的數(shù)據(jù)驅(qū)動模式。這個階段不應(yīng)局限于技術(shù)運用上,而需要從測試全局考慮,進行分層設(shè)計、模塊化實現(xiàn),減少代碼之間的耦合。
如果以上三個方面都能夠做的很好的話,那么恭喜你,你已經(jīng)可以獨立負責(zé)項目的自動化測試建立工作了,呵呵!
總之,學(xué)習(xí)自動化測試需要在實際項目中進行,這樣提高的會比較快,項目中運用了很多種技術(shù),自動化實施過程會碰見各種各樣的問題,是很好的學(xué)習(xí)機會,關(guān)鍵要善于總結(jié)、積累經(jīng)驗,只要能夠把各個細節(jié)做好,那么你一定能夠成為一名優(yōu)良的自動化測試工程師。
如何學(xué)習(xí)自動化測試