自動化測試和資料驅動之間的關係,十分鐘帶你弄清楚

博為峰網校發表於2022-06-14

軟體測試是對專案研發過程的產物(文件,程式碼等)進行審查,保障產品質量的過程。我們可以透過手工測試,自動化測試,工具掃描等方法完成這個任務。其中,自動化測試是當前重要的一種測試方法,具有響應速度快、穩定性高、人工干預少的特點,很好的契合了高響應、海量資料驗證等需求的測試任務。資料驅動是自動化測試的靈魂,資料驅動的應用程度直接決定了自動化測試的水平和質量。 加我VX:atstudy-js 回覆“測試”,進入 自動化測試學習交流群~~

一、自動化測試和資料驅動

如果你有100畝麥子需要收割,你會怎麼做?方法一:拎起鐮刀或者僱幾個人拎起鐮刀割麥子。方法二:製造或者購買一臺收割機,然後開著收割機割麥子。顯然,這兩種方法都能完成任務,但是,方法二具有重資產、高效率的特點。

測試就如同這割麥子,完成麥子收割是測試任務,手工收割和收割機收割對應手工測試和自動化測試兩種方法。這兩種方法各有利弊,手工測試具有上手易(一把鐮刀就行),適應性強(不論平地、梯田,還是丘陵都ok)的特點,自動化測試具有效率高(收割速度快)、質量穩定(機器不容易犯錯)、不疲勞(機器不用休息)的特點。對於那種對測試質量要求穩定,測試反饋要求快,需要反覆驗證和海量資料驗證的測試任務,自動化測試技術可以很好滿足這類測試任務的要求。

測試資料如同機油,是收割機執行的燃料。資料驅動是自動化測試的核心,如同機器的發動機,是機器執行的動力源。沒有測試資料這個燃料和資料驅動這個動力源,收割機就是一臺沒有靈魂的廢鐵無法運轉,自動化測試也就無從談起。

二、測試資料

測試資料作為測試的輸入,測試資料準備的質量直接決定到測試範圍是否全面,測試程度是否充分,最終影響測試過程的質量。

測試資料從來源可以概括為源自存量資料和源自新增資料兩類。源自存量資料是指利用原有系統執行積累的生產資料,經過脫敏、加工後生成的測試資料。這個原有系統可以是系統自身(升級最佳化前的系統、重構前的系統、手工記錄的業務資料等),也可以是業務關聯絡統(業務上游系統、互動系統等)。這類測試資料的特點是資料已經存在,可以直接使用,缺點是這類資料是透過正常的業務邏輯積累產生的,通常是還是高頻交易產生的資料。這類資料天然具有侷限性,無法覆蓋系統的所有業務場景,如:異常操作、低頻交易等。

源自新增資料是指根據業務需求、系統設計,創造出來的符合業務需求的資料。該類資料是測試人員透過分析業務需求、系統設計,針對專案業務需求(含高頻交易和低頻交易)、異常處理、邊界值檢驗等人為創造的資料。這類測試資料的特點是測試資料經過系統性分析,覆蓋面較廣,代表性較強。不足之處在於資料都需要人工創造,當系統較為複雜或者規模較大時需要的測試數量較多,人工製造成本較大。

基於這兩個資料來源,我們結合業務需求,就可以完成專案測試資料的準備工作,透過分析、篩選、提煉,最終沉澱為本次測試所需的測試資料。

三、資料驅動測試

資料驅動測試是自動化測試的靈魂,在資料驅動測試的思想中,自動化案例就是流水線,測試資料像水一樣透過流水線,觸發系統做出響應。然後,透過配置在流水線上的斷言,檢查點,比對系統響應是否符合預期響應。符合,則表示該功能場景正常,不符合,則預示該功能處理存在異常。顯而易見,測試資料是至關重要的。那麼自動化測試中的測試資料都從哪裡獲取呢?自動化測試資料本質上和手工測試資料類似。但是,由於自動化測試是程式自動執行,相較於手工測試資料天然具有需求量大、需求範圍廣、資料來源多等特點。傳統的手工準備資料從數量上和來源上無法滿足自動化測試執行所需的龐大數量要求,這時,我們需要在手工準備資料的基礎上引入自動化的資料生成方法。大體上自動化測試資料可以歸為四大類,八小類,詳見下表。

表-1 自動化測試資料來源

自動化測試所需要的測試資料部分仍可透過手工製作,主要為固定標籤類值和資料資源池兩類。固定標籤類值即該欄位有明確的取值列表,如銀行卡賬戶型別(0-I 類、1-II類、3-III 類)、是否屬地(0-本地、1-異地)、客戶型別(G-政府、B-商戶、C-個人)等。資料資源池即將某些可以重複使用且數量少的資料,儲存在資料庫、CSV 檔案、text 檔案、ini 檔案等介質中供程式反覆抽取使用,這個資料池子我們稱為資料資源池。如身份證號、手機號、卡號、商戶號等這類離散資料。

透過自動化方式準備測試資料,主要可以分為查詢、修改、新增這三類。查詢類測試資料可以透過聯機查詢和sql查詢兩種方式獲得,查詢類測試資料說明測試資料本身是存在的,需要透過篩選條件甄別出本次需要的資料,作為測試資料。聯機查詢和 sql 查詢的區別就在於我們所需的資料是否有現成的查詢介面可用,若無,則需手動編寫 sql 語句完成資料篩選修改類資料也是一種已存在的資料,修改類資料和查詢類資料的區別在於查詢類測試資料的源資料滿足測試需要可以直接使用,而修改類測試資料的源資料無法滿足測試需要不能直接使用,需透過修改某些屬性才能滿足測試要求。因此需要透過修改操作對源資料進行二次修改,聯機修改和sql修改的區別在於是否有聯機修改介面可供使用。

新增類測試資料說明當前環境中無滿足測試需求的源資料或者修改源資料無法滿足測試要求時,需新增測試資料。比如銀行賬戶類資料,由於涉及客戶資訊校驗、記賬校驗等,單純的插入一條資料很難透過系統校驗,我們通常直接透過系統開的戶交易直接新增資料。比如新建系統無存量資料,或者環境中缺乏某些稀有型別的資料時,我們需要新增交易新增鋪底資料。

四、結語

市面上有各種形形色色的自動化測試工具,諸如 jmeter、postman、metersphere 等等。測試人員在接觸自動化測試之處,容易沉迷於瞭解,掌握更多的測試工具,忽略提升自動化測試認知水平,而陷於初級自動化測試的陷阱,疲於學習而無法提升自我。本文致力於提升大家對自動化測試的認識,引導大家向更高層次的自動化測試發展,提升測試人員整體價值。

最後:

可以到我的個人號:atstudy-js,可以免費領取一份10G軟體測試工程師面試寶典文件資料。以及相對應的影片學習教程免費分享!其中包括了有基礎知識、Linux必備、Mysql資料庫、抓包工具、介面測試工具、測試進階-Python程式設計、Web自動化測試、APP自動化測試、介面自動化測試、測試高階持續整合、測試架構開發測試框架、效能測試等。

這些測試資料,對於做【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2900549/,如需轉載,請註明出處,否則將追究法律責任。

相關文章