一種代碼持續集成的方法【專利摘要】本發明涉及軟件開發【
技術領域:
】,特別是指一種代碼持續集成的方法。本發明首先指定測試環境需要部署的服務器并部署其環境,確定其IP地址;然后,在對要測試的代碼打基線;檢出要測試的代碼并進行編譯,得到目標代碼,并且對目標代碼插樁;然后,在測試環境中執行測試用例,生成測試用例的執行結果、自動生成代碼的測試覆蓋率報告;然后,根據測試用例執行結果,修復代碼缺陷;根據測試覆蓋率報告重新調整測試用例;重復之前的集成的流程,直到測試用例全部通過并且測試覆蓋率為100%為止。本發明解決了軟件開發過程當中,從代碼開發到測試,再到回歸測試的過程中浪費大量時間的問題;可用于軟件開發中。【專利說明】一種代碼持續集成的方法【
技術領域:
】[0001]本發明涉及軟件開發【
技術領域:
】,特別是指一種代碼持續集成的方法。【
背景技術:
】[0002]軟件開發過程當中的特點是代碼的更新管理需要人員,代碼的更新、編譯、分發到測試環境都需要人力和時間的投入等。[0003]但是,以上描述的大型Linux軟件的發布方法存在如下的問題:[0004]1、需要做大量的工作以適配不同的開發版本。不同的軟件開發版本的和使用的環境都需要不同的依賴,所有要跟隨基線的發布來提供測試的環境,所以這個集成測試的環境可能對特定的版本的測試才會有效;[0005]2、此發布方法一般需要定時的修改編譯的方式,需要更新的目標代碼的內容,和所需要分發的測試機器的IP,這些都是限定條件,所以對特定版本才會有效。[0006]為了提升軟件的部署效率,增強部署的快捷性和部署過程之中數據的安全性,需要一種通過一個節點進行代碼的下載,更新,編譯,并且分發到各個知道的測試環境當中更新環境,自動的進行測試用例的執行,反饋。【
發明內容】[0007]本發明解決的技術問題在于提供一種快速、安全穩定的代碼持續集成的方法,解決了在測試環境部署和代碼更新的時候所浪費的人力和時間,以及數據更新的安全性等問題。[0008]本發明解決上述技術問題的技術方案是:包括如下步驟:[0009]步驟1:部署指定的測試需要部署的機器,并提供測試機器IP;[0010]步驟2:在配置庫當中對要測試的代碼打基線,以確保代碼部署的統一性和代碼更改的最好記錄;[0011]步驟3:對基線代碼進行編譯,得到目標代碼;[0012]步驟4:對目標代碼進行插樁,生成插樁信息文件;[0013]步驟5:把目標代碼分發到測試服務器當中;[0014]步驟6:在測試環境中執行測試用例,生成測試用例的執行結果,同時由于插樁的原因,也自動生成代碼覆蓋信息文件;[0015]步驟7:開發人員根據測試用例的執行結果,修復代碼缺陷,并提交到代碼主干上;[0016]步驟8:插樁信息文件和代碼覆蓋信息文件進行對比,結合源代碼生成一份代碼覆蓋率報告;測試人員根據測試覆蓋率報告查看沒有被覆蓋到的代碼,重新調整測試用例,完善測試的全面性;[0017]步驟9:重復步驟2到步驟8,持續開發、編譯、測試的過程,直到測試用例全部通過并且測試覆蓋率為100%為止。[0018]所述的對目標代碼進行插樁,指的是在目標代碼中插入記錄代碼覆蓋信息的字節碼,此字節碼與目標代碼同時執行,對目標代碼執行到的代碼行進行記錄;[0019]所述的插樁信息文件指的是一個記錄目標代碼行信息的文件。[0020]所述的把目標代碼分發到測試服務器當中指的是把插樁完成的代碼部署到所有執行測試的服務器中。[0021]所述的代碼覆蓋信息文件指的是一個測試用例執行過程中被執行到的代碼行的記錄文件,代碼覆蓋信息文件是相對插樁信息文件的,將兩個文件進行對比而確定本次測試用例執行過程中被覆蓋到的代碼有多少行,將代碼覆蓋信息文件結合向測試人員顯示沒有被執行到的代碼行的內容,以便進行測試用例的改進。[0022]本發明通過一個節點進行代碼的下載,更新,編譯,并且分發到各個知道的測試環境當中更新環境,自動的進行測試用例的執行,反饋;可以提升軟件的部署效率,增強部署的快捷性和部署過程之中數據的安全性。【專利附圖】【附圖說明】[0023]下面結合附圖對本發明進一步說明:[0024]附圖是本發明方法流程圖。【具體實施方式】[0025]見附圖所示,本發明方法流程步驟如下:[0026]I,確保測試環境的防火墻關閉,關閉方式如下:[0027]/etc/init.d/iptablesstop[0028]2,拷貝相應文件到集成環境[0029]將包含:exectesting.shIntegration-testing-GT.shscptotessingenv-10.0.55.3.shcovertest_sl.shcovertest_s2.shurltesting.sh這幾個文件的目錄拷貝到集成測試,[0030]3,對代碼進行插樁[0031]執行covertest_sl.sh完成自動插樁(啟動tomcat前做),會在/covertest目錄自動生成各模塊的覆蓋率測試數據文件,其中all是所有數據文件的合并文件,gcloud是GCloud項目的數據文件,其他是各個模塊的jar包數據文件[0032]coverttest_sl.sh的內容如下:[0033]【權利要求】1.一種持續集成的方法,其特征在于:包括如下步驟:步驟1:部署指定的測試需要部署的機器,并提供測試機器IP;步驟2:在配置庫當中對要測試的代碼打基線,以確保代碼部署的統一性和代碼更改的最好記錄;步驟3:對基線代碼進行編譯,得到目標代碼;步驟4:對目標代碼進行插樁,生成插樁信息文件;步驟5:把目標代碼分發到測試服務器當中;步驟6:在測試環境中執行測試用例,生成測試用例的執行結果,同時由于插樁的原因,也自動生成代碼覆蓋信息文件;步驟7:開發人員根據測試用例的執行結果,修復代碼缺陷,并提交到代碼主干上;步驟8:插樁信息文件和代碼覆蓋信息文件進行對比,結合源代碼生成一份代碼覆蓋率報告;測試人員根據測試覆蓋率報告查看沒有被覆蓋到的代碼,重新調整測試用例,完善測試的全面性;步驟9:重復步驟2到步驟8,持續開發、編譯、測試的過程,直到測試用例全部通過并且測試覆蓋率為100%為止。2.根據權利要求1所述的持續集成的方法,其特征在于:所述的對目標代碼進行插樁,指的是在目標代碼中插入記錄代碼覆蓋信息的字節碼,此字節碼與目標代碼同時執行,對目標代碼執行到的代碼行進行記錄;所述的插樁信息文件指的是一個記錄目標代碼行信息的文件。3.根據權利要求1所述的持續集成的方法,其特征在于:所述的把目標代碼分發到測試服務器當中指的是把插樁完成的代碼部署到所有執行測試的服務器中。4.根據權利要求2所述的持續集成的方法,其特征在于:所述的把目標代碼分發到測試服務器當中指的是把插樁完成的代碼部署到所有執行測試的服務器中。5.根據權利要求1至4任一項所述的持續集成的方法,其特征在于:所述的代碼覆蓋信息文件指的是一個測試用例執行過程中被執行到的代碼行的記錄文件,代碼覆蓋信息文件是相對插樁信息文件的,將兩個文件進行對比而確定本次測試用例執行過程中被覆蓋到的代碼有多少行,將代碼覆蓋信息文件結合向測試人員顯示沒有被執行到的代碼行的內容,以便進行測試用例的改進。【文檔編號】G06F11/36GK103699385SQ201310719971【公開日】2014年4月2日申請日期:2013年12月23日優先權日:2013年12月23日【發明者】魏琳琳,楊松,莫展鵬,季統凱申請人:國云科技股份有限公司