自動(dòng)化測(cè)試和數(shù)據(jù)驅(qū)動(dòng)之間的關(guān)系,十分鐘帶你弄清楚
?軟件測(cè)試是對(duì)項(xiàng)目研發(fā)過(guò)程的產(chǎn)物(文檔,代碼等)進(jìn)行審查,保障產(chǎn)品質(zhì)量的過(guò)程。我們可以通過(guò)手工測(cè)試,自動(dòng)化測(cè)試,工具掃描等方法完成這個(gè)任務(wù)。其中,自動(dòng)化測(cè)試是當(dāng)前重要的一種測(cè)試方法,具有響應(yīng)速度快、穩(wěn)定性高、人工干預(yù)少的特點(diǎn),很好的契合了高響應(yīng)、海量數(shù)據(jù)驗(yàn)證等需求的測(cè)試任務(wù)。數(shù)據(jù)驅(qū)動(dòng)是自動(dòng)化測(cè)試的靈魂,數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用程度直接決定了自動(dòng)化測(cè)試的水平和質(zhì)量。

一、自動(dòng)化測(cè)試和數(shù)據(jù)驅(qū)動(dòng)
如果你有100畝麥子需要收割,你會(huì)怎么做?
- 方法一:拎起鐮刀或者雇幾個(gè)人拎起鐮刀割麥子。
- 方法二:制造或者購(gòu)買一臺(tái)收割機(jī),然后開(kāi)著收割機(jī)割麥子。
顯然,這兩種方法都能完成任務(wù),但是,方法二具有重資產(chǎn)、高效率的特點(diǎn)。
測(cè)試就如同這割麥子,完成麥子收割是測(cè)試任務(wù),手工收割和收割機(jī)收割對(duì)應(yīng)手工測(cè)試和自動(dòng)化測(cè)試兩種方法。這兩種方法各有利弊,手工測(cè)試具有上手易(一把鐮刀就行),適應(yīng)性強(qiáng)(不論平地、梯田,還是丘陵都o(jì)k)的特點(diǎn),自動(dòng)化測(cè)試具有效率高(收割速度快)、質(zhì)量穩(wěn)定(機(jī)器不容易犯錯(cuò))、不疲勞(機(jī)器不用休息)的特點(diǎn)。對(duì)于那種對(duì)測(cè)試質(zhì)量要求穩(wěn)定,測(cè)試反饋要求快,需要反復(fù)驗(yàn)證和海量數(shù)據(jù)驗(yàn)證的測(cè)試任務(wù),自動(dòng)化測(cè)試技術(shù)可以很好滿足這類測(cè)試任務(wù)的要求。
測(cè)試數(shù)據(jù)如同機(jī)油,是收割機(jī)運(yùn)行的燃料。數(shù)據(jù)驅(qū)動(dòng)是自動(dòng)化測(cè)試的核心,如同機(jī)器的發(fā)動(dòng)機(jī),是機(jī)器運(yùn)行的動(dòng)力源。沒(méi)有測(cè)試數(shù)據(jù)這個(gè)燃料和數(shù)據(jù)驅(qū)動(dòng)這個(gè)動(dòng)力源,收割機(jī)就是一臺(tái)沒(méi)有靈魂的廢鐵無(wú)法運(yùn)轉(zhuǎn),自動(dòng)化測(cè)試也就無(wú)從談起。
二、測(cè)試數(shù)據(jù)
測(cè)試數(shù)據(jù)作為測(cè)試的輸入,測(cè)試數(shù)據(jù)準(zhǔn)備的質(zhì)量直接決定到測(cè)試范圍是否全面,測(cè)試程度是否充分,最終影響測(cè)試過(guò)程的質(zhì)量。
測(cè)試數(shù)據(jù)從來(lái)源可以概括為源自存量數(shù)據(jù)和源自新增數(shù)據(jù)兩類。源自存量數(shù)據(jù)是指利用原有系統(tǒng)運(yùn)行積累的生產(chǎn)數(shù)據(jù),經(jīng)過(guò)脫敏、加工后生成的測(cè)試數(shù)據(jù)。這個(gè)原有系統(tǒng)可以是系統(tǒng)自身(升級(jí)優(yōu)化前的系統(tǒng)、重構(gòu)前的系統(tǒng)、手工記錄的業(yè)務(wù)數(shù)據(jù)等),也可以是業(yè)務(wù)關(guān)聯(lián)系統(tǒng)(業(yè)務(wù)上游系統(tǒng)、交互系統(tǒng)等)。這類測(cè)試數(shù)據(jù)的特點(diǎn)是數(shù)據(jù)已經(jīng)存在,可以直接使用,缺點(diǎn)是這類數(shù)據(jù)是通過(guò)正常的業(yè)務(wù)邏輯積累產(chǎn)生的,通常是還是高頻交易產(chǎn)生的數(shù)據(jù)。這類數(shù)據(jù)天然具有局限性,無(wú)法覆蓋系統(tǒng)的所有業(yè)務(wù)場(chǎng)景,如:異常操作、低頻交易等。
源自新增數(shù)據(jù)是指根據(jù)業(yè)務(wù)需求、系統(tǒng)設(shè)計(jì),創(chuàng)造出來(lái)的符合業(yè)務(wù)需求的數(shù)據(jù)。該類數(shù)據(jù)是測(cè)試人員通過(guò)分析業(yè)務(wù)需求、系統(tǒng)設(shè)計(jì),針對(duì)項(xiàng)目業(yè)務(wù)需求(含高頻交易和低頻交易)、異常處理、邊界值檢驗(yàn)等人為創(chuàng)造的數(shù)據(jù)。這類測(cè)試數(shù)據(jù)的特點(diǎn)是測(cè)試數(shù)據(jù)經(jīng)過(guò)系統(tǒng)性分析,覆蓋面較廣,代表性較強(qiáng)。不足之處在于數(shù)據(jù)都需要人工創(chuàng)造,當(dāng)系統(tǒng)較為復(fù)雜或者規(guī)模較大時(shí)需要的測(cè)試數(shù)量較多,人工制造成本較大。
基于這兩個(gè)數(shù)據(jù)來(lái)源,我們結(jié)合業(yè)務(wù)需求,就可以完成項(xiàng)目測(cè)試數(shù)據(jù)的準(zhǔn)備工作,通過(guò)分析、篩選、提煉,最終沉淀為本次測(cè)試所需的測(cè)試數(shù)據(jù)。
三、數(shù)據(jù)驅(qū)動(dòng)測(cè)試
數(shù)據(jù)驅(qū)動(dòng)測(cè)試是自動(dòng)化測(cè)試的靈魂,在數(shù)據(jù)驅(qū)動(dòng)測(cè)試的思想中,自動(dòng)化案例就是流水線,測(cè)試數(shù)據(jù)像水一樣通過(guò)流水線,觸發(fā)系統(tǒng)做出響應(yīng)。然后,通過(guò)配置在流水線上的斷言,檢查點(diǎn),比對(duì)系統(tǒng)響應(yīng)是否符合預(yù)期響應(yīng)。符合,則表示該功能場(chǎng)景正常,不符合,則預(yù)示該功能處理存在異常。顯而易見(jiàn),測(cè)試數(shù)據(jù)是至關(guān)重要的。
那么自動(dòng)化測(cè)試中的測(cè)試數(shù)據(jù)都從哪里獲取的呢?自動(dòng)化測(cè)試數(shù)據(jù)本質(zhì)上和手工測(cè)試數(shù)據(jù)類似。但是,由于自動(dòng)化測(cè)試是程序自動(dòng)運(yùn)行,相較于手工測(cè)試數(shù)據(jù)天然具有需求量大、需求范圍廣、數(shù)據(jù)來(lái)源多等特點(diǎn)。傳統(tǒng)的手工準(zhǔn)備數(shù)據(jù)從數(shù)量上和來(lái)源上無(wú)法滿足自動(dòng)化測(cè)試運(yùn)行所需的龐大數(shù)量要求,這時(shí),我們需要在手工準(zhǔn)備數(shù)據(jù)的基礎(chǔ)上引入自動(dòng)化的數(shù)據(jù)生成方法。大體上自動(dòng)化測(cè)試數(shù)據(jù)可以歸為四大類,八小類,詳見(jiàn)下表。

