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