一種交叉事件自動(dòng)化測試方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及測試技術(shù)領(lǐng)域,尤指一種交叉事件自動(dòng)化測試方法和裝置。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)融合趨勢日益明顯,電信設(shè)備支持的功能越來越多、性能越來越強(qiáng),僅僅進(jìn)行單個(gè)模塊的測試已經(jīng)遠(yuǎn)遠(yuǎn)不夠,模塊交叉的需求越來越大,這給測試人員增加了大量工作量,同時(shí)對各個(gè)模塊的熟練程度也提出了更高的要求。
[0003]模塊交叉事件測試,包含模塊內(nèi)部各要點(diǎn)間和模塊與模塊之間的交叉測試,也可以包含通過組合的方法實(shí)現(xiàn),比如:邊界值和等價(jià)類結(jié)合都是一種組合測試的方法實(shí)現(xiàn)。模塊交叉事件測試又叫事件沖突測試,是指一個(gè)功能正在運(yùn)行過程中,同時(shí)另外一個(gè)事件或者操作對該過程進(jìn)程進(jìn)行干擾的測試,判斷執(zhí)行干擾的沖突事件不會(huì)導(dǎo)致應(yīng)用軟件異常。
[0004]模塊交叉測試多在單個(gè)模塊相對成熟的情況下,采用人工測試,由于項(xiàng)目周期和人力資源等的限制,有引入自動(dòng)化測試。傳統(tǒng)的自動(dòng)化測試,多是針對相對變動(dòng)少的單個(gè)功能模塊、或單個(gè)功能模塊的疊加,形成自動(dòng)化用例,然后依據(jù)用例開發(fā)成腳本,經(jīng)過腳本調(diào)測后用于自動(dòng)化測試。但是,現(xiàn)有的自動(dòng)化測試中腳本邏輯相對簡單,多用于回歸測試,且測試周期長,不適用于進(jìn)行批量的測試。
【發(fā)明內(nèi)容】
[0005]為了解決上述技術(shù)問題,本發(fā)明提供了一種交叉事件自動(dòng)化測試方法和裝置,能夠?qū)崿F(xiàn)交叉事件的批量自動(dòng)化測試。
[0006]為了達(dá)到本發(fā)明目的,在第一方面,本發(fā)明提供了一種交叉事件自動(dòng)化測試方法,所述方法包括:
[0007]確定正常事件交叉關(guān)系庫和異常操作事件庫,所述正常事件交叉關(guān)系庫用于存儲(chǔ)交叉模塊在時(shí)間、空間和功能上的相互關(guān)系,所述異常操作事件庫用于存儲(chǔ)影響所述交叉模塊正常運(yùn)行的異常操作事件;
[0008]根據(jù)所述正常事件交叉關(guān)系庫和所述異常操作事件庫,生成自動(dòng)化測試用例集;
[0009]獲取測試項(xiàng)目需要測試的待測試項(xiàng),根據(jù)所述待測試項(xiàng)的組合關(guān)系查找所述自動(dòng)化測試用例集,獲取與每個(gè)所述待測試項(xiàng)匹配的自動(dòng)化測試用例;
[0010]根據(jù)與每個(gè)所述待測試項(xiàng)匹配的自動(dòng)化測試用例,確定與所述測試項(xiàng)目對應(yīng)的自動(dòng)化測試用例,執(zhí)行與所述測試項(xiàng)目對應(yīng)的自動(dòng)化測試用例以實(shí)現(xiàn)對所述測試項(xiàng)目進(jìn)行測試。
[0011]可選地,所述正常事件交叉關(guān)系庫包括必選項(xiàng)事件和可選項(xiàng)事件,所述異常操作事件庫包括必選項(xiàng)事件和可選項(xiàng)事件;
[0012]所述根據(jù)所述正常事件交叉關(guān)系庫和所述異常操作事件庫,生成自動(dòng)化測試用例集,具體包括:
[0013]根據(jù)所述正常事件交叉關(guān)系庫包括的必選項(xiàng)事件和所述異常操作事件庫包括的必選項(xiàng)事件,生成指定交叉事件的自動(dòng)化測試用例;
[0014]根據(jù)所述正常事件交叉關(guān)系庫包括的可選項(xiàng)事件和所述異常操作事件庫包括的可選項(xiàng)事件,采用拓?fù)渑判蛩惴?,生成隨機(jī)交叉事件的自動(dòng)化測試用例;
[0015]所述指定交叉事件的自動(dòng)化測試用例和所述隨機(jī)交叉事件的自動(dòng)化測試用例構(gòu)成所述自動(dòng)化測試用例集。
[0016]可選地,所述獲取測試項(xiàng)目需要測試的待測試項(xiàng),根據(jù)所述待測試項(xiàng)的組合關(guān)系查找所述自動(dòng)化測試用例集,獲取與每個(gè)所述待測試項(xiàng)匹配的自動(dòng)化測試用例,具體包括:
[0017]建立測試項(xiàng)目,所述測試項(xiàng)目包括至少一個(gè)交叉模塊;
[0018]確定所述測試項(xiàng)目需要測試的待測試項(xiàng);
[0019]判斷所述待測試項(xiàng)的組合關(guān)系屬于指定交叉事件關(guān)系或是隨機(jī)交叉事件關(guān)系;
[0020]如果所述待測試項(xiàng)的組合關(guān)系屬于所述指定交叉事件關(guān)系,則查找所述指定交叉事件的自動(dòng)化測試用例集,獲取與每個(gè)所述待測試項(xiàng)匹配的所述指定交叉事件的自動(dòng)化測試用例;
[0021]如果所述待測試項(xiàng)的組合關(guān)系屬于所述隨機(jī)交叉事件關(guān)系,則查找所述隨機(jī)交叉事件的自動(dòng)化測試用例集,如果查找到,則獲取與每個(gè)所述待測試項(xiàng)匹配的所述隨機(jī)交叉事件的自動(dòng)化測試用例,如果沒有查找到,則生成與每個(gè)所述待測試項(xiàng)匹配的自動(dòng)化測試用例。
[0022]可選地,所述根據(jù)與每個(gè)所述待測試項(xiàng)匹配的自動(dòng)化測試用例,確定與所述測試項(xiàng)目對應(yīng)的自動(dòng)化測試用例,具體包括:
[0023]如果多個(gè)與所述待測試項(xiàng)匹配的自動(dòng)化測試用例之間存在關(guān)聯(lián)順序,則根據(jù)所述關(guān)聯(lián)順序,確定與所述測試項(xiàng)目對應(yīng)的自動(dòng)化測試用例;
[0024]如果多個(gè)與所述待測試項(xiàng)匹配的自動(dòng)化測試用例之間未存在關(guān)聯(lián)順序,則對多個(gè)與所述待測試項(xiàng)匹配的自動(dòng)化測試用例的權(quán)重值進(jìn)行排列,根據(jù)所述排列順序,確定與所述測試項(xiàng)目對應(yīng)的自動(dòng)化測試用例。
[0025]可選地,所述執(zhí)行與所述測試項(xiàng)目對應(yīng)的自動(dòng)化測試用例以實(shí)現(xiàn)對所述測試項(xiàng)目進(jìn)行測試之后,還包括:
[0026]根據(jù)測試結(jié)果生成測試報(bào)告,并對所述測試報(bào)告進(jìn)行分析;
[0027]根據(jù)對所述測試報(bào)告的分析更新所述正常事件交叉關(guān)系庫和所述異常操作事件庫。
[0028]在第二方面,本發(fā)明提供了一種交叉事件自動(dòng)化測試系統(tǒng),包括:
[0029]總體控制模塊、正常事件交叉關(guān)系庫、異常操作事件庫和自動(dòng)化測試用例集;
[0030]所述總體控制模塊包括:正常事件交叉關(guān)系生成模塊、異常操作事件生成模塊、自動(dòng)化測試用例組合生成模塊和測試執(zhí)行模塊;
[0031]所述正常事件交叉關(guān)系生成模塊,用于確定所述正常事件交叉關(guān)系庫,所述正常事件交叉關(guān)系庫,用于存儲(chǔ)交叉模塊在時(shí)間、空間和功能上的相互關(guān)系;
[0032]所述異常操作事件生成模塊,用于確定所述異常操作事件庫,所述異常操作事件庫用于存儲(chǔ)影響所述交叉模塊正常運(yùn)行的異常操作事件;
[0033]所述自動(dòng)化測試用例組合生成模塊,用于根據(jù)所述正常事件交叉關(guān)系庫和異常操作事件庫生成所述自動(dòng)化測試用例集,所述自動(dòng)化測試用例集用于存儲(chǔ)自動(dòng)化測試用例;
[0034]所述測試執(zhí)行模塊,用于獲取測試項(xiàng)目需要測試的待測試項(xiàng),根據(jù)所述待測試項(xiàng)的組合關(guān)系查找所述自動(dòng)化測試用例集,獲取與每個(gè)所述待測試項(xiàng)匹配的自動(dòng)化測試用例;根據(jù)與每個(gè)所述待測試項(xiàng)匹配的自動(dòng)化測試用例,確定與所述測試項(xiàng)目對應(yīng)的自動(dòng)化測試用例,執(zhí)行與所述測試項(xiàng)目對應(yīng)的自動(dòng)化測試用例以實(shí)現(xiàn)對所述測試項(xiàng)目進(jìn)行測試。可選地,所述正常事件交叉關(guān)系庫包括必選項(xiàng)事件和可選項(xiàng)事件,所述異常操作事件庫包括必選項(xiàng)事件和可選項(xiàng)事件;
[0035]所述自動(dòng)化測試用例組合生成模塊,用于根據(jù)所述正常事件交叉關(guān)系庫和異常操作事件庫生成所述自動(dòng)化測試用例集,具體為:
[0036]根據(jù)所述正常事件交叉關(guān)系庫包括的必選項(xiàng)事件和所述異常操作事件庫包括的必選項(xiàng)事件,生成指定交叉事件的自動(dòng)化測試用例;
[0037]根據(jù)所述正常事件交叉關(guān)系庫包括的可選項(xiàng)事件和所述異常操作事件庫包括的可選項(xiàng)事件,采用拓?fù)渑判蛩惴?,生成隨機(jī)交叉事件的自動(dòng)化測試用例;
[0038]所述指定交叉事件的自動(dòng)化測試用例和所述隨機(jī)交叉事件的自動(dòng)化測試用例構(gòu)成所述自動(dòng)化測試用例集。
[0039]可選地,所述測試執(zhí)行模塊用于獲取測試項(xiàng)目需要測試的待測試項(xiàng),根據(jù)所述待測試項(xiàng)的組合關(guān)系查找所述自動(dòng)化測試用例集,獲取與每個(gè)所述待測試項(xiàng)匹配的自動(dòng)化測試用例,具體為:
[0040]建立測試項(xiàng)目,所述測試項(xiàng)目包括至少一個(gè)交叉模塊;
[0041]確定所述測試項(xiàng)目需要測試的待測試項(xiàng);
[0042]判斷所述待測試項(xiàng)的組合關(guān)系屬于指定交叉事件關(guān)系或是隨機(jī)交叉事件關(guān)系;
[0043]如果所述待測試項(xiàng)的組合關(guān)系屬于所述指定交叉事件關(guān)系,則查找所述指定交叉事件的自動(dòng)化測試用例集,獲取與每個(gè)所述待測試項(xiàng)匹配的所述指定交叉事件的自動(dòng)化測試用例;
[0044]如果所述待測試項(xiàng)的組合關(guān)系屬于所述隨機(jī)交叉事件關(guān)系,則查找所述隨機(jī)交叉事件的自動(dòng)化測試用例集,如果查找到,則獲取與每個(gè)所述待測試項(xiàng)匹配的所述隨機(jī)交叉事件的自動(dòng)化測試用例,如果沒有查找到,則生成與每個(gè)所述待測試項(xiàng)匹配的自動(dòng)化測試用例。
[0045]可選地,所述測試執(zhí)行模塊用于根據(jù)與每個(gè)所述待測試項(xiàng)匹配的自動(dòng)化測試用例,確定與所述測試項(xiàng)目對應(yīng)的自動(dòng)化測試用例,具體為:
[0046]如果多個(gè)與所述待測試項(xiàng)匹配的自動(dòng)化測試用例之間存在關(guān)聯(lián)順序,則根據(jù)所述關(guān)聯(lián)順序,確定與所述測試項(xiàng)目對應(yīng)的自動(dòng)化測試用例;
[0047]如果多個(gè)與所述待測試項(xiàng)匹配的自動(dòng)化測試用例之間未存在關(guān)聯(lián)順序,則對多個(gè)與所述待測試項(xiàng)匹配的自動(dòng)化測試用例的權(quán)重值進(jìn)行排列,根據(jù)所述排列順序,確定與所述測試項(xiàng)目對應(yīng)的自動(dòng)化測試用例。
[0048]可選地,所述系統(tǒng)還包括:測試結(jié)果模塊、測試結(jié)果報(bào)告和分析模塊和知識(shí)庫完善模塊;
[0049]所述測試結(jié)果模塊,用于存儲(chǔ)測試結(jié)果;
[0050]所述測試結(jié)果報(bào)告和分析模塊,用于根據(jù)所述測試結(jié)果生成測試報(bào)告,并對所述測試報(bào)告進(jìn)行分析;
[0051]所述知識(shí)庫完善模塊,用于根據(jù)對所述測試報(bào)告的分析更新所述正常事件交叉關(guān)系庫和所述異常操作事件庫;
[0052