自動(dòng)化測(cè)試不是個(gè)簡(jiǎn)單的任務(wù),而是個(gè)項(xiàng)目吸祟。作為項(xiàng)目就必須有他的流程與規(guī)范瑟慈。
一、項(xiàng)目啟動(dòng)階段
1屋匕、可行性分析
評(píng)估項(xiàng)目當(dāng)前是否合適啟動(dòng)自動(dòng)化測(cè)試葛碧?如果項(xiàng)目不適合,需要找出不適合原因與上級(jí)領(lǐng)導(dǎo)溝通过吻。
自動(dòng)化的啟動(dòng)時(shí)間的切入點(diǎn)很關(guān)鍵进泼,切入點(diǎn)時(shí)間可以分散到模塊,先穩(wěn)定的模塊先開(kāi)展自動(dòng)化纤虽。
2乳绕、抽樣分析
通過(guò)可行性分析后需要進(jìn)行抽樣分析,也就是寫(xiě)幾個(gè)自動(dòng)化測(cè)試腳本逼纸,通過(guò)實(shí)際案列再次看看自動(dòng)化測(cè)試工作是否能順利開(kāi)展洋措,也可以在此過(guò)程中發(fā)現(xiàn)部分技術(shù)上的疑難或是否存在致命的問(wèn)題,在這過(guò)程中也可以發(fā)現(xiàn)有那些需要開(kāi)發(fā)杰刽、測(cè)試菠发、運(yùn)維王滤、產(chǎn)品配合或改進(jìn)的地方。
有經(jīng)驗(yàn)的工程師通過(guò)抽樣分析滓鸠,能對(duì)自動(dòng)化測(cè)試工作開(kāi)展有個(gè)大體的輪廓雁乡,為后面的工作開(kāi)展打下基礎(chǔ)。
抽樣分析方式推薦采用自動(dòng)化冒煙測(cè)試抽樣糜俗,也就是將實(shí)現(xiàn)冒煙測(cè)試用例作為抽樣的樣本蔗怠,將系統(tǒng)的手工冒煙測(cè)試轉(zhuǎn)換為自動(dòng)化測(cè)試用例,自動(dòng)化測(cè)試的用例數(shù)量需控制在5個(gè)左右吩跋,這樣既有成果又貼合實(shí)際寞射。
注意:抽樣分析時(shí)不要搭建完整的測(cè)試框架,可以只線性的實(shí)現(xiàn)自動(dòng)化測(cè)試用例锌钮,它的主要工作還是抽樣分析桥温。
二、自動(dòng)化測(cè)試準(zhǔn)備階段
1梁丘、自動(dòng)化測(cè)試需求篩選與評(píng)審
測(cè)試需求篩選主要時(shí)明確自動(dòng)化測(cè)試的的目標(biāo)侵浸,整理出需要實(shí)現(xiàn)自動(dòng)化測(cè)試的業(yè)務(wù)需求,以及自動(dòng)化測(cè)試深度氛谜。需求分析完成后要對(duì)其內(nèi)容進(jìn)行評(píng)審掏觉,只有項(xiàng)目組評(píng)審?fù)ㄟ^(guò)后才能有效。
UI自動(dòng)化測(cè)試不可能做到100%覆蓋值漫,所以我們主要從實(shí)際的業(yè)務(wù)場(chǎng)景方面考慮澳腹,首先需要貼合用戶使用的正向場(chǎng)景,然后再篩選出重要的逆向場(chǎng)景杨何。
API自動(dòng)化測(cè)試酱塔,需要對(duì)整個(gè)系統(tǒng)的API進(jìn)行整理,根據(jù)API的重要程度和使用率來(lái)劃分等級(jí)危虱,確定API自動(dòng)化測(cè)試的深度羊娃。對(duì)API自動(dòng)化測(cè)試的覆蓋率要求都會(huì)在70%以上,也有公司要求達(dá)到100%覆蓋率埃跷。
API 變更頻率比 UI 低蕊玷,而且 API 測(cè)試腳本的執(zhí)行效率高,出錯(cuò)率低弥雹,可測(cè)試的覆蓋率也比 UI 高垃帅,它的維護(hù)成本也較低。所以現(xiàn)在很多公司將 API 作為自動(dòng)化測(cè)試的重點(diǎn)缅糟。
2. 制定自動(dòng)化測(cè)試計(jì)劃
由 PM 和自動(dòng)化測(cè)試負(fù)責(zé)人編寫(xiě)計(jì)劃挺智,與手工測(cè)試的測(cè)試計(jì)劃過(guò)程一致祷愉,在測(cè)試計(jì)劃中要明確做什么窗宦,什么時(shí)候做赦颇。自動(dòng)化測(cè)試計(jì)劃包含自動(dòng)測(cè)試的組織架構(gòu)、工作任務(wù)分配赴涵、工作量估計(jì)媒怯、人力物力資源的分配、進(jìn)度的安排髓窜、風(fēng)險(xiǎn)的估計(jì)和規(guī)避扇苞、各任務(wù)通過(guò)準(zhǔn)則等。
3寄纵、制定自動(dòng)化測(cè)試方案
測(cè)試方案編寫(xiě)需要由有經(jīng)驗(yàn)的工程師編寫(xiě)鳖敷,測(cè)試方案要明確自動(dòng)化該怎么做。方案寫(xiě)得越詳細(xì)程拭,后面遇到的坑就越少定踱。主要從以下方面考慮:
自動(dòng)化的目標(biāo)?
測(cè)試的范圍恃鞋?
工具的設(shè)計(jì)和選擇崖媚?
開(kāi)發(fā)語(yǔ)言的選擇?
自動(dòng)化測(cè)試框架的設(shè)計(jì)恤浪?
持續(xù)集成的規(guī)劃畅哑?
UI自動(dòng)化的場(chǎng)景與規(guī)劃?
API自動(dòng)化場(chǎng)景與規(guī)劃水由?
用例的設(shè)計(jì)原則荠呐?
測(cè)試腳本編寫(xiě)的原則?
測(cè)試腳本的管理砂客?
測(cè)試數(shù)據(jù)的管理直秆?
自動(dòng)化測(cè)試環(huán)境的規(guī)劃?
腳本的執(zhí)行策略鞭盟?
4圾结、搭建自動(dòng)化測(cè)試框架
自動(dòng)化測(cè)試框架是由基礎(chǔ)模塊、用例管理模塊齿诉、報(bào)告統(tǒng)計(jì)模塊等組成的工具集合筝野;它用于組織、管理和執(zhí)行自動(dòng)化測(cè)試用例粤剧,在測(cè)試完成后統(tǒng)計(jì)測(cè)試結(jié)果生成HTML測(cè)試報(bào)告歇竟。
自動(dòng)化測(cè)試框架需要保證測(cè)試腳本的分布執(zhí)行,用例的模塊化抵恋,測(cè)試數(shù)據(jù)的管理焕议,清楚的日志分析與錯(cuò)誤截圖,通俗易懂的測(cè)試報(bào)告弧关,基本的公共對(duì)象庫(kù)盅安,基礎(chǔ)的操作方法封裝唤锉,可實(shí)現(xiàn)環(huán)境的配置,還要各種異常處理和場(chǎng)景恢復(fù)等别瞭。
在設(shè)計(jì)測(cè)試框架的時(shí)窿祥,要盡可能的將這些模塊功能有機(jī)的結(jié)合起來(lái),要能將腳本有效的組織和連貫應(yīng)用蝙寨,提高測(cè)試腳本的可維護(hù)性和可讀性晒衩。測(cè)試框架還要做到高內(nèi)聚低耦合。高內(nèi)聚墙歪,每個(gè)模塊盡可能獨(dú)立完成自己的功能听系,不依賴于模塊外部的代碼;低耦合虹菲,模塊與模塊之間接口的盡量簡(jiǎn)單跛锌。
對(duì)于中小型企業(yè),不必自己編寫(xiě)一套自動(dòng)化測(cè)試框架届惋,現(xiàn)在開(kāi)源的自動(dòng)化測(cè)試框架有很多如:Python + unittest+ selenium/Appium/requests(推薦)髓帽,Robot framework(推薦),Serenity脑豹,Phoenix Framework郑藏,Tellurium,Gauge 等等瘩欺。
記妆馗恰:沒(méi)有萬(wàn)能的測(cè)試框架,適合自己項(xiàng)目的俱饿,能提高工作效率的就是好框架
5歌粥、測(cè)試用例標(biāo)準(zhǔn)化與制定編碼規(guī)范
測(cè)試用例標(biāo)準(zhǔn)化對(duì)提高代碼的重用性和復(fù)用率直接相關(guān),它對(duì)測(cè)試腳本的可靠性和可維護(hù)性也有很大影響拍埠。
用例標(biāo)準(zhǔn)化需要有統(tǒng)一的設(shè)計(jì)模式失驶,統(tǒng)一的編碼規(guī)范與約束,共有的模塊化函數(shù)與類(lèi)庫(kù)枣购,統(tǒng)一的命名規(guī)則嬉探。
三、自動(dòng)化測(cè)試腳本開(kāi)發(fā)
1棉圈、測(cè)試用例設(shè)計(jì)
自動(dòng)化測(cè)試的用例設(shè)計(jì)重中之重涩堤,不要在沒(méi)設(shè)計(jì)自動(dòng)化測(cè)試用例之前就進(jìn)行編碼,自動(dòng)化測(cè)試用例他是對(duì)自動(dòng)化測(cè)試場(chǎng)景的整理與綜合分瘾。
很多自動(dòng)化測(cè)試腳本開(kāi)發(fā)直接使用手工測(cè)試用例胎围,然而手工用例之間的相關(guān)性高,到最后造成測(cè)試腳本繁重,用例維護(hù)難白魂,遇到問(wèn)題難定位汽纤。
自動(dòng)化用例設(shè)計(jì)要保證測(cè)試對(duì)象的明確性;每個(gè)用例都是一個(gè)完整的場(chǎng)景碧聪;每個(gè)功能點(diǎn)一個(gè)測(cè)試用例冒版;盡量降低用例的復(fù)雜度液茎,每個(gè)腳本獨(dú)立逞姿,腳本之間不要產(chǎn)生關(guān)聯(lián)性。在寫(xiě)用例過(guò)程中需要將共性功能或操作抽象出來(lái)模塊化捆等,提高測(cè)試腳本的可維護(hù)性與代碼的重用性滞造。
不管是UI自動(dòng)化還是API自動(dòng)化,編碼前必須設(shè)計(jì)測(cè)試用例栋烤。
具體內(nèi)容太多谒养,后面開(kāi)單獨(dú)章節(jié)講自動(dòng)化測(cè)試用例的設(shè)計(jì)。
2明郭、公共腳本開(kāi)發(fā)
在自動(dòng)化用例設(shè)計(jì)時(shí)已經(jīng)將共性的功能或操作抽象出來(lái)买窟,在腳本編寫(xiě)前需要將這些操作模塊化放入公共模塊。
3薯定、測(cè)試腳本開(kāi)發(fā)
根據(jù)自動(dòng)化測(cè)試用例實(shí)現(xiàn)測(cè)試腳本的開(kāi)發(fā)始绍,在開(kāi)發(fā)測(cè)試腳本時(shí)要將腳本的可靠性和維護(hù)性放在首位,每寫(xiě)一行都需要考慮它的可靠性和可維護(hù)性话侄,代碼編寫(xiě)必須嚴(yán)謹(jǐn)亏推、規(guī)范。
腳本的執(zhí)行必須智能年堆、高效吞杭、穩(wěn)定、可靠变丧。
腳本開(kāi)發(fā)完成后要在不同的環(huán)境運(yùn)行3次以上芽狗,確認(rèn)腳本沒(méi)有問(wèn)題才能提交代碼庫(kù)。提交代碼庫(kù)的代碼后痒蓬,需要進(jìn)行代碼評(píng)審并在自動(dòng)化測(cè)試平臺(tái)運(yùn)行通過(guò)译蒂,然后才能合并到主分支。
四谊却、自動(dòng)化測(cè)試的執(zhí)行與維護(hù)
1柔昼、自動(dòng)化測(cè)試執(zhí)行
自動(dòng)化測(cè)試的執(zhí)行策略有三種:定時(shí)執(zhí)行、自動(dòng)觸發(fā)炎辨、手工觸發(fā)
定時(shí)執(zhí)行捕透,多用于監(jiān)控代碼版本的質(zhì)量。如,每天早晚二次固定時(shí)間執(zhí)行精選的中高級(jí)用例乙嘀,實(shí)時(shí)監(jiān)控版本質(zhì)量末购。
自動(dòng)觸發(fā),多用于冒煙測(cè)試虎谢。如盟榴,精選出冒煙用例(執(zhí)行時(shí)間控制在10分鐘內(nèi)),在開(kāi)發(fā)提交代碼合并到主分支時(shí)自動(dòng)觸發(fā)冒煙測(cè)試婴噩,有問(wèn)題郵件通知對(duì)應(yīng)人員擎场。
手工觸發(fā),多用回歸測(cè)試几莽。如迅办,一周或一個(gè)sprint為周期觸發(fā)兩次左右的全量執(zhí)行,要結(jié)合實(shí)際情況手動(dòng)觸發(fā)章蚣。
2站欺、自動(dòng)化測(cè)試結(jié)果分析
自動(dòng)化測(cè)試結(jié)果分析主要靠測(cè)試報(bào)告,測(cè)試報(bào)告要求通俗易懂纤垂,不能過(guò)于復(fù)雜矾策。
每個(gè)sprint結(jié)束后需對(duì)自動(dòng)化測(cè)試結(jié)果進(jìn)行深入分析,以此來(lái)調(diào)整自動(dòng)化測(cè)試方案和優(yōu)化自動(dòng)化測(cè)試腳本峭沦。
3贾虽、 自動(dòng)化測(cè)試用例和腳本的維護(hù)
系統(tǒng)發(fā)生變更時(shí)需要及時(shí)更新自動(dòng)化測(cè)試用例和修改測(cè)試腳本。
測(cè)試用例和測(cè)試腳本的維護(hù)是個(gè)長(zhǎng)期過(guò)程熙侍,用例與需求掛鉤榄鉴,測(cè)試腳本與用例掛鉤,必須先更新測(cè)試用例蛉抓,然后才能修改測(cè)試腳本庆尘。用例和腳本的每次更新需留下維護(hù)的記錄,以便 review 和 問(wèn)題查找巷送。
4驶忌、自動(dòng)化測(cè)試腳本的持續(xù)優(yōu)化
測(cè)試腳本需要每個(gè)大版本檢查一次,對(duì)腳本進(jìn)行優(yōu)化笑跛。測(cè)試腳本不是寫(xiě)好了付魔,需求沒(méi)有變更,運(yùn)行無(wú)報(bào)錯(cuò)就放在哪里飞蹂。
每過(guò)段時(shí)間檢查腳本代碼几苍,當(dāng)發(fā)現(xiàn)測(cè)試的方法可優(yōu)化的地方,就需要對(duì)代碼進(jìn)行修改陈哑。只有持續(xù)對(duì)測(cè)試腳本進(jìn)行優(yōu)化妻坝,才能讓腳本更智能伸眶、更高效、更穩(wěn)定刽宪、更可靠厘贼。
最后:
歡迎關(guān)注公眾號(hào):程序員一凡,領(lǐng)取一份300頁(yè)pdf文檔的Python自動(dòng)化測(cè)試工程師核心知識(shí)點(diǎn)總結(jié)圣拄!
這些資料的內(nèi)容都是面試時(shí)面試官必問(wèn)的知識(shí)點(diǎn)嘴秸,篇章包括了很多知識(shí)點(diǎn),其中包括了有基礎(chǔ)知識(shí)庇谆、Linux必備岳掐、Shell、互聯(lián)網(wǎng)程序原理族铆、Mysql數(shù)據(jù)庫(kù)岩四、抓包工具專(zhuān)題哭尝、接口測(cè)試工具哥攘、測(cè)試進(jìn)階-Python編程、Web自動(dòng)化測(cè)試材鹦、APP自動(dòng)化測(cè)試逝淹、接口自動(dòng)化測(cè)試、測(cè)試高級(jí)持續(xù)集成桶唐、測(cè)試架構(gòu)開(kāi)發(fā)測(cè)試框架栅葡、性能測(cè)試、安全測(cè)試等尤泽。