麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

索引越界測試方法、計算機設備和計算機程序產品與流程

文檔序號:41770471發布日期:2025-04-29 18:40閱讀:4來源:國知局
索引越界測試方法、計算機設備和計算機程序產品與流程

本技術涉及計算機,特別是涉及一種索引越界測試方法、計算機設備和計算機程序產品。


背景技術:

1、索引越界是指在訪問數組、字符串或其他集合數據結構時,使用了超出其實際范圍的索引,這種錯誤會導致程序崩潰。例如,在訪問數組或者字符串時,如果索引小于0或大于或等于數組或字符串的長度,就會產生索引越界從而導致程序崩潰,因此為了避免程序崩潰,通常需要對應用程序進行索引越界測試,來確保應用程序的穩定運行。

2、傳統技術中,通常可以通過以下兩種方式進行索引越界測試,基于內存偏移量的數組越界測試,以及基于函數調用關系的數組訪問范圍越界測試。然而,基于內存偏移量的數組越界測試,需要在編譯期進行計算,并不適合動態計算的oc語言,基于函數調用關系的數組訪問范圍計算的測試方案,數據類型僅限于不可變數組,覆蓋不夠全面,且oc語言中的代碼越界行為通常不涉及函數調用關系,oc中可變數組的長度在靜態代碼中無法計算,所以同樣不適用。可見,現有的索引越界測試只能適用于特定數據類型的代碼,因此現有的索引越界測試方法的適用范圍較窄。


技術實現思路

1、基于此,有必要針對上述技術問題,提供一種能夠提高索引越界測試方法的適用范圍的索引越界測試方法、裝置、計算機設備、計算機可讀存儲介質和計算機程序產品。

2、第一方面,本技術提供了一種索引越界測試方法,包括:

3、獲取待測試代碼,并獲取所述待測試代碼包含的至少一個目標特征結構,以及各所述目標特征結構對應的第一索引;所述目標特征結構為存在索引越界風險的特征結構;

4、獲取所述待測試代碼包含的至少一個越界保護結構,并獲取各所述越界保護結構對應的第二索引;

5、基于各所述第一索引以及各所述第二索引,獲取各所述目標特征結構與各所述越界保護結構之間的關聯關系;

6、根據所述關聯關系,得到所述待測試代碼中各所述目標特征結構的索引越界測試結果。

7、在其中一個實施例中,所述基于各所述第一索引以及各所述第二索引,獲取各所述目標特征結構與各所述越界保護結構之間的關聯關系,包括:獲取當前第一索引,以及所述當前第一索引對應的當前目標特征結構;所述當前第一索引為各所述第一索引中的任意一個;在各所述第二索引中存在與所述當前第一索引相匹配的當前第二索引的情況下,獲取所述當前第二索引對應的當前越界保護結構;構建所述當前目標特征結構與所述當前越界保護結構之間的關聯關系。

8、在其中一個實施例中,所述獲取當前第一索引,以及所述當前第一索引對應的當前目標特征結構之后,還包括:在任一所述第二索引滿足預設匹配條件的情況下,將所述第二索引作為與所述當前第一索引相匹配的當前第二索引;所述預設匹配條件包括:第二索引對應的越界保護結構與當前目標特征結構位于相同函數方法內;所述第二索引對應的索引標識與所述當前第一索引對應的索引標識相同;所述第二索引所在的代碼行數位于所述當前第一索引所在的代碼行數之前。

9、在其中一個實施例中,所述根據所述關聯關系,得到所述待測試代碼中各所述目標特征結構的索引越界測試結果,包括:在所述關聯關系中包含有所述當前目標特征結構與所述當前越界保護結構之間的關聯關系的情況下,獲取所述當前第一索引的索引屬性,以及所述當前越界保護結構的結構屬性;在所述結構屬性與所述索引屬性匹配的情況下,確定所述當前目標特征結構的索引越界測試結果為測試通過;在所述結構屬性與所述索引屬性不匹配的情況下,確定所述當前目標特征結構的索引越界測試結果為測試不通過。

10、在其中一個實施例中,所述索引屬性包括第一索引屬性以及第二索引屬性,所述結構屬性包括第一結構屬性、第二結構屬性以及第三結構屬性;所述第一索引屬性表征第一索引存在恒大于0的屬性限制條件,所述第二索引屬性表征第一索引不存在所述屬性限制條件;所述第一結構屬性表征越界保護結構用于判斷所述第一索引是否大于0,所述第二結構屬性表征越界保護結構用于判斷第一索引是否小于被索引對象的長度,所述第三結構屬性表征越界保護結構既用于判斷第一索引是否大于0,又用于判斷第一索引是否小于被索引對象的長度;所述獲取所述當前第一索引的索引屬性,以及所述當前越界保護結構的結構屬性之后,還包括:在所述索引屬性為所述第一索引屬性的情況下,若所述當前越界保護結構的結構屬性為第二結構屬性或者第三結構屬性,則確定所述結構屬性與所述索引屬性匹配;在所述索引屬性為所述第二索引屬性的情況下,若所述當前越界保護結構的結構屬性為第三結構屬性,或者所述當前越界保護結構的結構屬性同時包含第一結構屬性以及第二結構屬性,則確定所述結構屬性與所述索引屬性匹配。

