本發(fā)明涉計算機軟件應用技術(shù)領(lǐng)域,特別涉及一種代碼質(zhì)量檢查方法和系統(tǒng)。
背景技術(shù):
軟件代碼就是程序員用開發(fā)工具所支持的語言寫出來的源文件。它是一組有序的數(shù)字或字母的排列,是代表客觀實體及其屬性的符號。軟件代碼質(zhì)量就是代碼編寫的一種統(tǒng)一規(guī)范,讓代碼具有可讀行,思路清晰。高質(zhì)量的代碼需具備可讀性、可維護性和可變更性三個特征。
對于大型企業(yè)也而言,會存在多個軟件開發(fā)項目,每個項目會由不同的開發(fā)組負責。此外,隨著代碼復雜性的增加,往往一個項目需要由若干開發(fā)人員共同開發(fā)完成。不同的開發(fā)人員負責不同的部分,更新維護的時間也不同。現(xiàn)有的代碼質(zhì)量檢查方法僅支持手動觸發(fā)的方式,無法在軟件應用發(fā)布及代碼提交的第一時間觸發(fā)質(zhì)量檢查,這無疑不能適應目前的自動化的需求。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是為了克服現(xiàn)有技術(shù)中代碼部分更新或全量更新后質(zhì)量檢查不及時,無法第一時間自動觸發(fā)代碼質(zhì)量檢查的缺陷,提供一種能夠自動觸發(fā)代碼質(zhì)量檢查提高后續(xù)測試效率的代碼質(zhì)量檢查方法和系統(tǒng)。
本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題:
一種代碼質(zhì)量檢查方法,其特點在于,包括以下步驟:S1、定時查詢代碼庫中是否存在需要進行質(zhì)量檢查的待檢查代碼,若是,則執(zhí)行步驟S2;S2、使用SonarQube(一種代碼質(zhì)量檢測平臺)對所述待檢查代碼進行質(zhì)量檢查并判斷是否有問題,若是,則輸出檢查結(jié)果;其中,所述代碼庫用于存放代碼。
本方案中,通過定時查詢存放代碼的代碼庫,能夠及時發(fā)現(xiàn)代碼庫中存放的代碼是否有需要檢查的代碼,如果有則自動調(diào)用SonarQube對代碼進行質(zhì)量檢查,如果代碼有問題,及時輸出檢查結(jié)果以備后續(xù)處理。解決了目前的代碼質(zhì)量檢查僅由手動觸發(fā),無法在全量代碼發(fā)布及變更代碼提交時及時觸發(fā)質(zhì)量檢查的問題。本方案中,定時可以是30分鐘查詢一次,也可以是24小時查詢一次,該時間取決于具體的應用需求。其中需要檢查的代碼一般為有部分變更的代碼或者全量代碼修改后整體發(fā)布的代碼。通過本方案,能夠在第一時間自動地發(fā)現(xiàn)代碼庫中變更后的代碼隱藏或潛在的問題。
較佳地,所述步驟S1中,所述需要進行質(zhì)量檢查的情況為所述代碼庫中有新的變更代碼和/或新發(fā)布的全量代碼。
本方案中,代碼庫供代碼開發(fā)人員上傳待檢查的代碼,可以在新的全量代碼開發(fā)完成后上傳新發(fā)布的全量代碼,也可以針對已存在代碼庫中的全量代碼進行部分修改之后將新的變更代碼上傳。本方法發(fā)現(xiàn)代碼庫中的代碼有新變更后,將針對新變更的代碼進行質(zhì)量檢查。
較佳地,所述步驟S1和S2之間還包括以下步驟:從所述代碼庫中拉取所述待檢查代碼。
本方案中,先將待檢查代碼從代碼庫中下載到本地,然后再使用SonarQube進行代碼質(zhì)量檢查。
較佳地,所述步驟S2中,若否,則執(zhí)行S3:S3、對所述待檢查代碼進行單元測試并判斷是否有問題,若是,則輸出檢查結(jié)果。
本方案中,對于待檢查代碼進行單元測試,從動態(tài)的角度測試代碼運行過程中是否存在問題,能夠獲取單元測試的覆蓋率。
較佳地,所述輸出檢查結(jié)果包括將所述檢查結(jié)果以郵件形式發(fā)送至代碼管理員。
本方案中,通過郵件將檢查結(jié)果第一時間發(fā)送至代碼管理員,以便能夠及時反饋代碼隱藏或潛在的問題。其中代碼管理員可以是對應的代碼提交人,也可以是研發(fā)經(jīng)理等。
較佳地,所述方法還包括設置代碼組信息和設置所述待檢查代碼的路徑信息,所述代碼組信息包括所述代碼管理員。
本方案中,可以根據(jù)項目分組,不同項目劃分為不同的代碼組,每個代碼組信息提前設置好,其中代碼組信息包括本組的代碼管理員,另外還需要提前配置本組代碼在代碼庫中的存放路徑,以備本方法能夠及時查詢到待檢查的代碼,同時實現(xiàn)了質(zhì)量檢查對象的統(tǒng)一管理。通過本方法能夠?qū)崿F(xiàn)代碼組人員信息統(tǒng)一、有效的管理,質(zhì)量檢查結(jié)果能夠及時準確的通知到相關(guān)人。
本發(fā)明還提供一種代碼質(zhì)量檢查系統(tǒng),其特點在于,包括:定時判斷模塊,用于定時查詢代碼庫中是否存在需要進行質(zhì)量檢查的待檢查代碼,若是,則調(diào)用代碼掃描模塊;代碼掃描模塊,用于從所述代碼庫中拉取所述待檢查代碼,使用SonarQube對所述待檢查代碼進行質(zhì)量檢查并判斷是否有問題,若是,則輸出檢查結(jié)果;其中,所述代碼庫用于存放代碼。
較佳地,所述需要進行質(zhì)量檢查的情況為所述代碼庫中有新的變更代碼和/或新發(fā)布的全量代碼。
較佳地,所述代碼質(zhì)量檢查系統(tǒng)還包括單元測試模塊,所述單元測試模塊用于當所述代碼掃描模塊中判斷沒有問題時對所述待檢查代碼進行單元測試并判斷是否有問題,若是,則輸出檢查結(jié)果。
較佳地,所述輸出檢查結(jié)果包括將所述檢查結(jié)果以郵件形式發(fā)送至代碼管理員。
本發(fā)明的積極進步效果在于:本發(fā)明提供的代碼質(zhì)量檢查方法和系統(tǒng)通過定時查詢存放代碼的代碼庫,能夠及時發(fā)現(xiàn)代碼庫中存放的代碼是否有需要檢查的代碼,如果有則自動調(diào)用SonarQube對代碼進行質(zhì)量檢查,如果代碼有問題,及時輸出檢查結(jié)果以備后續(xù)處理。解決了目前的代碼質(zhì)量檢查僅由手動觸發(fā),無法在全量代碼發(fā)布及變更代碼提交時及時觸發(fā)質(zhì)量檢查的問題。通過本發(fā)明能夠在第一時間自動地發(fā)現(xiàn)代碼庫中變更后的代碼隱藏或潛在的問題,并能及時反饋,協(xié)助開發(fā)人員更快的發(fā)現(xiàn)定位問題,為測試前掃除系統(tǒng)問題,提高測試效率。進一步的,本發(fā)明還能夠?qū)z查結(jié)果以郵件的形式通知到代碼提交人或?qū)拇a管理員,以便后續(xù)針對異常及時處理。
附圖說明
圖1為本發(fā)明實施例1的代碼質(zhì)量檢查方法的流程圖。
圖2為本發(fā)明實施例2的代碼質(zhì)量檢查系統(tǒng)的示意圖。
具體實施方式
下面通過實施例的方式進一步說明本發(fā)明,但并不因此將本發(fā)明限制在所述的實施例范圍之中。
實施例1
如圖1所示,一種代碼質(zhì)量檢查方法,包括以下步驟:
101、設置代碼組信息和設置待檢查代碼的路徑信息,其中代碼組信息包括代碼管理員。
102、定時查詢代碼庫中是否存在需要進行質(zhì)量檢查的待檢查代碼,若是,則執(zhí)行步驟103,若否,則結(jié)束;其中代碼庫用于存放代碼,本實施例中30分鐘查詢一次代碼庫。
103、從代碼庫中拉取待檢查代碼。
104、使用SonarQube對待檢查代碼進行質(zhì)量檢查并判斷是否有問題,若是,則執(zhí)行步驟106,若否則執(zhí)行步驟105。
105、對待檢查代碼進行單元測試并判斷是否有問題,若是,則執(zhí)行步驟106,若否則結(jié)束。
106、將檢查結(jié)果以郵件形式發(fā)送至代碼管理員。
本實施例中需要進行質(zhì)量檢查的情況可以是代碼庫中有新的變更代碼和/或新發(fā)布的全量代碼。
本實施例實現(xiàn)了定時拉取代碼庫中的變更代碼,及時檢查變更代碼的質(zhì)量,并能夠?qū)z查結(jié)果以郵件的形式通知到相關(guān)人,可以是代碼提交人也可以是對應的研發(fā)經(jīng)理,能夠協(xié)助開發(fā)人員更快的發(fā)現(xiàn)并定位問題,提高測試效率。本實施例也可以進一步的通過爬蟲工具,不間斷的獲取全量代碼對應應用的發(fā)布信息,并觸發(fā)代碼庫全量檢查,實現(xiàn)應用發(fā)布即刻觸發(fā)檢查的功能,從而及時檢查最新上線代碼的集成質(zhì)量。
實施例2
如圖2所示,一種代碼質(zhì)量檢查系統(tǒng),包括定時判斷模塊1、代碼掃描模塊2和單元測試模塊3。其中,定時判斷模塊1用于定時查詢代碼庫中是否存在需要進行質(zhì)量檢查的待檢查代碼,若是,則調(diào)用代碼掃描模塊2,其中代碼庫用于存放代碼,需要進行質(zhì)量檢查的情況為代碼庫中有新的變更代碼和/或新發(fā)布的全量代碼。代碼掃描模塊2用于從代碼庫中拉取待檢查代碼,使用SonarQube對待檢查代碼進行質(zhì)量檢查并判斷是否有問題,若是,則輸出檢查結(jié)果。單元測試模塊3用于當代碼掃描模塊2中判斷沒有問題時對待檢查代碼進行單元測試并判斷是否有問題,若是,則輸出檢查結(jié)果。本實施例中輸出檢查結(jié)果的方式為將檢查結(jié)果以郵件形式發(fā)送至代碼管理員。
雖然以上描述了本發(fā)明的具體實施方式,但是本領(lǐng)域的技術(shù)人員應當理解,這僅是舉例說明,本發(fā)明的保護范圍是由所附權(quán)利要求書限定的。本領(lǐng)域的技術(shù)人員在不背離本發(fā)明的原理和實質(zhì)的前提下,可以對這些實施方式做出多種變更或修改,但這些變更和修改均落入本發(fā)明的保護范圍。