技術領域
本發(fā)明涉及測試領域,具體涉及一種測試數據獲取方法與系統(tǒng)。
背景技術:
隨著移動端逐漸成為互聯網發(fā)展的趨勢,移動互聯網的應用及崛起勢不可擋,這就對傳統(tǒng)的基于前端的互聯網的測試有了更高的要求,即互聯網產品應用不僅要合適PC端的特性,還需要兼容移動端iOS和android及OTT等各端的需求,而不同的前端對應的業(yè)務場景也有可能不同。
在傳統(tǒng)的基于前端的測試過程中,對于不同的前端,需要不同的測試人員進行覆蓋性測試,在以往的基礎上,大家都是各自按照自己的需求設計各端的測試數據,這樣就需要所有的前端測試的測試人員需要都需要了解程序的計算邏輯以及業(yè)務場景,并根據實際的測試需求,設計合理的測試用例。而實際情況是,測試功能的人員大部分時間都在跟蹤開發(fā)程序員提交程序的單元測試和接口測試,很少結合前端業(yè)務場景應用來設計測試用例,而前端應用場景的測試人員,則經常在測試數據構造上遇到困難。若兩者結合起來,復用單元測試和接口測試的測試數據,則會為前端測試提供更多、更全面的測試數據。
技術實現要素:
為了解決上述技術問題,本發(fā)明提出了一種測試數據獲取方法與系統(tǒng)、一種應用于收益算法測試的測試方法與系統(tǒng)。本發(fā)明通過生成測試數據并將測試數據保存起來,從而形成了用于向不同前端提供測試數據的數據銀行,并將測試數據復用于前端。本發(fā)明將功能測試的測試數據與前端的實際應用兩者結合起來,復用單元測試和接口測試的測試數據,能夠會為前端測試提供更多、更全面的測試數據。測試數據的復用能夠支持多個前端進行并發(fā)測試。
本發(fā)明是以如下技術方案實現的,一種測試數據獲取方法,所述測試數據包括測試用例參數和測試預期果數據,包括:
根據被測試對象隨機生成測試用例參數,所述測試用例參數與所述被測試對象的應用場景相關;
根據預設的測試用例算法與所述測試用例參數獲取所述測試用例對應的測試預期結果數據;
保存所述測試用例參數與所述測試用例參數對應的測試預期結果數據。
優(yōu)選的,還包括:
對于多個被測試對象,為每個被測試對象分配一個測試對象標識;
保存測試對象標識、與被測試對象對應的測試用例參數以及與被測試對象對應的測試預期結果數據。
優(yōu)選的,還包括:
將所述測試數據復用到不同的前端,所述前端包括PC端、Android和/或iOS。
一種應用于收益算法測試的測試方法,基于上述的測試數據獲取方法,包括:
隨機生成用于獲取收益的測試用例參數;
根據預設的測試用例算法獲取所述測試用例參數應得的預期收益;
根據所述測試用例參數與待測試的收益算法獲取實測收益;
保存測試數據,所述測試數據包括測試用例參數、所述測試用例參數對應的預期收益以及實測收益;
將所述測試數據復用至前端;
根據所述實測收益與所述預期收益的關系獲取測試結果。
優(yōu)選的,所述根據所述實測收益與所述預期收益的關系獲取測試結果包括:
判斷所述實測收益與所述預期收益是否相等:若是,則測試通過;否則,測試不通過,判定所述待測試的收益算法存在錯誤。
優(yōu)選的,還包括:
獲取多個賬號,每個賬號對應一種收益算法;
保存所述測試數據,所述測試數據包括賬號、與賬號對應的測試用例參數、所述測試用例參數對應的預期收益以及實測收益。
一種測試數據獲取系統(tǒng),包括:
測試用例參數獲取模塊,用于根據被測試對象隨機生成測試用例參數,所述測試用例參數與所述被測試對象的應用場景相關;
測試預期結果數據獲取模塊,用于根據預設的測試用例算法與所述測試用例參數獲取所述測試用例對應的測試預期結果數據;
測試數據存儲模塊,用于保存所述測試用例參數與所述測試用例參數對應的測試預期結果數據。
優(yōu)選的,還包括:
標識分配模塊,用于對于多個被測試對象,為每個被測試對象分配一個測試對象標識;
所述測試數據存儲模塊還保存測試對象標識、與被測試對象對應的測試用例參數以及與被測試對象對應的測試預期結果數據。
一種應用于收益算法測試的測試系統(tǒng),包括:
測試用例參數獲取模塊,用于隨機生成用于獲取收益的測試用例參數;
預期收益獲取模塊,用于根據預設的測試用例算法獲取所述測試用例參數應得的預期收益;
實測收益獲取模塊,用于根據所述測試用例參數與待測試的收益算法獲取實測收益;
測試數據保存模塊,用于保存測試數據,所述測試數據包括測試用例參數、所述測試用例參數對應的預期收益以及實測收益;
測試數據復用模塊,用于將所述測試數據復用至前端;
測試結果獲取模塊,用于根據所述實測收益與所述預期收益的關系獲取測試結果。
優(yōu)選的,還包括:
賬號獲取模塊,用于獲取多個賬號,每個賬號對應一種收益算法;
所述測試數據保存模塊,用于保存測試數據,保存所述測試數據,所述測試數據包括賬號、與賬號對應的測試用例參數、所述測試用例參數對應的預期收益以及實測收益。
本發(fā)明的有益效果是:
本發(fā)明提出了一種測試數據獲取方法與系統(tǒng)、一種應用于收益算法測試的測試方法與系統(tǒng)。本發(fā)明具有如下有益效果:
(1)本發(fā)明通過生成測試數據,并將測試數據保存起來,從而形成了用于向不同前端提供測試數據的數據銀行,并將測試數據復用于前端,提高了數據利用率。
(2)本發(fā)明將功能測試的測試數據與前端的實際應用兩者結合起來,復用單元測試和接口測試的測試數據,能夠會為前端測試提供更多、更全面的測試數據。
(3)測試數據的復用也避免了針對不同前端的需要構造不同應用場景的測試環(huán)境而產生的人力物力成本,能夠支持多個前端進行并發(fā)測試。
附圖說明
圖1是實施例1中提供的一種測試數據獲取方法方法流程圖;
圖2是實施例2中提供的一種應用于收益算法測試的測試方法流程圖;
圖3是實施例2中提供的虛擬金幣的產生業(yè)務流程流程圖;
圖4是實施例2中提供的路由器測試方法流程圖;
圖5是實施例2中提供的路由器測試方法示意圖;
圖6是實施例3中提供的一種測試數據獲取系統(tǒng)示意圖;
圖7是實施例4中提供的一種應用于收益算法測試的測試系統(tǒng)示意圖。
具體實施方法
為了使本技術領域的人員更好地理解本發(fā)明方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
需要說明的是,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
實施例1:
一種測試數據獲取方法,所述測試數據包括測試用例參數和測試預期果數據,如圖1所示,包括:
S101. 根據被測試對象隨機生成測試用例參數,所述測試用例參數與所述被測試對象的應用場景相關。
S102. 根據預設的測試用例算法與所述測試用例參數獲取所述測試用例對應的測試預期結果數據。
S103. 保存所述測試用例參數與所述測試用例參數對應的測試預期結果數據。
具體地,一個測試對象對應一個應用場景,若存在多個應用場景,則有多個測試對象,這種情況下,還包括如下步驟:
對于多個被測試對象,為每個被測試對象分配一個測試對象標識;
保存測試對象標識、與被測試對象對應的測試用例參數以及與被測試對象對應的測試預期結果數據。
具體地,還包括:
將所述測試數據復用到不同的前端,所述前端包括PC端、Android和/或iOS。
本實施例提出了基于后端測試的一種測試用例復用到前端的測試數據獲取方法,依托本實施例方法的測試方法俊能夠避免測試用例數據的重復構造,節(jié)省了大量的測試時間和溝通成本。
實施例2:
一種應用于收益算法測試的測試方法,基于實施例1的測試數據獲取方法,如圖2所示,包括:
S201. 隨機生成用于獲取收益的測試用例參數。
S202. 根據預設的測試用例算法獲取所述測試用例參數應得的預期收益。
S203. 根據所述測試用例參數與待測試的收益算法獲取實測收益。
S204. 保存測試數據,所述測試數據包括測試用例參數、所述測試用例參數對應的預期收益以及實測收益。
S205. 將所述測試數據復用至前端。
S206.根據所述實測收益與所述預期收益的關系獲取測試結果:
判斷所述實測收益與所述預期收益是否相等:若是,則測試通過;否則,測試不通過,判定所述待測試的收益算法存在錯誤。
其中S205與S206沒有明確的先后關系。
具體地,還包括:
獲取多個賬號,每個賬號對應一種收益算法;
保存所述測試數據,所述測試數據包括賬號、與賬號對應的測試用例參數、所述測試用例參數對應的預期收益以及實測收益。
下面以能夠獲取收益的路由器為例,對本實施例所述方法進行解釋。
隨著互聯網普惠金融產品越來越多,針對以能夠獲取收益的路由器的上層應用的虛擬金幣的前端業(yè)務流程越來越復雜,結算模式越來越多樣化,同時涉及到的應用終端和對應的應用場景也越來越多,本方法能夠應用于在復雜的前端業(yè)務流程中,通過測試數據的復用實現測試數據驅動的測試。
虛擬金幣的產生業(yè)務流程如圖3所示,下面對路由器與收益有關的業(yè)務邏輯做出簡要介紹:
業(yè)務模式1:
為了避免用戶購買了路由器,安裝后,沒有收益,所以采取旱澇保收的業(yè)務模式,推動用戶采用路由器的積極性,增加用戶收益預期?;钴S用戶參與度。所述業(yè)務模式1采用收益保障算法來增加用戶的以收益,從而推動用戶采用路由器的積極性。
業(yè)務模式2:
同樣為了避免用戶購買路由器安裝后,某一天的收益波動過大,或者過小,采用了波動控制算法,也就是說,在同一個周期(比如一周、一個月)內其收益環(huán)比不得低于90%,不得高于120%,即可保障用戶收益的穩(wěn)定性。
業(yè)務模式3:與其他方合作銷售,比如用戶先從京東白條、淘寶花唄等途徑支付硬件的購買款,然后再選擇用虛擬金幣收益來抵硬件的購買模式,業(yè)務模式3的邏輯比較復雜,考慮的方面比較多,總體來說到了與第三方合作的還款日后,自動把收益的虛擬金幣兌換成人民幣,打到第三方的白條、花唄等賬戶,進行自動還款。
業(yè)務模式4:與運營商的合作,這里面包括與北京聯通運營商的合作:提升安裝路由器用戶的上傳帶寬。考慮到雙方的成本問題,該業(yè)務模式的結算模式如下:
A賬戶為稅收賬戶(路由器提供商的賬戶),B賬戶為聯通的賬戶,C賬戶為用戶的賬戶,由路由器提供商從該業(yè)務模式的賬戶收益中收取50%的稅,然后B賬戶再在剩下的賬戶中收取80%的利潤,剩下的20%為用戶所得。這樣三方均收益。這類業(yè)務模式可稱之為利益均享模式,或者利益普惠模式。
業(yè)務模式5:免廣告收益,該模式與路由器提供商提供的視頻VIP賬號相關:
若用戶參與了觀看視頻免廣告模式后,則綁定主站的賬號在路由器提供商提供的視頻網站觀看視頻時,則默認為輕會員免廣告模式。
業(yè)務模式6:普通用戶的收益模式,即除了以上5中的其他收益模式。
根據不同的模式組合,比如同一個用戶可以擁有以上6種不同業(yè)務邏輯模式下的6個路由器。
這種情況下,對應的應用場景有6種業(yè)務邏輯的組合方式:
N=C(6,1)+C(6,2)+C(6,3)+C(6,4)+C(6,5)+C(6,6)
由上面的6種業(yè)務邏輯的排列組合得63種業(yè)務結算邏輯。所以,為對應不同的應用場景,前端分配63個uid(會員賬號),每個會員賬號對應一種應用場景,每一種應用場景對應的算法均需要進行測試。通過全面的測試,在測試中進行相應全業(yè)務模型的結算來保證各端的結算邏輯的正確以及各端展示的正確性。
這種具體應用中,測試方法如圖4所示,包括:
(1)序列化相關的uid予以不同的業(yè)務邏輯身份。
每個uid為一個賬號,每個賬號對應一種收益算法。
(2)根據虛擬金幣生成的規(guī)則,隨機生成符合該規(guī)則的虛擬流量。
所述虛擬流量即為每一種收益算法對應的測試用例參數。所述虛擬流量存儲于第一數據庫。
(3)根據預設的收益算法獲取所述虛擬流量應得的預期收益。
所述預設的收益算法為測試人員使用的算法,在測試過程中認為所述算法為正確的算法,所述預期收益用于衡量開發(fā)人員用于表述收益算法的代碼的正確性。
本實施例中預期收益為uid對應的預設的收益算法針對虛擬流量計算出的預期收益。
(4)根據虛擬流量,通過開發(fā)人員編寫的程序,計算uid對應的虛擬流量的實測收益。
(5)保存所述測試數據,所述測試數據包括測試用例參數、所述測試用例參數對應的預期收益以及實測收益。
具體地,所述測試數據為uid、與uid對應的虛擬流量以及所述虛擬流量計算出得預期收益和實測收益。所述測試數據被存儲于第二數據庫中,所述第二數據庫也稱為數據銀行。
具體地,在數據銀行中保存所述測試數據,所述數據銀行為保存所述測試數據的服務器,通過向各個應用場景所在的前端發(fā)布測試數據提升測試數據的復用性,所述前端顯示測試數據即可。
(6)根據所述實測收益與所述預期收益的關系獲取測試結果:
判斷所述實測收益與所述預期收益是否相等:若是,則測試通過;否則,測試不通過,判定所述收益算法存在錯誤。
本測試方法如圖5所示,為基于虛擬銀行結算業(yè)務在各終端的數據表現的數據驅動測試。通過將實測收益和預期收益一起顯示在各端,從而滿足不同的終端對各種業(yè)務邏輯的適配。通過復用數據,避免了多個終端需要構造自身的業(yè)務場景,節(jié)省了人力物力成本,并且理論上支持數量不限的終端同時進行測試。
以此得出,在研發(fā)的路由器迭代的過程中該測試模型在每次新產品上線時,各終端已有的業(yè)務類型不受新業(yè)務形態(tài)的影響,只是從數據銀行獲取新的數據即可,從而極大地提升了測試效率,并提升了測試可靠性。
此外,本實施例具有如下優(yōu)點:
1、不同終端間建立共有的數據模型,使用共同的數據銀行,不再需要為不同的終端對應的不同的業(yè)務邏輯單獨設立業(yè)務場景,而是從數據銀行中統(tǒng)一調取,從而簡化了前端測試的復雜度。
2、利用虛擬金幣(即收益)生成的不確定性,設計測試用例,與實際應用場景結合,在測試環(huán)境抽象出不同的uid構造基于不同業(yè)務邏輯的虛擬流量,并檢驗不同的測試邏輯下的收益算法。顯而易見,本實施例中提供的測試方法通過使用兩個數據庫進行數據管理的方式進行測試,邏輯清晰,應用于業(yè)務邏輯復雜的場景中,優(yōu)勢尤為明顯。
實施例3
一種測試數據獲取系統(tǒng),如圖6所示,包括:
測試用例參數獲取模塊301,用于根據被測試對象隨機生成測試用例參數,所述測試用例參數與所述被測試對象的應用場景相關;
測試預期結果數據獲取模塊302,用于根據預設的測試用例算法與所述測試用例參數獲取所述測試用例對應的測試預期結果數據;
測試數據存儲模塊303,用于保存所述測試用例參數與所述測試用例參數對應的測試預期結果數據。
具體地,還包括:
標識分配模塊304,用于對于多個被測試對象,為每個被測試對象分配一個測試對象標識。
所述測試數據存儲模塊還保存測試對象標識、與被測試對象對應的測試用例參數以及與被測試對象對應的測試預期結果數據。
實施例4:
一種應用于收益算法測試的測試數據,如圖7所示,包括:
測試用例參數獲取模塊401,用于隨機生成用于獲取收益的測試用例參數;
預期收益獲取模塊402,用于根據預設的測試用例算法獲取所述測試用例參數應得的預期收益;
實測收益獲取模塊403,用于根據所述測試用例參數與待測試的收益算法獲取實測收益;
測試數據保存模塊404,用于保存測試數據,所述測試數據包括測試用例參數、所述測試用例參數對應的預期收益以及實測收益;
測試數據復用模塊405,用于將所述測試數據復用至前端;
測試結果獲取模塊406,用于根據所述實測收益與所述預期收益的關系獲取測試結果。
具體地,還包括:
賬號獲取模塊407,用于獲取多個賬號,每個賬號對應一種收益算法;
所述測試數據保存模塊,用于保存測試數據,保存所述測試數據,所述測試數據包括賬號、與賬號對應的測試用例參數、所述測試用例參數對應的預期收益以及實測收益。
本發(fā)明中的技術方案中的各個模塊均可通過計算機終端或其它設備實現。所述計算機終端包括處理器和存儲器。所述存儲器用于存儲本發(fā)明中的程序指令/模塊,所述處理器通過運行存儲在存儲器內的程序指令/模塊,實現本發(fā)明相應功能。
本發(fā)明中的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在存儲介質中,包括若干指令用以使得一臺或多臺計算機設備(可為個人計算機、服務器或者網絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。
本發(fā)明中所述模塊/單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行??梢愿鶕嶋H的需要選擇其中的部分或者全部模塊/單元來達到實現本發(fā)明方案的目的。
另外,在本發(fā)明各個實施例中的各模塊/單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。