一種程序漏洞的檢測(cè)方法及檢測(cè)系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于軟件測(cè)試技術(shù)領(lǐng)域,尤其涉及一種程序漏洞的檢測(cè)方法及檢測(cè)系統(tǒng)。
【背景技術(shù)】
[0002]在信息技術(shù)高速發(fā)展的今天,越來(lái)越多的手機(jī)廠商、運(yùn)營(yíng)商、和開發(fā)商加入手機(jī)平臺(tái)的陣營(yíng),帶來(lái)了各種美化和制度手機(jī)系統(tǒng),同時(shí)手機(jī)市場(chǎng)的應(yīng)用數(shù)量增長(zhǎng)迅速,這都離不開測(cè)試,測(cè)試的需求愈加迫切。
[0003]自動(dòng)化測(cè)試能捕捉到資源沖突、多線程、死鎖等手工測(cè)試難以發(fā)現(xiàn)的錯(cuò)誤,可以高效的完成大量的機(jī)械性、重復(fù)性測(cè)試、能模擬大量數(shù)據(jù)或大量并發(fā)用戶等應(yīng)用場(chǎng)景,從而有效的縮短軟件測(cè)試周期、提高測(cè)試的可靠性、及準(zhǔn)確度。
[0004]目前的自動(dòng)化測(cè)試技術(shù)錯(cuò)誤檢測(cè)機(jī)制,依然存在大量的缺點(diǎn),如:測(cè)試中BUG(漏洞)的來(lái)源單一、容易誤判、以及出現(xiàn)漏洞后需人為干預(yù)測(cè),進(jìn)而浪費(fèi)大量的人力和系統(tǒng)資源等。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明的目的在于提供一種程序漏洞的檢測(cè)方法及檢測(cè)系統(tǒng),可以解決現(xiàn)有技術(shù)中漏洞的來(lái)源單一、容易誤判,以及出現(xiàn)漏洞后需人為干預(yù)測(cè),進(jìn)而浪費(fèi)大量的人力和系統(tǒng)資源的技術(shù)問(wèn)題。
[0006]為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供一種程序漏洞的檢測(cè)方法,包括:
[0007]測(cè)試時(shí)開啟監(jiān)控線程,所述監(jiān)控線程用于監(jiān)控待測(cè)程序中的異常事件;
[0008]獲取所述異常事件,并分析異常事件的類型,其中所述異常事件的類型包括程序出錯(cuò)項(xiàng)、和程序有誤項(xiàng);
[0009]判斷所述異常事件是否導(dǎo)致測(cè)試中斷;以及
[0010]若測(cè)試中斷或測(cè)試完成,則根據(jù)所述異常事件的類型對(duì)所述異常事件進(jìn)行漏洞分析處理。
[0011]為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供一種程序漏洞的檢測(cè)系統(tǒng),包括:
[0012]監(jiān)控模塊,用于測(cè)試時(shí)開啟監(jiān)控線程,所述監(jiān)控線程用于監(jiān)控待測(cè)程序中的異常事件;
[0013]類型模塊,用于獲取所述異常事件,并分析異常事件的類型,其中所述異常事件的類型包括程序出錯(cuò)項(xiàng)、和程序有誤項(xiàng);
[0014]中斷模塊,用于判斷所述異常事件是否導(dǎo)致測(cè)試中斷;以及
[0015]漏洞分析模塊,用于當(dāng)測(cè)試中斷時(shí)或測(cè)試完成時(shí),根據(jù)所述異常事件的類型對(duì)所述異常事件進(jìn)行漏洞分析處理。
[0016]相對(duì)于現(xiàn)有技術(shù),本發(fā)明提供的程序漏洞的檢測(cè)方法及檢測(cè)系統(tǒng),通過(guò)將異常事件類型分為程序出錯(cuò)項(xiàng)和程序有誤項(xiàng),并對(duì)不同類型的異常事件進(jìn)行漏洞分析處理,不僅使對(duì)異常事件的獲取來(lái)源豐富、準(zhǔn)確,且無(wú)需人工干預(yù),減少了漏洞分析的工作量,進(jìn)而提升了測(cè)試的效率和測(cè)試范圍。
【附圖說(shuō)明】
[0017]圖1是本發(fā)明實(shí)施例一提供的程序漏洞的檢測(cè)方法的流程示意圖;
[0018]圖2是本發(fā)明實(shí)施例二提供的程序漏洞的檢測(cè)方法的流程示意圖;
[0019]圖3是本發(fā)明實(shí)施例三提供的程序漏洞的檢測(cè)系統(tǒng)的模塊示意圖;
[0020]圖4是本發(fā)明實(shí)施例四提供的程序漏洞的檢測(cè)系統(tǒng)的模塊示意圖;
[0021]圖5A與圖5B分別是本發(fā)明實(shí)施例一至四中所提供的程序漏洞的檢測(cè)方法及檢測(cè)系統(tǒng)的界面或日志的示意圖。
【具體實(shí)施方式】
[0022]請(qǐng)參照附圖中的圖式,其中相同的組件符號(hào)代表相同的組件,本發(fā)明的原理是以實(shí)施在一適當(dāng)?shù)倪\(yùn)算環(huán)境中來(lái)舉例說(shuō)明。以下的說(shuō)明是基于所示例的本發(fā)明的具體實(shí)施例,其不應(yīng)被視為限制本發(fā)明未在此詳述的其它具體實(shí)施例。
[0023]本發(fā)明原理以上述文字來(lái)說(shuō)明,其并不代表為一種限制,本領(lǐng)域技術(shù)人員將可了解到以下所述的多種步驟及操作亦可實(shí)施在硬件當(dāng)中。本發(fā)明的原理使用許多其它泛用性或特定目的運(yùn)算、通信環(huán)境或組態(tài)來(lái)進(jìn)行操作。
[0024]本發(fā)明提供的程序漏洞的檢測(cè)方法及檢測(cè)系統(tǒng),主要應(yīng)用計(jì)算機(jī)中對(duì)應(yīng)用于計(jì)算機(jī)環(huán)境中的程序進(jìn)行漏洞檢測(cè),也可以通過(guò)計(jì)算機(jī)去模擬手機(jī)等移動(dòng)終端進(jìn)行程序漏洞的檢測(cè)、或通信連接于所述移動(dòng)終端進(jìn)行程序漏洞的檢測(cè)。
[0025]以下將分別進(jìn)行詳細(xì)說(shuō)明。
[0026]實(shí)施例一
[0027]請(qǐng)參閱圖1,所示為本發(fā)明實(shí)施例提供的程序漏洞的檢測(cè)方法的流程示意圖。
[0028]所述程序漏洞的檢測(cè)方法,包括:
[0029]在步驟SlOl中,測(cè)試時(shí),開啟監(jiān)控線程,所述監(jiān)控線程用于監(jiān)控待測(cè)程序中的異常事件。
[0030]其中,所述監(jiān)控線程包括:界面監(jiān)控線程、和日志監(jiān)控線程。所述界面監(jiān)控線程,用于對(duì)待測(cè)程序的界面進(jìn)行監(jiān)控,如圖5A所示,以分析是否有來(lái)源于界面的異常事件;所述日志監(jiān)控線程,對(duì)待測(cè)程序的日志進(jìn)行監(jiān)控,如圖5B所示,以分析是否有來(lái)源于日志的異常事件。
[0031]所述監(jiān)控線程,還用于記錄所述異常事件及所述異常事件的來(lái)源,所述來(lái)源包括:界面或日志;也可以理解為,所述來(lái)源包括:界面監(jiān)控線程或日志監(jiān)控線程。
[0032]在步驟S102中,獲取所述異常事件,并分析異常事件的類型。
[0033]其中,所述異常事件的類型包括:程序出錯(cuò)項(xiàng)和程序有誤項(xiàng)。
[0034]所述程序出錯(cuò)項(xiàng),代表為嚴(yán)重的程序錯(cuò)誤,這種錯(cuò)誤不需要進(jìn)行額外的分析,可直接作為程序漏洞進(jìn)行提交。這種程序出錯(cuò)項(xiàng),會(huì)在界面監(jiān)控線程中以對(duì)話框形式彈出,比如:XX停止運(yùn)行、XX無(wú)響應(yīng)、或XX無(wú)法連接。其中XX表示待測(cè)程序、或待測(cè)程序中的任意子程序。
[0035]所述程序有誤項(xiàng),指不確定的程序錯(cuò)誤,還需進(jìn)一步分析,才能確定是否作為程序漏洞進(jìn)行提交。這種程序有誤項(xiàng),通常不會(huì)呈現(xiàn)在界面之上,而是記錄在日志中,比如:XXExcept1n、XXCrash、app NotResponding、system NotResponding、或XXerror0其中XX表示待測(cè)程序、或待測(cè)程序的安裝包。
[0036]在步驟S103中,判斷所述異常事件是否導(dǎo)致測(cè)試中斷。
[0037]其中,若測(cè)試中斷,則執(zhí)行步驟S104;程序仍可運(yùn)行,則執(zhí)行步驟S102,以繼續(xù)獲取異常事件。具體而言,所述測(cè)試中斷的標(biāo)準(zhǔn)可以由用戶設(shè)計(jì),比如:被測(cè)程序的每千行代碼的錯(cuò)誤個(gè)數(shù)超過(guò)3個(gè),則測(cè)試中斷。
[0038]在步驟S104中,當(dāng)測(cè)試中斷或測(cè)試完成時(shí),根據(jù)所述異常事件的類型對(duì)所述異常事件進(jìn)行漏洞分析處理。
[0039]具體而言,本步驟包括:
[0040](I)當(dāng)測(cè)試中斷或測(cè)試完成時(shí),對(duì)所述異常事件的類型進(jìn)行篩選,可以理解的是,可以通過(guò)篩選對(duì)異常事件進(jìn)行嚴(yán)重程度的分級(jí),并予以不同的處理,以減少工程量,進(jìn)而節(jié)省時(shí)間和處理資源;
[0041](2)篩選出程序出錯(cuò)項(xiàng)的異常事件,并作為程序漏洞提交;和/或
[0042](3)篩選出程序有誤項(xiàng)的異常事件,并進(jìn)行驗(yàn)證,將無(wú)法通過(guò)驗(yàn)證的異常事件作為程序漏洞提交??梢岳斫獾氖牵鲵?yàn)證,是為規(guī)避程序中的邏輯錯(cuò)誤,比如:理應(yīng)調(diào)整到activity A,但是卻跳轉(zhuǎn)到了activity B。
[0043]本發(fā)明提供的程序漏洞的檢測(cè)方法,通過(guò)將異常事件類型分為程序出錯(cuò)項(xiàng)和程序有誤項(xiàng),并對(duì)不同類型的異常事件進(jìn)行漏洞分析處理,不僅使對(duì)異常事件的獲取來(lái)源豐富、準(zhǔn)確,且無(wú)需人工干預(yù),減少了漏洞分析的工作量,進(jìn)而提升了測(cè)試的效率和測(cè)試范圍。
[0044]實(shí)施例二
[0045]請(qǐng)參閱圖2,所示為本發(fā)明實(shí)施例提供的程序漏洞的檢測(cè)方法的流程示意圖。
[0046]所述程序漏洞的檢測(cè)方法,包括:
[0047]在步驟S201中,測(cè)試時(shí)開啟監(jiān)控線程,以通過(guò)界面和日志來(lái)監(jiān)控待測(cè)程序中的異常事件。
[0048]具體而言,本步驟包括:
[0049](I)測(cè)試時(shí)開啟監(jiān)控線程,所述監(jiān)控線程包括:界面監(jiān)控線程、和日志監(jiān)控線程,通過(guò)界面和日志同時(shí)監(jiān)控,使異常事件的獲取來(lái)源豐富、準(zhǔn)確,且無(wú)需人工干預(yù);
[0050](2)通過(guò)所述界面監(jiān)控線程,對(duì)所述待測(cè)程序的界面進(jìn)行監(jiān)控,如圖5A所示,以分析是否有來(lái)源于界面的異常事件,比如:所述界面監(jiān)控線程檢測(cè)界面中是否出現(xiàn)錯(cuò)誤關(guān)鍵字,如:無(wú)響應(yīng)、無(wú)法連接、或停止運(yùn)行等;
[0051](3)通過(guò)所述日志監(jiān)控線程,對(duì)所述待測(cè)程序的日志進(jìn)行監(jiān)控,如圖5B所示,以分析是否有來(lái)源于日志的異常事件,比如:所述日志監(jiān)控線程檢測(cè)日志輸出中的是否有錯(cuò)誤關(guān)鍵字出現(xiàn),如:Except1n、Crash、NotResponding、或error等;以及
[0052](4)記錄所述異常事件及所述異常事件的來(lái)源,以便進(jìn)行漏洞分析處理。其中,所述來(lái)源包括:界面或日志;也可以理解為,所述來(lái)源包括:界面監(jiān)控線程或日志監(jiān)控線程。
[0053]在步驟S202中,獲取所述異常事件,并通過(guò)來(lái)源以分析異常事件的類型,其中,所述異常事件的類型包括:程序出錯(cuò)項(xiàng)和