一種自動生成測試數(shù)據(jù)的方法
【專利摘要】本發(fā)明公開了一種自動生成測試數(shù)據(jù)的方法,包括建立測試數(shù)據(jù)生成工具;利用所述測試數(shù)據(jù)生成工具分析當前測試用例數(shù)據(jù)庫中數(shù)據(jù)的配置信息,根據(jù)所述配置信息獲取測試數(shù)據(jù)的生成程序;并根據(jù)所述測試數(shù)據(jù)的生成程序生成測試數(shù)據(jù)。本發(fā)明提供的自動生成測試數(shù)據(jù)方法,能夠根據(jù)實際測試場合的需要,向數(shù)據(jù)庫快速、高效地錄入完整、全面的測試數(shù)據(jù),從而在軟件測試過程中提高測試數(shù)據(jù)的生成效率以及測試數(shù)據(jù)的質(zhì)量。
【專利說明】一種自動生成測試數(shù)據(jù)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)測試【技術(shù)領(lǐng)域】,尤其涉及一種自動生成測試數(shù)據(jù)的方法。
【背景技術(shù)】
[0002]隨著信息化社會的飛速發(fā)展,軟件開發(fā)的項目越來越多,軟件架構(gòu)也越來越復(fù)雜,而且關(guān)于軟件產(chǎn)品的升級和更新的頻率也越來越頻繁。軟件測試是提高軟件產(chǎn)品可靠性、保證軟件產(chǎn)品質(zhì)量的重要手段,它是指利用測試工具按照測試方案和流程對產(chǎn)品進行功能和性能測試。軟件測試活動已經(jīng)融入到軟件產(chǎn)品全生命周期的各個階段中,軟件測試采用的各類技術(shù)方法以及測試工具已經(jīng)日趨成熟,相關(guān)的測試方法、測試用例和測試工具也在不斷地完善,因此軟件測試正在朝著規(guī)范化不斷發(fā)展。
[0003]在軟件測試過程中,首先需要生成測試數(shù)據(jù)。目前,測試數(shù)據(jù)的生成主要有兩種方法,一種方法是人工地通過軟件界面逐條錄入,即手動錄入或生成測試數(shù)據(jù);另外一種方法是編寫程序,循環(huán)錄入該程序所指定控制過程生成所需的測試數(shù)據(jù)?,F(xiàn)有技術(shù)在生成測試數(shù)據(jù)時,手動錄入過程繁瑣且耗時較長,測試數(shù)據(jù)的生成效率較低;而現(xiàn)有的采用編寫程序自動控制生成測試數(shù)據(jù)的技術(shù)方案,由于其程序指定的規(guī)則有限,會使得生成的測試數(shù)據(jù)不完整或不全面,導(dǎo)致生成的測試數(shù)據(jù)與預(yù)期目標相差較大。對不同的業(yè)務(wù)操作類型,用戶所需的測試數(shù)據(jù)的類型參數(shù)、測試數(shù)據(jù)的全面性等的要求并不相同,不同的測試數(shù)據(jù)對所要測試的軟件實際運行結(jié)果的影響至關(guān)重要,影響度量待測試軟件的質(zhì)量以及質(zhì)量的真實程度,并且現(xiàn)有技術(shù)也不能按照用戶期望的場景自動生成數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問題是,提供一種自動生成測試數(shù)據(jù)的方法,可根據(jù)用戶預(yù)定義的配置信息自動生成測試數(shù)據(jù)。
[0005]為解決以上技術(shù)問題,本發(fā)明實施例提供一種自動生成測試數(shù)據(jù)的方法,包括:
[0006]建立測試數(shù)據(jù)生成工具;
[0007]利用所述測試數(shù)據(jù)生成工具分析當前測試用例數(shù)據(jù)庫中數(shù)據(jù)的配置信息,根據(jù)所述配置信息獲取測試數(shù)據(jù)的生成程序;并根據(jù)所述測試數(shù)據(jù)的生成程序生成測試數(shù)據(jù)。
[0008]優(yōu)選地,所述測試數(shù)據(jù)生成工具采用輕量級架構(gòu)設(shè)計,并結(jié)合windows系統(tǒng)的可執(zhí)行命令進行通信和整合。
[0009]進一步地,所述測試數(shù)據(jù)生成工具包括控制層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層;
[0010]所述控制層通過發(fā)出控制代碼監(jiān)測所述測試數(shù)據(jù)生成工具的頁面跳轉(zhuǎn)邏輯關(guān)系,收集用戶請求數(shù)據(jù),轉(zhuǎn)發(fā)用戶請求以及根據(jù)用戶操作控制所述測試數(shù)據(jù)生成工具跳轉(zhuǎn)至指定的顯示頁面;
[0011]所述業(yè)務(wù)邏輯層根據(jù)所述控制層所監(jiān)測得到的頁面跳轉(zhuǎn)邏輯關(guān)系,將用戶的操作轉(zhuǎn)化為業(yè)務(wù)邏輯;
[0012]所述數(shù)據(jù)訪問層根據(jù)所述業(yè)務(wù)邏輯與所述測試用例數(shù)據(jù)庫進行數(shù)據(jù)傳輸與存儲,并將控制數(shù)據(jù)傳輸與存儲的訪問控制命令進行獨立封裝。
[0013]再進一步地,利用所述測試數(shù)據(jù)生成工具分析當前測試用例數(shù)據(jù)庫中數(shù)據(jù)的配置信息,根據(jù)所述配置信息獲取測試數(shù)據(jù)的生成程序包括:
[0014]利用所述控制層獲取所述配置信息,所述配置信息包括測試數(shù)據(jù)的模塊信息、類型信息和函數(shù)信息;
[0015]利用所述業(yè)務(wù)邏輯層對所述配置信息進行解析,根據(jù)用戶的輸入指令和所述配置信息建立測試數(shù)據(jù)的模型關(guān)系以及測試數(shù)據(jù)生成程序。
[0016]再進一步地,根據(jù)所述測試數(shù)據(jù)的生成程序生成測試數(shù)據(jù)包括:
[0017]利用所述業(yè)務(wù)邏輯層將用戶的輸入指令轉(zhuǎn)換為相應(yīng)的業(yè)務(wù)邏輯程序語句;
[0018]利用所述數(shù)據(jù)訪問層根據(jù)所述測試數(shù)據(jù)的模型關(guān)系,按照所述測試數(shù)據(jù)生成程序輸出測試數(shù)據(jù)表,并根據(jù)所述業(yè)務(wù)邏輯程序語句對所述測試數(shù)據(jù)表的字段信息進行設(shè)置,生成用戶指定的測試數(shù)據(jù)。
[0019]優(yōu)選地,所述根據(jù)業(yè)務(wù)邏輯程序語句對所述測試數(shù)據(jù)表的字段信息進行設(shè)置,包括:
[0020]對所述測試用例數(shù)據(jù)庫中的數(shù)據(jù)進行新增、改寫或刪除。
[0021]優(yōu)選地,所述測試數(shù)據(jù)表的字段信息包括字段名稱、字段類型和字段長度,以及是否允許字段為空。
[0022]優(yōu)選地,所述測試用例數(shù)據(jù)庫為關(guān)系型數(shù)據(jù)庫,所述業(yè)務(wù)邏輯程序語句為采用結(jié)構(gòu)化查詢語言編程的程序語句。
[0023]本發(fā)明實施例提供的自動生成測試數(shù)據(jù)的方法,通過建立智能的測試數(shù)據(jù)生成工具,能夠自動分析當前測試用例數(shù)據(jù)庫中數(shù)據(jù)的配置信息,根據(jù)所述配置信息獲取數(shù)據(jù)生成程序,并根據(jù)所述數(shù)據(jù)生成程序生成數(shù)據(jù)。本發(fā)明能夠根據(jù)實際測試場合的需要,向數(shù)據(jù)庫快速、高效地錄入完整、全面的測試數(shù)據(jù),從而在軟件測試過程中提高測試數(shù)據(jù)的生成效率以及測試數(shù)據(jù)的質(zhì)量。
【專利附圖】
【附圖說明】
[0024]圖1是本發(fā)明提供的自動生成測試數(shù)據(jù)的方法的一個實施例的步驟流程圖。
[0025]圖2是本發(fā)明提供的測試數(shù)據(jù)生成工具的一種數(shù)據(jù)架構(gòu)圖。
[0026]圖3是本發(fā)明提供的利用測試數(shù)據(jù)生成工具生成測試數(shù)據(jù)的一種實現(xiàn)方式的步驟流程圖。
[0027]圖4是本發(fā)明提供的各種測試數(shù)據(jù)的一種數(shù)據(jù)模型關(guān)系圖。
[0028]圖5是本發(fā)明提供的測試數(shù)據(jù)用于生成測試用例的平臺架構(gòu)圖。
【具體實施方式】
[0029]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述。
[0030]參見圖1,是本發(fā)明提供的自動生成測試數(shù)據(jù)的方法的一個實施例的步驟流程圖。
[0031]具體地,本實施例提供的自動生成測試數(shù)據(jù)的方法主要包括以下步驟:
[0032]步驟SlOl:建立測試數(shù)據(jù)生成工具。
[0033]步驟S102:利用所述測試數(shù)據(jù)生成工具分析當前測試用例數(shù)據(jù)庫中數(shù)據(jù)的配置信息,根據(jù)所述配置信息獲取測試數(shù)據(jù)的生成程序;并根據(jù)所述測試數(shù)據(jù)的生成程序生成測試數(shù)據(jù)。
[0034]在優(yōu)選的實施方式中,所述測試數(shù)據(jù)生成工具采用輕量級架構(gòu)設(shè)計,并結(jié)合windows系統(tǒng)(微軟公司制作和研發(fā)的一套桌面操作系統(tǒng))的可執(zhí)行命令進行通信和整合。其中,輕量級架構(gòu)是相對于重量級架構(gòu)而言的一種程序設(shè)計模式。輕量級架構(gòu)不帶有侵略性API (Applicat1n Programming Interface,應(yīng)用程序接口 ),對容器也沒有依賴性,易于進行配置、通用、啟動時間較短,因而輕量級架構(gòu)對測試數(shù)據(jù)生成工具的設(shè)計具有一定的優(yōu)勢,可減小工具開發(fā)的復(fù)雜度,使應(yīng)用工具不依賴于任何容器,提高開發(fā)調(diào)試效率;并且開源社區(qū)提供了良好的設(shè)計和快速構(gòu)建工具以及大量現(xiàn)成可供參考的開源代碼,有利于對測試數(shù)據(jù)生成工具的快速開發(fā)。
[0035]參看圖2,是本發(fā)明提供的測試數(shù)據(jù)生成工具的一種數(shù)據(jù)架構(gòu)圖。
[0036]在本實施例中,所述數(shù)據(jù)生成工具包括控制層(Command)、業(yè)務(wù)邏輯層(Service)和數(shù)據(jù)訪問層(Data Access Object,簡稱DAO)。
[0037]其中,所述控制層通過發(fā)出控制代碼監(jiān)測所述測試數(shù)據(jù)生成工具的頁面跳轉(zhuǎn)邏輯關(guān)系,收集用戶請求數(shù)據(jù),轉(zhuǎn)發(fā)用戶請求以及根據(jù)用戶操作控制所述測試數(shù)據(jù)生成工具跳轉(zhuǎn)至指定的顯示頁面(Java Server Pages,簡稱JSP)。如圖2所示,控制層可以包括服務(wù)接口層、展現(xiàn)層、身份認證授權(quán)管理模塊、安全控制日志管理模塊和ESB(Enterprise ServiceBus,企業(yè)服務(wù)總線)服務(wù)總線等,以連接和控制整個測試數(shù)據(jù)生成工具的信號,控制測試數(shù)據(jù)生成工具的工作狀態(tài)。此外,展現(xiàn)層還通過連接客戶端上的各種瀏覽器(InternetExplorer)與用戶進行數(shù)據(jù)通信。
[0038]在本實施例中,生成測試數(shù)據(jù)的軟件工具采用總線型架構(gòu)設(shè)計,可以消除不同應(yīng)用之間的技術(shù)差異,讓不同的應(yīng)用服務(wù)器協(xié)調(diào)運作,實現(xiàn)了不同服務(wù)之間的通信與整合。從功能上看,ESB提供了事件驅(qū)動和文檔導(dǎo)向的處理模式,以及分布式的運行管理機制,支持基于內(nèi)容的路由和過濾,具備了復(fù)雜數(shù)據(jù)的傳輸能力,并可以提供一系列的標準接口,提供其它系統(tǒng)使用。
[0039]進一步地,所述業(yè)務(wù)邏輯層根據(jù)所述控制層所監(jiān)測得到的頁面跳轉(zhuǎn)邏輯關(guān)系,將用戶的操作轉(zhuǎn)化為業(yè)務(wù)邏輯。對于非純業(yè)務(wù)邏輯的控制,可以交由AOP(Aspect OrientedProgramming,面向切面編程)的專門程序處理,提高測試數(shù)據(jù)生成的效率。
[0040]所述數(shù)據(jù)訪問層根據(jù)所述業(yè)務(wù)邏輯與所述測試用例數(shù)據(jù)庫進行數(shù)據(jù)傳輸與存儲,并將控制數(shù)據(jù)傳輸與存儲的訪問控制命令進行獨立封裝。具體地,DAO層主要生成業(yè)務(wù)邏輯中需要與數(shù)據(jù)庫之間進行交互的控制代碼,例如,本實施例對SQL (Structured QueryLanguage,結(jié)構(gòu)化查詢語言)程序語句、數(shù)據(jù)存儲過程等相應(yīng)的數(shù)據(jù)庫進行數(shù)據(jù)存取的部分控制代碼的封裝,將數(shù)據(jù)訪問層抽離獨立出來可以實現(xiàn)對測試數(shù)據(jù)更好的移植性。
[0041]如圖3所示,是本發(fā)明提供的利用測試數(shù)據(jù)生成工具生成測試數(shù)據(jù)的一種實現(xiàn)方式的步驟流程圖。
[0042]具體實施時,在所述步驟S102中,利用所述測試數(shù)據(jù)生成工具分析當前測試用例數(shù)據(jù)庫中數(shù)據(jù)的配置信息,根據(jù)所述配置信息獲取測試數(shù)據(jù)的生成程序,進一步地,包括:
[0043]步驟S201:利用所述控制層獲取所述配置信息,所述配置信息包括測試數(shù)據(jù)的模塊信息、類型信息和函數(shù)信息;
[0044]步驟S202:利用所述業(yè)務(wù)邏輯層對所述配置信息進行解析,根據(jù)用戶的輸入指令和所述配置信息建立測試數(shù)據(jù)的模型關(guān)系以及測試數(shù)據(jù)生成程序。
[0045]根據(jù)所述測試數(shù)據(jù)的生成程序生成測試數(shù)據(jù)的過程中,本實施例中的步驟S102進一步地還包括:
[0046]步驟S203:利用所述業(yè)務(wù)邏輯層將用戶的輸入指令轉(zhuǎn)換為相應(yīng)的業(yè)務(wù)邏輯程序語句;
[0047]步驟S204:利用所述數(shù)據(jù)訪問層根據(jù)所述測試數(shù)據(jù)的模型關(guān)系,按照所述測試數(shù)據(jù)生成程序輸出測試數(shù)據(jù)表,并根據(jù)所述業(yè)務(wù)邏輯程序語句對所述測試數(shù)據(jù)表的字段信息進行設(shè)置,生成用戶指定的測試數(shù)據(jù)。
[0048]參見圖4,是本發(fā)明提供的各種測試數(shù)據(jù)的一種數(shù)據(jù)模型關(guān)系圖。其中,表TPM_NEff_TEST_CASE為測試用例信息表,表TPM_NEW_PROJECT_REFBIZ為項目參考關(guān)聯(lián)表;表TPM_NEff_KEY_CASE_STEP為關(guān)鍵字用例步驟表;表TPM_NEW_SYSTEM_MODULE為系統(tǒng)模塊表,表TPM_NEW_TEST_CASE_STEP為測試用例步驟表。各個表之間有先后的關(guān)聯(lián)關(guān)系。
[0049]其中,所述測試數(shù)據(jù)表的字段信息包括字段名稱、字段類型和字段長度,以及是否允許字段為空。
[0050]其中,字段類型包括但不限于字符型、整數(shù)型、日期型及浮點型。若所述字段類型為字符型,該字段對應(yīng)的測試數(shù)據(jù)由任意字符組成;若所述字段類型為浮點型,該字段對應(yīng)的測試數(shù)據(jù)由包含小數(shù)點的數(shù)字組成;若所述字段類型為整數(shù)型或日期型,該字段對應(yīng)的測試數(shù)據(jù)由整數(shù)組成。此外,在本實施例中,若數(shù)據(jù)表中含有字段內(nèi)容為系統(tǒng)自動編號的字段,則不為該字段生成測試數(shù)據(jù)。需要說明的是,字段信息具體內(nèi)容可根據(jù)各個數(shù)據(jù)表應(yīng)用自行設(shè)置,在此不再一一舉例說明。具體實施時,用戶可利用測試數(shù)據(jù)生成工具的工作原理,根據(jù)自定義的測試數(shù)據(jù)生成規(guī)則來生成測試場合所需要的數(shù)據(jù)。
[0051]優(yōu)選地,所述測試用例數(shù)據(jù)庫為關(guān)系型數(shù)據(jù)庫,所述業(yè)務(wù)邏輯程序語句為采用結(jié)構(gòu)化查詢語言編程(SQL)的程序語句。當用戶在客戶端瀏覽器頁面進行某項操作時,獲取并解析用戶操作對應(yīng)的程序語句,將該語句中包含的所有數(shù)據(jù)表的字段信息分別導(dǎo)出。需要說明的是,可以采用所述的次測試數(shù)據(jù)生成工具根據(jù)用戶的配置與操作生成一種或多種測試數(shù)據(jù)表。
[0052]譬如,若用戶通過某一瀏覽器登錄測試數(shù)據(jù)生成工具后,利用該軟件工具建立數(shù)據(jù)組(表現(xiàn)為數(shù)據(jù)組表TPM_DATA_GR0UP),則可以獲得該數(shù)據(jù)組表的字段信息如下表I所
/Jn ο
[0053]表I數(shù)據(jù)組表
[0054]
序號I字段名稱I字段描述I字段類型pEW5
1IDIDNUMBER19N
2DATA—GROUP—NAME~數(shù)據(jù)組名稱VARCHAR2256 N
【權(quán)利要求】
1.一種自動生成測試數(shù)據(jù)的方法,其特征在于,包括: 建立測試數(shù)據(jù)生成工具; 利用所述測試數(shù)據(jù)生成工具分析當前測試用例數(shù)據(jù)庫中數(shù)據(jù)的配置信息,根據(jù)所述配置信息獲取測試數(shù)據(jù)的生成程序;并根據(jù)所述測試數(shù)據(jù)的生成程序生成測試數(shù)據(jù)。
2.如權(quán)利要求1所述的自動生成測試數(shù)據(jù)的方法,其特征在于,所述測試數(shù)據(jù)生成工具采用輕量級架構(gòu)設(shè)計,并結(jié)合windows系統(tǒng)的可執(zhí)行命令進行通信和整合。
3.如權(quán)利要求2所述的自動生成測試數(shù)據(jù)的方法,其特征在于,所述測試數(shù)據(jù)生成工具包括控制層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層; 所述控制層通過發(fā)出控制代碼監(jiān)測所述測試數(shù)據(jù)生成工具的頁面跳轉(zhuǎn)邏輯關(guān)系,收集用戶請求數(shù)據(jù),轉(zhuǎn)發(fā)用戶請求以及根據(jù)用戶操作控制所述測試數(shù)據(jù)生成工具跳轉(zhuǎn)至指定的顯示頁面; 所述業(yè)務(wù)邏輯層根據(jù)所述控制層所監(jiān)測得到的頁面跳轉(zhuǎn)邏輯關(guān)系,將用戶的操作轉(zhuǎn)化為業(yè)務(wù)邏輯; 所述數(shù)據(jù)訪問層根據(jù)所述業(yè)務(wù)邏輯與所述測試用例數(shù)據(jù)庫進行數(shù)據(jù)傳輸與存儲,并將控制數(shù)據(jù)傳輸與存儲的訪問控制命令進行獨立封裝。
4.如權(quán)利要求3所述的自動生成測試數(shù)據(jù)的方法,其特征在于,利用所述測試數(shù)據(jù)生成工具分析當前測試用例數(shù)據(jù)庫中數(shù)據(jù)的配置信息,根據(jù)所述配置信息獲取測試數(shù)據(jù)的生成程序包括: 利用所述控制層獲取所述配置信息,所述配置信息包括測試數(shù)據(jù)的模塊信息、類型信息和函數(shù)信息; 利用所述業(yè)務(wù)邏輯層對所述配置信息進行解析,根據(jù)用戶的輸入指令和所述配置信息建立測試數(shù)據(jù)的模型關(guān)系以及測試數(shù)據(jù)生成程序。
5.如權(quán)利要求4所述的自動生成測試數(shù)據(jù)的方法,其特征在于,根據(jù)所述測試數(shù)據(jù)的生成程序生成測試數(shù)據(jù)包括: 利用所述業(yè)務(wù)邏輯層將用戶的輸入指令轉(zhuǎn)換為相應(yīng)的業(yè)務(wù)邏輯程序語句; 利用所述數(shù)據(jù)訪問層根據(jù)所述測試數(shù)據(jù)的模型關(guān)系,按照所述測試數(shù)據(jù)生成程序輸出測試數(shù)據(jù)表,并根據(jù)所述業(yè)務(wù)邏輯程序語句對所述測試數(shù)據(jù)表的字段信息進行設(shè)置,生成用戶指定的測試數(shù)據(jù)。
6.如權(quán)利要求5所述的自動生成測試數(shù)據(jù)的方法,其特征在于,所述根據(jù)業(yè)務(wù)邏輯程序語句對所述測試數(shù)據(jù)表的字段信息進行設(shè)置,包括: 對所述測試用例數(shù)據(jù)庫中的數(shù)據(jù)進行新增、改寫或刪除。
7.如權(quán)利要求6所述的自動生成測試數(shù)據(jù)的方法,其特征在于,所述測試數(shù)據(jù)表的字段信息包括字段名稱、字段類型和字段長度,以及是否允許字段為空。
8.如權(quán)利要求7所述的自動生成測試數(shù)據(jù)的方法,其特征在于,所述測試用例數(shù)據(jù)庫為關(guān)系型數(shù)據(jù)庫,所述業(yè)務(wù)邏輯程序語句為采用結(jié)構(gòu)化查詢語言編程的程序語句。
【文檔編號】G06F11/36GK104133772SQ201410397662
【公開日】2014年11月5日 申請日期:2014年8月13日 優(yōu)先權(quán)日:2014年8月13日
【發(fā)明者】魏理豪, 錢揚, 崔磊, 張超, 鄒洪 申請人:廣東電網(wǎng)公司信息中心