專利名稱:一種軟件產(chǎn)品測試系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型關(guān)于計(jì)算機(jī)軟件測試技術(shù),特別是關(guān)于使用軟件自動化測試工具的軟件測試技木,具體地講是ー種軟件產(chǎn)品測試系統(tǒng)。
背景技術(shù):
傳統(tǒng)的軟件測試基本上都是使用自動化測試工具來實(shí)施的。當(dāng)自動化測試工具錄制腳本時(shí),會用Java或者其他腳本語言(TSL :Test Script Language)生成一個測試腳本。 該測試腳本中記錄了所有在錄制期間在被測試應(yīng)用對象上執(zhí)行的所有操作。例如,點(diǎn)擊ー 個按鈕、選擇一個列表中的某ー項(xiàng)、向一個文本框內(nèi)輸入數(shù)據(jù)等等。自動化測試工具在錄制生成測試腳本的同時(shí)也會自動生成與測試腳本一一對應(yīng)的,記錄其測試對象識別屬性相關(guān)信息的配置文件(如自動化測試工具IBM Rational Functional Tester的測試對象圖文件* rftxmap等),這些配置文件記錄測試腳本中所有測試對象的識別屬性(為在腳本回放吋,自動化測試工具識別測試對象提供的配置參數(shù)信息)。然后由自動化測試工具讀取測試腳本、測試對象識別屬性配置文件等腳本資源,通過回放該腳本來實(shí)現(xiàn)自動重復(fù)之前操作的過程。然而傳統(tǒng)的基于錄制回放的自動化測試方法存在以下弊端(一)自動化測試腳本的耦合度高、復(fù)用性和通用性差。通過工具錄制生成的自動化測試腳本,腳本不能拆分、 不能被其他腳本引用。一旦軟件系統(tǒng)的步驟、流程發(fā)生變化,將會導(dǎo)致腳本無法運(yùn)行使用, 通常需要重新制作腳本。同吋,由于通過工具錄制生成的自動化測試腳本由于不能進(jìn)行分割后単獨(dú)使用,所以無法提供給新錄制的腳本進(jìn)行使用。對于ー些重復(fù)性很高的軟件測試操作,每次都需要重頭開始制作腳本,造成資源極大的浪費(fèi)。(ニ)自動化測試腳本冗長而復(fù)雜、維護(hù)成本高。傳統(tǒng)的自動化測試腳本通常將整個流程的操作都記錄在ー個腳本中,開發(fā)和維護(hù)自動化測試腳本的復(fù)雜程度高、工作量大,不利于自動化測試工具使用和推廣。
實(shí)用新型內(nèi)容本實(shí)用新型實(shí)施例提供了ー種軟件產(chǎn)品測試系統(tǒng),以解決自動化測試工具在使用中的復(fù)用性低、通用性差、腳本維護(hù)成本高以及腳本開發(fā)難度大等問題。本實(shí)用新型的目的是,提供ー種軟件產(chǎn)品測試系統(tǒng),該系統(tǒng)包括測試終端、測試服務(wù)器和自動化測試工具;測試終端與所述的測試服務(wù)器相連接,所述的測試服務(wù)器與所述的自動化測試工具相連接;測試服務(wù)器包括案例構(gòu)建裝置、測試執(zhí)行裝置和數(shù)據(jù)存儲裝置,案例構(gòu)建裝置分別與測試終端、測試執(zhí)行裝置和數(shù)據(jù)存儲裝置相連接,測試執(zhí)行裝置分別與數(shù)據(jù)存儲裝置、測試終端和自動化測試工具相連接;案例構(gòu)建裝置包括源腳本讀取單元,與自動化測試工具相連接;測試對象獲取單元,與源腳本讀取單元相連接;動作及數(shù)據(jù)獲取單元,與源腳本讀取單元相連接;原子步驟構(gòu)建単元,分別與測試對象獲取單元和動作及數(shù)據(jù)獲取単元相連接;關(guān)鍵字步驟構(gòu)建單元,與數(shù)據(jù)存儲裝置相連接;關(guān)鍵字案例構(gòu)建單元,與數(shù)據(jù)存儲裝置相連接;[0008]測試執(zhí)行裝置包括執(zhí)行指令接收單元,與測試終端相連接;執(zhí)行序列獲取單元, 與數(shù)據(jù)存儲裝置相連接;執(zhí)行序列輸出單元,與自動化測試工具相連接;執(zhí)行結(jié)果展示單元,與測試終端相連接;測試終端展示測試執(zhí)行結(jié)果。軟件產(chǎn)品測試系統(tǒng)的數(shù)據(jù)存儲裝置進(jìn)ー步包括原子步驟存儲單元;關(guān)鍵字步驟存儲單元;關(guān)鍵字案例存儲單元;參數(shù)數(shù)據(jù)存儲単元;指令案例關(guān)系存儲單元。本實(shí)用新型的有益效果在干克服了傳統(tǒng)自動化測試在進(jìn)行回歸測試過程中復(fù)用性低、通用性差、腳本制作復(fù)雜的問題。對已經(jīng)執(zhí)行過一次的測試案例,不需要重新構(gòu)建,只需要通過選取原子步驟、關(guān)鍵字步驟或者關(guān)鍵字案例,快速組合構(gòu)建出新的原子步驟執(zhí)行序列,傳遞給自動化測試工具執(zhí)行即可;即使沒有執(zhí)行過的測試案例,只需構(gòu)建一次關(guān)鍵字案例便可以被重復(fù)利用。本實(shí)用新型實(shí)施例通過定義出原子步驟的規(guī)則,將測試腳本劃分為粒度最細(xì)的原子步驟,原子步驟可以構(gòu)建成關(guān)鍵字步驟,關(guān)鍵字步驟可以進(jìn)ー步構(gòu)建成粒度更大的關(guān)鍵字案例。測試人員可以結(jié)合實(shí)際測試需求,像搭積木ー樣任意構(gòu)建成自動化測試案例。本實(shí)用新型實(shí)施例通過將原子步驟構(gòu)建為關(guān)鍵字步驟,大大提高了自動化測試案例的復(fù)用性和通用性,降低了開發(fā)、維護(hù)腳本的難度,減少了自動化測試的成本。本實(shí)用新型實(shí)施例通過共享和調(diào)用關(guān)鍵字案例、關(guān)鍵字步驟和原子步驟,加快了自動化測試案例開發(fā)的速度,有效激發(fā)團(tuán)隊(duì)協(xié)作、共同開發(fā)的能力。極大地提高了測試效率。
為了更清楚地說明本實(shí)用新型實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本實(shí)用新型的一些實(shí)施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下, 還可以根據(jù)這些附圖獲得其他的附圖。圖I為本實(shí)用新型實(shí)施例軟件產(chǎn)品測試系統(tǒng)的結(jié)構(gòu)框圖;圖2為本實(shí)用新型實(shí)施例的案例構(gòu)建裝置的結(jié)構(gòu)框圖;圖3為本實(shí)用新型實(shí)施例的測試執(zhí)行裝置的結(jié)構(gòu)框圖;圖4為本實(shí)用新型實(shí)施例的數(shù)據(jù)存儲裝置的結(jié)構(gòu)框圖;圖5為本實(shí)用新型實(shí)施例軟件產(chǎn)品測試系統(tǒng)的工作流程圖;圖6為本實(shí)用新型實(shí)施例軟件產(chǎn)品測試方法的流程圖。
具體實(shí)施方式
下面將結(jié)合本實(shí)用新型實(shí)施例中的附圖,對本實(shí)用新型實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本實(shí)用新型一部分實(shí)施例,而不是全部的實(shí)施例?;诒緦?shí)用新型中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本實(shí)用新型保護(hù)的范圍。如圖I所示,本實(shí)用新型實(shí)施例的軟件產(chǎn)品測試系統(tǒng)包括測試服務(wù)器100、測試終端200和自動化測試工具300。測試服務(wù)器100包括案例構(gòu)建裝置101、測試執(zhí)行裝置 102和數(shù)據(jù)存儲裝置103。[0022]如圖2所示,案例構(gòu)建裝置101包括源腳本讀取單元1011,用于讀取外部自動化測試工具傳來的測試腳本文件和測試對象配置文件;測試對象獲取單元1012,用于從測試對象配置文件中抽取出所有測試對象的對象名稱、識別屬性和對象類型;動作及數(shù)據(jù)獲取単元1013,用于從測試腳本文件中分別抽取出對象動作和對應(yīng)的測試數(shù)據(jù),并將測試數(shù)據(jù)轉(zhuǎn)換為參數(shù)變量;原子步驟構(gòu)建単元1014,用于將每個測試對象的一次獨(dú)立操作以“對象名稱.對象動作(參數(shù)變量)”的格式構(gòu)建成ー個原子步驟,并將原子步驟和參數(shù)變量對應(yīng)的實(shí)際數(shù)據(jù)值進(jìn)行存儲;關(guān)鍵字步驟構(gòu)建単元1015,用于對原子步驟進(jìn)行選取,按照選取順序?qū)⒈贿x取的原子步驟構(gòu)建成關(guān)鍵字步驟,并將關(guān)鍵字步驟進(jìn)行存儲;關(guān)鍵字案例構(gòu)建単元1016,用于對關(guān)鍵字步驟進(jìn)行選取,按照選取順序?qū)⒈贿x取的關(guān)鍵字步驟構(gòu)建成關(guān)鍵字案例,并將關(guān)鍵字案例進(jìn)行存儲。如圖3所示,測試執(zhí)行裝置102包括執(zhí)行指令接收單元1021,用于接收用戶輸入的包含關(guān)鍵字案例名稱或字符串的案例執(zhí)行指令;執(zhí)行序列獲取單兀1022,用于根據(jù)案例執(zhí)行指令,按照關(guān)鍵字案例、關(guān)鍵字步驟和原子步驟的查詢順序獲取對應(yīng)的原子步驟,組成原子步驟執(zhí)行序列;執(zhí)行序列輸出單元1023,將原子步驟執(zhí)行序列傳給外部自動化測試工具進(jìn)行測試執(zhí)行;執(zhí)行結(jié)果展示単元1024,用于展示測試執(zhí)行結(jié)果。如圖4所示,數(shù)據(jù)存儲裝置103包括原子步驟存儲單元1031,用于存儲原子步驟信息;關(guān)鍵字步驟存儲單元1032,用于存儲關(guān)鍵字步驟信息;關(guān)鍵字案例存儲單元1033,用于存儲關(guān)鍵字案例信息。參數(shù)數(shù)據(jù)存儲単元1034,用于存儲參數(shù)變量和對應(yīng)的實(shí)際數(shù)據(jù); 指令案例關(guān)系存儲單元1035,用于存儲案例執(zhí)行指令與關(guān)鍵字案例的對應(yīng)關(guān)系。在圖I中,自動化測試工具300除了錄制回放功能外,通常都提供了ー些API接 ロ,比如“對象查找API接ロ ” :通過接受傳入的“測試對象識別屬性”實(shí)現(xiàn)在被測試系統(tǒng)界面上查找相應(yīng)測試對象的功能;“對象操作API接ロ”:通過接受傳入的“測試對象”、“行為”、“數(shù)據(jù)”實(shí)現(xiàn)對相應(yīng)測試對象進(jìn)行相關(guān)操作(如點(diǎn)擊、選擇等)。如圖5所示,本實(shí)用新型實(shí)施例的軟件產(chǎn)品測試系統(tǒng)的工作流程包括步驟al、自動化測試工具生成測試腳本文件和測試對象配置文件。步驟a2、測試服務(wù)器讀取測試腳本文件和測試對象配置文件。步驟a3、測試服務(wù)器從測試對象配置文件中抽取出所有測試對象的對象名稱、識別屬性和對象類型。步驟a4和a5、測試服務(wù)器從測試腳本文件中分別抽取出對象動作和對應(yīng)的測試數(shù)據(jù),并將測試數(shù)據(jù)轉(zhuǎn)換為參數(shù)變量。步驟a6和a7、測試服務(wù)器將每個測試對象的一次獨(dú)立操作以“對象名稱.對象動作(參數(shù)變量)”的格式構(gòu)建成ー個原子步驟,并將原子步驟存儲到原子步驟數(shù)據(jù)庫,將參數(shù)變量和對應(yīng)的實(shí)際數(shù)據(jù)值存儲到參數(shù)變量數(shù)據(jù)庫。步驟a8-all、測試服務(wù)器對原子步驟進(jìn)行選取,按照選取順序?qū)⒈贿x取的原子步驟構(gòu)建成關(guān)鍵字步驟,并將關(guān)鍵字步驟存儲到關(guān)鍵字步驟數(shù)據(jù)庫。步驟al2_al7、測試服務(wù)器對所述的關(guān)鍵字步驟進(jìn)行選取,按照選取順序?qū)⒈贿x取的關(guān)鍵字步驟構(gòu)建成關(guān)鍵字案例,并將關(guān)鍵字案例存儲到關(guān)鍵字案例數(shù)據(jù)庫。步驟bl、用戶向測試終端輸入包含關(guān)鍵字案例名稱或字符串的案例執(zhí)行指令。步驟b2、測試服務(wù)器根據(jù)案例執(zhí)行指令,按照關(guān)鍵字案例、關(guān)鍵字步驟和原子步驟
5的查詢順序獲取對應(yīng)的原子步驟,組成原子步驟執(zhí)行序列。步驟b3和b4、將原子步驟執(zhí)行序列傳給外部自動化測試工具進(jìn)行測試執(zhí)行。其中;將測試對象識別屬性傳送給對象查找API接ロ,將測試對象和原子步驟執(zhí)行序列中的 “動作”、“數(shù)據(jù)值”傳送給對象操作API接ロ。步驟b5和b6、測試服務(wù)器生成測試執(zhí)行結(jié)果,由測試終端展示該測試執(zhí)行結(jié)果。本實(shí)用新型實(shí)施例的軟件產(chǎn)品測試系統(tǒng)的工作流程還包括建立案例執(zhí)行指令與關(guān)鍵字案例的對應(yīng)關(guān)系,并將案例執(zhí)行指令與關(guān)鍵字案例的對應(yīng)關(guān)系存入指令案例關(guān)系庫。在圖5中,本實(shí)用新型實(shí)施例的軟件產(chǎn)品測試系統(tǒng)定義出統(tǒng)ー標(biāo)準(zhǔn)的原子步驟, 原子步驟可以構(gòu)建為關(guān)鍵字步驟,關(guān)鍵字步驟又進(jìn)ー步可以構(gòu)建成關(guān)鍵字案例,并存儲到數(shù)據(jù)存儲裝置103中。如果被測對象發(fā)生變化,本實(shí)用新型實(shí)施例的軟件產(chǎn)品測試系統(tǒng)通過測試終端200輸入的指令,選取原子步驟、關(guān)鍵字步驟或者關(guān)鍵字案例,快速組合構(gòu)建出新的原子步驟執(zhí)行序列,傳遞給自動化測試工具300相應(yīng)的API接ロ。將此原子步驟執(zhí)行序列中各測試對象的“測試對象識別屬性”傳遞給“對象查找API接ロ ”,實(shí)現(xiàn)相應(yīng)對象的查找功能,再將“對象查找API接ロ”查找到的“測試對象”以及“行為”、“數(shù)據(jù)”傳遞給“對象操作API接ロ”,實(shí)現(xiàn)對相應(yīng)對象進(jìn)行操作的功能。從而最終實(shí)現(xiàn)回放功能。對于已經(jīng)執(zhí)行過一次的測試案例,只需傳入測試數(shù)據(jù)就可以反復(fù)去執(zhí)行。對數(shù)據(jù)存儲裝置103中沒有的案例,也只需構(gòu)建一次。這樣在測試過程中可以節(jié)省大量時(shí)間、提高了工作效率。本實(shí)用新型實(shí)施例系統(tǒng)主要實(shí)現(xiàn)ー種基于對操作步驟進(jìn)行構(gòu)建的自動化測試方法。原子步驟作為粒度最細(xì)的組件,是構(gòu)建自動化測試案例最小単元。原子步驟只包含一個測試行為,并且相互之間獨(dú)立,不從屬于任何腳本。由ー個或多個原子步驟構(gòu)建成關(guān)鍵字步驟,一個或多個關(guān)鍵字步驟進(jìn)一步構(gòu)建成粒度更大的關(guān)鍵字案例。所有的原子步驟存入原子步驟存儲單元;關(guān)鍵字步驟存入關(guān)鍵字步驟存儲單元、 關(guān)鍵字案例存入關(guān)鍵字案例存儲單元。在自動化測試執(zhí)行時(shí),通過用戶向本實(shí)用新型實(shí)施例系統(tǒng)輸入指令,本實(shí)用新型實(shí)施例系統(tǒng)根據(jù)指令自動獲取相應(yīng)的關(guān)鍵字案例進(jìn)行執(zhí)行, 也可以由用戶通過本實(shí)用新型實(shí)施例系統(tǒng)提供的選擇界面手動構(gòu)建關(guān)鍵字案例后進(jìn)行執(zhí)行。本實(shí)用新型實(shí)施例系統(tǒng)的數(shù)據(jù)存儲裝置的原子步驟存儲單元,用于存儲各被測試的軟件系統(tǒng)的對象信息,該信息至少包含原子步驟編號、對象名稱、對象動作、對象類型、識別屬性、參數(shù)變量名、參數(shù)編號,其數(shù)據(jù)存儲的格式如表I所示表I
權(quán)利要求1.一種軟件產(chǎn)品測試系統(tǒng),其特征是,所述的系統(tǒng)包括測試終端、測試服務(wù)器和自動化測試工具;所述的測試終端與所述的測試服務(wù)器相連接,所述的測試服務(wù)器與所述的自動化測試工具相連接;所述的測試服務(wù)器包括案例構(gòu)建裝置、測試執(zhí)行裝置和數(shù)據(jù)存儲裝置,所述的案例構(gòu)建裝置分別與所述的測試終端、測試執(zhí)行裝置和數(shù)據(jù)存儲裝置相連接,所述的測試執(zhí)行裝置分別與所述的數(shù)據(jù)存儲裝置、測試終端和自動化測試工具相連接;所述的案例構(gòu)建裝置包括源腳本讀取單元,與所述的自動化測試工具相連接;測試對象獲取單元,與所述的源腳本讀取單元相連接;動作及數(shù)據(jù)獲取単元,與所述的源腳本讀取單元相連接;原子步驟構(gòu)建単元,分別與所述的測試對象獲取單元和動作及數(shù)據(jù)獲取単元相連接; 關(guān)鍵字步驟構(gòu)建単元,與所述的數(shù)據(jù)存儲裝置相連接;關(guān)鍵字案例構(gòu)建單元,與所述的數(shù)據(jù)存儲裝置相連接;所述的測試執(zhí)行裝置包括執(zhí)行指令接收單元,與所述的測試終端相連接;執(zhí)行序列獲取單元,與所述的數(shù)據(jù)存儲裝置相連接;執(zhí)行序列輸出單元,與所述的自動化測試工具相連接;執(zhí)行結(jié)果展示単元,與所述的測試終端相連接;所述的測試終端展示測試執(zhí)行結(jié)果。
2.根據(jù)權(quán)利要求I所述的軟件產(chǎn)品測試系統(tǒng),其特征是,所述的數(shù)據(jù)存儲裝置進(jìn)ー步包括原子步驟存儲單元;關(guān)鍵字步驟存儲單元;關(guān)鍵字案例存儲單元;參數(shù)數(shù)據(jù)存儲單元;指令案例關(guān)系存儲單元。
專利摘要本實(shí)用新型提供了一種軟件產(chǎn)品測試系統(tǒng),該系統(tǒng)包括案例構(gòu)建裝置和測試執(zhí)行裝置;案例構(gòu)建裝置包括源腳本讀取單元,測試對象獲取單元,動作及數(shù)據(jù)獲取單元,原子步驟構(gòu)建單元,關(guān)鍵字步驟構(gòu)建單元,關(guān)鍵字案例構(gòu)建單元;測試執(zhí)行裝置包括執(zhí)行指令接收單元,執(zhí)行序列獲取單元,執(zhí)行序列輸出單元;執(zhí)行結(jié)果展示單元。以解決自動化測試工具在使用中的復(fù)用性低、通用性差、腳本維護(hù)成本高以及腳本開發(fā)難度大等問題。
文檔編號G06F11/36GK202339542SQ201120075809
公開日2012年7月18日 申請日期2011年3月21日 優(yōu)先權(quán)日2011年3月21日
發(fā)明者白翠琴, 金暉 申請人:中國工商銀行股份有限公司