欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

代碼檢測(cè)方法及裝置的制造方法

文檔序號(hào):9564519閱讀:317來(lái)源:國(guó)知局
代碼檢測(cè)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù),尤其涉及一種代碼檢測(cè)方法及裝置。
【背景技術(shù)】
[0002]由于通常需要對(duì)編譯好的代碼進(jìn)行檢查,特別是對(duì)于代碼變更比較頻繁的項(xiàng)目,因此,除了人工檢查提交的代碼之外,還需要有自動(dòng)化工具來(lái)監(jiān)控代碼的變更,從而掃描并檢查代碼中所存在的缺陷以及不符合規(guī)范的代碼。
[0003]目前由于代碼種類繁多且代碼運(yùn)行的系統(tǒng)平臺(tái)也多種多樣,比如安卓Android系統(tǒng)平臺(tái)、蘋(píng)果公司1s系統(tǒng)平臺(tái)等,且不同的平臺(tái)對(duì)應(yīng)了不同的機(jī)型;tl^n,Android平臺(tái)碎片化嚴(yán)重,機(jī)型品牌繁多且系統(tǒng)版本各異,在開(kāi)發(fā)Android操作系統(tǒng)對(duì)應(yīng)的應(yīng)用軟件時(shí),同一應(yīng)用軟件的部分功能需要針對(duì)不同機(jī)型或者操作系統(tǒng)版本等不同方面的適配來(lái)保證該應(yīng)用軟件具備較好的兼容性;因此,在開(kāi)發(fā)出上述應(yīng)用軟件對(duì)應(yīng)的代碼時(shí),需要對(duì)于上述代碼進(jìn)行檢測(cè)。但目前代碼掃描工具所使用的規(guī)則庫(kù)中,僅收集了同一編程語(yǔ)言對(duì)應(yīng)的代碼通用問(wèn)題,無(wú)法檢測(cè)到需要進(jìn)行機(jī)型版本適配的代碼以及某一操作系統(tǒng)中的典型代碼缺陷和不符合相應(yīng)代碼規(guī)范等代碼所存在的非通用問(wèn)題。

【發(fā)明內(nèi)容】

