[發明專利]一種無線傳感器代碼檢測的方法有效
| 申請號: | 201310317348.9 | 申請日: | 2013-07-25 |
| 公開(公告)號: | CN103336743A | 公開(公告)日: | 2013-10-02 |
| 發明(設計)人: | 劉云浩;連朔;趙季中;何源;王繼良 | 申請(專利權)人: | 清華大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 王瑩 |
| 地址: | 100084 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 無線 傳感器 代碼 檢測 方法 | ||
技術領域
本發明涉及無線傳感器網絡領域,尤其涉及一種無線傳感器代碼檢測的方法。
背景技術
隨著無線通信、傳感器制造和低功耗嵌入式的日益成熟,大規模無線傳感器網絡技術迅速發展并被應用到諸多領域。一個典型的無線傳感器網絡由大量廉價傳感器節點組成,每個無線傳感器節點包括傳感器模塊、處理器模塊、無線通信模塊和能量供應模塊,這些傳感器節點能夠在不同的環境中迅速被部署,并通過無線自組織的形式組網。傳感器節點感知的數據通過無線通信以多跳中繼方式匯集到數據處理中心,使人們可以不受時間、地點的限制,實時獲取大量信息。與傳統的網絡設備相比,無線傳感器網絡擁有大量的各種類型的傳感器節點。這種網絡具有無中心節點、自組織方式組網、輕量型的多、跳路由、網絡頻寬低、無線通信半徑和電池容量有限等特點。這些特點為其在復雜多變的環境中的大規模使用帶來了很大的挑戰,為了保證系統的正常運行,需要對無線傳感器代碼進行檢測。
在現有技術中,代碼檢測的方法主要有靜態分析方法和動態分析方法。靜態分析方法主要是檢測代碼的編寫規范,分析代碼的復雜度、可能存在的隱患等,靜態分析方法不需要運行待測代碼。動態分析方法是通過運行被測程序檢查運行結果與預期結果的差異,主要是檢測代碼中諸如內存泄露、數據訪問越界等錯誤。動態分析方法需要運行待測代碼,執行到的代碼存在的問題有可能被發現,沒有執行到的代碼即使存在問題也發現不了。這種檢測方法的測試輸入對檢測結果影響很大,如果測試輸入不夠豐富,很多的錯誤是發現不了的。
上述兩種方法沒有考慮到實際運行的網絡環境對代碼的影響,使用上述兩種方法進行無線傳感器代碼檢測時,會有很多由于實際網絡環境與測試網絡環境的不同而隱藏的錯誤不能被檢測出來。
發明內容
本發明實施例提供了一種無線傳感器代碼檢測的方法,能夠結合實際網絡特性對無線傳感器網絡代碼進行檢測,能夠大大增加檢測出的由于實際網絡環境與測試網絡環境的不同而隱藏的錯誤的數量。
本發明實施例提供了一種無線傳感器代碼檢測的方法,包括:
在待測代碼中插入初始化檢測代碼,構成初始化后的代碼;
將所述初始化后的代碼通過編譯鏈生成一個虛擬可執行文件;
用模擬器載入所述虛擬可執行文件和虛擬網絡配置文件,生成虛擬狀態空間;
在所述虛擬狀態空間中用隨機行走算法進行代碼檢測,如果出現錯誤,輸出錯誤信息。
進一步地,該方法進一步包括:設置虛擬空間庫,并在虛擬空間庫中設置不同屬性分別對應的初始化檢測代碼;
所述插入初始化檢測代碼之前,進一步包括從虛擬空間庫中提取出所述待測代碼的屬性對應的初始化檢測代碼。
進一步地,所述將所述初始化后的代碼通過編譯鏈生成一個虛擬可執行文件,包括:
將所述初始化后的代碼通過nesc編譯器編譯成c文件;
將所述c文件通過本地編譯連接包裝成一個虛擬可執行文件。
進一步地,該方法進一步包括:根據實際網絡環境生成并更新所述虛擬網絡配置文件,所述虛擬網絡配置文件包括節點的id、節點的數量、網絡拓撲結構。
進一步地,所述在待測代碼中插入初始化檢測代碼之前,進一步包括提取出所述待測代碼的屬性的取值范圍;
所述在所述虛擬狀態空間中用隨機行走算法進行代碼檢測,如果出現錯誤,輸出錯誤信息包括:
S1:在所述虛擬狀態空間中用深度優先搜索算法搜索下一步可執行的事件,當搜索到可執行的事件后,將搜索到的事件放入準備狀態空間集合中并更新準備狀態空間集合,從準備狀態空間集合中隨機選取一個事件執行,進入下一個狀態;
S2:進入一個狀態后,當到達預先設置的檢測位置時,判斷待測代碼的屬性值是否在所述待測代碼的屬性的取值范圍之內,如果不在,輸出錯誤信息檢測結果,如果到達停止檢測條件,則結束當前流程,否則返回步驟S1。
進一步地,所述判斷待測代碼的屬性值是否在所述待測代碼的屬性的取值范圍之內包括:
判斷待測代碼的屬性值在預先設定的時長內是否均不在所述待測代碼的屬性的取值范圍之內;
所述錯誤信息檢測結果包括:出錯的節點的id,出錯的事件的路徑。
進一步地,所述在所述虛擬狀態空間中搜索下一步可執行事件之前,進一步包括設置最大步長;
所述停止檢測條件包括:
執行的事件達到所述最大步長;或
已經遍歷了所有的狀態。
進一步地,所述隨機行走算法遵循的規則包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于清華大學,未經清華大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310317348.9/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種澡盆
- 下一篇:檢測Linux系統中多任務沖突的方法與裝置





