測試用例導(dǎo)入方法及裝置的制造方法
【專利摘要】本發(fā)明公開了一種測試用例導(dǎo)入方法及裝置,包括:解析測試用例文件,得到測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系;將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件;解析所述樹結(jié)構(gòu)文件得到測試用例集合和測試用例,調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口,并將所述測試用例集合和測試用例導(dǎo)入所述測試用例管理系統(tǒng)。本發(fā)明提出的基于思維導(dǎo)圖的測試用例導(dǎo)入方法及裝置,能夠解決在測試流程中的測試用例設(shè)計(jì)和測試用例管理的環(huán)節(jié)銜接問題。
【專利說明】
測試用例導(dǎo)入方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及測試技術(shù)領(lǐng)域,特別是指一種測試用例導(dǎo)入方法及裝置。
【背景技術(shù)】
[0002]在軟件測試流程中,通常包括測試計(jì)劃、用例設(shè)計(jì)、執(zhí)行測試、缺陷處理和測試驗(yàn)收等主要環(huán)節(jié)。其中,測試用例設(shè)計(jì)是影響測試質(zhì)量最為重要的一環(huán),它決定了測試中將覆蓋哪些測試點(diǎn),測試執(zhí)行則通常以設(shè)計(jì)好的測試用例為基礎(chǔ),用測試用例管理工具來管理待執(zhí)行的測試用例,記錄執(zhí)行結(jié)果和測試用例的變更。
[0003]現(xiàn)有的測試流程中,測試用例設(shè)計(jì)和測試用例管理是兩個(gè)割裂的環(huán)節(jié),反映在以下兩點(diǎn):
[0004]—、軟件測試領(lǐng)域有很多關(guān)于測試用例設(shè)計(jì)的理論指導(dǎo),對于設(shè)計(jì)工具沒有統(tǒng)一的方案,但是現(xiàn)有技術(shù)中,沒有從用例設(shè)計(jì)到用例管理的較好方法。
[0005]二、現(xiàn)在有不少開源或者收費(fèi)的成熟測試用例管理軟件,提供對按指定格式編輯好的測試用例導(dǎo)入的功能,但是都沒有提供與測試用例設(shè)計(jì)相結(jié)合的自動導(dǎo)入方案。
[0006]然而,測試用例設(shè)計(jì)和測試用例管理這兩個(gè)環(huán)節(jié)的割裂給軟件測試帶來了以下問題:
[0007]I)設(shè)計(jì)好的測試用例,需要手動錄入到測試用例管理系統(tǒng)中,帶來了額外的開銷;
[0008]2)如果一邊設(shè)計(jì)一邊把測試用例添加到用例管理系統(tǒng)中,測試點(diǎn)無法保證全面覆蓋,添加測試用例的時(shí)間開銷也無法避免;
[0009]3)軟件測試交付時(shí)間緊的情況下,如果直接按照測試用例設(shè)計(jì)執(zhí)行測試,會導(dǎo)致測試的執(zhí)行結(jié)果和過程無法跟蹤,而后續(xù)的測試用例和測試計(jì)劃管理還是需要將這些測試用例導(dǎo)入管理系統(tǒng);在開銷不變的情況下,軟件質(zhì)量風(fēng)險(xiǎn)將會大大提高。
【發(fā)明內(nèi)容】
[0010]有鑒于此,本發(fā)明的目的在于提出一種測試用例導(dǎo)入方法及裝置,能夠解決在測試流程中的測試用例設(shè)計(jì)和測試用例管理的環(huán)節(jié)銜接問題。
[0011]基于上述目的本發(fā)明提供的測試用例導(dǎo)入方法,包括:
[0012]解析測試用例文件,得到測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系;
[0013]將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件;
[0014]解析所述樹結(jié)構(gòu)文件得到測試用例集合和測試用例,調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口,并將所述測試用例集合和測試用例導(dǎo)入所述測試用例管理系統(tǒng)。
[0015]在一些實(shí)施方式中,所述解析測試用例文件,得到測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系的步驟包括:
[0016]將所述測試用例文件轉(zhuǎn)換成通用文檔類數(shù)據(jù)結(jié)構(gòu);
[0017]利用通用文檔類的獲取元素方法,獲取所述通用文檔類數(shù)據(jù)結(jié)構(gòu)的測試用例文件中所有測試分支節(jié)點(diǎn)信息;
[0018]分析所述測試分支節(jié)點(diǎn)信息的字符串,得到測試節(jié)點(diǎn)及對應(yīng)的節(jié)點(diǎn)層級關(guān)系。
[0019]在一些實(shí)施方式中,所述將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件的步驟具體包括:
[0020]遞歸調(diào)用N樹類數(shù)據(jù)結(jié)構(gòu)的生成樹算法將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件。
[0021]在一些實(shí)施方式中,所述解析所述樹結(jié)構(gòu)文件得到測試用例集合和測試用例,調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口,并將所述測試用例集合和測試用例導(dǎo)入所述測試用例管理系統(tǒng)的步驟包括:
[0022]步驟1031:獲得樹結(jié)構(gòu)文件中當(dāng)前節(jié)點(diǎn)的下一層級的節(jié)點(diǎn)信息;
[0023]步驟1032:把當(dāng)前節(jié)點(diǎn)的節(jié)點(diǎn)信息壓入堆棧中保存;
[0024]步驟1033:判斷當(dāng)前節(jié)點(diǎn)是否有子節(jié)點(diǎn);
[0025]步驟1034:若當(dāng)前節(jié)點(diǎn)有子節(jié)點(diǎn),則調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口為當(dāng)前節(jié)點(diǎn)創(chuàng)建測試用例集合;
[0026]步驟1035:若當(dāng)前節(jié)點(diǎn)沒有子節(jié)點(diǎn),則所述當(dāng)前節(jié)點(diǎn)為葉子節(jié)點(diǎn),彈出所述堆棧中的最后一個(gè)元素,并調(diào)用測試用例管理系統(tǒng)的接口,利用彈出的所述堆棧中的最后一個(gè)元素及所述當(dāng)前節(jié)點(diǎn)創(chuàng)建測試用例;
?0027] 步驟1036:判斷所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是否為所述父節(jié)點(diǎn)的上一層級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn);
[0028]步驟1037:若所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是所述父節(jié)點(diǎn)的上一級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn),不做任何操作;
[0029]步驟1038:若所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)不是所述父節(jié)點(diǎn)的上一級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn),則將步驟1035中彈出的所述最后一個(gè)元素再次壓入堆棧;
[0030]步驟1039:遞歸調(diào)用步驟1033?1038,直到所述樹結(jié)構(gòu)文件中的所有節(jié)點(diǎn)遍歷完畢,所有的葉子節(jié)點(diǎn)均被創(chuàng)建成對應(yīng)的測試用例,所有的非葉子節(jié)點(diǎn)也按照層級創(chuàng)建成對應(yīng)的測試用例集合。
[0031]在一些實(shí)施方式中,所述調(diào)用測試用例管理系統(tǒng)的接口,并將所述測試用例集合和測試用例導(dǎo)入所述測試用例管理系統(tǒng)的步驟包括:
[0032]在測試用例管理系統(tǒng)中生成開發(fā)者密鑰;
[0033]利用開發(fā)者密鑰和測試用例管理系統(tǒng)提供的應(yīng)用程序編程接口,建立與測試用例管理系統(tǒng)的應(yīng)用程序編程接口的連接;
[0034]調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口中的創(chuàng)建測試用例和創(chuàng)建測試集合的方法,創(chuàng)建所述測試用例集合和測試用例。
[0035]本發(fā)明的另一個(gè)方面還提供了一種測試用例導(dǎo)入裝置,包括:
[0036]用例文件解析模塊,用于解析測試用例文件,得到測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系;
[0037]用例文件轉(zhuǎn)換模塊,用于將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件;
[0038]用例導(dǎo)入模塊,用于解析所述樹結(jié)構(gòu)文件得到測試用例集合和測試用例,調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口,并將所述測試用例集合和測試用例導(dǎo)入所述測試用例管理系統(tǒng)。
[0039]在一些實(shí)施方式中,所述用例文件解析模塊,具體用于:
[0040]將所述測試用例文件轉(zhuǎn)換成通用文檔類數(shù)據(jù)結(jié)構(gòu);
[0041]利用通用文檔類的獲取元素方法,獲取所述通用文檔類數(shù)據(jù)結(jié)構(gòu)的測試用例文件中所有測試分支節(jié)點(diǎn)信息;
[0042]分析所述測試分支節(jié)點(diǎn)信息的字符串,得到測試節(jié)點(diǎn)及對應(yīng)的節(jié)點(diǎn)層級關(guān)系。
[0043]在一些實(shí)施方式中,所述用例文件轉(zhuǎn)換模塊,具體用于:
[0044]遞歸調(diào)用N樹類數(shù)據(jù)結(jié)構(gòu)的生成樹算法將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件。
[0045]在一些實(shí)施方式中,所述用例導(dǎo)入模塊,具體用于:
[0046]步驟131:獲得樹結(jié)構(gòu)文件中當(dāng)前節(jié)點(diǎn)的下一層級的節(jié)點(diǎn)信息;
[0047]步驟1032:把當(dāng)前節(jié)點(diǎn)的節(jié)點(diǎn)信息壓入堆棧中保存;
[0048]步驟1033:判斷當(dāng)前節(jié)點(diǎn)是否有子節(jié)點(diǎn);
[0049]步驟1034:若當(dāng)前節(jié)點(diǎn)有子節(jié)點(diǎn),則調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口為當(dāng)前節(jié)點(diǎn)創(chuàng)建測試用例集合;
[0050]步驟1035:若當(dāng)前節(jié)點(diǎn)沒有子節(jié)點(diǎn),則所述當(dāng)前節(jié)點(diǎn)為葉子節(jié)點(diǎn),彈出所述堆棧中的最后一個(gè)元素,并調(diào)用測試用例管理系統(tǒng)的接口,利用彈出的所述堆棧中的最后一個(gè)元素及所述當(dāng)前節(jié)點(diǎn)創(chuàng)建測試用例;
[0051]步驟1036:判斷所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是否為所述父節(jié)點(diǎn)的上一層級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn);
[0052]步驟1037:若所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是所述父節(jié)點(diǎn)的上一級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn),不做任何操作;
[0053]步驟1038:若所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)不是所述父節(jié)點(diǎn)的上一級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn),則將步驟1035中彈出的所述最后一個(gè)元素再次壓入堆棧;
[0054]步驟1039:遞歸調(diào)用步驟1033?1038,直到所述樹結(jié)構(gòu)文件中的所有節(jié)點(diǎn)遍歷完畢,所有的葉子節(jié)點(diǎn)均被創(chuàng)建成對應(yīng)的測試用例,所有的非葉子節(jié)點(diǎn)也按照層級創(chuàng)建成對應(yīng)的測試用例集合。
[0055]在一些實(shí)施方式中,所述用例導(dǎo)入模塊,具體用于:
[0056]在測試用例管理系統(tǒng)中生成開發(fā)者密鑰;
[0057]利用開發(fā)者密鑰和測試用例管理系統(tǒng)提供的應(yīng)用程序編程接口,建立與測試用例管理系統(tǒng)的應(yīng)用程序編程接口的連接;
[0058]調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口中的創(chuàng)建測試用例和創(chuàng)建測試集合的方法,創(chuàng)建所述測試用例集合和測試用例。
[0059]從上面所述可以看出,本發(fā)明提供的測試用例導(dǎo)入方法及裝置,通過將不能被完整的自動導(dǎo)入測試用例管理系統(tǒng)的測試用例文件解析為測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系,然后將這些測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換為樹結(jié)構(gòu)文件后,再通過解析樹結(jié)構(gòu)文件的方法,得到能夠通過調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口導(dǎo)入所述測試用例管理系統(tǒng)的測試用例集合和測試用例,從而將測試用例文件完整地導(dǎo)入了所述測試用例管理系統(tǒng),使得測試用例文件與測試用例管理系統(tǒng)緊密聯(lián)系起來,既保證了測試用例設(shè)計(jì)的覆蓋率,又保證了所有測試用例的可追蹤和可維護(hù)性,打通了軟件測試流程中原本獨(dú)立的兩個(gè)環(huán)節(jié),提高測試質(zhì)量的同時(shí),最大程度的節(jié)省了測試用例生成和管理的開銷。
【附圖說明】
[0060]圖1為本發(fā)明提供的測試用例導(dǎo)入方法的一個(gè)實(shí)施例的流程示意圖;
[0061]圖2為本發(fā)明提供的測試用例導(dǎo)入方法的一個(gè)實(shí)施例中的步驟103的具體流程示意圖;
[0062]圖3為本發(fā)明提供的測試用例導(dǎo)入方法的另一個(gè)實(shí)施例的流程示意圖;
[0063]圖4為本發(fā)明提供的測試用例導(dǎo)入裝置實(shí)施例的模塊結(jié)構(gòu)示意圖;
[0064]圖5為本發(fā)明提供的測試用例導(dǎo)入方法及裝置實(shí)施例中所述測試用例文件的某一實(shí)施例的參考示意圖;
[0065]圖6為本發(fā)明提供的測試用例導(dǎo)入方法及裝置實(shí)施例中所述測試用例文件轉(zhuǎn)換成測試用例管理系統(tǒng)中的測試用例集合和測試用例的參考示意圖。
【具體實(shí)施方式】
[0066]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。
[0067]需要說明的是,本發(fā)明實(shí)施例中所有使用“第一”和“第二”的表述均是為了區(qū)分兩個(gè)相同名稱非相同的實(shí)體或者非相同的參量,可見“第一” “第二”僅為了表述的方便,不應(yīng)理解為對本發(fā)明實(shí)施例的限定,后續(xù)實(shí)施例對此不再一一說明。
[0068]針對現(xiàn)有技術(shù)的測試流程中的測試用例文件和測試用例管理系統(tǒng)的環(huán)節(jié)銜接問題,本發(fā)明的第一個(gè)方面提出了一種能夠解決在測試流程中的測試用例設(shè)計(jì)和測試用例管理的環(huán)節(jié)銜接問題的測試用例導(dǎo)入方法。如圖1所示,為本發(fā)明提供的測試用例導(dǎo)入方法的一個(gè)實(shí)施例的流程示意圖。
[0069]所述測試用例導(dǎo)入方法,包括以下步驟:
[0070]步驟101:解析測試用例文件,得到測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系;所述測試用例文件可以利用思維導(dǎo)圖進(jìn)行設(shè)計(jì),從而保證測試的覆蓋率;
[0071]步驟102:將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件;
[0072]步驟103:解析所述樹結(jié)構(gòu)文件得到測試用例集合和測試用例,調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口,并將所述測試用例集合和測試用例導(dǎo)入所述測試用例管理系統(tǒng)。
[0073]從上述實(shí)施例可以看出,本發(fā)明提供的測試用例導(dǎo)入方法,通過將不能被完整導(dǎo)入測試用例管理系統(tǒng)的測試用例文件解析為測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系,然后將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換為樹結(jié)構(gòu)文件后,再通過解析樹結(jié)構(gòu)文件的方法,得到能夠通過調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口導(dǎo)入所述測試用例管理系統(tǒng)的測試用例集合和測試用例,從而將測試用例文件完整地自動導(dǎo)入了所述測試用例管理系統(tǒng),使得測試用例文件與測試用例管理系統(tǒng)緊密聯(lián)系起來,既保證了測試用例設(shè)計(jì)的覆蓋率,又保證了所有測試用例的可追蹤和可維護(hù)性,打通了軟件測試流程中原本獨(dú)立的兩個(gè)環(huán)節(jié),提高測試質(zhì)量的同時(shí),最大程度的節(jié)省了測試用例生成和管理的開銷。
[0074]所述測試用例導(dǎo)入方法,可以通過java編程實(shí)現(xiàn),使用時(shí),首先從SVN中下載工具源代碼;接著將測試用例文件保存到項(xiàng)目的文件夾下;編譯項(xiàng)目并運(yùn)行即可在測試用例管理系統(tǒng)中看到生成的測試用例集合和測試用例。如圖5所示,為所述測試用例文件的某一實(shí)施例的參考示意圖;如圖6所示,為所述測試用例文件轉(zhuǎn)換成測試用例管理系統(tǒng)中的測試用例集合和測試用例的參考示意圖。
[0075]進(jìn)一步的,在一些可選實(shí)施方式中,所述解析測試用例文件,得到測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系的步驟101還可具體包括以下步驟:
[0076]將所述測試用例文件轉(zhuǎn)換成通用文檔類數(shù)據(jù)結(jié)構(gòu)(Document);可選的,當(dāng)所述測試用例文件為html格式思維導(dǎo)圖文件時(shí),所述轉(zhuǎn)換方法采用JSoup類提供的parseO方法,其中JSoup是一款適用于html格式文件解析的開源工具;
[0077]利用通用文檔類的獲取元素方法(getElementByO),獲取所述通用文檔類數(shù)據(jù)結(jié)構(gòu)的測試用例文件中所有測試分支節(jié)點(diǎn)信息;
[0078]分析所述測試分支節(jié)點(diǎn)信息的字符串(可采用Java編程實(shí)現(xiàn)分析),得到測試節(jié)點(diǎn)及對應(yīng)的節(jié)點(diǎn)層級關(guān)系。
[0079]通過上述實(shí)施例提供的方法,即能完整地從所述測試用例文件解析得到測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系。
[0080]可選的,在一些實(shí)施方式中,所述將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件的步驟102還可具體包括以下步驟:
[0081]遞歸調(diào)用N樹類數(shù)據(jù)結(jié)構(gòu)的生成樹算法將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件;可選的,采用開源類GenericTree作為所述^^數(shù)類數(shù)據(jù)結(jié)構(gòu)的一種實(shí)現(xiàn);這里,N樹類是一種數(shù)據(jù)結(jié)構(gòu),GenericTree是該N數(shù)類數(shù)據(jù)結(jié)構(gòu)的一種可用實(shí)現(xiàn)。通過上述實(shí)施例中的N樹類數(shù)據(jù)結(jié)構(gòu)的生成樹算法,能夠所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系建立一種樹結(jié)構(gòu)文件,從而能夠通過樹結(jié)構(gòu)的遍歷方法進(jìn)行進(jìn)一步分析,并從中得到測試用例集合和測試用例的?目息O
[0082]較佳的,在一些可選實(shí)施方式中,如圖2所示,所述解析所述樹結(jié)構(gòu)文件得到測試用例集合和測試用例,調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口,并將所述測試用例集合和測試用例導(dǎo)入所述測試用例管理系統(tǒng)的步驟103還可具體包括以下步驟:
[0083]步驟1031:獲得樹結(jié)構(gòu)文件中當(dāng)前節(jié)點(diǎn)的下一層級的節(jié)點(diǎn)信息,可選的,通過java編寫N樹遍歷算法來獲取樹結(jié)構(gòu)文件中當(dāng)前節(jié)點(diǎn)的下一層級的節(jié)點(diǎn)信息;這里的當(dāng)前節(jié)點(diǎn)是指,當(dāng)前正在進(jìn)行處理的節(jié)點(diǎn),在步驟103的初始階段,所述當(dāng)前節(jié)點(diǎn)為所述樹結(jié)構(gòu)文件的根節(jié)點(diǎn),即初始階段時(shí),當(dāng)前節(jié)點(diǎn)為起始節(jié)點(diǎn);
[0084]步驟1032:把當(dāng)前節(jié)點(diǎn)的節(jié)點(diǎn)信息壓入堆棧中保存;這里的堆棧遵循先進(jìn)后出的規(guī)則,先壓入的節(jié)點(diǎn)信息所對應(yīng)的節(jié)點(diǎn)為上一層級的節(jié)點(diǎn),所述堆棧的初始狀態(tài)有一個(gè)節(jié)點(diǎn),即測試用例集合的根節(jié)點(diǎn);
[0085]步驟1033:判斷當(dāng)前節(jié)點(diǎn)是否有子節(jié)點(diǎn);
[0086]步驟1034:若當(dāng)前節(jié)點(diǎn)有子節(jié)點(diǎn),則調(diào)用測試用例管理系統(tǒng)(可選為testlink)的應(yīng)用程序編程接口(API)為當(dāng)前節(jié)點(diǎn)創(chuàng)建測試用例集合;所述堆棧中的最后一個(gè)元素即為所述子節(jié)點(diǎn)的父節(jié)點(diǎn);
[0087]步驟1035:若當(dāng)前節(jié)點(diǎn)沒有子節(jié)點(diǎn),則所述當(dāng)前節(jié)點(diǎn)為葉子節(jié)點(diǎn),彈出所述堆棧中的最后一個(gè)元素,并調(diào)用測試用例管理系統(tǒng)的接口,利用彈出的所述堆棧中的最后一個(gè)元素及所述當(dāng)前節(jié)點(diǎn)創(chuàng)建測試用例;所述堆棧的最后一個(gè)元素為所述當(dāng)前節(jié)點(diǎn)的上一層級節(jié)點(diǎn)的節(jié)點(diǎn)信息;
[0088]步驟1036:判斷所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是否為所述父節(jié)點(diǎn)的上一層級節(jié)點(diǎn)的最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn);
[0089]步驟1037:若所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是所述父節(jié)點(diǎn)的上一級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn),不做任何操作;
[0090]步驟1038:若所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)不是所述父節(jié)點(diǎn)的上一級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn),則將步驟1035中彈出的所述最后一個(gè)元素再次壓入堆棧;
[0091]步驟1039:遞歸調(diào)用步驟1033?1038,直到所述樹結(jié)構(gòu)文件中的所有節(jié)點(diǎn)遍歷完畢,所有的葉子節(jié)點(diǎn)均被創(chuàng)建成對應(yīng)的測試用例,所有的非葉子節(jié)點(diǎn)也按照層級創(chuàng)建成對應(yīng)的測試用例集合。
[0092]通過上述實(shí)施例,即可完整地完成所述樹結(jié)構(gòu)文件的遍歷,并從中逐步分析得到各測試用例集合和各測試用例,并相應(yīng)地逐漸將其導(dǎo)入測試用例管理系統(tǒng)中,從而最終得到測試用例管理系統(tǒng)中的與測試用例文件所對應(yīng)的測試用例集合和測試用例。
[0093]可選的,在一些實(shí)施方式中,所述調(diào)用測試用例管理系統(tǒng)的接口,并將所述測試用例集合和測試用例導(dǎo)入所述測試用例管理系統(tǒng)的步驟103還可具體包括以下步驟:
[0094]在測試用例管理系統(tǒng)(可選為testlink)中生成開發(fā)者密鑰;
[0095]利用開發(fā)者密鑰和測試用例管理系統(tǒng)提供的應(yīng)用程序編程接口(API),建立與測試用例管理系統(tǒng)的應(yīng)用程序編程接口的連接;
[0096]程序運(yùn)行時(shí),調(diào)用所述測試用例管理系統(tǒng)的應(yīng)用程序編程接口中的創(chuàng)建測試用例和創(chuàng)建測試集合的方法,創(chuàng)建所述測試用例集合和測試用例。
[0097]通過上述實(shí)施例,完成對所述測試用例管理系統(tǒng)的應(yīng)用程序編程接口的調(diào)用并相應(yīng)地在測試用例管理系統(tǒng)中完成所述測試用例集合和測試用例的創(chuàng)建。
[0098]本發(fā)明還提供了所述測試用例導(dǎo)入方法的另一個(gè)實(shí)施例。如圖3所示,為本發(fā)明提供的測試用例導(dǎo)入方法的另一個(gè)實(shí)施例的流程示意圖。
[0099]所述測試用例導(dǎo)入方法,包括以下步驟:
[0100]步驟201:將所述測試用例文件轉(zhuǎn)換成通用文檔類數(shù)據(jù)結(jié)構(gòu);
[0101]步驟202:利用通用文檔類的獲取元素方法,獲取所述通用文檔類數(shù)據(jù)結(jié)構(gòu)的測試用例文件中所有測試分支節(jié)點(diǎn)信息;
[0102]步驟203:分析所述測試分支節(jié)點(diǎn)信息的字符串,得到測試節(jié)點(diǎn)及對應(yīng)的節(jié)點(diǎn)層級關(guān)系;
[0?03]步驟204:遞歸調(diào)用N樹類數(shù)據(jù)結(jié)構(gòu)(可采用GenericTree實(shí)現(xiàn))的生成樹算法將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件;
[0104]步驟205:獲得樹結(jié)構(gòu)文件中當(dāng)前節(jié)點(diǎn)的下一層級的節(jié)點(diǎn)信息;
[0105]步驟206:把當(dāng)前節(jié)點(diǎn)的節(jié)點(diǎn)信息壓入堆棧中保存;
[0106]步驟207:判斷當(dāng)前節(jié)點(diǎn)是否有子節(jié)點(diǎn);
[0107]步驟208:若當(dāng)前節(jié)點(diǎn)有子節(jié)點(diǎn),則調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口為當(dāng)前節(jié)點(diǎn)創(chuàng)建測試用例集合;
[0108]步驟209:若當(dāng)前節(jié)點(diǎn)沒有子節(jié)點(diǎn),則所述當(dāng)前節(jié)點(diǎn)為葉子節(jié)點(diǎn),彈出所述堆棧中的最后一個(gè)元素,并調(diào)用測試用例管理系統(tǒng)的接口,利用彈出的所述堆棧中的最后一個(gè)元素及所述當(dāng)前節(jié)點(diǎn)創(chuàng)建測試用例;
[0109]步驟210:判斷所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是否為所述父節(jié)點(diǎn)的上一層級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn);
[0110]步驟211:若所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是所述父節(jié)點(diǎn)的上一級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn),不做任何操作;
[0111]步驟212:若所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)不是所述父節(jié)點(diǎn)的上一級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn),則將步驟209中彈出的所述最后一個(gè)元素再次壓入堆棧;
[0112]步驟213:遞歸調(diào)用步驟207?212,直到所述樹結(jié)構(gòu)文件中的所有節(jié)點(diǎn)遍歷完畢,所有的葉子節(jié)點(diǎn)均被創(chuàng)建成對應(yīng)的測試用例,所有的非葉子節(jié)點(diǎn)也按照層級創(chuàng)建成對應(yīng)的測試用例集合。
[0113]從上述實(shí)施例可以看出,本發(fā)明提供的測試用例導(dǎo)入方法,通過將不能被完整導(dǎo)入測試用例管理系統(tǒng)的測試用例文件解析為測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系,然后將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換為樹結(jié)構(gòu)文件后,再通過解析樹結(jié)構(gòu)文件的方法得到能夠通過調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口的方法導(dǎo)入所述測試用例管理系統(tǒng)的測試用例集合和測試用例,從而將測試用例文件完整地導(dǎo)入了所述測試用例管理系統(tǒng),使得測試用例文件與測試用例管理系統(tǒng)緊密聯(lián)系起來,既保證了測試用例設(shè)計(jì)的覆蓋率,又保證了所有測試用例的可追蹤和可維護(hù)性,打通了軟件測試流程中原本獨(dú)立的兩個(gè)環(huán)節(jié),提高測試質(zhì)量的同時(shí),最大程度的節(jié)省了測試用例生成和管理的開銷。
[0114]針對現(xiàn)有技術(shù)的測試流程中的測試用例文件和測試用例管理系統(tǒng)的環(huán)節(jié)銜接問題,本發(fā)明的第二個(gè)方面提出了一種能夠解決在測試流程中的測試用例設(shè)計(jì)和測試用例管理的環(huán)節(jié)銜接問題的測試用例導(dǎo)入裝置。如圖4所示,為本發(fā)明提供的測試用例導(dǎo)入裝置實(shí)施例的模塊結(jié)構(gòu)示意圖。
[0115]所述測試用例導(dǎo)入裝置,包括:
[0116]用例文件解析模塊301,用于解析測試用例文件,得到測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系;所述測試用例文件可以利用思維導(dǎo)圖進(jìn)行設(shè)計(jì),從而保證測試的覆蓋率;
[0117]用例文件轉(zhuǎn)換模塊302,用于將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件;
[0118]用例導(dǎo)入模塊303,用于解析所述樹結(jié)構(gòu)文件得到測試用例集合和測試用例,調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口,并將所述測試用例集合和測試用例導(dǎo)入所述測試用例管理系統(tǒng)。
[0119]從上述實(shí)施例可以看出,本發(fā)明提供的測試用例導(dǎo)入裝置,通過將不能被完整導(dǎo)入測試用例管理系統(tǒng)的測試用例文件解析為測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系,然后將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換為樹結(jié)構(gòu)文件后,再通過解析樹結(jié)構(gòu)文件的方法得到能夠通過調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口的方法導(dǎo)入所述測試用例管理系統(tǒng)的測試用例集合和測試用例,從而將測試用例文件完整地導(dǎo)入了所述測試用例管理系統(tǒng),使得測試用例文件與測試用例管理系統(tǒng)緊密聯(lián)系起來,既保證了測試用例設(shè)計(jì)的覆蓋率,又保證了所有測試用例的可追蹤和可維護(hù)性,打通了軟件測試流程中原本獨(dú)立的兩個(gè)環(huán)節(jié),提高測試質(zhì)量的同時(shí),最大程度的節(jié)省了測試用例生成和管理的開銷。
[0120]所述測試用例導(dǎo)入裝置,可以通過java編程實(shí)現(xiàn),使用時(shí),首先從SVN中下載工具源代碼;接著將測試用例文件保存到項(xiàng)目的文件夾下;編譯項(xiàng)目并運(yùn)行即可在測試用例管理系統(tǒng)中看到生成的測試用例集合和測試用例。如圖5所示,為所述測試用例文件的某一實(shí)施例的參考示意圖;如圖6所示,為所述測試用例文件轉(zhuǎn)換成測試用例管理系統(tǒng)中的測試用例集合和測試用例的參考示意圖。
[0121]進(jìn)一步的,在一些可選實(shí)施方式中,所述用例文件解析模塊301,還可具體用于:
[0122]將所述測試用例文件轉(zhuǎn)換成通用文檔類數(shù)據(jù)結(jié)構(gòu)(Document);可選的,當(dāng)所述測試用例文件為html格式思維導(dǎo)圖文件時(shí),所述轉(zhuǎn)換方法采用JSoup類提供的parseO方法,其中JSoup是一款適用于html格式文件解析的開源工具;
[0123]利用通用文檔類的獲取元素方法(getElementByO),獲取所述通用文檔類數(shù)據(jù)結(jié)構(gòu)的測試用例文件中所有測試分支節(jié)點(diǎn)信息;
[0124]分析所述測試分支節(jié)點(diǎn)信息的字符串(可采用Java編程實(shí)現(xiàn)分析),得到測試節(jié)點(diǎn)及對應(yīng)的節(jié)點(diǎn)層級關(guān)系。
[0125]通過上述實(shí)施例提供的方法,即能完整地從所述測試用例文件解析得到測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系。
[0126]可選的,在一些實(shí)施方式中,所述用例文件轉(zhuǎn)換模塊302,還可具體用于:
[0127]遞歸調(diào)用N樹類數(shù)據(jù)結(jié)構(gòu)(可采用GenericTree實(shí)現(xiàn))的生成樹算法將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件。
[0128]通過上述實(shí)施例中的N樹類數(shù)據(jù)結(jié)構(gòu)的生成樹算法,能夠所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系建立一種樹結(jié)構(gòu)文件,從而能夠通過樹結(jié)構(gòu)的遍歷方法進(jìn)行進(jìn)一步分析,并從中得到測試用例集合和測試用例的信息。
[0129]較佳的,在一些可選實(shí)施方式中,如圖2所示,所述用例導(dǎo)入模塊303,還可具體用于:
[0130]步驟131:獲得樹結(jié)構(gòu)文件中當(dāng)前節(jié)點(diǎn)的下一層級的節(jié)點(diǎn)信息,可選的,通過java編寫N樹遍歷算法來獲取樹結(jié)構(gòu)文件中當(dāng)前節(jié)點(diǎn)的下一層級的節(jié)點(diǎn)信息;這里的當(dāng)前節(jié)點(diǎn)是指,當(dāng)前正在進(jìn)行處理的節(jié)點(diǎn),在步驟103的初始階段,所述當(dāng)前節(jié)點(diǎn)為所述樹結(jié)構(gòu)文件的根節(jié)點(diǎn),即初始階段時(shí),當(dāng)前節(jié)點(diǎn)為起始節(jié)點(diǎn);
[0131]步驟1032:把當(dāng)前節(jié)點(diǎn)的節(jié)點(diǎn)信息壓入堆棧中保存;這里的堆棧遵循先進(jìn)后出的規(guī)則,先壓入的節(jié)點(diǎn)信息所對應(yīng)的節(jié)點(diǎn)為上一層級的節(jié)點(diǎn),所述堆棧的初始狀態(tài)有一個(gè)節(jié)點(diǎn),即測試用例集合的根節(jié)點(diǎn);
[0132]步驟1033:判斷當(dāng)前節(jié)點(diǎn)是否有子節(jié)點(diǎn);
[0133]步驟1034:若當(dāng)前節(jié)點(diǎn)有子節(jié)點(diǎn),則調(diào)用測試用例管理系統(tǒng)(可選為testlink)的應(yīng)用程序編程接口(API)為當(dāng)前節(jié)點(diǎn)創(chuàng)建測試用例集合;所述堆棧中的最后一個(gè)元素即為所述子節(jié)點(diǎn)的父節(jié)點(diǎn);
[0134]步驟1035:若當(dāng)前節(jié)點(diǎn)沒有子節(jié)點(diǎn),則所述當(dāng)前節(jié)點(diǎn)為葉子節(jié)點(diǎn),彈出所述堆棧中的最后一個(gè)元素,并調(diào)用測試用例管理系統(tǒng)的接口,利用彈出的所述堆棧中的最后一個(gè)元素及所述當(dāng)前節(jié)點(diǎn)創(chuàng)建測試用例;所述堆棧的最后一個(gè)元素為所述當(dāng)前節(jié)點(diǎn)的上一層級節(jié)點(diǎn)的節(jié)點(diǎn)信息;
[0135]步驟1036:判斷所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是否為所述父節(jié)點(diǎn)的上一層級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn);
[0136]步驟1037:若所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是所述父節(jié)點(diǎn)的上一級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn),不做任何操作;
[0137]步驟1038:若所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)不是所述父節(jié)點(diǎn)的上一級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn),則將步驟1035中彈出的所述最后一個(gè)元素再次壓入堆棧;
[0138]步驟1039:遞歸調(diào)用步驟1033?1038,直到所述樹結(jié)構(gòu)文件中的所有節(jié)點(diǎn)遍歷完畢,所有的葉子節(jié)點(diǎn)均被創(chuàng)建成對應(yīng)的測試用例,所有的非葉子節(jié)點(diǎn)也按照層級創(chuàng)建成對應(yīng)的測試用例集合。
[0139]通過上述實(shí)施例,即可完整地完成所述樹結(jié)構(gòu)文件的遍歷,并從中逐步分析得到各測試用例集合和各測試用例,并相應(yīng)地逐漸將其導(dǎo)入測試用例管理系統(tǒng)中,從而最終得到測試用例管理系統(tǒng)中的與測試用例文件所對應(yīng)的測試用例集合和測試用例。
[0140]可選的,在一些實(shí)施方式中,所述用例導(dǎo)入模塊304,還可具體用于:
[0141]在測試用例管理系統(tǒng)(可選為testlink)中生成開發(fā)者密鑰;
[0142]利用開發(fā)者密鑰和測試用例管理系統(tǒng)提供的應(yīng)用程序編程接口(API),建立與測試用例管理系統(tǒng)的應(yīng)用程序編程接口的連接;
[0143]程序運(yùn)行時(shí),調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口中的創(chuàng)建測試用例和創(chuàng)建測試集合的方法,創(chuàng)建所述測試用例集合和測試用例。
[0144]通過上述實(shí)施例,完成對所述測試用例管理系統(tǒng)的應(yīng)用程序編程接口的調(diào)用并相應(yīng)地在測試用例管理系統(tǒng)中完成所述測試用例集合和測試用例的創(chuàng)建。
[0145]所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:以上任何實(shí)施例的討論僅為示例性的,并非旨在暗示本公開的范圍(包括權(quán)利要求)被限于這些例子;在本發(fā)明的思路下,以上實(shí)施例或者不同實(shí)施例中的技術(shù)特征之間也可以進(jìn)行組合,步驟可以以任意順序?qū)崿F(xiàn),并存在如上所述的本發(fā)明的不同方面的許多其它變化,為了簡明它們沒有在細(xì)節(jié)中提供。
[0146]另外,為簡化說明和討論,并且為了不會使本發(fā)明難以理解,在所提供的附圖中可以示出或可以不示出與集成電路(IC)芯片和其它部件的公知的電源/接地連接。此外,可以以框圖的形式示出裝置,以便避免使本發(fā)明難以理解,并且這也考慮了以下事實(shí),即關(guān)于這些框圖裝置的實(shí)施方式的細(xì)節(jié)是高度取決于將要實(shí)施本發(fā)明的平臺的(即,這些細(xì)節(jié)應(yīng)當(dāng)完全處于本領(lǐng)域技術(shù)人員的理解范圍內(nèi))。在闡述了具體細(xì)節(jié)(例如,電路)以描述本發(fā)明的示例性實(shí)施例的情況下,對本領(lǐng)域技術(shù)人員來說顯而易見的是,可以在沒有這些具體細(xì)節(jié)的情況下或者這些具體細(xì)節(jié)有變化的情況下實(shí)施本發(fā)明。因此,這些描述應(yīng)被認(rèn)為是說明性的而不是限制性的。
[0147]盡管已經(jīng)結(jié)合了本發(fā)明的具體實(shí)施例對本發(fā)明進(jìn)行了描述,但是根據(jù)前面的描述,這些實(shí)施例的很多替換、修改和變型對本領(lǐng)域普通技術(shù)人員來說將是顯而易見的。例如,其它存儲器架構(gòu)(例如,動態(tài)RAM(DRAM))可以使用所討論的實(shí)施例。
[0148]本發(fā)明的實(shí)施例旨在涵蓋落入所附權(quán)利要求的寬泛范圍之內(nèi)的所有這樣的替換、修改和變型。因此,凡在本發(fā)明的精神和原則之內(nèi),所做的任何省略、修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種測試用例導(dǎo)入方法,其特征在于,包括: 解析測試用例文件,得到測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系; 將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件; 解析所述樹結(jié)構(gòu)文件得到測試用例集合和測試用例,調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口,并將所述測試用例集合和測試用例導(dǎo)入所述測試用例管理系統(tǒng)。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述解析測試用例文件,得到測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系的步驟包括: 將所述測試用例文件轉(zhuǎn)換成通用文檔類數(shù)據(jù)結(jié)構(gòu); 利用通用文檔類的獲取元素方法,獲取所述通用文檔類數(shù)據(jù)結(jié)構(gòu)的測試用例文件中所有測試分支節(jié)點(diǎn)信息; 分析所述測試分支節(jié)點(diǎn)信息的字符串,得到測試節(jié)點(diǎn)及對應(yīng)的節(jié)點(diǎn)層級關(guān)系。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件的步驟具體包括: 遞歸調(diào)用N樹類數(shù)據(jù)結(jié)構(gòu)的生成樹算法將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述解析所述樹結(jié)構(gòu)文件得到測試用例集合和測試用例,調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口,并將所述測試用例集合和測試用例導(dǎo)入所述測試用例管理系統(tǒng)的步驟包括: 步驟1031:獲得樹結(jié)構(gòu)文件中當(dāng)前節(jié)點(diǎn)的下一層級的節(jié)點(diǎn)信息; 步驟1032:把當(dāng)前節(jié)點(diǎn)的節(jié)點(diǎn)信息壓入堆棧中保存; 步驟1033:判斷當(dāng)前節(jié)點(diǎn)是否有子節(jié)點(diǎn); 步驟1034:若當(dāng)前節(jié)點(diǎn)有子節(jié)點(diǎn),則調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口為當(dāng)前節(jié)點(diǎn)創(chuàng)建測試用例集合; 步驟1035:若當(dāng)前節(jié)點(diǎn)沒有子節(jié)點(diǎn),則所述當(dāng)前節(jié)點(diǎn)為葉子節(jié)點(diǎn),彈出所述堆棧中的最后一個(gè)元素,并調(diào)用測試用例管理系統(tǒng)的接口,利用彈出的所述堆棧中的最后一個(gè)元素及所述當(dāng)前節(jié)點(diǎn)創(chuàng)建測試用例; 步驟1036:判斷所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是否為所述父節(jié)點(diǎn)的上一層級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn); 步驟1037:若所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是所述父節(jié)點(diǎn)的上一級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn),不做任何操作; 步驟1038:若所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)不是所述父節(jié)點(diǎn)的上一級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn),則將步驟1035中彈出的所述最后一個(gè)元素再次壓入堆棧; 步驟1039:遞歸調(diào)用步驟1033?1038,直到所述樹結(jié)構(gòu)文件中的所有節(jié)點(diǎn)遍歷完畢,所有的葉子節(jié)點(diǎn)均被創(chuàng)建成對應(yīng)的測試用例,所有的非葉子節(jié)點(diǎn)也按照層級創(chuàng)建成對應(yīng)的測試用例集合。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述調(diào)用測試用例管理系統(tǒng)的接口,并將所述測試用例集合和測試用例導(dǎo)入所述測試用例管理系統(tǒng)的步驟包括: 在測試用例管理系統(tǒng)中生成開發(fā)者密鑰; 利用開發(fā)者密鑰和測試用例管理系統(tǒng)提供的應(yīng)用程序編程接口,建立與測試用例管理系統(tǒng)的應(yīng)用程序編程接口的連接; 調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口中的創(chuàng)建測試用例和創(chuàng)建測試集合的方法,創(chuàng)建所述測試用例集合和測試用例。6.一種測試用例導(dǎo)入裝置,其特征在于,包括: 用例文件解析模塊,用于解析測試用例文件,得到測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系; 用例文件轉(zhuǎn)換模塊,用于將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件; 用例導(dǎo)入模塊,用于解析所述樹結(jié)構(gòu)文件得到測試用例集合和測試用例,調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口,并將所述測試用例集合和測試用例導(dǎo)入所述測試用例管理系統(tǒng)。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述用例文件解析模塊,具體用于: 將所述測試用例文件轉(zhuǎn)換成通用文檔類數(shù)據(jù)結(jié)構(gòu); 利用通用文檔類的獲取元素方法,獲取所述通用文檔類數(shù)據(jù)結(jié)構(gòu)的測試用例文件中所有測試分支節(jié)點(diǎn)信息; 分析所述測試分支節(jié)點(diǎn)信息的字符串,得到測試節(jié)點(diǎn)及對應(yīng)的節(jié)點(diǎn)層級關(guān)系。8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述用例文件轉(zhuǎn)換模塊,具體用于: 遞歸調(diào)用N樹類數(shù)據(jù)結(jié)構(gòu)的生成樹算法將所述測試節(jié)點(diǎn)和節(jié)點(diǎn)層級關(guān)系轉(zhuǎn)換成樹結(jié)構(gòu)文件。9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述用例導(dǎo)入模塊,具體用于: 步驟1031:獲得樹結(jié)構(gòu)文件中當(dāng)前節(jié)點(diǎn)的下一層級的節(jié)點(diǎn)信息; 步驟1032:把當(dāng)前節(jié)點(diǎn)的節(jié)點(diǎn)信息壓入堆棧中保存; 步驟1033:判斷當(dāng)前節(jié)點(diǎn)是否有子節(jié)點(diǎn); 步驟1034:若當(dāng)前節(jié)點(diǎn)有子節(jié)點(diǎn),則調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口為當(dāng)前節(jié)點(diǎn)創(chuàng)建測試用例集合; 步驟1035:若當(dāng)前節(jié)點(diǎn)沒有子節(jié)點(diǎn),則所述當(dāng)前節(jié)點(diǎn)為葉子節(jié)點(diǎn),彈出所述堆棧中的最后一個(gè)元素,并調(diào)用測試用例管理系統(tǒng)的接口,利用彈出的所述堆棧中的最后一個(gè)元素及所述當(dāng)前節(jié)點(diǎn)創(chuàng)建測試用例; 步驟1036:判斷所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是否為所述父節(jié)點(diǎn)的上一層級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn); 步驟1037:若所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)是所述父節(jié)點(diǎn)的上一級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn),不做任何操作; 步驟1038:若所述葉子節(jié)點(diǎn)的父節(jié)點(diǎn)不是所述父節(jié)點(diǎn)的上一級節(jié)點(diǎn)最后一個(gè)擁有葉子節(jié)點(diǎn)的節(jié)點(diǎn),則將步驟1035中彈出的所述最后一個(gè)元素再次壓入堆棧; 步驟1039:遞歸調(diào)用步驟1033?1038,直到所述樹結(jié)構(gòu)文件中的所有節(jié)點(diǎn)遍歷完畢,所有的葉子節(jié)點(diǎn)均被創(chuàng)建成對應(yīng)的測試用例,所有的非葉子節(jié)點(diǎn)也按照層級創(chuàng)建成對應(yīng)的測試用例集合。10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述用例導(dǎo)入模塊,具體用于: 在測試用例管理系統(tǒng)中生成開發(fā)者密鑰; 利用開發(fā)者密鑰和測試用例管理系統(tǒng)提供的應(yīng)用程序編程接口,建立與測試用例管理系統(tǒng)的應(yīng)用程序編程接口的連接; 調(diào)用測試用例管理系統(tǒng)的應(yīng)用程序編程接口中的創(chuàng)建測試用例和創(chuàng)建測試集合的方法,創(chuàng)建所述測試用例集合和測試用例。
【文檔編號】G06F11/36GK105893254SQ201610188803
【公開日】2016年8月24日
【申請日】2016年3月29日
【發(fā)明人】黃晶
【申請人】樂視控股(北京)有限公司, 樂視電子商務(wù)(北京)有限公司