11、在其中一個實施例中,所述獲取當前第一索引,以及所述當前第一索引對應的當前目標特征結構之后,還包括:在各所述第二索引中不存在與所述當前第一索引相匹配的當前第二索引的情況下,確定所述待測試代碼中不存在與所述當前目標特征結構關聯的越界保護結構;所述根據所述關聯關系,得到所述待測試代碼中各所述目標特征結構的索引越界測試結果,包括:在所述待測試代碼中不存在與所述當前目標特征結構關聯的越界保護結構的情況下,確定所述當前目標特征結構的索引越界測試結果為測試不通過。

12、在其中一個實施例中,所述獲取所述待測試代碼包含的至少一個目標特征結構,包括:獲取預先設置的目標特征結構規則表;所述目標特征結構規則表存儲有各個目標特征結構對應的目標方法名,以及調用各所述特征結構的調用對象的目標對象類型;獲取所述待測試代碼包含的各個特征結構的方法名,以及調用各所述特征結構的調用對象的對象類型;在任一所述特征結構的方法名與所述目標特征結構規則表中存儲的目標方法名匹配,并且所述對象類型與所述目標方法名對應的目標對象類型匹配的情況下,確定所述特征結構為所述目標特征結構。

13、在其中一個實施例中,所述獲取所述待測試代碼包含的至少一個越界保護結構,包括:獲取預先設置的越界保護結構規則表;所述越界保護結構規則表中存儲有各個越界保護結構的代碼編寫規則;在所述待測試代碼中任一子代碼結構,滿足所述越界保護結構規則表中存儲的任一代碼編寫規則的情況下,確定所述子代碼結構為所述待測試代碼包含的越界保護結構。

14、第二方面,本技術還提供了一種索引越界測試裝置,包括:

15、第一索引獲取模塊,用于獲取待測試代碼,并獲取所述待測試代碼包含的至少一個目標特征結構,以及各所述目標特征結構對應的第一索引;所述目標特征結構為存在索引越界風險的特征結構;

16、第二索引獲取模塊,用于獲取所述待測試代碼包含的至少一個越界保護結構,并獲取各所述越界保護結構對應的第二索引;

17、結構關聯構建模塊,用于基于各所述第一索引以及各所述第二索引,獲取各所述目標特征結構與各所述越界保護結構之間的關聯關系;

18、索引越界測試模塊,用于根據所述關聯關系,得到所述待測試代碼中各所述目標特征結構的索引越界測試結果。

19、第三方面,本技術還提供了一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執行所述計算機程序時實現第一方面任一項實施例所述方法的步驟。

20、第四方面,本技術還提供了一種計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行時實現第一方面任一項實施例所述方法的步驟。

21、第五方面,本技術還提供了一種計算機程序產品,包括計算機程序,該計算機程序被處理器執行時實現第一方面任一項實施例所述方法的步驟。

22、上述索引越界測試方法、裝置、計算機設備、計算機可讀存儲介質和計算機程序產品,通過獲取待測試代碼,并獲取待測試代碼包含的至少一個目標特征結構,以及各目標特征結構對應的第一索引;目標特征結構為存在索引越界風險的特征結構;獲取待測試代碼包含的至少一個越界保護結構,并獲取各越界保護結構對應的第二索引;基于各第一索引以及各第二索引,獲取各目標特征結構與各越界保護結構之間的關聯關系;根據關聯關系,得到待測試代碼中各目標特征結構的索引越界測試結果。本實施例中,通過獲取待測試代碼,之后則可以得到待測試代碼中可能存在索引越界風險的目標特征結構,以及目標特征結構對應的第一索引,還可以得到待測試代碼包含的越界保護結構,以及越界保護結構對應的第二索引,之后則可以利用第一索引與第二索引,來構建待測試代碼中目標特征結構與越界保護結構之間的關聯關系,從而利用上述關聯關系來得到待測試代碼中各目標特征結構的索引越界測試結果,通過該方式可以避免采用內存偏移量或者基于函數調用關系來實現數組越界測試,從而可以提高索引越界測試方法的適用范圍。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 杭州市| 鄄城县| 民权县| 耒阳市| 蒙城县| 八宿县| 广汉市| 鄢陵县| 柯坪县| 婺源县| 玛曲县| 太仓市| 大关县| 清徐县| 京山县| 五家渠市| 湖北省| 秀山| 平原县| 佛坪县| 永济市| 万载县| 平果县| 永嘉县| 赤壁市| 开阳县| 平谷区| 凌海市| 乐陵市| 驻马店市| 连平县| 香格里拉县| 崇义县| 高州市| 桂平市| 临沂市| 江西省| 清丰县| 滨州市| 桐庐县| 兴化市|