[0004]鑒于以上內(nèi)容,有必要提供一種代碼檢測(cè)方法及裝置,旨在提高代碼檢測(cè)的范圍及針對(duì)性。
[0005]本發(fā)明實(shí)施例提供一種代碼檢測(cè)方法,包括以下步驟:
[0006]接收代碼檢測(cè)的觸發(fā)指令,識(shí)別所述觸發(fā)指令的指令類型;
[0007]在所述指令類型指向通用規(guī)則庫(kù)時(shí),調(diào)用所述通用規(guī)則庫(kù)對(duì)所待檢測(cè)代碼進(jìn)行靜態(tài)掃描;在所述指令類型指向擴(kuò)展規(guī)則庫(kù)時(shí),調(diào)用所述擴(kuò)展規(guī)則庫(kù)對(duì)待檢測(cè)代碼進(jìn)行靜態(tài)掃描;在所述指令類型指向通過(guò)規(guī)則庫(kù)和擴(kuò)展規(guī)則庫(kù)時(shí),調(diào)用通用規(guī)則庫(kù)和擴(kuò)展規(guī)則庫(kù)對(duì)待檢測(cè)代碼進(jìn)行靜態(tài)掃描;
[0008]獲取與所述通用規(guī)則庫(kù)和/或擴(kuò)展規(guī)則庫(kù)匹配的代碼,生成包含警告信息的檢測(cè)?艮告;
[0009]推送生成的所述檢測(cè)報(bào)告。
[0010]本發(fā)明實(shí)施例還提供一種代碼檢測(cè)裝置,包括:
[0011]代碼掃描模塊,用于接收代碼檢測(cè)的觸發(fā)指令,識(shí)別所述觸發(fā)指令的指令類型;在所述指令類型指向通用規(guī)則庫(kù)時(shí),調(diào)用所述通用規(guī)則庫(kù)對(duì)所待檢測(cè)代碼進(jìn)行靜態(tài)掃描;在所述指令類型指向擴(kuò)展規(guī)則庫(kù)時(shí),調(diào)用所述擴(kuò)展規(guī)則庫(kù)對(duì)待檢測(cè)代碼進(jìn)行靜態(tài)掃描;在所述指令類型指向通過(guò)規(guī)則庫(kù)和擴(kuò)展規(guī)則庫(kù)時(shí),調(diào)用通用規(guī)則庫(kù)和擴(kuò)展規(guī)則庫(kù)對(duì)待檢測(cè)代碼進(jìn)行靜態(tài)掃描;
[0012]報(bào)告生成模塊,用于獲取與所述通用規(guī)則庫(kù)和/或擴(kuò)展規(guī)則庫(kù)匹配的代碼,生成包含警告信息的檢測(cè)報(bào)告;
[0013]信息推送模塊,用于推送生成的所述檢測(cè)報(bào)告。
[0014]本發(fā)明實(shí)施例代碼檢測(cè)工具接收代碼檢測(cè)的觸發(fā)指令,識(shí)別所述觸發(fā)指令的指令類型;并根據(jù)具體的所述指令類型,調(diào)用通用規(guī)則庫(kù)和/或擴(kuò)展規(guī)則庫(kù)對(duì)待檢測(cè)代碼進(jìn)行靜態(tài)掃描;獲取與所述通用規(guī)則庫(kù)和/或擴(kuò)展規(guī)則庫(kù)匹配的代碼,生成包含警告信息的檢測(cè)報(bào)告;推送生成的所述檢測(cè)報(bào)告;提高了代碼檢測(cè)的范圍及針對(duì)性,避免了代碼中可能存在的典型錯(cuò)誤,提高了代碼運(yùn)行的穩(wěn)定性、可維護(hù)性及對(duì)應(yīng)代碼映射的產(chǎn)品功能的一致性。
【附圖說(shuō)明】
[0015]圖1是本發(fā)明代碼檢測(cè)方法第一實(shí)施例流程示意圖;
[0016]圖2是根據(jù)圖1所描述的代碼檢測(cè)方法生成的檢測(cè)報(bào)告一實(shí)施例界面示意圖;
[0017]圖3是中圖2所示的檢測(cè)報(bào)告對(duì)應(yīng)的警告內(nèi)容一實(shí)施例界面示意圖;
[0018]圖4是本發(fā)明代碼檢測(cè)方法中掃描得出的待檢測(cè)代碼對(duì)應(yīng)的項(xiàng)目模塊依賴關(guān)系一實(shí)施例功能模塊示意圖;
[0019]圖5是本發(fā)明代碼檢測(cè)方法第二實(shí)施例流程示意圖;
[0020]圖6是本發(fā)明代碼檢測(cè)裝置第一實(shí)施例功能模塊示意圖;
[0021]圖7是本發(fā)明代碼檢測(cè)裝置第二實(shí)施例功能模塊示意圖;
[0022]圖8是本發(fā)明代碼檢測(cè)裝置一實(shí)施例硬件架構(gòu)示意圖。
[0023]本發(fā)明實(shí)施例目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。
【具體實(shí)施方式】
[0024]以下結(jié)合說(shuō)明書(shū)附圖及具體實(shí)施例進(jìn)一步說(shuō)明本發(fā)明的技術(shù)方案。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0025]本發(fā)明實(shí)施例代碼檢測(cè)方法及裝置適用于任意類型的代碼檢測(cè)環(huán)境中,所述代碼包括但不限于使用Java語(yǔ)言編寫(xiě)的代碼,本實(shí)施例對(duì)編寫(xiě)待檢測(cè)代碼所使用的編程語(yǔ)言不進(jìn)行限定;另外,所述代碼運(yùn)行的操作系統(tǒng)可以是主流的Android操作系統(tǒng)、1s操作系統(tǒng)以及windows操作系統(tǒng),也可以是塞班系統(tǒng)、微軟操作系統(tǒng)等,本發(fā)明實(shí)施例對(duì)待檢測(cè)代碼運(yùn)行的操作系統(tǒng)也不進(jìn)行限定。
[0026]請(qǐng)參照?qǐng)D1,圖1是本發(fā)明代碼檢測(cè)方法第一實(shí)施例流程意圖;如圖1所不,本發(fā)明代碼檢測(cè)方法包括以下步驟:
[0027]步驟S11、接收代碼檢測(cè)的觸發(fā)指令,識(shí)別所述觸發(fā)指令的指令類型;
[0028]步驟S12、在所述指令類型指向通用規(guī)則庫(kù)時(shí),調(diào)用所述通用規(guī)則庫(kù)對(duì)所待檢測(cè)代碼進(jìn)行靜態(tài)掃描;在所述指令類型指向擴(kuò)展規(guī)則庫(kù)時(shí),調(diào)用所述擴(kuò)展規(guī)則庫(kù)對(duì)待檢測(cè)代碼進(jìn)行靜態(tài)掃描;在所述指令類型指向通過(guò)規(guī)則庫(kù)和擴(kuò)展規(guī)則庫(kù)時(shí),調(diào)用通用規(guī)則庫(kù)和擴(kuò)展規(guī)則庫(kù)對(duì)待檢測(cè)代碼進(jìn)行靜態(tài)掃描;
[0029]接收到代碼檢測(cè)的觸發(fā)指令時(shí),代碼檢測(cè)工具響應(yīng)所述觸發(fā)指令,并識(shí)別所述觸發(fā)指令的指令類型;本發(fā)明實(shí)施例中,由于在代碼檢測(cè)工具進(jìn)行代碼檢測(cè)時(shí),在不同的應(yīng)用場(chǎng)景所使用的檢測(cè)方式不同,即在不同的應(yīng)用場(chǎng)景中,選擇使用不同的規(guī)則庫(kù)進(jìn)行代碼掃描。
[0030]根據(jù)識(shí)別出的所述觸發(fā)指令的指令類型,代碼檢測(cè)工具選擇不同的規(guī)則庫(kù)對(duì)待檢測(cè)代碼進(jìn)行靜態(tài)掃描。在所述指令類型指向通用規(guī)則庫(kù)時(shí),調(diào)用所述通用規(guī)則庫(kù)對(duì)所待檢測(cè)代碼進(jìn)行靜態(tài)掃描;在所述指令類型指向擴(kuò)展規(guī)則庫(kù)時(shí),調(diào)用所述擴(kuò)展規(guī)則庫(kù)對(duì)待檢測(cè)代碼進(jìn)行靜態(tài)掃描;在所述指令類型指向通過(guò)規(guī)則庫(kù)和擴(kuò)展規(guī)則庫(kù)時(shí),調(diào)用預(yù)先存儲(chǔ)的通用規(guī)則庫(kù)和擴(kuò)展規(guī)則庫(kù),對(duì)待檢測(cè)代碼進(jìn)行靜態(tài)掃描;比如,代碼檢測(cè)工具掃描待檢測(cè)代碼中是否存在與所述通用規(guī)則庫(kù)和/或擴(kuò)展規(guī)則庫(kù)相匹配的代碼。
[0031]對(duì)代碼進(jìn)行靜態(tài)掃描可以理解為:在不運(yùn)行上述代碼的方式下,通過(guò)詞法分析、語(yǔ)法分析、控制流分析等技術(shù)對(duì)上述代碼進(jìn)行掃描,從而驗(yàn)證掃描的所述代碼是否滿足針對(duì)所述代碼所要求的規(guī)范性、安全性、可靠性、可維護(hù)性等指標(biāo)的一種代碼分析技術(shù)。其中,所述詞法分析可以理解為:計(jì)算機(jī)科學(xué)中將字符序列轉(zhuǎn)換為單詞序列的過(guò)程;所述語(yǔ)法分析可以理解為:在所述詞法分析的基礎(chǔ)上,將單詞序列組合成各類語(yǔ)法短語(yǔ)、語(yǔ)句、表達(dá)式等。
[0032]本發(fā)明實(shí)施例中,所述通用規(guī)則庫(kù)和擴(kuò)展規(guī)則庫(kù)可以理解為:根據(jù)待檢測(cè)代碼的類型、待檢測(cè)代碼的運(yùn)行環(huán)境以及對(duì)該待檢測(cè)代碼的具體要求所設(shè)置的或者說(shuō)所定義的不符合相應(yīng)要求或規(guī)范的規(guī)則庫(kù);該自定規(guī)則庫(kù)中存儲(chǔ)了不符合要求代碼,比如典型錯(cuò)誤代碼、典型代碼缺陷、不符合項(xiàng)目設(shè)計(jì)規(guī)范的代碼、不符合產(chǎn)品設(shè)計(jì)規(guī)范的代碼等。
[0033]在本發(fā)明一優(yōu)選實(shí)施例中,所述通用規(guī)則庫(kù)可以理解為:靜態(tài)代碼掃描工具映射的通用規(guī)則庫(kù),比如代碼掃描工具FindBugs以及PWD對(duì)應(yīng)的已有規(guī)則庫(kù)等;所述擴(kuò)展規(guī)則庫(kù)可以理解為:所述待檢測(cè)代碼映射的擴(kuò)展規(guī)則庫(kù),比如,針對(duì)待檢測(cè)代碼的特點(diǎn)或者用途或者使用環(huán)境等,設(shè)置所述待檢測(cè)代碼所需的代碼規(guī)范、設(shè)計(jì)規(guī)范、異常退出問(wèn)題以及所述待檢測(cè)代碼運(yùn)行系統(tǒng)典型問(wèn)題所對(duì)應(yīng)的規(guī)則,比如產(chǎn)品設(shè)計(jì)規(guī)范、團(tuán)隊(duì)代碼規(guī)范、項(xiàng)目代碼規(guī)范以及Android系統(tǒng)典型問(wèn)題和項(xiàng)目可能出現(xiàn)的crash問(wèn)題等對(duì)應(yīng)的規(guī)則。
[0034]步驟S13、獲取與所述通用規(guī)則庫(kù)和/或擴(kuò)展規(guī)則庫(kù)匹配的代碼,生成包含警告信息的檢測(cè)報(bào)告;
[0035]在代碼檢測(cè)工具對(duì)代碼進(jìn)行靜態(tài)掃描的過(guò)程中,如果代碼檢測(cè)工具所掃描到的代碼命中所述通用規(guī)則庫(kù)和/或擴(kuò)展規(guī)則庫(kù)中的規(guī)則,則表示該代碼與所述通用規(guī)則庫(kù)和/或擴(kuò)展規(guī)則庫(kù)中的規(guī)則相匹配。此時(shí),代碼檢測(cè)工具獲取與所述通用規(guī)則庫(kù)和/或擴(kuò)展規(guī)則庫(kù)相匹配的代碼,即與所述通用規(guī)則庫(kù)和/或擴(kuò)展規(guī)則庫(kù)相匹配的代碼均為不符合要求的代碼,比如該匹配代碼不符合項(xiàng)目設(shè)計(jì)規(guī)范或者不符合產(chǎn)品設(shè)計(jì)規(guī)范或者項(xiàng)目出現(xiàn)的crash問(wèn)題或者Android系統(tǒng)典型問(wèn)題等。其中,所述crash問(wèn)題可以理解為:該程序遇到未知問(wèn)題時(shí),運(yùn)行出錯(cuò)并自動(dòng)退出的情況,或者程序運(yùn)行崩潰的情況。
[0036]當(dāng)掃描出與所述通用規(guī)則庫(kù)和/或擴(kuò)展規(guī)則庫(kù)匹配的不符合要求的代碼時(shí),代碼檢測(cè)工具生成包含上述匹配代碼對(duì)應(yīng)的警告信息的檢測(cè)報(bào)告。若代碼檢測(cè)工具從待檢測(cè)代碼中,沒(méi)有掃描出與所述通用規(guī)則庫(kù)和擴(kuò)展規(guī)則庫(kù)相匹配的代碼,則表示上述代碼不存在與通用規(guī)則庫(kù)和擴(kuò)展規(guī)則庫(kù)匹配的代碼,則代碼檢測(cè)工具根據(jù)預(yù)先設(shè)置的操作,發(fā)送檢測(cè)通過(guò)的提示信息或者不執(zhí)行任何操作,由用戶確定是否再次觸發(fā)對(duì)應(yīng)的操作操作,或者人工進(jìn)行代碼檢測(cè)。
[0037]步驟S14、推送生成的所述檢測(cè)報(bào)告。
[0038]代碼檢測(cè)工具生成上述檢測(cè)報(bào)告后,將生成的所述檢測(cè)報(bào)告推送至用戶;進(jìn)而由用戶根據(jù)
當(dāng)前第1頁(yè)1 2 3 4 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
宁强县| 嘉定区| 永川市| 阿拉善右旗| 信宜市| 平乡县| 内丘县| 闸北区| 海盐县| 陆河县| 宜良县| 黄龙县| 镇坪县| 仁怀市| 公主岭市| 台江县| 松滋市| 瑞安市| 军事| 中江县| 新龙县| 罗源县| 治县。| 陇南市| 绥芬河市| 定兴县| 普陀区| 阿拉善左旗| 灵川县| 平陆县| 房山区| 秭归县| 木里| 青龙| 宜昌市| 分宜县| 宜良县| 富顺县| 越西县| 吕梁市| 麻江县|