午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

一種程序自動化測試方法及系統(tǒng)與流程

文檔序號:11133854閱讀:668來源:國知局
本發(fā)明是關于計算機軟件測試技術,具體地,是關于一種程序自動化測試方法及系統(tǒng)。
背景技術
:目前,在程序開發(fā)過程中或者后期的程序維護中,當對程序進行修改后,往往需要將整個程序重新進行測試,將全部測試案例重新運行,這涉及到需要重新準備大量測試數(shù)據(jù),運行大量的測試案例,消耗大量的系統(tǒng)資源,浪費主機資源,造成系統(tǒng)運行效率、測試效率低。如果能夠自動分析出程序修改點,并將該程序修改點涉及的測試數(shù)據(jù)、測試案例分析與篩選出來,在進行程序測試時,只需要重新準備與修改點相關的測試數(shù)據(jù),只運行修改點相關的測試案例,則將大大提高測試系統(tǒng)運行效率,提高測試效率。因此,如何實現(xiàn)上述過程是目前程序測試中需要研究解決的問題。技術實現(xiàn)要素:本發(fā)明實施例的主要目的在于提供一種程序自動化測試方法及系統(tǒng),以實現(xiàn)更加方便、快捷且占用資源較少的軟件測試過程。為了實現(xiàn)上述目的,本發(fā)明實施例提供一種程序自動化測試方法,所述的程序自動化測試方法包括:將修改后代碼與原始代碼進行差異比對,根據(jù)所述修改后代碼與原始代碼的差異位置生成代碼差異文本;根據(jù)預設的關鍵字及所述差異位置,查找所述修改后代碼中包含所述關鍵字、且距離所述差異位置最近的程序修改功能項;根據(jù)所述程序修改功能項在預設的對照表中查找相應的測試腳本及測試數(shù)據(jù),并執(zhí)行所述測試腳本對所述測試數(shù)據(jù)進行測試。在一實施例中,上述的根據(jù)所述程序修改功能項在預設的對照表中查找相應的測試腳本及測試數(shù)據(jù),具體包括:根據(jù)預設的關鍵字定義表及所述程序修改功能項查找對應的案例功能項,其中,所述關鍵字定義表中記錄有所述案例功能項與所述程序修改功能項的對應關系;根據(jù)所述案例功能項檢索預設的腳本功能存儲表,確定所述案例功能項對應的測試腳本及測試數(shù)據(jù)。在一實施例中,上述的代碼差異文本中記錄的所述差異位置為所述修改后代碼與原始代碼相比的代碼修改點在所述修改后代碼中的修改點行數(shù)。在一實施例中,上述的根據(jù)預設的關鍵字及所述差異位置,查找所述修改后代碼中包含所述關鍵字、且距離所述差異位置最近的程序修改功能項,具體包括:從所述修改點行數(shù)開始,向上查找所述修改后代碼中包含所述關鍵字的至少一備選程序修改功能項;查找所述備選程序修改功能項中,距離所述修改點行數(shù)最近的一備選程序修改功能項,并確定為所述的程序修改功能項。在一實施例中,上述的查找所述備選程序修改功能項中,距離所述修改點行數(shù)最近的一備選程序修改功能項,具體包括:步驟1:從所述修改后代碼的第t行開始,根據(jù)第m行對應的關鍵字值向上查找;步驟2:若找到所述關鍵字值,則判斷a是否為0;若a為0,則直接將找到的關鍵字值所處行數(shù)賦給a;若a不為0,則判斷找到的關鍵字值所處行數(shù)是否大于a;步驟3:若找到的關鍵字值所處行數(shù)大于a,則將找到的關鍵字值所處行數(shù)賦給a,否則保留a的取值;步驟4:判斷m是否為所述關鍵字定義表的最后一行;若m不為所述關鍵字定義表的最后一行,則將m更新為m+1,返回執(zhí)行所述步驟1至步驟3;若m為所述關鍵字定義表的最后一行,將a的取值對應的備選程序修改功能項確定為所述距離所述修改點行數(shù)最近的備選程序修改功能項;其中,m初始值為1,表示當前關鍵字定義表行數(shù);a為臨時變量,初始值為0;t為所述代碼差異文本中記錄的所述修改點行數(shù)。在一實施例中,在所述步驟4之后,查找所述備選程序修改功能項中,距離所述修改點行數(shù)最近的一備選程序修改功能項,還包括:步驟5:判斷n是否為所述代碼差異文本的最后一行;若n不為所述代碼差異文本的最后一行,則將n更新為n+1,返回執(zhí)行所述步驟1至步驟4;若n為所述代碼差異文本的最后一行,則執(zhí)行根據(jù)預設的關鍵字定義表及所述程序修改功能項查找對應的案例功能項的步驟;其中,n初始值為1,表示所述代碼差異文本行數(shù)。在一實施例中,上述的執(zhí)行所述測試腳本對所述測試數(shù)據(jù)進行測試,具體包括:通過所述測試腳本調用所述案例功能項所對應的程序代碼作為測試程序代碼;在單獨搭建的測試環(huán)境中運行所述測試程序代碼,對所述測試數(shù)據(jù)進行測試。本發(fā)明實施例還提供一種程序自動化測試系統(tǒng),所述的程序自動化測試系統(tǒng)包括:代碼差異文本生成單元,用于將修改后代碼與原始代碼進行差異比對,根據(jù)所述修改后代碼與原始代碼的差異位置生成代碼差異文本;程序修改功能項查找單元,用于根據(jù)預設的關鍵字及所述差異位置,查找所述修改后代碼中包含所述關鍵字、且距離所述差異位置最近的程序修改功能項;測試腳本確定單元,用于根據(jù)所述程序修改功能項在預設的對照表中查找相應的測試腳本及測試數(shù)據(jù),并執(zhí)行所述測試腳本對所述測試數(shù)據(jù)進行測試。在一實施例中,上述的測試腳本確定單元包括:案例功能項查找模塊,用于根據(jù)預設的關鍵字定義表及所述程序修改功能項查找對應的案例功能項,其中,所述關鍵字定義表中記錄有所述案例功能項與所述程序修改功能項的對應關系;測試腳本確定模塊,用于根據(jù)所述案例功能項檢索預設的腳本功能存儲表,確定所述案例功能項對應的測試腳本及測試數(shù)據(jù)。在一實施例中,上述的代碼差異文本中記錄的所述差異位置為所述修改后代碼與原始代碼相比的代碼修改點在所述修改后代碼中的修改點行數(shù)。在一實施例中,上述的程序修改功能項查找單元具體包括:備選程序修改功能項查找模塊,用于從所述修改點行數(shù)開始,向上查找所述修改后代碼中包含所述關鍵字的至少一備選程序修改功能項;程序修改功能項確定模塊,用于查找所述備選程序修改功能項中,距離所述修改點行數(shù)最近的一備選程序修改功能項,并確定為所述的程序修改功能項。在一實施例中,上述的程序修改功能項確定模塊具體用于執(zhí)行以下步驟:步驟1:從所述修改后代碼的第t行開始,根據(jù)第m行對應的關鍵字值向上查找;步驟2:若找到所述關鍵字值,則判斷a是否為0;若a為0,則直接將找到的關鍵字值所處行數(shù)賦給a;若a不為0,則判斷找到的關鍵字值所處行數(shù)是否大于a;步驟3:若找到的關鍵字值所處行數(shù)大于a,則將找到的關鍵字值所處行數(shù)賦給a,否則保留a的取值;步驟4:判斷m是否為所述關鍵字定義表的最后一行;若m不為所述關鍵字定義表的最后一行,則將m更新為m+1,返回執(zhí)行所述步驟1至步驟3;若m為所述關鍵字定義表的最后一行,將a的取值對應的備選程序修改功能項確定為所述距離所述修改點行數(shù)最近的備選程序修改功能項;其中,m初始值為1,表示當前關鍵字定義表行數(shù);a為臨時變量,初始值為0;t為所述代碼差異文本中記錄的所述修改點行數(shù)。在一實施例中,上述的程序修改功能項確定模塊還用于:步驟5:判斷n是否為所述代碼差異文本的最后一行;若n不為所述代碼差異文本的最后一行,則將n更新為n+1,返回執(zhí)行所述步驟1至步驟4;若n為所述代碼差異文本的最后一行,則觸發(fā)所述案例功能項查找單元,根據(jù)預設的關鍵字定義表及所述程序修改功能項查找對應的案例功能項;其中,n初始值為1,表示所述代碼差異文本行數(shù)。在一實施例中,上述的測試腳本確定單元執(zhí)行所述測試腳本對所述測試數(shù)據(jù)進行測試的步驟,具體包括:通過所述測試腳本調用所述案例功能項所對應的程序代碼作為測試程序代碼;在單獨搭建的測試環(huán)境中運行所述測試程序代碼,對所述測試數(shù)據(jù)進行測試。本發(fā)明實施例的有益效果在于,能夠有效利用主機資源有針對性地進行測試,節(jié)省主機資源,并提高了測試效率。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為根據(jù)本發(fā)明實施例的程序自動化測試方法的流程圖;圖2A及圖2B為根據(jù)本發(fā)明實施例的程序修改功能項的查找過程的流程示意圖;圖3為根據(jù)本發(fā)明實施例的程序自動化測試系統(tǒng)的結構示意圖;圖4為根據(jù)本發(fā)明實施例的程序修改功能項查找單元2的結構示意圖;圖5為根據(jù)本發(fā)明實施例的測試腳本確定單元3的結構示意圖。具體實施方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本發(fā)明實施例提供一種程序自動化測試方法和系統(tǒng)。以下結合附圖對本發(fā)明進行詳細說明。如圖1所示,本發(fā)明實施例的程序自動化測試方法主要包括以下步驟:步驟S101:將修改后代碼與原始代碼進行差異比對,根據(jù)修改后代碼與原始代碼的差異位置生成代碼差異文本;步驟S102:根據(jù)預設的關鍵字及差異位置,查找修改后代碼中包含關鍵字、且距離差異位置最近的程序修改功能項;步驟S103:根據(jù)程序修改功能項在預設的對照表中查找相應的測試腳本及測試數(shù)據(jù),并執(zhí)行測試腳本對所述測試數(shù)據(jù)進行測試。通過上述步驟S101至步驟S103,將新舊版本的代碼進行差異比較,找到差異點,根據(jù)該差異點來查找相應的程序修改功能項,從而有針對性地進行腳本測試,能夠有效利用主機資源進行測試,節(jié)省主機資源,并提高了測試效率。以下結合具體實施例,對本發(fā)明實施例的程序自動化測試方法做進一步說明。上述的步驟S101,將修改后代碼與原始代碼進行差異比對,根據(jù)修改后代碼與原始代碼的差異位置生成代碼差異文本。具體地,可以是將當前版本代碼(修改后代碼)及上一版本代碼(原始代碼)分別放在2個txt文本中,然后對兩個文本做逐行對比,比較差異點結果。具體實施時,該差異點可分為3種情況:第1種是當前版本代碼新增了代碼段;第2種是當前版本代碼修改了代碼段;第3種是當前版本代碼刪除了代碼段。將這3種情況的代碼的行數(shù)記錄在一個新的代碼差異文本(可以例如是txt格式)中。該代碼差異文本中記錄的內容例如是如下表1所示。表1程序修改行號528659...需要說明的是,在此實施例中所提及的txt文本,以及可能出現(xiàn)的差異點的情況均是舉例說明,而非用以限制本發(fā)明。上述步驟S102,根據(jù)預設的關鍵字及差異位置,查找修改后代碼中包含關鍵字、且距離差異位置最近的程序修改功能項。在通過上述步驟S101生成了代碼差異文本后,可依據(jù)該代碼差異文本中所記錄的程序修改點的行數(shù),在修改后代碼中進行查找。在進行查找時,可依據(jù)一預先定義好的關鍵字定義表,按照其中所記錄的關鍵字進行查找。該關鍵字定義表如下表2所示。表2程序關鍵字案例功能項程序類型typeBasicProgram數(shù)據(jù)定義0ASP_CHECK數(shù)據(jù)檢查0ASP_SER查詢操作0ASP_ADD新增操作0ASP_UPD修改操作0ASP_DEL刪除操作0ASP_WRT_CJNL日志登記0.........當查找到相應的關鍵字后,記錄至如下表3所示的記錄表中。表3程序名程序修改功能項1程序修改功能項2程序修改功能項3...4202ASP_CHECKASP_DELASP_WRT_CJNL3103ASP_SERASP_UPDASP_DEL6598typeBasicProgramASP_UPD在該記錄表中,程序名即是指在實際應用中,要進行測試的程序的名稱。在一具體實施例中,該程序名可對應于需要進行測試的某個交易所使用的程序。根據(jù)表2中記錄的一個或多個關鍵字向上查找時,可能會找到多個相對應的程序修改功能項,此時,需要確定在這些程序修改功能項中,離代碼修改點最近的程序修改功能項,并記錄至上述的表3中。在一較佳實施例中,上述的查找過程可通過如圖2A所示的過程表示,其具體流程如下:首先,設定該過程的變量n,m,i,a。其中,n初始值為1,表示修改后代碼文本行數(shù);m初始值為1,表示當前關鍵字定義表行數(shù);i初始值為空,表示離當前查找的代碼修改點最近的程序修改功能項名;a為臨時變量,初始值為0,用以賦值距離代碼修改點最近的程序修改功能項的行數(shù)。步驟S1:從修改后代碼的第t行開始,根據(jù)第m行對應的關鍵字值向上查找;步驟S2:若找到關鍵字值,則判斷a是否為0;若a為0,則直接將找到的關鍵字值所處行數(shù)賦給a;若a不為0,則判斷找到的關鍵字值所處行數(shù)是否大于a;步驟S3:若找到的關鍵字值所處行數(shù)大于a,則將找到的關鍵字值所處行數(shù)賦給a,否則保留a的取值;步驟S4:判斷m是否為關鍵字定義表的最后一行;若m不為關鍵字定義表的最后一行,則將m更新為m+1,返回執(zhí)行上述步驟S1至步驟S3;若m為關鍵字定義表的最后一行,將a的取值對應的備選程序修改功能項確定為距離修改點行數(shù)最近的備選程序修改功能項。以上過程主要描述的是針對修改差異文本中一行數(shù)據(jù)(例如第n行所記錄的行數(shù))向上查找的過程。如圖2B所示,當要針對修改差異文本中其他行數(shù)據(jù)進行查找時(例如第n+1行、第n+2行等等),則在上述的步驟執(zhí)行完畢后,還需執(zhí)行如下步驟:步驟S5:判斷n是否為代碼差異文本的最后一行;若n不為代碼差異文本的最后一行,則將n更新為n+1,返回執(zhí)行步驟S1至步驟S4;若n為代碼差異文本的最后一行,則執(zhí)行根據(jù)程序修改功能項在預設的對照表中查找相應的測試腳本及測試數(shù)據(jù)的步驟,即繼續(xù)上述的步驟S103)。上述步驟S103,根據(jù)程序修改功能項在預設的對照表中查找相應的測試腳本及測試數(shù)據(jù),并執(zhí)行測試腳本對測試數(shù)據(jù)進行測試。在通過步驟S102,查找到該修改后代碼中離代碼修改點最近的程序修改功能項之后,即可通過步驟S103,根據(jù)程序修改功能項在預設的對照表中查找相應的測試腳本及測試數(shù)據(jù),并執(zhí)行測試腳本對測試數(shù)據(jù)進行測試。具體地,首先是在上述表2中對應查找與該程序修改功能項相對應的案例功能項。例如,從表3中程序名4202查找到的三個程序修改功能項“ASP_CHECK、ASP_DEL、ASP_WRT_CJNL”,在表2中分別對應案例功能項“數(shù)據(jù)檢查、刪除操作、日志登記”,由此,生成查詢結果如下表4所示。表4程序名案例功能項獲取結果1案例功能項獲取結果2案例功能項獲取結果3...4202數(shù)據(jù)檢查刪除操作日志登記3103查詢操作修改操作刪除操作6598數(shù)據(jù)定義修改操作由此,即找到了修改后代碼中離代碼修改點最近的案例功能項。然后,根據(jù)案例功能項檢索預設的腳本功能存儲表,確定案例功能項對應的測試腳本及測試數(shù)據(jù),并執(zhí)行測試腳本對所述測試數(shù)據(jù)進行測試。在本發(fā)明實施例中,預先存儲有案例功能項與腳本功能相對應的存儲表,即上述的腳本功能存儲表。在步驟S103中,在獲取到相應的案例功能項后,即可通過該腳本功能存儲表,查詢并獲取其相對應的測試腳本及測試數(shù)據(jù),將確定的測試腳本提交測試環(huán)境運行,從而對測試數(shù)據(jù)進行測試。具體地,是通過測試腳本調用上述的案例功能項所對應的程序代碼作為測試程序代碼;在單獨搭建的測試環(huán)境中運行該測試程序代碼,對測試數(shù)據(jù)進行測試。例如,如以上表4中,需對程序名“4202”的程序,測試其“刪除操作”的功能,則需提交4202程序對應的案例名為“刪除操作”的腳本;在此腳本中,字段“操作標志”的測試數(shù)據(jù)送的值為:3刪除,則4202程序在讀取測試數(shù)據(jù)并運行時,判斷此字段的值為3后,會自動去執(zhí)行刪除操作的代碼,從而測試刪除操作的功能。本發(fā)明實施例的程序自動化測試方法,主要具有以下優(yōu)點:1)對程序修改點智能化自動生成對應的案例及腳本,不必運行所有程序分支,提高了測試效率。2)有效利用主機資源運行程序,節(jié)省主機資源。以下結合一具體應用實例對本發(fā)明實施例的程序自動化測試方法的過程做具體說明。在此實施例中,是針對表3及表4中的程序名4202所進行的自動測試過程。步驟S1001:比對程序4202的新舊兩個版本,生成代碼差異文本,該文本中所記錄的內容以上述表1內容為例。步驟S1002:針對表1中第m行的內容,m的初始值為1。即第一處代碼差異點位于新版代碼的第5行,按照表2中所記錄的關鍵字依次進行查找。即,從第5行開始,先向上查找關鍵字“typeBasicProgram”,查找到該關鍵字“typeBasicProgram”的位置位于新版代碼的第3行,然后查找關鍵字“ASP_CHECK”,其位于新版代碼的第4行,然后查找關鍵字“ASP_SER”,其位于新版代碼的第2行,依次類推,依次查找表2中所記載的程序關鍵字。然后,比對各個關鍵字所在位置與代碼差異點的距離,確定離代碼差異點最近的關鍵字為“ASP_CHECK”。因此,基于第一處代碼差異點查找到的程序修改功能項即為“ASP_CHECK”,將其記錄在上述表3中。步驟S1003:針對表1中第m+1行的內容,即第二處代碼差異點位于新版代碼的第28行,按照表2中所記錄的關鍵字依次進行查找。即,從第28行開始,先向上查找關鍵字“typeBasicProgram”,查找到該關鍵字“typeBasicProgram”的位置位于新版代碼的第20行,然后查找關鍵字“ASP_CHECK”,其位于新版代碼的第15行,然后查找關鍵字“ASP_SER”,其位于新版代碼的第21行,依次類推,依次查找表2中所記載的程序關鍵字。然后,比對各個關鍵字所在位置與代碼差異點的距離,確定離代碼差異點最近的關鍵字為“ASP_DEL”。因此,基于第一處代碼差異點查找到的程序修改功能項即為“ASP_DEL”,將其記錄在上述表3中。步驟S1004:針對表1中第m+2行的內容,即第三處代碼差異點位于新版代碼的第659行,按照表2中所記錄的關鍵字依次進行查找。即,從第28行開始,先向上查找關鍵字“typeBasicProgram”,查找到該關鍵字“typeBasicProgram”的位置位于新版代碼的第600行,然后查找關鍵字“ASP_CHECK”,其位于新版代碼的第615行,然后查找關鍵字“ASP_SER”,其位于新版代碼的第621行,依次類推,依次查找表2中所記載的程序關鍵字。然后,比對各個關鍵字所在位置與代碼差異點的距離,確定離代碼差異點最近的關鍵字為“ASP_WRT_CJNL。因此,基于第一處代碼差異點查找到的程序修改功能項即為“ASP_WRT_CJNL,將其記錄在上述表3中。步驟S1005:根據(jù)上述表3中記錄的程序4202對應的三個程序修改功能項,在關鍵字定義表(上述表2)中查找其對應的案例功能項。即,ASP_CHECK對應于“數(shù)據(jù)檢查”、ASP_DEL對應于“刪除操作”、ASP_WRT_CJNL對應于“日志登記”。因此,將查找到的相應的案例功能項對應進行記錄,從而生成表4。步驟S1006:根據(jù)表4中記錄的程序名4202中對對應的案例功能項,在預設的腳本功能存儲表中獲取相對應的測試腳本及測試數(shù)據(jù),通過測試腳本調用上述的案例功能項所對應的程序代碼作為測試程序代碼;在單獨搭建的測試環(huán)境中運行該測試程序代碼,對測試數(shù)據(jù)進行測試。本發(fā)明實施例還提供一種程序自動化測試系統(tǒng),如圖3所示,該程序自動化測試系統(tǒng)主要包括:代碼差異文本生成單元1、程序修改功能項查找單元2及測試腳本確定單元3等。其中,上述的代碼差異文本生成單元1,用于將修改后代碼與原始代碼進行差異比對,根據(jù)修改后代碼與原始代碼的差異位置生成代碼差異文本;程序修改功能項查找單元2用于根據(jù)預設的關鍵字及差異位置,查找修改后代碼中包含關鍵字、且距離差異位置最近的程序修改功能項;測試腳本確定單元3用于根據(jù)程序修改功能項在預設的對照表中查找相應的測試腳本及測試數(shù)據(jù),并執(zhí)行測試腳本對所述測試數(shù)據(jù)進行測試。通過上述的各個組成部分,本發(fā)明實施例的程序自動化測試系統(tǒng),將新舊版本的代碼進行差異比較,找到差異點,根據(jù)該差異點來查找相應的程序修改功能項,從而有針對性地進行腳本測試,能夠有效利用主機資源進行測試,節(jié)省主機資源,并提高了測試效率。以下結合具體實施例,對本發(fā)明實施例的程序自動化測試系統(tǒng)做進一步說明。上述的代碼差異文本生成單元1,用于將修改后代碼與原始代碼進行差異比對,根據(jù)修改后代碼與原始代碼的差異位置生成代碼差異文本。具體地,可以是將當前版本代碼(修改后代碼)及上一版本代碼(原始代碼)分別放在2個txt文本中,然后對兩個文本做逐行對比,比較差異點結果。具體實施時,該差異點可分為3種情況:第1種是當前版本代碼新增了代碼段;第2種是當前版本代碼修改了代碼段;第3種是當前版本代碼刪除了代碼段。將這3種情況的代碼的行數(shù)記錄在一個新的代碼差異文本(可以例如是txt格式)中。該代碼差異文本中記錄的內容例如是如表1所示。需要說明的是,在此實施例中所提及的txt文本,以及可能出現(xiàn)的差異點的情況均是舉例說明,而非用以限制本發(fā)明。上述的程序修改功能項查找單元2,用于根據(jù)預設的關鍵字及差異位置,查找修改后代碼中包含關鍵字、且距離差異位置最近的程序修改功能項。具體地,如圖4所示,該程序修改功能項查找單元2主要包括:備選程序修改功能項查找模塊21及程序修改功能項確定模塊22。其中,備選程序修改功能項查找模塊21用于從修改點行數(shù)開始,向上查找修改后代碼中包含關鍵字的至少一備選程序修改功能項;程序修改功能項確定模塊22用于查找備選程序修改功能項中,距離修改點行數(shù)最近的一備選程序修改功能項,并確定為程序修改功能項。在通過上述的代碼差異文本生成單元1生成了代碼差異文本后,可通過備選程序修改功能項查找模塊21依據(jù)該代碼差異文本中所記錄的程序修改點的行數(shù),在修改后代碼中進行查找。在進行查找時,可依據(jù)一預先定義好的關鍵字定義表,按照其中所記錄的關鍵字進行查找。該關鍵字定義表如表2所示。當查找到相應的關鍵字后,記錄至如表3所示的記錄表中。在該記錄表中,程序名即是指在實際應用中,要進行測試的程序的名稱。在一具體實施例中,該程序名可對應于需要進行測試的某個交易所使用的程序。根據(jù)表2中記錄的一個或多個關鍵字向上查找時,可能會找到多個相對應的程序修改功能項作為備選程序修改功能項,此時,則需通過程序修改功能項確定模塊22確定在這些程序修改功能項中,離代碼修改點最近的程序修改功能項,并記錄至上述的表3中。在一較佳實施例中,上述程序修改功能項查找單元2的查找過程可通過如圖2A所示的過程表示,其具體流程如下:首先,設定該過程的變量n,m,i,a。其中,n初始值為1,表示修改后代碼文本行數(shù);m初始值為1,表示當前關鍵字定義表行數(shù);i初始值為空,表示離當前查找的代碼修改點最近的程序修改功能項名;a為臨時變量,初始值為0,用以賦值距離代碼修改點最近的程序修改功能項的行數(shù)。步驟S1:從修改后代碼的第t行開始,根據(jù)第m行對應的關鍵字值向上查找;步驟S2:若找到關鍵字值,則判斷a是否為0;若a為0,則直接將找到的關鍵字值所處行數(shù)賦給a;若a不為0,則判斷找到的關鍵字值所處行數(shù)是否大于a;步驟S3:若找到的關鍵字值所處行數(shù)大于a,則將找到的關鍵字值所處行數(shù)賦給a,否則保留a的取值;步驟S4:判斷m是否為關鍵字定義表的最后一行;若m不為關鍵字定義表的最后一行,則將m更新為m+1,返回執(zhí)行上述步驟S1至步驟S3;若m為關鍵字定義表的最后一行,將a的取值對應的備選程序修改功能項確定為距離修改點行數(shù)最近的備選程序修改功能項。以上過程主要描述的是針對修改差異文本中一行數(shù)據(jù)(例如第n行所記錄的行數(shù))向上查找的過程。當要針對修改差異文本中其他行數(shù)據(jù)進行查找時(例如第n+1行、第n+2行等等),則在上述的步驟執(zhí)行完畢后,還需執(zhí)行如下步驟:步驟S5:判斷n是否為代碼差異文本的最后一行;若n不為代碼差異文本的最后一行,則將n更新為n+1,返回執(zhí)行步驟S1至步驟S4;若n為代碼差異文本的最后一行,則觸發(fā)測試腳本確定單元3,根據(jù)預設的對照表及程序修改功能項查找對應的測試腳本并進行測試)。上述的測試腳本確定單元3,用于根據(jù)程序修改功能項在預設的對照表中查找相應的測試腳本及測試數(shù)據(jù),并執(zhí)行測試腳本對測試數(shù)據(jù)進行測試。具體地,如圖5所示,該測試腳本確定單元3主要包括:案例功能項查找模塊31及測試腳本確定模塊32。其中,案例功能項查找模塊31用于根據(jù)預設的關鍵字定義表及程序修改功能項查找對應的案例功能項,其中,關鍵字定義表中記錄有案例功能項與程序修改功能項的對應關系;測試腳本確定模塊32用于根據(jù)案例功能項檢索預設的腳本功能存儲表,確定案例功能項對應的測試腳本及測試數(shù)據(jù)。在通過程序修改功能項查找單元2查找到該修改后代碼中離代碼修改點最近的程序修改功能項之后,即可通過案例功能項查找模塊31,在上述表2中對應查找與該程序修改功能項相對應的案例功能項。例如,從表3中程序名4202查找到的三個程序修改功能項“ASP_CHECK、ASP_DEL、ASP_WRT_CJNL”,在表2中分別對應案例功能項“數(shù)據(jù)檢查、刪除操作、日志登記”,由此,生成查詢結果如表4所示。由此,即找到了修改后代碼中離代碼修改點最近的案例功能項。然后通過上述的測試腳本確定模塊32,根據(jù)案例功能項檢索預設的腳本功能存儲表,確定案例功能項對應的測試腳本及測試數(shù)據(jù),并執(zhí)行測試腳本對所述測試數(shù)據(jù)進行測試。在本發(fā)明實施例中,預先存儲有案例功能項與腳本功能相對應的存儲表,即上述的腳本功能存儲表。在通過案例功能項查找模塊31獲取到相應的案例功能項后,即可通過該腳本功能存儲表,查詢并獲取其相對應的測試腳本及測試數(shù)據(jù),將確定的測試腳本提交測試環(huán)境運行,從而對測試數(shù)據(jù)進行測試。具體地,是通過測試腳本調用上述的案例功能項所對應的程序代碼作為測試程序代碼;在單獨搭建的測試環(huán)境中運行該測試程序代碼,對測試數(shù)據(jù)進行測試。例如,如以上表4中,需對程序名“4202”的程序,測試其“刪除操作”的功能,則需提交4202程序對應的案例名為“刪除操作”的腳本;在此腳本中,字段“操作標志”的測試數(shù)據(jù)送的值為:3刪除,則4202程序在讀取測試數(shù)據(jù)并運行時,判斷此字段的值為3后,會自動去執(zhí)行刪除操作的代碼,從而測試刪除操作的功能。本發(fā)明實施例的程序自動化測試系統(tǒng),主要具有以下優(yōu)點:1)對程序修改點智能化自動生成對應的案例及腳本,不必運行所有程序分支,提高了測試效率。2)有效利用主機資源運行程序,節(jié)省主機資源。以下結合一具體應用實例對本發(fā)明實施例的程序自動化測試系統(tǒng)所執(zhí)行的過程做具體說明。在此實施例中,是針對表3及表4中的程序名4202所進行的自動測試過程。步驟S1001:比對程序4202的新舊兩個版本,生成代碼差異文本,該文本中所記錄的內容以上述表1內容為例。步驟S1002:針對表1中第m行的內容,m的初始值為1。即第一處代碼差異點位于新版代碼的第5行,按照表2中所記錄的關鍵字依次進行查找。即,從第5行開始,先向上查找關鍵字“typeBasicProgram”,查找到該關鍵字“typeBasicProgram”的位置位于新版代碼的第3行,然后查找關鍵字“ASP_CHECK”,其位于新版代碼的第4行,然后查找關鍵字“ASP_SER”,其位于新版代碼的第2行,依次類推,依次查找表2中所記載的程序關鍵字。然后,比對各個關鍵字所在位置與代碼差異點的距離,確定離代碼差異點最近的關鍵字為“ASP_CHECK”。因此,基于第一處代碼差異點查找到的程序修改功能項即為“ASP_CHECK”,將其記錄在上述表3中。步驟S1003:針對表1中第m+1行的內容,即第二處代碼差異點位于新版代碼的第28行,按照表2中所記錄的關鍵字依次進行查找。即,從第28行開始,先向上查找關鍵字“typeBasicProgram”,查找到該關鍵字“typeBasicProgram”的位置位于新版代碼的第20行,然后查找關鍵字“ASP_CHECK”,其位于新版代碼的第15行,然后查找關鍵字“ASP_SER”,其位于新版代碼的第21行,依次類推,依次查找表2中所記載的程序關鍵字。然后,比對各個關鍵字所在位置與代碼差異點的距離,確定離代碼差異點最近的關鍵字為“ASP_DEL”。因此,基于第一處代碼差異點查找到的程序修改功能項即為“ASP_DEL”,將其記錄在上述表3中。步驟S1004:針對表1中第m+2行的內容,即第三處代碼差異點位于新版代碼的第659行,按照表2中所記錄的關鍵字依次進行查找。即,從第28行開始,先向上查找關鍵字“typeBasicProgram”,查找到該關鍵字“typeBasicProgram”的位置位于新版代碼的第600行,然后查找關鍵字“ASP_CHECK”,其位于新版代碼的第615行,然后查找關鍵字“ASP_SER”,其位于新版代碼的第621行,依次類推,依次查找表2中所記載的程序關鍵字。然后,比對各個關鍵字所在位置與代碼差異點的距離,確定離代碼差異點最近的關鍵字為“ASP_WRT_CJNL。因此,基于第一處代碼差異點查找到的程序修改功能項即為“ASP_WRT_CJNL,將其記錄在上述表3中。步驟S1005:根據(jù)上述表3中記錄的程序4202對應的三個程序修改功能項,在關鍵字定義表(上述表2)中查找其對應的案例功能項。即,ASP_CHECK對應于“數(shù)據(jù)檢查”、ASP_DEL對應于“刪除操作”、ASP_WRT_CJNL對應于“日志登記”。因此,將查找到的相應的案例功能項對應進行記錄,從而生成表4。步驟S1006:根據(jù)表4中記錄的程序名4202中對對應的案例功能項,在預設的腳本功能存儲表中獲取相對應的測試腳本及測試數(shù)據(jù),通過測試腳本調用上述的案例功能項所對應的程序代碼作為測試程序代碼;在單獨搭建的測試環(huán)境中運行該測試程序代碼,對測試數(shù)據(jù)進行測試。本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟可以通過程序來指令相關的硬件來完成,該程序可以存儲于一計算機可讀取存儲介質中,比如ROM/RAM、磁碟、光盤等。以上所述的具體實施例,對本發(fā)明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。當前第1頁1 2 3 
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1