[發明專利]基于上下文的代碼分析有效
| 申請號: | 200680052035.3 | 申請日: | 2006-12-28 |
| 公開(公告)號: | CN101589380A | 公開(公告)日: | 2009-11-25 |
| 發明(設計)人: | G·J·凡;M·C·范寧;S·D·桑蒂斯 | 申請(專利權)人: | 微軟公司 |
| 主分類號: | G06F17/00 | 分類號: | G06F17/00 |
| 代理公司: | 上海專利商標事務所有限公司 | 代理人: | 陳 斌 |
| 地址: | 美國華*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 上下文 代碼 分析 | ||
背景
大多數軟件被開發為大量可重用的軟件對象,它們各自被設計為執行一或 多個任務。軟件的實用性與功能以及運行該軟件的計算系統,依賴于對被編譯 或解釋以便處理器執行的源代碼的正確編碼。編碼錯誤通常引起偏離軟件的預 期功能,并且有可能影響計算機系統的其它部分(例如,其它應用程序、數據 庫、操作系統等)。這樣的編碼錯誤不僅破壞用戶有關軟件的計算體驗,而且 還會在整個計算機系統中引起不希望的效果。因此,高質量軟件的生產者花費 大量的測試和分析努力來消除其軟件中的錯誤。
然而,市場需求和編程者與設計者的創造性已經導致日益復雜但強大的軟 件。隨著軟件復雜性的增加,實現軟件所需的源代碼行數通常也增加。其直接 結果是源代碼中錯誤的可能性持續增加。因此,必須經常以各種方式(在發布 之前和之后)多次測試和分析軟件,以幫助保證軟件按預期方式運行。
在一些分析環境中,測試者開發自動化規則或測試(在本文中可互換使 用),它們驗證軟件的一或多個部分的操作。例如,規則可自動化圖形用戶界 面內輸入域值的輸入,以各種輸入參數并在各種各樣的條件下調用軟件對象, 收集產生的輸出,并且確定測試是通過還是失敗。測試者(無論是否為測試開 發者)隨后可執行測試實例,它提供正在測試的對象或目標代碼通過還是失敗 (且由此對象是否按預期方式運行)的指示。
當前,測試開發者編寫不同的規則用于不同級別的軟件驗證,即每一規則 在確定對象或代碼段通過還是失敗時執行的分析量。用于測試軟件的規則的驗 證級別依賴于無數因素而很大地變化。因此,通常在運行規則或測試實例所消 耗的時間量與徹底測試軟件的程度之間有一個折衷。具體地,生成與分析的輸 出越少,則進行測試所消耗的時間就變得越少。例如,測試開發者可編寫用于 僅測試軟件的壓力或負荷的規則。在此情形中,可忽略測試實例產生的輸出, 并且如果軟件或系統沒有崩潰,則認為對象或目標代碼已經通過。盡管該分析 形式允許快速測試軟件,但不提供對由軟件引起的所有效果的完整測定。因此, 在確定每一規則所需的驗證級別以適當地分析軟件時,通常存在許多必需的商 討與考量。
為了允許各種各樣的測試驗證級別,已經開發了代碼分析工具(例如靜態 代碼分析工具),它們為軟件開發者提供在其代碼中檢查問題和矛盾的半自動 化機制。更具體地,測試開發者用一組具有各種驗證級別的規則來填充這些工 具來分析軟件源、目標或二進制代碼,以便標識其正確性、完整性和/或質量。 這些工具一般作為通過各種配置形式控制的整體操作來完成或執行對軟件的 分析。換言之,應用于代碼的特定檢查或規則由源控制表達式(諸如#pragma)、 經由工具命令行選項或者通過在單獨的控制文件中給出的設置來啟用或禁用。 盡管這允許測試者對在開發過程中的各級處要運行什么類型的規則進行某種 程度的控制,但這樣的方法仍存在若干缺點和限制。
例如,為了適當地測試代碼,測試者(即靜態代碼分析工具的用戶)需要 對各種規則具有詳盡的了解,包括但不限于在什么級和在什么條件下應當應用 這些規則。然而,了解所有測試實例,通常超出了大多數代碼開發者的專業知 識(因為他們通常不是專業的測試開發者)。因此,測試者可能不能在適當的 時間并在適當的條件下應用規則。而且,因為這些測試在實質上通常是靜態的 (即,它們通常由來自測試者的明確表示來執行),所以在執行這些測試時存 在各種時間效率低下的情況。例如,相同的檢查可能反復運行,在過程中不適 當的接合處可能引起問題(例如,在重復地忽略或推遲它們的地方),和/或不 能在開發過程的足夠早的時間標識錯誤或故障(即,不言自明的是,標識或定 位問題的時候離開工(check?in)越遠,則要解決它的成本就越高)。因此, 典型代碼分析工具的這些和其它有關缺點經常引起大量問題,諸如未完成的工 作、用戶和開發者受挫、性能問題、未標識的錯誤和故障、時間成本等等。
簡要概述
通過本發明的示例實施例,克服了上面標識的當前代碼分析工具的不足與 缺點。例如,本文描述的實施例提供一種代碼分析工具,它通過動態地跟蹤在 其下開發代碼的分析上下文并且應用對應于當前上下文條件的規則(或其部 分)來自動管理一組預定義規則的執行,以便平衡性能考量。注意到,提供本 概述以便用簡化形式介紹將在下面詳細描述中進一步描述的一些概念。本概述 不旨在標識要求保護主題的關鍵特征或基本特征,也不旨在用于幫助確定要求 保護主題的范圍。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于微軟公司,未經微軟公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200680052035.3/2.html,轉載請聲明來源鉆瓜專利網。





