本發(fā)明涉及軟件測試領(lǐng)域,特別是涉及一種事件序列故障定位方法。
背景技術(shù):
在軟件測試中,當(dāng)事件序列測試用例引發(fā)軟件錯誤時,需要測試人員找出觸發(fā)系統(tǒng)故障的錯誤事件序列,現(xiàn)有技術(shù)中,軟件測試人員采用逐條測試的方法查找引起故障的錯誤事件序列,效率低,亟需一種快速準(zhǔn)確的定位測試激勵中的錯誤事件序列的方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種快速準(zhǔn)確的定位測試激勵中的錯誤事件序列的方法。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了如下方案:
一種事件序列故障定位方法,所述定位方法應(yīng)用于測試系統(tǒng)中,所述定位方法包括:
根據(jù)所述測試系統(tǒng)中的測試結(jié)果,獲得可能錯誤事件序列集;
根據(jù)所述可能錯誤事件序列集,獲得強(qiáng)度為t的錯誤事件序列;根據(jù)所述強(qiáng)度為t的錯誤事件序列,獲得多條測試激勵;
逐條對所述多條測試激勵觸發(fā),獲得觸發(fā)結(jié)果;
判斷所述觸發(fā)結(jié)果是否錯誤,如果是,將對應(yīng)觸發(fā)結(jié)果錯誤的測試激勵加入到錯誤激勵集合m中;否則,將對應(yīng)觸發(fā)結(jié)果正確的測試激勵加入到正確激勵集合n中;
根據(jù)所述正確激勵集合n計(jì)算,獲得所述測試系統(tǒng)的安全值集合;
根據(jù)所述安全值集合定位所述錯誤激勵集合m中的每條所述測試激勵中對應(yīng)的錯誤事件序列,將所述錯誤事件序列存儲在錯誤事件序列集h中,輸出所述錯誤事件序列集h。
可選的,所述根據(jù)所述正確激勵集合n計(jì)算,獲得所述測試系統(tǒng)的安全值集合具體包括:
設(shè)所述正確激勵具有k個事件;
從所述正確激勵集合n中篩選出k>t的正確激勵,獲得新的正確激勵集合n′;
將所述新的正確激勵集合n′中的每條所述正確激勵對應(yīng)的第i個事件至第i+t個事件的序列存儲到所述安全值集合中,獲得所述安全值集合,當(dāng)k>t時,i的取值為0,1,2,......,k-1。
可選的,根據(jù)所述安全值集合定位所述錯誤激勵集合m中的每條所述測試激勵中對應(yīng)的錯誤事件序列具體包括:
設(shè)所述錯誤激勵為t;
初始化所述錯誤激勵t,獲得集合a,所述集合a為1到k的整數(shù);
判斷所述集合a的強(qiáng)度是否大于t,如果是,繼續(xù)進(jìn)行;否則,采用所述安全值集合中的各元素逐一替換所述集合a中的各元素,定位所述集合a中的錯誤事件序列,獲得所述錯誤事件序列;
將所述集合a平均分成t+1個互不相交的集合a1,a2,...,at+1;
采用所述集合a1,a2,...,at+1中的集合aj將所述錯誤激勵對應(yīng)位置上的元素替換為所述安全值,獲得t+1條附加測試激勵;
當(dāng)測試過程中出現(xiàn)m條所述附加測試激勵觸發(fā)錯誤,獲取m條所述附加測試激勵的交集對應(yīng)的因素集a′;
根據(jù)所述因素集a′生成新的測試激勵t′;
執(zhí)行所述新的測試激勵t′,判斷觸發(fā)結(jié)果是否錯誤,如果是,將所述新的測試激勵t′進(jìn)行上述操作;否則,從m條所述附加測試激勵中任選一條所述附加測試激勵進(jìn)行上述操作。
根據(jù)本發(fā)明提供的具體實(shí)施例,本發(fā)明公開了以下技術(shù)效果:本發(fā)明公開了一種應(yīng)用于測試系統(tǒng)中的事件故障序列定位方法,根據(jù)測試激勵觸發(fā)的結(jié)果獲得正確測試激勵和錯誤測試激勵,根據(jù)正確測試激勵獲得安全值集合,根據(jù)錯誤測試激勵和安全值定位分析,快速準(zhǔn)確的獲得每條測試激勵中對應(yīng)的錯誤事件序列。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明一種事件序列故障定位方法的流程圖;
圖2為計(jì)算安全值集合的方法流程圖;
圖3為定位分析方法的流程圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明的目的是提供一種快速準(zhǔn)確的定位測試激勵中的錯誤事件序列的方法。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對本發(fā)明作進(jìn)一步詳細(xì)的說明。
如圖1所示,一種事件序列故障定位方法,所述定位方法應(yīng)用于測試系統(tǒng)中,所述定位方法包括:
步驟100:根據(jù)所述測試系統(tǒng)中的測試結(jié)果,獲得可能錯誤事件序列集;
步驟200:根據(jù)所述可能錯誤事件序列集,獲得強(qiáng)度為t的錯誤事件序列;根據(jù)所述強(qiáng)度為t的錯誤事件序列,獲得多條測試激勵;
步驟300:逐條對所述多條測試激勵觸發(fā),將所述測試激勵輸入到測試系統(tǒng)中,獲得觸發(fā)結(jié)果;
步驟400:判斷所述觸發(fā)結(jié)果是否錯誤,如果是,執(zhí)行步驟500;否則,執(zhí)行步驟600;
步驟500:將對應(yīng)觸發(fā)結(jié)果錯誤的測試激勵加入到錯誤激勵集合m中;
步驟600:將對應(yīng)觸發(fā)結(jié)果正確的測試激勵加入到正確激勵集合n中;
步驟700:根據(jù)所述正確激勵集合n計(jì)算,獲得所述測試系統(tǒng)的安全值集合;
步驟800:根據(jù)所述安全值集合定位所述錯誤激勵集合m中的每條所述測試激勵中對應(yīng)的錯誤事件序列,將所述錯誤事件序列存儲在錯誤事件序列集h中,輸出所述錯誤事件序列集h。
可選的,如圖2所示,所述根據(jù)所述正確激勵集合n計(jì)算,獲得所述測試系統(tǒng)的安全值集合具體包括:
步驟701:設(shè)所述正確激勵具有k個事件,由k個事件組成的測試激勵;
步驟702:從所述正確激勵集合n中篩選出k>t的正確激勵,獲得新的正確激勵集合n′;
步驟703:將所述新的正確激勵集合n′中的每條所述正確激勵對應(yīng)的第i個事件至第i+t個事件的序列存儲到所述安全值集合中,獲得所述安全值集合,當(dāng)k>t時,i的取值為0,1,2,......,k-1。
可選的,如圖3所示,根據(jù)所述安全值集合定位所述錯誤激勵集合m中的每條所述測試激勵中對應(yīng)的錯誤事件序列具體包括:
步驟801:設(shè)所述錯誤激勵為t;
步驟802:初始化所述錯誤激勵t,獲得集合a,所述集合a為1到k的整數(shù);
步驟803:判斷所述集合a的強(qiáng)度是否大于t,如果是,執(zhí)行步驟805;否則,執(zhí)行步驟804;
步驟804:采用所述安全值集合中的各元素逐一替換所述集合a中的各元素,定位所述集合a中的錯誤事件序列,獲得所述錯誤事件序列;
步驟805:將所述集合a平均分成t+1個互不相交的集合a1,a2,...,at+1;
步驟806:采用所述集合a1,a2,...,at+1中的集合aj將所述錯誤激勵對應(yīng)位置上的元素替換為所述安全值,獲得t+1條附加測試激勵;
步驟807:當(dāng)測試過程中出現(xiàn)m條所述附加測試激勵觸發(fā)錯誤,獲取m條所述附加測試激勵的交集對應(yīng)的因素集a′;
步驟808:根據(jù)所述因素集a′生成新的測試激勵t′;
步驟809:執(zhí)行所述新的測試激勵t′,判斷觸發(fā)結(jié)果是否錯誤,如果是,執(zhí)行步驟810;否則,執(zhí)行步驟811;
步驟810:將所述新的測試激勵t′重新執(zhí)行步驟801;
步驟811:從m條所述附加測試激勵中任選一條所述附加測試激勵重新執(zhí)行801。
本說明書中各個實(shí)施例采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似部分互相參見即可。對于實(shí)施例公開的系統(tǒng)而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
本文中應(yīng)用了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會有改變之處。綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。