測試軟件代碼的方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及軟件測試技術領域,具體而言,涉及一種測試軟件代碼的方法和一種測試軟件代碼的裝置。
【背景技術】
[0002]在軟件開發(fā)領域,軟件調試工作、軟件維護升級過程或者bug修改過程,時刻伴隨著代碼變更,而代碼的變更通常會產生“副作用”,比如會影響到軟件的內外部接口、功能特性和性能等多方面的內容,如果沒有對代碼變更的影響面進行充分的分析與測試,可能導致程序運行時出現異常甚至崩潰。
[0003]如何保證代碼變化對產品的影響范圍的精確預測,并保證測試覆蓋完全。針對上述問題,相關技術中提出了通過軟件代碼中改變的代碼元素,確定代碼元素之間的依賴,及各個改變的代碼元素的影響因子,基于所確定的影響因子,確定代碼測試的測試相關性排序,基于測試相關性排序,為軟件代碼選擇測試用例,并對軟件代碼執(zhí)行所選擇的測試用例。
[0004]但是,上述技術方案存在以下不足:首先,在綁定軟件代碼和測試用例的時候,源代碼與測試用例關聯很難被管理起來,由于代碼的數量一般都比較龐大,當嘗試手工建立代碼與測試用例的關聯時,很難做到準確和全面覆蓋到所有代碼,特別的,當代碼的數量增加或更新頻繁的時候,測試用例之間的關聯關系很難同步及時更新。其次,選擇測試用例并執(zhí)行測試用例時,很難知道測試用例是否可以覆蓋全部代碼,在這種情況下,代碼變更阻礙了對要覆蓋到軟件開發(fā)完整流程的目標。同時,不能使開發(fā)人員直觀地了解到改變的代碼元素所影響的范圍,進而可能會影響開發(fā)人員對代碼變更的影響面進行充分的分析與測試。
【發(fā)明內容】
[0005]本發(fā)明正是基于上述技術問題至少之一,提出了一種新的測試軟件代碼的方案,使得開發(fā)人員能夠方便地了解到代碼變更所帶來的直觀影響,以便于開發(fā)人員對代碼變更的影響面進行充分的分析與測試。
[0006]有鑒于此,本發(fā)明提出了一種測試軟件代碼的方法,包括:在軟件代碼的編輯過程中,獲取所述軟件代碼的變更記錄;在所述軟件代碼編輯完成后,對所述軟件代碼進行解析,得到所述軟件代碼中類之間的關系和所述軟件代碼的基本元素;根據所述類之間的關系和所述基本元素,依次查找與所述軟件代碼中變更的代碼元素存在依賴關系的其它軟件代碼,直至查找到界面可執(zhí)行元素,以確定所述軟件代碼的變更所影響的范圍。
[0007]在該技術方案中,通過根據對軟件代碼進行解析得到的類之間的關系和基本元素,查找與變更的代碼元素存在依賴關系的其它軟件代碼,直至查找到界面可執(zhí)行元素,使得在代碼變更時,能夠自動追溯代碼變更所影響的范圍,并且可以追溯到UI (UserInterface,用戶界面)端,即查找到界面可執(zhí)行元素,使得開發(fā)人員能夠方便地了解到代碼變更所帶來的直觀影響,以便于開發(fā)人員對代碼變更的影響面進行充分的分析與測試。
[0008]在上述技術方案中,優(yōu)選地,還包括:
[0009]呈現查找到的所述界面可執(zhí)行元素;和/或
[0010]基于查找到的所述界面可執(zhí)行元素,選取相應的測試用例對所述界面可執(zhí)行元素進行測試分析,并呈現對所述界面可執(zhí)行元素的測試分析結果。
[0011]在該技術方案中,在追溯到代碼變更所影響的范圍之后,可以直接呈現查找的界面可執(zhí)行元素,以便于開發(fā)人員手動選擇測試用例對查找到的界面可執(zhí)行元素進行測試分析;同時,測試軟件代碼的裝置也可以自動選擇相應的測試用例對界面可執(zhí)行元素進行測試分析,最終將測試分析結果直觀地呈現給開發(fā)人員,由開發(fā)人員進行參考。
[0012]在上述任一技術方案中,優(yōu)選地,在通過所述測試用例對所述界面可執(zhí)行元素進行測試分析之后,還包括:通過Emma對所述測試用例的代碼覆蓋率進行檢查。
[0013]在該技術方案中,通過采用E_a(用于檢測和報告JAVA代碼覆蓋率的開源工具)對測試用例的代碼覆蓋率進行檢查,使得對軟件代碼的測試分析能夠覆蓋軟件開發(fā)的完整流程。
[0014]在上述任一技術方案中,優(yōu)選地,還包括:通過預定的數據結構存儲所述軟件代碼中變更的代碼元素和查找到的所述其它軟件代碼,以明確所述軟件代碼中變更的代碼元素和所述其它軟件代碼之間的依賴關系。
[0015]在上述任一技術方案中,優(yōu)選地,獲取所述軟件代碼的變更記錄的步驟具體包括:在所述軟件代碼的編輯過程中,監(jiān)聽軟件代碼的提交動作;通過對提交的不同版本的軟件代碼進行對比,確定所述軟件代碼的變更記錄。
[0016]根據本發(fā)明的另一方面,還提出了一種測試軟件代碼的裝置,包括:獲取單元,用于在軟件代碼的編輯過程中,獲取所述軟件代碼的變更記錄;解析單元,用于在所述軟件代碼編輯完成后,對所述軟件代碼進行解析,得到所述軟件代碼中類之間的關系和所述軟件代碼的基本元素;查找單元,用于根據所述類之間的關系和所述基本元素,依次查找與所述軟件代碼中變更的代碼元素存在依賴關系的其它軟件代碼,直至查找到界面可執(zhí)行元素,以確定所述軟件代碼的變更所影響的范圍。
[0017]在該技術方案中,通過根據對軟件代碼進行解析得到的類之間的關系和基本元素,查找與變更的代碼元素存在依賴關系的其它軟件代碼,直至查找到界面可執(zhí)行元素,使得在代碼變更時,能夠自動追溯代碼變更所影響的范圍,并且可以追溯到UI (UserInterface,用戶界面)端,即查找到界面可執(zhí)行元素,使得開發(fā)人員能夠方便地了解到代碼變更所帶來的直觀影響,以便于開發(fā)人員對代碼變更的影響面進行充分的分析與測試。
[0018]在上述技術方案中,優(yōu)選地,還包括:
[0019]第一呈現單元,用于呈現查找到的所述界面可執(zhí)行元素;和/或
[0020]處理單元,用于基于查找到的所述界面可執(zhí)行元素,選取相應的測試用例對所述界面可執(zhí)行元素進行測試分析;第二呈現單元,用于呈現所述測試用例對所述界面可執(zhí)行元素的測試分析結果。
[0021]在該技術方案中,在追溯到代碼變更所影響的范圍之后,可以直接呈現查找的界面可執(zhí)行元素,以便于開發(fā)人員手動選擇測試用例對查找到的界面可執(zhí)行元素進行測試分析;同時,測試軟件代碼的裝置也可以自動選擇相應的測試用例對界面可執(zhí)行元素進行測試分析,最終將測試分析結果直觀地呈現給開發(fā)人員,由開發(fā)人員進行參考。
[0022]在上述任一技術方案中,優(yōu)選地,所述處理單元還用于,在通過所述測試用例對所述界面可執(zhí)行元素進行測試分析之后,通過Emma對所述測試用例的代碼覆蓋率進行檢查。
[0023]在該技術方案中,通過采用E_a (用于檢測和報告JAVA代碼覆蓋率的開源工具)對測試用例的代碼覆蓋率進行檢查,使得對軟件代碼的測試分析能夠覆蓋軟件開發(fā)的完整流程。
[0024]在上述任一技術方案中,優(yōu)選地,還包括:存儲單元,用于通過預定的數據結構存儲所述軟件代碼中變更的代碼元素和查找到的所述其它軟件代碼,以明確所述軟件代碼中變更的代碼元素和所述其它軟件代碼之間的依賴關系。
[0025]在上述任一技術方案中,優(yōu)選地,所述獲取單元包括:監(jiān)聽單元,用于在所述軟件代碼的編輯過程中,監(jiān)聽軟件代碼的提交動作;對比單元,用于通過對提交的不同版本的軟件代碼進行對比,確定所述軟件代碼的變更記錄。
[0026]通過以上技術方案,使得開發(fā)人員能夠方便地了解到代碼變更所帶來的直觀影響,以便于開發(fā)人員對代碼變更的影響面進行充分的分析與測試,并且可以針對測試用例進行功能上的綁定,以便于自動選取測試用例進行分析測試,同時在執(zhí)行完畢后可以通過代碼覆蓋率檢查,確保決策的高效準確。
【附圖說明】
[0027]圖1示出了根據本發(fā)明的實施例的測試軟件代碼的方法的示意流程圖;
[0028]圖2示出了根據本發(fā)明的一個實施例的測試軟件代碼的裝置的示意框圖;
[0029]圖3示出了根據本發(fā)明的另一個實施例的測試軟件代碼的裝置的示意框圖。
【具體實施方式】
[0030]為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結合附圖和【具體實施方式】對本發(fā)明進行進一步