軟件測(cè)試方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種軟件測(cè)試方法及裝置。該軟件測(cè)試方法包括:獲取測(cè)試函數(shù)的標(biāo)識(shí)符;根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)包括第一數(shù)據(jù)庫(kù)和第二數(shù)據(jù)庫(kù);測(cè)試函數(shù)驅(qū)動(dòng)測(cè)試對(duì)象運(yùn)行;測(cè)試對(duì)象調(diào)用第一數(shù)據(jù)庫(kù),并將運(yùn)行結(jié)果存儲(chǔ)在第二數(shù)據(jù)庫(kù);測(cè)試函數(shù)從第二數(shù)據(jù)庫(kù)獲取運(yùn)行結(jié)果;測(cè)試函數(shù)判斷運(yùn)行結(jié)果是否與預(yù)設(shè)結(jié)果一致;以及如果運(yùn)行結(jié)果與預(yù)設(shè)結(jié)果一致,則確定測(cè)試函數(shù)測(cè)試成功,如果運(yùn)行結(jié)果與預(yù)設(shè)結(jié)果不一致,則確定測(cè)試函數(shù)測(cè)試失敗。本發(fā)明通過(guò)根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),解決了軟件測(cè)試過(guò)程中無(wú)法從數(shù)據(jù)庫(kù)中追溯測(cè)試用例失敗原因的問題,進(jìn)而達(dá)到了能夠從數(shù)據(jù)庫(kù)中追溯測(cè)試用例失敗原因的效果。
【專利說(shuō)明】軟件測(cè)試方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種軟件測(cè)試方法及裝置。
【背景技術(shù)】
[0002]在軟件測(cè)試中,有這樣一種自動(dòng)化測(cè)試場(chǎng)景:測(cè)試對(duì)象依賴一套特定結(jié)構(gòu)的數(shù)據(jù)庫(kù),因此每個(gè)測(cè)試用例的執(zhí)行也需要配置這樣一套數(shù)據(jù)庫(kù)。在運(yùn)行這些測(cè)試用例的時(shí)候,數(shù)據(jù)庫(kù)的管理需要以一套自動(dòng)化的方法來(lái)進(jìn)行。在現(xiàn)有技術(shù)中,每個(gè)用例使用同一套數(shù)據(jù)庫(kù),在測(cè)試用例初始化時(shí),即TestInitialize過(guò)程中創(chuàng)建數(shù)據(jù)庫(kù),在下個(gè)測(cè)試用例初始化時(shí),再刪除之前測(cè)試用例的數(shù)據(jù)庫(kù),重新創(chuàng)建新的同名數(shù)據(jù)庫(kù)。圖1是現(xiàn)有技術(shù)的測(cè)試過(guò)程流程圖,如圖1所示,在軟件測(cè)試開始后,測(cè)試函數(shù)I至測(cè)試函數(shù)3依次操作同一套數(shù)據(jù)庫(kù)(包括數(shù)據(jù)庫(kù)DBA、數(shù)據(jù)庫(kù)DBB和數(shù)據(jù)庫(kù)DBC)進(jìn)行測(cè)試,只有在前一個(gè)測(cè)試函數(shù)測(cè)試結(jié)束后,下一個(gè)測(cè)試函數(shù)才可以操作數(shù)據(jù)庫(kù)進(jìn)行測(cè)試,直至所有的測(cè)試函數(shù)測(cè)試完成,結(jié)束測(cè)試過(guò)程。由于所有用例操作同一套數(shù)據(jù)庫(kù),用例間無(wú)法并行運(yùn)行,否則就會(huì)發(fā)生數(shù)據(jù)庫(kù)數(shù)據(jù)的沖突。由于下個(gè)測(cè)試用例初始化時(shí)會(huì)刪除之前用例的數(shù)據(jù)庫(kù),因此在批量運(yùn)行測(cè)試用例后,一旦中間某個(gè)用例失敗,則無(wú)法從數(shù)據(jù)庫(kù)中追溯失敗原因。
[0003]針對(duì)相關(guān)技術(shù)中軟件測(cè)試過(guò)程中無(wú)法從數(shù)據(jù)庫(kù)中追溯測(cè)試用例失敗原因的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的主要目的在于提供一種軟件測(cè)試方法及裝置,以解決軟件測(cè)試過(guò)程中無(wú)法從數(shù)據(jù)庫(kù)中追溯測(cè)試用例失敗原因的問題。
[0005]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種軟件測(cè)試方法。
[0006]根據(jù)本發(fā)明的軟件測(cè)試方法包括:獲取測(cè)試函數(shù)的標(biāo)識(shí)符;根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),其中,該數(shù)據(jù)庫(kù)包括第一數(shù)據(jù)庫(kù)和第二數(shù)據(jù)庫(kù),第一數(shù)據(jù)庫(kù)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行需要調(diào)用的數(shù)據(jù),第二數(shù)據(jù)庫(kù)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行結(jié)果;測(cè)試函數(shù)驅(qū)動(dòng)測(cè)試對(duì)象運(yùn)行;測(cè)試對(duì)象調(diào)用第一數(shù)據(jù)庫(kù),并將運(yùn)行結(jié)果存儲(chǔ)在第二數(shù)據(jù)庫(kù);測(cè)試函數(shù)從第二數(shù)據(jù)庫(kù)獲取運(yùn)行結(jié)果;測(cè)試函數(shù)判斷運(yùn)行結(jié)果是否與預(yù)設(shè)結(jié)果一致;以及如果運(yùn)行結(jié)果與預(yù)設(shè)結(jié)果一致,則確定測(cè)試函數(shù)測(cè)試成功,如果運(yùn)行結(jié)果與預(yù)設(shè)結(jié)果不一致,則確定測(cè)試函數(shù)測(cè)試失敗。
[0007]進(jìn)一步地,獲取測(cè)試函數(shù)的標(biāo)識(shí)符包括:獲取預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符;判斷預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符是否唯一;以及當(dāng)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符唯一時(shí),將預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符作為測(cè)試函數(shù)的標(biāo)識(shí)符。
[0008]進(jìn)一步地,判斷預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符是否唯一包括:獲取多個(gè)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符;判斷多個(gè)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符中是否存在相同的標(biāo)識(shí)符;如果不存在相同的標(biāo)識(shí)符,則確定測(cè)試函數(shù)標(biāo)識(shí)符唯一;以及如果存在相同的標(biāo)識(shí)符,則確定測(cè)試函數(shù)標(biāo)識(shí)符不唯一。
[0009]進(jìn)一步地,根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建測(cè)試函數(shù)的數(shù)據(jù)庫(kù)包括:獲取模板數(shù)據(jù)庫(kù);創(chuàng)建模板數(shù)據(jù)庫(kù)的備份數(shù)據(jù)庫(kù);以及根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符對(duì)備份數(shù)據(jù)庫(kù)進(jìn)行編號(hào),得到測(cè)試函數(shù)的數(shù)據(jù)庫(kù)。
[0010]進(jìn)一步地,在測(cè)試函數(shù)判斷運(yùn)行結(jié)果是否與預(yù)設(shè)結(jié)果一致之后,軟件測(cè)試方法還包括:當(dāng)確定測(cè)試函數(shù)測(cè)試成功時(shí),則刪除測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù);以及當(dāng)確定測(cè)試用例測(cè)試失敗時(shí),則存儲(chǔ)測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)。
[0011]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種軟件測(cè)試裝置。
[0012]根據(jù)本發(fā)明的軟件測(cè)試裝置包括:第一獲取模塊,用于獲取測(cè)試函數(shù)的標(biāo)識(shí)符;創(chuàng)建模塊,用于根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),其中,該數(shù)據(jù)庫(kù)包括第一數(shù)據(jù)庫(kù)和第二數(shù)據(jù)庫(kù),第一數(shù)據(jù)庫(kù)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行需要調(diào)用的數(shù)據(jù),第二數(shù)據(jù)庫(kù)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行結(jié)果;驅(qū)動(dòng)模塊,用于驅(qū)動(dòng)測(cè)試對(duì)象運(yùn)行;調(diào)用模塊,用于測(cè)試對(duì)象調(diào)用第一數(shù)據(jù)庫(kù),并將運(yùn)行結(jié)果存儲(chǔ)在第二數(shù)據(jù)庫(kù);第二獲取模塊,用于測(cè)試函數(shù)從第二數(shù)據(jù)庫(kù)獲取運(yùn)行結(jié)果;判斷模塊,用于測(cè)試函數(shù)判斷運(yùn)行結(jié)果是否與預(yù)設(shè)結(jié)果一致;以及確定模塊,用于當(dāng)運(yùn)行結(jié)果與預(yù)設(shè)結(jié)果一致時(shí),則確定測(cè)試函數(shù)測(cè)試成功,當(dāng)運(yùn)行結(jié)果與預(yù)設(shè)結(jié)果不一致時(shí),則確定測(cè)試函數(shù)測(cè)試失敗。
[0013]進(jìn)一步地,第一獲取模塊包括:第一獲取單元,用于獲取預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符;第一判斷單元,用于判斷預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符是否唯一;以及第一確定單元,用于當(dāng)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符唯一時(shí),確定預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符作為測(cè)試函數(shù)的標(biāo)識(shí)符。
[0014]進(jìn)一步地,第一判斷單元包括:第二獲取單元,用于獲取多個(gè)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符;第二判斷單元,用于判斷多個(gè)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符中是否存在相同的標(biāo)識(shí)符;以及第二確定單元,用于當(dāng)不存在相同的標(biāo)識(shí)符時(shí),確定測(cè)試函數(shù)標(biāo)識(shí)符唯一,當(dāng)存在相同的標(biāo)識(shí)符時(shí),確定測(cè)試函數(shù)標(biāo)識(shí)符不唯一。
[0015]進(jìn)一步地,創(chuàng)建模塊包括:第三獲取單元,用于獲取模板數(shù)據(jù)庫(kù);創(chuàng)建單元,用于創(chuàng)建模板數(shù)據(jù)庫(kù)的備份數(shù)據(jù)庫(kù);以及編號(hào)單元,用于根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符對(duì)備份數(shù)據(jù)庫(kù)進(jìn)行編號(hào),得到測(cè)試函數(shù)的數(shù)據(jù)庫(kù)。
[0016]進(jìn)一步地,在測(cè)試函數(shù)判斷運(yùn)行結(jié)果是否與預(yù)設(shè)結(jié)果一致之后,軟件測(cè)試裝置還包括:刪除模塊,用于當(dāng)確定測(cè)試函數(shù)測(cè)試成功時(shí),刪除測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù);以及存儲(chǔ)模塊,用于當(dāng)確定測(cè)試用例測(cè)試失敗時(shí),存儲(chǔ)測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)。
[0017]通過(guò)本發(fā)明,采用根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),使得每個(gè)測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)都不相同,解決了軟件測(cè)試過(guò)程中無(wú)法從數(shù)據(jù)庫(kù)中追溯測(cè)試用例失敗原因的問題,進(jìn)而達(dá)到了能夠從數(shù)據(jù)庫(kù)中追溯測(cè)試用例失敗原因的效果。
【專利附圖】
【附圖說(shuō)明】
[0018]構(gòu)成本申請(qǐng)的一部分的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0019]圖1是根據(jù)相關(guān)技術(shù)的軟件測(cè)試流程圖;
[0020]圖2是根據(jù)本發(fā)明實(shí)施例的軟件測(cè)試方法的流程圖;
[0021]圖3是根據(jù)本發(fā)明實(shí)施例的多個(gè)測(cè)試函數(shù)串行運(yùn)行示意圖;
[0022]圖4是根據(jù)本發(fā)明實(shí)施例的多個(gè)測(cè)試函數(shù)并行運(yùn)行示意圖;以及
[0023]圖5是根據(jù)本發(fā)明實(shí)施例的軟件測(cè)試裝置示意圖。
【具體實(shí)施方式】
[0024]需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。
[0025]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本申請(qǐng)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分的實(shí)施例,而不是全部的實(shí)施例。基于本申請(qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。
[0026]需要說(shuō)明的是,本申請(qǐng)的說(shuō)明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請(qǐng)的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0027]軟件測(cè)試就是利用測(cè)試工具對(duì)產(chǎn)品進(jìn)行功能和性能的測(cè)試,以確保開發(fā)的產(chǎn)品滿足需求,在軟件測(cè)試過(guò)程中,待測(cè)試的產(chǎn)品即測(cè)試對(duì)象,測(cè)試對(duì)象往往是一些計(jì)算機(jī)應(yīng)用程序,測(cè)試工具可以是按照軟件測(cè)試需求編寫的一套測(cè)試函數(shù)。根據(jù)本發(fā)明實(shí)施例的軟件測(cè)試體系建立在Visual Stud1測(cè)試框架之上,以下是該Visual Stud1測(cè)試框架體系下的各個(gè)函數(shù)標(biāo)識(shí)介紹:
[0028][TestMethod]標(biāo)識(shí):標(biāo)識(shí)當(dāng)前函數(shù)是一個(gè)測(cè)試函數(shù)。用戶可以根據(jù)具體的測(cè)試對(duì)象編寫相應(yīng)的測(cè)試函數(shù)以實(shí)現(xiàn)對(duì)測(cè)試對(duì)象的測(cè)試。
[0029][Assemblylnitialize]標(biāo)識(shí):在進(jìn)入測(cè)試程序集時(shí)首先運(yùn)行該標(biāo)識(shí)標(biāo)志的函數(shù),整個(gè)軟件測(cè)試過(guò)程中該函數(shù)僅運(yùn)行一次。
[0030][TestInitialize]標(biāo)識(shí):在每個(gè)測(cè)試函數(shù)運(yùn)行之前需要運(yùn)行一次該標(biāo)識(shí)標(biāo)志的函數(shù),用于測(cè)試函數(shù)相關(guān)參數(shù)的初始化,例如,創(chuàng)建測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)。
[0031][TestCleanup]標(biāo)識(shí):在每個(gè)測(cè)試函數(shù)運(yùn)行結(jié)束之后都要運(yùn)行一次該標(biāo)識(shí)標(biāo)志的函數(shù),用于清理當(dāng)前測(cè)試函數(shù)生成的相關(guān)數(shù)據(jù),例如刪除測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)。
[0032]根據(jù)本發(fā)明實(shí)施例,提供了一種軟件測(cè)試方法,圖1是根據(jù)本發(fā)明實(shí)施例的軟件測(cè)試方法的流程圖。
[0033]如圖1所示,該方法包括如下的步驟S102至步驟SI 14:
[0034]步驟S102:獲取測(cè)試函數(shù)的標(biāo)識(shí)符。
[0035]步驟S104:根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),其中,數(shù)據(jù)庫(kù)包括第一數(shù)據(jù)庫(kù)和第二數(shù)據(jù)庫(kù),第一數(shù)據(jù)庫(kù)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行需要調(diào)用的數(shù)據(jù),第二數(shù)據(jù)庫(kù)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行結(jié)果。
[0036]根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)時(shí),創(chuàng)建的數(shù)據(jù)庫(kù)可以是一個(gè)第一數(shù)據(jù)庫(kù)和一個(gè)第二數(shù)據(jù)庫(kù),也可以是多個(gè)第一數(shù)據(jù)庫(kù)和多個(gè)第二數(shù)據(jù)庫(kù),多個(gè)第一數(shù)據(jù)庫(kù)都是用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行需要調(diào)用的數(shù)據(jù),例如,4個(gè)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行需要調(diào)用的數(shù)據(jù)的第一數(shù)據(jù)庫(kù),多個(gè)第二數(shù)據(jù)庫(kù)也都是用來(lái)存儲(chǔ)測(cè)試對(duì)象運(yùn)行結(jié)果,例如,3個(gè)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行結(jié)果的第二數(shù)據(jù)庫(kù)。
[0037]步驟S106:測(cè)試函數(shù)驅(qū)動(dòng)測(cè)試對(duì)象運(yùn)行。
[0038]步驟S108:測(cè)試對(duì)象調(diào)用第一數(shù)據(jù)庫(kù),并將運(yùn)行結(jié)果存儲(chǔ)在第二數(shù)據(jù)庫(kù)。
[0039]步驟SllO:測(cè)試函數(shù)從第二數(shù)據(jù)庫(kù)獲取運(yùn)行結(jié)果。
[0040]步驟S112:測(cè)試函數(shù)判斷運(yùn)行結(jié)果是否與預(yù)設(shè)結(jié)果一致。
[0041]步驟S114:如果運(yùn)行結(jié)果與預(yù)設(shè)結(jié)果一致,則確定測(cè)試函數(shù)測(cè)試成功,如果運(yùn)行結(jié)果與預(yù)設(shè)結(jié)果不一致,則確定測(cè)試函數(shù)測(cè)試失敗。
[0042]本發(fā)明實(shí)施例的測(cè)試對(duì)象的運(yùn)行需要依賴一套特定的數(shù)據(jù)庫(kù),在測(cè)試函數(shù)初始化時(shí),需要?jiǎng)?chuàng)建一套數(shù)據(jù)庫(kù)用于測(cè)試對(duì)象調(diào)用。如果存在多個(gè)測(cè)試函數(shù)時(shí),需要為每一個(gè)測(cè)試函數(shù)都創(chuàng)建對(duì)應(yīng)的數(shù)據(jù)庫(kù)。
[0043]為了避免多個(gè)測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)的不同,保證每個(gè)數(shù)據(jù)庫(kù)的唯一性,本發(fā)明實(shí)施例通過(guò)為每個(gè)測(cè)試函數(shù)指定一個(gè)標(biāo)識(shí)符,例如,在測(cè)試函數(shù)名之前以Attribute標(biāo)識(shí)該測(cè)試函數(shù),如在測(cè)試函數(shù)[TestMethod]前置[TestProfileId (5005)],即構(gòu)成[TestProfileId (5005) ] [TestMethod]形式。在測(cè)試初始化函數(shù) TestInitialize 中根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),每個(gè)測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)根據(jù)測(cè)試函數(shù)的標(biāo)識(shí)符進(jìn)行編號(hào),保證每個(gè)測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)不相同。
[0044]現(xiàn)有技術(shù)中每個(gè)測(cè)試函數(shù)使用的數(shù)據(jù)庫(kù)都是同名數(shù)據(jù)庫(kù),當(dāng)多個(gè)測(cè)試函數(shù)串行運(yùn)行后,后面的測(cè)試函數(shù)的數(shù)據(jù)庫(kù)覆蓋了前面運(yùn)行的測(cè)試函數(shù)的數(shù)據(jù)庫(kù),使得一旦中間某個(gè)測(cè)試函數(shù)測(cè)試失敗,無(wú)法從數(shù)據(jù)庫(kù)中追溯失敗原因。而本發(fā)明實(shí)施例提供的軟件測(cè)試方法,每個(gè)測(cè)試函數(shù)使用的數(shù)據(jù)庫(kù)都不同名,因此在運(yùn)行多個(gè)測(cè)試函數(shù)后,不會(huì)造成不同測(cè)試函數(shù)的數(shù)據(jù)庫(kù)之間數(shù)據(jù)的相互覆蓋,因此,測(cè)試函數(shù)測(cè)試失敗后,都可以從該測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)中追溯失敗原因,解決了現(xiàn)有技術(shù)中無(wú)法從數(shù)據(jù)庫(kù)中追溯測(cè)試函數(shù)失敗原因的問題。此外,由于每個(gè)測(cè)試函數(shù)使用的數(shù)據(jù)庫(kù)都不同名,不同測(cè)試函數(shù)使用的數(shù)據(jù)都是相互獨(dú)立的,因此,可以實(shí)現(xiàn)多個(gè)測(cè)試函數(shù)的并行運(yùn)行進(jìn)行軟件測(cè)試。
[0045]圖3為根據(jù)本發(fā)明實(shí)施例的多個(gè)測(cè)試函數(shù)串行運(yùn)行示意圖。從圖3可以看出,軟件測(cè)試程序開始后,首先通過(guò)測(cè)試程序集初始化函數(shù),即AssemblyInitialize函數(shù),檢測(cè)所有測(cè)試函數(shù)的標(biāo)識(shí)符是否唯一。如果所有測(cè)試函數(shù)的標(biāo)識(shí)符唯一,則測(cè)試函數(shù)的測(cè)試初始化函數(shù),即TestInitialize函數(shù),根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建對(duì)應(yīng)的數(shù)據(jù)庫(kù),例如,測(cè)試函數(shù)I通過(guò)TestInitialize函數(shù)創(chuàng)建一套數(shù)據(jù)庫(kù)1,該數(shù)據(jù)庫(kù)I包括數(shù)據(jù)庫(kù)A_l、數(shù)據(jù)庫(kù)B_1和數(shù)據(jù)庫(kù)C_1。測(cè)試函數(shù)I還包括測(cè)試方法函數(shù)和測(cè)試清理函數(shù),測(cè)試方法函數(shù)驅(qū)動(dòng)測(cè)試對(duì)象運(yùn)行,測(cè)試對(duì)象調(diào)用數(shù)據(jù)庫(kù),并將運(yùn)行結(jié)果存儲(chǔ)在數(shù)據(jù)庫(kù)中,測(cè)試方法函數(shù)獲取存儲(chǔ)在數(shù)據(jù)庫(kù)中的運(yùn)行結(jié)果,并與預(yù)設(shè)運(yùn)行結(jié)果進(jìn)行分析比較,如果一致則測(cè)試函數(shù)成功,否則測(cè)試函數(shù)測(cè)試失敗。
[0046]在完成測(cè)試函數(shù)I的測(cè)試之后,依次運(yùn)行測(cè)試函數(shù)2和測(cè)試函數(shù)3,其中,測(cè)試函數(shù)2利用數(shù)據(jù)庫(kù)2進(jìn)行測(cè)試,數(shù)據(jù)庫(kù)2包括數(shù)據(jù)庫(kù)A_2、數(shù)據(jù)庫(kù)B_2和數(shù)據(jù)庫(kù)C_2。測(cè)試函數(shù)3利用數(shù)據(jù)庫(kù)3進(jìn)行測(cè)試,數(shù)據(jù)庫(kù)3包括數(shù)據(jù)庫(kù)A_3、數(shù)據(jù)庫(kù)B_3和數(shù)據(jù)庫(kù)C_3。由于測(cè)試函數(shù)1、測(cè)試函數(shù)2和測(cè)試函數(shù)3利用不同的數(shù)據(jù)庫(kù)進(jìn)行測(cè)試,因此不會(huì)造成數(shù)據(jù)庫(kù)之間數(shù)據(jù)的相互覆蓋,當(dāng)出現(xiàn)中間測(cè)試函數(shù)測(cè)試失敗時(shí),可以從其對(duì)應(yīng)的數(shù)據(jù)庫(kù)中查找原因。
[0047]圖4為根據(jù)本發(fā)明實(shí)施例的多個(gè)測(cè)試函數(shù)并行運(yùn)行示意圖。如圖4所示,測(cè)試函數(shù)1、測(cè)試函數(shù)2和測(cè)試函數(shù)3并行運(yùn)行,其中,測(cè)試函數(shù)I利用數(shù)據(jù)I進(jìn)行測(cè)試,測(cè)試函數(shù)2利用數(shù)據(jù)庫(kù)2進(jìn)行測(cè)試,測(cè)試函數(shù)3利用數(shù)據(jù)庫(kù)3進(jìn)行測(cè)試,由于三個(gè)數(shù)據(jù)庫(kù)相互獨(dú)立,因此并行運(yùn)行測(cè)試函數(shù)1、測(cè)試函數(shù)2和測(cè)試函數(shù)3時(shí)不會(huì)造成數(shù)據(jù)庫(kù)之間數(shù)據(jù)沖突,通過(guò)測(cè)試函數(shù)的并行運(yùn)行可以有效提高軟件測(cè)試的效率。
[0048]優(yōu)選地,為了保證測(cè)試函數(shù)標(biāo)識(shí)符的唯一性,獲取測(cè)試函數(shù)的標(biāo)識(shí)符包括:獲取預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符;判斷預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符是否唯一;以及當(dāng)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符唯一時(shí),將預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符作為測(cè)試函數(shù)的標(biāo)識(shí)符。
[0049]在為所有的測(cè)試函數(shù)指定標(biāo)識(shí)符之后,需要驗(yàn)證測(cè)試函數(shù)標(biāo)識(shí)符的唯一性,當(dāng)判斷預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符唯一時(shí),則獲取預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符作為測(cè)試函數(shù)的標(biāo)識(shí)符,當(dāng)判斷預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符不唯一時(shí),則輸出相應(yīng)的提示信息告訴用戶測(cè)試函數(shù)的標(biāo)識(shí)符不唯一,并且終止軟件測(cè)試進(jìn)程。這樣可以避免由于測(cè)試函數(shù)標(biāo)識(shí)符的不唯一造成測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)的不唯一,最終使得測(cè)試函數(shù)并行運(yùn)行造成數(shù)據(jù)庫(kù)之間數(shù)據(jù)沖突,另一方面,由于相同數(shù)據(jù)庫(kù)的數(shù)據(jù)覆蓋,造成測(cè)試函數(shù)失敗后無(wú)法從數(shù)據(jù)庫(kù)追溯原因。
[0050]可選地,判斷預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符是否唯一包括:獲取多個(gè)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符;判斷多個(gè)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符中是否存在相同的標(biāo)識(shí)符;如果不存在相同的標(biāo)識(shí)符,則確定測(cè)試函數(shù)標(biāo)識(shí)符唯一;以及如果存在相同的標(biāo)識(shí)符,則確定測(cè)試函數(shù)標(biāo)識(shí)符不唯一。
[0051]在獲取到所有的預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符后,可以有多種方式判斷預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符是否唯一,例如,依次比較兩個(gè)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符是否相同。只要存在任意兩個(gè)測(cè)試函數(shù)的標(biāo)識(shí)符相同,則判斷測(cè)試函數(shù)標(biāo)識(shí)符不唯一,輸出提示信息,并終止整個(gè)軟件測(cè)試過(guò)程。
[0052]優(yōu)選地,為了方便快速的實(shí)現(xiàn)數(shù)據(jù)庫(kù)的創(chuàng)建,根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建測(cè)試函數(shù)的數(shù)據(jù)庫(kù)包括:獲取模板數(shù)據(jù)庫(kù);創(chuàng)建模板數(shù)據(jù)庫(kù)的備份數(shù)據(jù)庫(kù);以及根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符對(duì)備份數(shù)據(jù)庫(kù)進(jìn)行編號(hào),得到測(cè)試函數(shù)的數(shù)據(jù)庫(kù)。
[0053]通過(guò)預(yù)先在整個(gè)軟件測(cè)試集中建立模板數(shù)據(jù)庫(kù),該模板數(shù)據(jù)庫(kù)包含第一數(shù)據(jù)庫(kù)和第二數(shù)據(jù)庫(kù),其中,第一數(shù)據(jù)庫(kù)存儲(chǔ)著用于測(cè)試對(duì)象運(yùn)行時(shí)調(diào)用的數(shù)據(jù),第二數(shù)據(jù)庫(kù)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行結(jié)果。測(cè)試函數(shù)可以通過(guò)運(yùn)行SQL腳本語(yǔ)言備份模板數(shù)據(jù)庫(kù),得到備份數(shù)據(jù)庫(kù),或是直接通過(guò)軟件接口備份模板數(shù)據(jù)庫(kù),例如,通過(guò)C#接口實(shí)現(xiàn)模板數(shù)據(jù)庫(kù)的備份。得到備份數(shù)據(jù)庫(kù)后,再根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符對(duì)備份數(shù)據(jù)庫(kù)進(jìn)行編號(hào),得到與測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)。通過(guò)對(duì)模板數(shù)據(jù)庫(kù)進(jìn)行備份得到測(cè)試函數(shù)的數(shù)據(jù)庫(kù),實(shí)現(xiàn)過(guò)程方便快捷。
[0054]優(yōu)選地,為了減少大量測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)對(duì)內(nèi)存的占用,在測(cè)試函數(shù)判斷運(yùn)行結(jié)果是否與預(yù)設(shè)結(jié)果一致之后,軟件測(cè)試方法還包括:當(dāng)確定測(cè)試函數(shù)測(cè)試成功時(shí),則刪除測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù);以及當(dāng)確定測(cè)試用例測(cè)試失敗時(shí),則存儲(chǔ)測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)。
[0055]當(dāng)測(cè)試函數(shù)較多時(shí),創(chuàng)建的數(shù)據(jù)庫(kù)就越多,因此對(duì)內(nèi)存的占用較大。為了保證軟件測(cè)試效果的同時(shí),減少數(shù)據(jù)庫(kù)對(duì)內(nèi)存的占用量,當(dāng)判斷測(cè)試函數(shù)測(cè)試成功時(shí),通過(guò)測(cè)試清理函數(shù)清理該測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),當(dāng)判斷測(cè)試函數(shù)測(cè)試失敗時(shí),則存儲(chǔ)該測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),這樣利于從數(shù)據(jù)庫(kù)中追溯該測(cè)試函數(shù)失敗的原因。由于只刪除測(cè)試成功的測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),而在實(shí)際測(cè)試過(guò)程中,失敗的測(cè)試函數(shù)的比例占少數(shù),這樣一方面能夠減少內(nèi)存的占用,另一方面也可以從數(shù)據(jù)庫(kù)中追溯失敗測(cè)試函數(shù)失敗的原因。
[0056]從以上的描述中,可以看出,本發(fā)明實(shí)現(xiàn)了如下技術(shù)效果:
[0057]根據(jù)本發(fā)明的實(shí)施例,提供了一種軟件測(cè)試方法,通過(guò)為每個(gè)測(cè)試函數(shù)指定一個(gè)唯一的標(biāo)識(shí)符,并根據(jù)測(cè)試函數(shù)的標(biāo)識(shí)符創(chuàng)建對(duì)應(yīng)的數(shù)據(jù)庫(kù),使得每個(gè)測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)都不相同,測(cè)試函數(shù)驅(qū)動(dòng)測(cè)試對(duì)象運(yùn)行,測(cè)試對(duì)象運(yùn)行時(shí)調(diào)用數(shù)據(jù)庫(kù)中的數(shù)據(jù)并將運(yùn)行結(jié)果存儲(chǔ)在數(shù)據(jù)庫(kù)中,測(cè)試函數(shù)獲取測(cè)試對(duì)象運(yùn)行結(jié)果并與預(yù)設(shè)結(jié)果分析比較,如果運(yùn)行結(jié)果與預(yù)設(shè)結(jié)果一致則判斷測(cè)試函數(shù)成功,如果運(yùn)行結(jié)果與預(yù)設(shè)結(jié)果不一致則判斷測(cè)試函數(shù)失敗,并將測(cè)試失敗的測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)存儲(chǔ)在內(nèi)存中。由于測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)不同,通過(guò)本發(fā)明實(shí)施例提供的軟件測(cè)試方法能夠從數(shù)據(jù)庫(kù)中追溯測(cè)試失敗的測(cè)試函數(shù)的失敗原因,并且多個(gè)測(cè)試函數(shù)可以并行運(yùn)行,提高軟件測(cè)試的效率。
[0058]需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0059]根據(jù)本發(fā)明實(shí)施例的另一方面,提供了一種軟件測(cè)試裝置。圖5是根據(jù)本發(fā)明實(shí)施例的軟件測(cè)試裝置示意圖。
[0060]如圖5所示,該裝置包括:第一獲取模塊10,創(chuàng)建模塊20,驅(qū)動(dòng)模塊30,調(diào)用模塊40,第二獲取模塊50,判斷模塊60和確定模塊70。
[0061]第一獲取模塊10,用于獲取測(cè)試函數(shù)的標(biāo)識(shí)符。
[0062]創(chuàng)建模塊20,用于根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),其中,數(shù)據(jù)庫(kù)包括第一數(shù)據(jù)庫(kù)和第二數(shù)據(jù)庫(kù),第一數(shù)據(jù)庫(kù)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行需要調(diào)用的數(shù)據(jù),第二數(shù)據(jù)庫(kù)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行結(jié)果。
[0063]根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)時(shí),創(chuàng)建的數(shù)據(jù)庫(kù)可以是一個(gè)第一數(shù)據(jù)庫(kù)和一個(gè)第二數(shù)據(jù)庫(kù),也可以是多個(gè)第一數(shù)據(jù)庫(kù)和多個(gè)第二數(shù)據(jù)庫(kù),多個(gè)第一數(shù)據(jù)庫(kù)都是用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行需要調(diào)用的數(shù)據(jù),例如,4個(gè)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行需要調(diào)用的數(shù)據(jù)的第一數(shù)據(jù)庫(kù),多個(gè)第二數(shù)據(jù)庫(kù)也都是用來(lái)存儲(chǔ)測(cè)試對(duì)象運(yùn)行結(jié)果,例如,3個(gè)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行結(jié)果的第二數(shù)據(jù)庫(kù)。
[0064]驅(qū)動(dòng)模塊30,用于測(cè)試函數(shù)驅(qū)動(dòng)測(cè)試對(duì)象運(yùn)行。
[0065]調(diào)用模塊40,用于測(cè)試對(duì)象調(diào)用第一數(shù)據(jù)庫(kù),并將運(yùn)行結(jié)果存儲(chǔ)在第二數(shù)據(jù)庫(kù);
[0066]第二獲取模塊50,用于測(cè)試函數(shù)從第二數(shù)據(jù)庫(kù)獲取運(yùn)行結(jié)果;
[0067]判斷模塊60,用于測(cè)試函數(shù)判斷運(yùn)行結(jié)果是否與預(yù)設(shè)結(jié)果一致;以及
[0068]確定模塊70,用于當(dāng)運(yùn)行結(jié)果與預(yù)設(shè)結(jié)果一致時(shí),則確定測(cè)試函數(shù)測(cè)試成功,當(dāng)運(yùn)行結(jié)果與預(yù)設(shè)結(jié)果不一致時(shí),則確定測(cè)試函數(shù)測(cè)試失敗。
[0069]本發(fā)明實(shí)施例的測(cè)試對(duì)象的運(yùn)行需要依賴一套特定的數(shù)據(jù)庫(kù),在測(cè)試函數(shù)初始化時(shí),需要?jiǎng)?chuàng)建一套數(shù)據(jù)庫(kù)用于測(cè)試對(duì)象調(diào)用。如果存在多個(gè)測(cè)試函數(shù)時(shí),需要為每一個(gè)測(cè)試函數(shù)都創(chuàng)建對(duì)應(yīng)的數(shù)據(jù)庫(kù)。
[0070]為了避免多個(gè)測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)的不同,保證每個(gè)數(shù)據(jù)庫(kù)的唯一性,本發(fā)明實(shí)施例通過(guò)為每個(gè)測(cè)試函數(shù)指定一個(gè)標(biāo)識(shí)符,例如,在測(cè)試函數(shù)名之前以Attribute標(biāo)識(shí)該測(cè)試函數(shù),如在測(cè)試函數(shù)[TestMethod]前置[TestProfileId (5005)],即構(gòu)成[TestProfileId (5005) ] [TestMethod]形式。通過(guò)創(chuàng)建模塊20根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),每個(gè)測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)根據(jù)測(cè)試函數(shù)的標(biāo)識(shí)符進(jìn)行編號(hào),保證每個(gè)測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)不相同。
[0071]現(xiàn)有技術(shù)中每個(gè)測(cè)試函數(shù)使用的數(shù)據(jù)庫(kù)都是同名數(shù)據(jù)庫(kù),當(dāng)多個(gè)測(cè)試函數(shù)串行運(yùn)行后,后面的測(cè)試函數(shù)的數(shù)據(jù)庫(kù)覆蓋了前面運(yùn)行的測(cè)試函數(shù)的數(shù)據(jù)庫(kù),使得一旦中間某個(gè)測(cè)試函數(shù)測(cè)試失敗,無(wú)法從數(shù)據(jù)庫(kù)中追溯失敗原因。
[0072]本發(fā)明實(shí)施例提供的軟件測(cè)試裝置,通過(guò)獲取模塊10獲取測(cè)試函數(shù)的標(biāo)識(shí)符,通過(guò)創(chuàng)建模塊20根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),得到的每個(gè)測(cè)試函數(shù)數(shù)據(jù)庫(kù)都不同名。因此在運(yùn)行多個(gè)測(cè)試函數(shù)后,不會(huì)造成不同測(cè)試函數(shù)的數(shù)據(jù)庫(kù)之間數(shù)據(jù)的相互覆蓋,因此,測(cè)試函數(shù)測(cè)試失敗后,都可以從該測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)中追溯失敗原因,解決了現(xiàn)有技術(shù)中無(wú)法從數(shù)據(jù)庫(kù)中追溯測(cè)試函數(shù)失敗原因的問題。此外,由于每個(gè)測(cè)試函數(shù)使用的數(shù)據(jù)庫(kù)都不同名,不同測(cè)試函數(shù)使用的數(shù)據(jù)都是相互獨(dú)立的,因此,可以實(shí)現(xiàn)多個(gè)測(cè)試函數(shù)的并行運(yùn)行進(jìn)行軟件測(cè)試,提高了軟件測(cè)試的效率。
[0073]優(yōu)選地,為了保證測(cè)試函數(shù)標(biāo)識(shí)符的唯一性,第一獲取模塊10包括:第一獲取單元,用于獲取預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符;第一判斷單元,用于判斷預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符是否唯一;以及第一確定單元,用于當(dāng)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符唯一時(shí),確定預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符作為測(cè)試函數(shù)的標(biāo)識(shí)符。
[0074]在為所有的測(cè)試函數(shù)指定標(biāo)識(shí)符之后,需要驗(yàn)證測(cè)試函數(shù)標(biāo)識(shí)符的唯一性,當(dāng)判斷預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符唯一時(shí),則獲取預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符作為測(cè)試函數(shù)的標(biāo)識(shí)符,當(dāng)判斷預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符不唯一時(shí),則輸出相應(yīng)的提示信息告訴用戶測(cè)試函數(shù)的標(biāo)識(shí)符不唯一,并且終止軟件測(cè)試進(jìn)程。這樣可以避免由于測(cè)試函數(shù)標(biāo)識(shí)符的不唯一造成測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)的不唯一,最終使得測(cè)試函數(shù)并行運(yùn)行造成數(shù)據(jù)庫(kù)之間數(shù)據(jù)沖突,另一方面,由于相同數(shù)據(jù)庫(kù)的數(shù)據(jù)覆蓋,造成測(cè)試函數(shù)失敗后無(wú)法從數(shù)據(jù)庫(kù)追溯原因。
[0075]可選地,第一判斷單元包括:第二獲取單元,用于獲取多個(gè)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符;第二判斷單元,用于判斷多個(gè)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符中是否存在相同的標(biāo)識(shí)符;以及第二確定單元,用于當(dāng)不存在相同的標(biāo)識(shí)符時(shí),確定測(cè)試函數(shù)標(biāo)識(shí)符唯一,當(dāng)存在相同的標(biāo)識(shí)符時(shí),確定測(cè)試函數(shù)標(biāo)識(shí)符不唯一。
[0076]在獲取到所有的預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符后,可以有多種方式判斷預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符是否唯一,例如,依次比較兩個(gè)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符是否相同。只要存在任意兩個(gè)測(cè)試函數(shù)的標(biāo)識(shí)符相同,則判斷測(cè)試函數(shù)標(biāo)識(shí)符不唯一,輸出提示信息,并終止整個(gè)軟件測(cè)試過(guò)程。
[0077]優(yōu)選地,為了方便快速的實(shí)現(xiàn)數(shù)據(jù)庫(kù)的創(chuàng)建,創(chuàng)建模塊20包括:第三獲取單元,用于獲取模板數(shù)據(jù)庫(kù);創(chuàng)建單元,用于創(chuàng)建模板數(shù)據(jù)庫(kù)的備份數(shù)據(jù)庫(kù);以及編號(hào)單元,用于根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符對(duì)備份數(shù)據(jù)庫(kù)進(jìn)行編號(hào),得到測(cè)試函數(shù)的數(shù)據(jù)庫(kù)。
[0078]通過(guò)預(yù)先在整個(gè)軟件測(cè)試集中建立模板數(shù)據(jù)庫(kù),該模板數(shù)據(jù)庫(kù)包含第一數(shù)據(jù)庫(kù)和第二數(shù)據(jù)庫(kù),其中,第一數(shù)據(jù)庫(kù)存儲(chǔ)著用于測(cè)試對(duì)象運(yùn)行時(shí)調(diào)用的數(shù)據(jù),第二數(shù)據(jù)庫(kù)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行結(jié)果。測(cè)試函數(shù)可以通過(guò)運(yùn)行SQL腳本語(yǔ)言備份模板數(shù)據(jù)庫(kù),得到備份數(shù)據(jù)庫(kù),或是直接通過(guò)軟件接口備份模板數(shù)據(jù)庫(kù),例如,通過(guò)C#接口實(shí)現(xiàn)模板數(shù)據(jù)庫(kù)的備份。得到備份數(shù)據(jù)庫(kù)后,再根據(jù)測(cè)試函數(shù)標(biāo)識(shí)符對(duì)備份數(shù)據(jù)庫(kù)進(jìn)行編號(hào),得到與測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)。通過(guò)對(duì)模板數(shù)據(jù)庫(kù)進(jìn)行備份得到測(cè)試函數(shù)的數(shù)據(jù)庫(kù),實(shí)現(xiàn)過(guò)程方便快捷。
[0079]優(yōu)選地,為了減少大量測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)對(duì)內(nèi)存的占用,在測(cè)試函數(shù)判斷運(yùn)行結(jié)果是否與預(yù)設(shè)結(jié)果一致之后,軟件測(cè)試裝置還包括:刪除模塊,用于當(dāng)確定測(cè)試函數(shù)測(cè)試成功時(shí),刪除測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù);以及存儲(chǔ)模塊,用于當(dāng)確定測(cè)試用例測(cè)試失敗時(shí),存儲(chǔ)測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)。
[0080]當(dāng)測(cè)試函數(shù)較多時(shí),創(chuàng)建的數(shù)據(jù)庫(kù)就越多,因此對(duì)內(nèi)存的占用較大。為了保證軟件測(cè)試效果的同時(shí),減少數(shù)據(jù)庫(kù)對(duì)內(nèi)存的占用量,當(dāng)判斷測(cè)試函數(shù)測(cè)試成功時(shí),通過(guò)測(cè)試清理函數(shù)清理該測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),當(dāng)判斷測(cè)試函數(shù)測(cè)試失敗時(shí),則存儲(chǔ)該測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),這樣利于從數(shù)據(jù)庫(kù)中追溯該測(cè)試函數(shù)失敗的原因。由于只刪除測(cè)試成功的測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),而在實(shí)際測(cè)試過(guò)程中,失敗的測(cè)試函數(shù)的比例占少數(shù),這樣一方面能夠減少內(nèi)存的占用,另一方面也可以從數(shù)據(jù)庫(kù)中追溯失敗測(cè)試函數(shù)失敗的原因。
[0081]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0082]以上僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種軟件測(cè)試方法,其特征在于,包括: 獲取測(cè)試函數(shù)的標(biāo)識(shí)符; 根據(jù)所述測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建所述測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),其中,所述數(shù)據(jù)庫(kù)包括第一數(shù)據(jù)庫(kù)和第二數(shù)據(jù)庫(kù),所述第一數(shù)據(jù)庫(kù)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行需要調(diào)用的數(shù)據(jù),所述第二數(shù)據(jù)庫(kù)用于存儲(chǔ)所述測(cè)試對(duì)象運(yùn)行結(jié)果; 所述測(cè)試函數(shù)驅(qū)動(dòng)所述測(cè)試對(duì)象運(yùn)行; 所述測(cè)試對(duì)象調(diào)用所述第一數(shù)據(jù)庫(kù),并將運(yùn)行結(jié)果存儲(chǔ)在所述第二數(shù)據(jù)庫(kù); 所述測(cè)試函數(shù)從所述第二數(shù)據(jù)庫(kù)獲取所述運(yùn)行結(jié)果; 所述測(cè)試函數(shù)判斷所述運(yùn)行結(jié)果是否與預(yù)設(shè)結(jié)果一致;以及 如果所述運(yùn)行結(jié)果與所述預(yù)設(shè)結(jié)果一致,則確定所述測(cè)試函數(shù)測(cè)試成功,如果所述運(yùn)行結(jié)果與所述預(yù)設(shè)結(jié)果不一致,則確定所述測(cè)試函數(shù)測(cè)試失敗。
2.根據(jù)權(quán)利要求1所述的軟件測(cè)試方法,其特征在于,獲取測(cè)試函數(shù)的標(biāo)識(shí)符包括: 獲取預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符; 判斷所述預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符是否唯一;以及 當(dāng)所述預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符唯一時(shí),將所述預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符作為所述測(cè)試函數(shù)的標(biāo)識(shí)符。
3.根據(jù)權(quán)利要求2所述的軟件測(cè)試方法,其特征在于,判斷所述預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符是否唯一包括: 獲取多個(gè)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符; 判斷所述多個(gè)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符中是否存在相同的標(biāo)識(shí)符; 如果不存在相同的標(biāo)識(shí)符,則確定所述測(cè)試函數(shù)標(biāo)識(shí)符唯一;以及 如果存在相同的標(biāo)識(shí)符,則確定所述測(cè)試函數(shù)標(biāo)識(shí)符不唯一。
4.根據(jù)權(quán)利要求1所述的軟件測(cè)試方法,其特征在于,根據(jù)所述測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建所述測(cè)試函數(shù)的數(shù)據(jù)庫(kù)包括: 獲取模板數(shù)據(jù)庫(kù); 創(chuàng)建所述模板數(shù)據(jù)庫(kù)的備份數(shù)據(jù)庫(kù);以及 根據(jù)所述測(cè)試函數(shù)標(biāo)識(shí)符對(duì)所述備份數(shù)據(jù)庫(kù)進(jìn)行編號(hào),得到所述測(cè)試函數(shù)的數(shù)據(jù)庫(kù)。
5.根據(jù)權(quán)利要求1所述的軟件測(cè)試方法,其特征在于,在所述測(cè)試函數(shù)判斷所述運(yùn)行結(jié)果是否與預(yù)設(shè)結(jié)果一致之后,所述軟件測(cè)試方法還包括: 當(dāng)確定所述測(cè)試函數(shù)測(cè)試成功時(shí),則刪除所述測(cè)試函數(shù)對(duì)應(yīng)的所述數(shù)據(jù)庫(kù);以及 當(dāng)確定所述測(cè)試用例測(cè)試失敗時(shí),則存儲(chǔ)所述測(cè)試函數(shù)對(duì)應(yīng)的所述數(shù)據(jù)庫(kù)。
6.一種軟件測(cè)試裝置,其特征在于,包括: 第一獲取模塊,用于獲取測(cè)試函數(shù)的標(biāo)識(shí)符; 創(chuàng)建模塊,用于根據(jù)所述測(cè)試函數(shù)標(biāo)識(shí)符創(chuàng)建所述測(cè)試函數(shù)對(duì)應(yīng)的數(shù)據(jù)庫(kù),其中,所述數(shù)據(jù)庫(kù)包括第一數(shù)據(jù)庫(kù)和第二數(shù)據(jù)庫(kù),所述第一數(shù)據(jù)庫(kù)用于存儲(chǔ)測(cè)試對(duì)象運(yùn)行需要調(diào)用的數(shù)據(jù),所述第二數(shù)據(jù)庫(kù)用于存儲(chǔ)所述測(cè)試對(duì)象運(yùn)行結(jié)果; 驅(qū)動(dòng)模塊,用于使所述測(cè)試函數(shù)驅(qū)動(dòng)所述測(cè)試對(duì)象運(yùn)行; 調(diào)用模塊,用于使所述測(cè)試對(duì)象調(diào)用所述第一數(shù)據(jù)庫(kù),并將運(yùn)行結(jié)果存儲(chǔ)在所述第二數(shù)據(jù)庫(kù); 第二獲取模塊,用于使所述測(cè)試函數(shù)從所述第二數(shù)據(jù)庫(kù)獲取所述運(yùn)行結(jié)果; 判斷模塊,用于使所述測(cè)試函數(shù)判斷所述運(yùn)行結(jié)果是否與預(yù)設(shè)結(jié)果一致;以及確定模塊,用于當(dāng)所述運(yùn)行結(jié)果與所述預(yù)設(shè)結(jié)果一致時(shí),則確定所述測(cè)試函數(shù)測(cè)試成功,當(dāng)所述運(yùn)行結(jié)果與所述預(yù)設(shè)結(jié)果不一致時(shí),則確定所述測(cè)試函數(shù)測(cè)試失敗。
7.根據(jù)權(quán)利要求6所述的軟件測(cè)試裝置,其特征在于,所述第一獲取模塊包括: 第一獲取單元,用于獲取預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符; 第一判斷單元,用于判斷所述預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符是否唯一;以及第一確定單元,用于當(dāng)所述預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符唯一時(shí),確定所述預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符作為所述測(cè)試函數(shù)的標(biāo)識(shí)符。
8.根據(jù)權(quán)利要求7所述的軟件測(cè)試裝置,其特征在于,所述第一判斷單元包括: 第二獲取單元,用于獲取多個(gè)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符; 第二判斷單元,用于判斷所述多個(gè)預(yù)設(shè)測(cè)試函數(shù)標(biāo)識(shí)符中是否存在相同的標(biāo)識(shí)符;以及 第二確定單元,用于當(dāng)不存在相同的標(biāo)識(shí)符時(shí),確定所述測(cè)試函數(shù)標(biāo)識(shí)符唯一,當(dāng)存在相同的標(biāo)識(shí)符時(shí),確定所述測(cè)試函數(shù)標(biāo)識(shí)符不唯一。
9.根據(jù)權(quán)利要求6所述的軟件測(cè)試裝置,其特征在于,所述創(chuàng)建模塊包括: 第三獲取單元,用于獲取模板數(shù)據(jù)庫(kù); 創(chuàng)建單元,用于創(chuàng)建所述模板數(shù)據(jù)庫(kù)的備份數(shù)據(jù)庫(kù);以及 編號(hào)單元,用于根據(jù)所述測(cè)試函數(shù)標(biāo)識(shí)符對(duì)所述備份數(shù)據(jù)庫(kù)進(jìn)行編號(hào),得到所述測(cè)試函數(shù)的數(shù)據(jù)庫(kù)。
10.根據(jù)權(quán)利要求6所述的軟件測(cè)試裝置,其特征在于,在所述測(cè)試函數(shù)判斷所述運(yùn)行結(jié)果是否與預(yù)設(shè)結(jié)果一致之后,所述軟件測(cè)試裝置還包括: 刪除模塊,用于當(dāng)確定所述測(cè)試函數(shù)測(cè)試成功時(shí),刪除所述測(cè)試函數(shù)對(duì)應(yīng)的所述數(shù)據(jù)庫(kù);以及 存儲(chǔ)模塊,用于當(dāng)確定所述測(cè)試用例測(cè)試失敗時(shí),存儲(chǔ)所述測(cè)試函數(shù)對(duì)應(yīng)的所述數(shù)據(jù)庫(kù)。
【文檔編號(hào)】G06F11/36GK104182348SQ201410469661
【公開日】2014年12月3日 申請(qǐng)日期:2014年9月15日 優(yōu)先權(quán)日:2014年9月15日
【發(fā)明者】宋蘭 申請(qǐng)人:北京國(guó)雙科技有限公司