用于降低升級軟件時的不穩(wěn)定性的方法和系統(tǒng)的制作方法
【專利說明】
[0001] 對相關申請的交叉引用
[0002] 本申請與以下共同待決、共同受讓的美國專利申請相關:由Davis同步提交的,名 稱為 "CONSOLIDATION PLANNING SERVICE FOR SYSTEMS MIGRATION" 的美國專利申請 No . 13/938,061 (代理機構案號88325-870368( 137700US));由Davis同步提交的,名稱為 "MIGRATION SERVICES FOR SYSTEMS"的美國專利申請No. 13/938,066(代理機構案號 88325-870369( 137800US));由Higginson同步提交的,名稱為 "DATABASE MODELING AND ANALYSIS" 的美國專利申請No. 13/937,885(代理機構案號88325-870374( 137900US));由 Higginson同步提交的,名稱為 "AUTOMATED DATABASE MIGRATION ARCHITECTURE" 的美國專 利申請No. 13/937,868(代理機構案號88325-870373( 138000US));由Raghunathan等同步提 交的,名稱為 "CLOUD SERVICES LOAD TESTING AND ANALYSIS" 的美國專利申請No .13/937, 344(代理機構案號88325-870381 (138100US));由Raghunathan等同步提交的,名稱為 "CLOUD SERVICES PERFORMANCE TUNING AND BENCHMARKING" 的美國專利申請No .13/937, 483(代理機構案號88325-870383(138200US));由Buehne等同步提交的,名稱為"SOLUTION TO GENERATE A SCRIPTSET FOR AN AUTOMATED DATABASE MIGRATION" 的美國專利申請 No. 13/937,988(代理機構案號88325-870382( 138300US));由Buehne等同步提交的,名稱為 "ONLINE DATABASE MIGRATION" 的美國專利申請No. 13/937,545(代理機構案號88325-870410( 138400US));由Buehne等同步提交的,名稱為 "DYNAMIC MIGRATION SCRIPT MANAGEMENT" 的美國專利申請No. 13/937,486 (代理機構案號88325-870409 (138500US));以 及由Masterson等同步提交的,名稱為 "ADVANCED CUSTOMER SUPPORT SERVICES-ADVANCED SUPPORT CLOUD PORTAL"的美國專利申請No. 13/937,970(代理機構案號88325-870401 (138600US)),其中的每一個專利申請的全部公開內容以引用的方式被并入本文中。
技術領域
[0003] 本發(fā)明通常涉及數(shù)據(jù)庫,并且更具體地涉及用于提供軟件錯誤的跟蹤、維護和排 序工具的裝置和方法。
【背景技術】
[0004] 現(xiàn)代的數(shù)據(jù)庫系統(tǒng)非常復雜,其由許多組件組成并且通常被用于性能敏感的操 作。隨著軟件應用的復雜性的增大,錯誤(bug)的數(shù)量可能增大。軟件錯誤的范圍可以從具 有很小影響或沒有影響的不顯著的故障到嚴重的安全或性能缺陷。跟蹤這些錯誤以確保最 嚴重的差錯取得優(yōu)先級并且用修復或補丁及時地更新適合的系統(tǒng)是重要的。
【發(fā)明內容】
[0005] 通過使用本文描述的系統(tǒng)和方法,可以使得對軟件錯誤和與錯誤相關聯(lián)的更新的 跟蹤、劃分優(yōu)先級以及排序更可靠、更快速并且更準確。提出了使用錯誤計分和跟蹤系統(tǒng)來 評定軟件錯誤的系統(tǒng)和方法。所述系統(tǒng)和方法可以使用對錯誤的自動計分以確定錯誤的影 響。計分可以被用于對錯誤劃分優(yōu)先級,并且計分可以是可擴展和可調整的,允許方便地添 加新參數(shù),并且允許針對不同的錯誤類型、軟件或客戶對系統(tǒng)進行修改。
[0006] 在一些實施例中,用于對錯誤劃分優(yōu)先級的系統(tǒng)包括一個或多個處理器,以及與 所述一個或多個處理器通信地耦接的存儲器,所述存儲器是可由所述一個或多個處理器讀 取的,并且存儲器上存儲有一系列的指令,當所述指令被所述一個或多個處理器執(zhí)行時,使 得所述一個或多個處理器能夠通過執(zhí)行一系列步驟對軟件錯誤劃分優(yōu)先級。所述步驟可以 包括接收軟件錯誤報告,所述軟件錯誤報告可以具有描述軟件錯誤的數(shù)據(jù)部分,而所述數(shù) 據(jù)部分可以包括描述軟件錯誤的至少一種影響的信息。另一個步驟可以至少部分地基于軟 件錯誤的影響確定軟件錯誤的代碼基(code base),并且進一步接收客戶偏好,客戶偏好可 以定義一組描述客戶偏好以用于評定軟件錯誤的重要性的參數(shù)。步驟還可以包括在沒有人 為輸入的情況下計算與軟件錯誤相關的一組參數(shù)得分(score),所述一組參數(shù)得分可以量 化在客戶偏好中定義的該組參數(shù)。另外,可以執(zhí)行對所述一組參數(shù)得分的分組,將其分成第 一組和第二組,在這之后,使用第一組和第二組計算錯誤得分。具有軟件錯誤的優(yōu)先級劃分 的錯誤報告可以被生成,優(yōu)先級劃分是基于錯誤得分的。
[0007] 在一些實施例中,所述一組參數(shù)得分可以包括部署參數(shù)得分。部署參數(shù)得分可以 概括代碼基被部署的次數(shù)。所述一組參數(shù)得分還可以包括概括軟件錯誤的影響的嚴重性的 影響參數(shù)得分、概括與軟件錯誤相關的錯誤的數(shù)量的相關錯誤參數(shù)得分、以及概括代碼基 的重要性的技術參數(shù)得分??梢酝ㄟ^對第一組和第二組的參數(shù)得分取內積來計算軟件錯誤 的錯誤得分,并且優(yōu)先級劃分可以基于錯誤得分與其他錯誤的得分相比的相對值。
【附圖說明】
[0008] 參考以下附圖,可以實現(xiàn)對各種實施例的實質和優(yōu)點的進一步理解。
[0009] 圖1說明錯誤計分系統(tǒng)的實施例的框圖;
[0010] 圖2說明用于生成錯誤得分的方法的一個實施例;
[0011] 圖3說明用于確定錯誤的優(yōu)先級的方法的一個實施例;
[0012] 圖4說明用于確定軟件補丁的優(yōu)先級的方法的一個實施例;
[0013] 圖5說明支持平臺系統(tǒng)的實施例;
[0014]圖6說明計算機系統(tǒng)的實施例。
【具體實施方式】
[0015] 錯誤(bug)可以是軟件應用中的某種缺陷,其使得軟件應用的全部或某部分發(fā)生 故障或以某種意外或非預期的方式執(zhí)行。許多錯誤難以被找到并且保持隱藏直到被終端用 戶發(fā)現(xiàn)。軟件錯誤的范圍可以從具有很小影響或沒有影響的不顯著的故障到嚴重的安全或 性能缺陷。
[0016] 通常難以(如果不是不可能的)在大且復雜的系統(tǒng)中修復所有被報告的錯誤。開發(fā) 者和軟件工程師可能僅僅具有修復錯誤中小的子集的資源。軟件錯誤可能需要被劃分優(yōu)先 級以確保,與對系統(tǒng)和/或客戶來說最嚴重的差錯相對應的錯誤的子集得到修復、或首先被 修復。
[0017] 在軟件錯誤被修復后,跟蹤與錯誤相關聯(lián)的軟件更新或補丁并且對其劃分優(yōu)先級 可以是重要的。關于客戶將安裝的更新的類型,客戶可以是有選擇性的。部分地由于系統(tǒng)的 復雜性,因此軟件補丁或更新有時可能由它們自身引入新的錯誤,新的錯誤可能比原始錯 誤或它們意圖解決的差錯更嚴重。軟件更新有時需要重啟或暫停系統(tǒng)或數(shù)據(jù)庫的操作,這 可能中斷客戶的業(yè)務操作。對補丁或軟件更新劃分優(yōu)先級可以被系統(tǒng)管理員使用以決定補 丁將被應用時的時間選擇、部署的廣度、或更新是否將被部署。
[0018] 對軟件錯誤和與錯誤相關聯(lián)的更新的跟蹤、劃分優(yōu)先級、以及排序通常涉及若干 復雜的、手動的、和/或主觀的方法和系統(tǒng)。在一些情況下,錯誤得到修復的順序可以基于每 個錯誤的困難程度或復雜性。一些容易解決、具有較小影響的錯誤可以首先被修復,而其他 更嚴重的錯誤由于它們的復雜性,對它們的修復可能在時間上被開發(fā)者推遲。同樣,可以由 管理員或開發(fā)者基于個人感知到的錯誤的重要性,對一些錯誤主觀地分配高優(yōu)先級。每個 人或開發(fā)者可以具有在系統(tǒng)、軟件、或軟件的部署特性方面的不同的知識水平,從而造成不 一致的排序和優(yōu)先級劃分。例如,在一些情況下,針對具有較大數(shù)量的部署的軟件,對影響 此軟件的錯誤分配高優(yōu)先級可以是理想的。即使是一個相對低級別的差錯并且其不在任何 一個單獨系統(tǒng)上(如果被部署在大量的系統(tǒng)上)造成顯著的影響,但此錯誤可能影響許多客 戶,造成總體的較大影響。如果一個錯誤可能在任何單獨系統(tǒng)上產(chǎn)生嚴重的影響,并且此錯 誤影響的軟件具有較少的部署,則對此錯誤分配相對低的優(yōu)先級可以是理想的。例如,對于 個人來說,部署信息可能是難以準確地訪問的。在復雜的系統(tǒng)中,代碼部分、模塊、插件和/ 或類似物可能僅僅被部署在特定版本的軟件中、僅僅針對特定客戶、或可能在系統(tǒng)的其他 功能中被重新使用,這使得對錯誤的優(yōu)先級劃分的準確評估進一步復雜化。因此主要依賴 于對錯誤進行手動的、基于用戶的排序和優(yōu)先級劃分的跟蹤工具可能具有不一致且不完全 的排序。
[0019] 在一個方面,提出了用于對軟件錯誤計分和劃分優(yōu)先級的方法。該方法可以至少 部分地使用對錯誤的自動計分。該方法可以包括從一個或多個數(shù)據(jù)庫接收數(shù)據(jù)以確定軟件 的部署的范圍、錯誤的影響、錯誤的歷史等。該方法是可擴展和可定制的,允許方便地添加 新參數(shù)以用于計分。可以針對不同的錯誤類型、軟件版本、客戶等,對錯誤計分和優(yōu)先級劃 分進行修改。
[0020] 對于準確地跟蹤和評定不同類型的軟件錯誤、影響不同的客戶和軟件包的錯誤來 說,錯誤計分方法以及相關聯(lián)的系統(tǒng)的定制性和可擴展性是重要的。例如,一些軟件部署可 能總是被包含在私有網(wǎng)絡或私有云環(huán)境中。在這樣的部署中,由于軟件可能永遠不會暴露 于惡意的外界中,因此客戶可能發(fā)現(xiàn)損害軟件的安全性的錯誤或軟件差錯不是那么嚴重。 這些客戶可能發(fā)現(xiàn)影響系統(tǒng)性能的錯誤最嚴重??蓴U展的錯誤計分和跟蹤工具可以是客戶 或開發(fā)者可定制的,允許對軟件錯誤進行定制的優(yōu)先級劃分、計分等。錯誤計分和跟蹤工具 可以針對每個錯誤提供多于一個的計分和排序。每個錯誤可以與多于一個的得分、優(yōu)先級、 排序等相關聯(lián)。每個錯誤可以與多于一個的得分相關聯(lián),其中每個得分可以對應于不同的 軟件版本、不同客戶、關于錯誤的假定、軟件開發(fā)者等。
[0021] 軟件錯誤計分和跟蹤工具還可以被用于對與每個錯誤相關的補丁和軟件更新進 行計分和跟蹤。通過至少部分地使用本文描述的方法,每個軟件補丁或軟件更新可以被計 分或被劃分優(yōu)先級。依賴于客戶、軟件版本、部署的類型等,每個補丁和軟件更新可以具有 多于一個的得分、排名等。在補丁被部署給每個客戶時,針對每個補丁的得分或優(yōu)先級可以 自動地與補丁相關聯(lián),以使得每個客戶可以分析僅僅與客戶自身的系統(tǒng)、偏好、部署等相關 的優(yōu)先級?;谂判?,客戶可以做出關于安裝補丁的時間選擇的他們自身的決定。
[0022] 在一些實施例中,每個錯誤的多個得分和排序可以被組合以提供一個針對錯誤的 影響的總體得分。所述一個總體得分可以被將要修復錯誤的軟件開發(fā)者或管理員使用,以 評估軟件差錯在多個客戶、部署、軟件版本等上的影響和優(yōu)先級。
[0023] 本文中使用的術語"錯