表-1 自動(dòng)化測(cè)試數(shù)據(jù)來(lái)源
自動(dòng)化測(cè)試所需要的測(cè)試數(shù)據(jù)部分仍可通過(guò)手工制作,主要為固定標(biāo)簽類值和數(shù)據(jù)資源池兩類。固定標(biāo)簽類值即該字段有明確的取值列表,如銀行卡賬戶類型(0-I 類、1-II類、3-III 類)、是否屬地(0-本地、1-異地)、客戶類型(G-政府、B-商戶、C-個(gè)人)等。數(shù)據(jù)資源池即將某些可以重復(fù)使用且數(shù)量少的數(shù)據(jù),存儲(chǔ)在數(shù)據(jù)庫(kù)、CSV 文件、text 文件、ini 文件等介質(zhì)中供程序反復(fù)抽取使用,這個(gè)數(shù)據(jù)池子我們稱為數(shù)據(jù)資源池。如身份證號(hào)、手機(jī)號(hào)、卡號(hào)、商戶號(hào)等這類離散數(shù)據(jù)。
通過(guò)自動(dòng)化方式準(zhǔn)備測(cè)試數(shù)據(jù),主要可以分為查詢、修改、新增這三類。查詢類測(cè)試數(shù)據(jù)可以通過(guò)聯(lián)機(jī)查詢和sql查詢兩種方式獲得,查詢類測(cè)試數(shù)據(jù)說(shuō)明測(cè)試數(shù)據(jù)本身是存在的,需要通過(guò)篩選條件甄別出本次需要的數(shù)據(jù),作為測(cè)試數(shù)據(jù)。聯(lián)機(jī)查詢和 sql 查詢的區(qū)別就在于我們所需的數(shù)據(jù)是否有現(xiàn)成的查詢接口可用,若無(wú),則需手動(dòng)編寫(xiě) sql 語(yǔ)句完成數(shù)據(jù)篩選修改類數(shù)據(jù)也是一種已存在的數(shù)據(jù),修改類數(shù)據(jù)和查詢類數(shù)據(jù)的區(qū)別在于查詢類測(cè)試數(shù)據(jù)的源數(shù)據(jù)滿足測(cè)試需要可以直接使用,而修改類測(cè)試數(shù)據(jù)的源數(shù)據(jù)無(wú)法滿足測(cè)試需要不能直接使用,需通過(guò)修改某些屬性才能滿足測(cè)試要求。因此需要通過(guò)修改操作對(duì)源數(shù)據(jù)進(jìn)行二次修改,聯(lián)機(jī)修改和sql修改的區(qū)別在于是否有聯(lián)機(jī)修改接口可供使用。
新增類測(cè)試數(shù)據(jù)說(shuō)明當(dāng)前環(huán)境中無(wú)滿足測(cè)試需求的源數(shù)據(jù)或者修改源數(shù)據(jù)無(wú)法滿足測(cè)試要求時(shí),需要新增測(cè)試數(shù)據(jù)。比如銀行賬戶類數(shù)據(jù),由于涉及客戶信息校驗(yàn)、記賬校驗(yàn)等,單純的插入一條數(shù)據(jù)很難通過(guò)系統(tǒng)校驗(yàn),我們通常直接通過(guò)系統(tǒng)開(kāi)戶交易直接新增數(shù)據(jù)。比如新建系統(tǒng)無(wú)存量數(shù)據(jù),或者環(huán)境中缺乏某些稀有類型的數(shù)據(jù)時(shí),我們需要新增交易添加鋪底數(shù)據(jù)。
四、結(jié)語(yǔ)
市面上有各種形形色色的自動(dòng)化測(cè)試工具,諸如 jmeter、postman、metersphere 等等。測(cè)試人員在接觸自動(dòng)化測(cè)試之處,容易沉迷于了解,掌握更多的測(cè)試工具,忽略提升自動(dòng)化測(cè)試認(rèn)知水平,而陷于初級(jí)自動(dòng)化測(cè)試的陷阱,疲于學(xué)習(xí)而無(wú)法提升自我。本文致力于提升大家對(duì)自動(dòng)化測(cè)試的認(rèn)識(shí),引導(dǎo)大家向更高層次的自動(dòng)化測(cè)試發(fā)展,提升測(cè)試人員整體價(jià)值。?





























