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

關于對訪問請求的意外響應驗證計算機程序的方法和裝置的制作方法

文檔序號:6438224閱讀:152來源:國知局
專利名稱:關于對訪問請求的意外響應驗證計算機程序的方法和裝置的制作方法
技術領域
本公開一般涉及計算機程序的驗證,并且特別涉及可在計算機程序的操作期間從第一主機遷移到第二主機的計算機程序的測試。
背景技術
計算機化設備控制幾乎我們生活的每個方面-從寫入文檔到控制交通信號燈。然而,計算機化設備是易于出現故障的,因此需要應當發現故障的測試階段。在設計計算機化設備時,測試階段被視為最困難的任務之一。由于故障的結果可能是災難性的,因此不發現故障的成本可能是巨大的。例如,故障會導致依賴于計算機化設備的指定行為的人受傷。另外,硬件或固件中的故障修理起來是成本昂貴的,因為維修它需要召回計算機化設備。由此,計算機化設備的許多開發者投入相當一部分開發周期來發現計算機化設備的錯誤行為。計算機程序可由諸如計算機服務器的主機操作。當今,云計算是被很好地建立和利用的計算范例。在云計算中,計算機程序可由諸如服務器和類似計算機器的網絡的處理設備的“云”來執行。在通過云執行計算機程序期間,計算機程序可從第一主機遷移到第二主機。例如,計算機程序可由虛擬機執行。虛擬機可首先由第一服務器處理,然后虛擬機可被遷移到第二服務器以繼續執行計算機程序。服務器和其它計算機器被視為主機。主機可負責向虛擬機并因此向計算機程序提供資源。資源可以是例如空閑存儲器、共享存儲器、存儲空間、對偽隨機發生器的訪問或對時鐘的訪問等。

發明內容
公開的主題的一個示例性實施例是一種計算機實現的方法,該方法包括通過由計算機化設備操作計算機程序來測試計算機程序,其中,計算機化設備操作用于向計算機程序提供對資源的訪問;截取計算機程序對資源的訪問請求,其中,所述截取包含確定要向計算機程序提供的響應;和向計算機程序提供確定的響應,而不是來自資源的對所述請求的響應。公開的主題的一個示例性實施例是一種具有處理器的計算機化裝置,該裝置包括操作用于操作計算機程序的測試模塊,其中,測試模塊被配置成向計算機程序提供對資源的訪問;操作用于截取計算機程序對資源的訪問請求的截取器,其中,截取器包含操作用于確定要向計算機程序提供的響應的響應確定器,并且,截取器進一步操作用于向計算機程序提供確定的響應,而不是來自資源的對所述請求的響應。公開的主題的一個示例性實施例是一種計算機程序產品,該產品包含計算機可讀介質;用于通過由計算機化設備操作計算機程序來測試計算機程序的第一程序指令,其中,計算機化設備操作用于向計算機程序提供對資源的訪問;用于截取計算機程序對資源的訪問請求的第二程序指令,其中,第二程序指令包含用于確定要向計算機程序提供的響應的第三程序指令;和用于向計算機程序提供確定的響應,而不是來自資源的對所述請求的響應的第四程序指令;其中,第一、第二、第三和第四程序指令被存儲在所述計算機可讀介質上。


結合相應或類似附圖標記表示相應或類似部件的附圖閱讀以下詳細描述,將更完全地理解和認識本公開的主題。除非另外指出,附圖提供公開的各示例性實施例或方面并且不限制公開的范圍。在這些附圖中,圖I示出根據主題的一些示例性實施例,使用公開的主題的計算機化環境。圖2示出根據公開的主題的一些示例性實施例的裝置的框圖。圖3示出根據公開的主題的一些示例性實施例的方法的流程圖。圖4示出根據公開的主題的一些示例性實施例的云計算環境。圖5示出根據公開的主題的一些示例性實施例的抽象模型層。
具體實施例方式以下參照根據主題的實施例的方法、裝置(系統)和計算機程序產品的流程圖和/ 或框圖描述公開的主題。可以理解,可通過計算機程序指令實現流程圖和/或框圖的各塊和流程圖和/或框圖中的塊的組合。這些計算機程序指令可被提供給通用計算機、特殊用途計算機或其它可編程數據處理裝置的處理器以制造機器,使得通過計算機或其它可編程數據處理裝置的處理器執行的指令產生用于實現在流程圖和/或框圖塊中規定的功能/作用的部件。這些計算機程序指令也可被存儲在計算機可讀介質中,該計算機可讀介質可引導計算機或其它可編程數據處理裝置以特定方式起作用,使得存儲在計算機可讀介質中的指令產生包含實現在流程圖和/或框圖塊中規定的功能/作用的指令部件的制造物品。計算機程序指令也可被加載到計算機或其它可編程數據處理裝置,以引起在計算機或其它可編程裝置上執行一系列操作步驟,以產生計算機實現的處理,使得在計算機或其它可編程裝置上執行的指令提供用于實現在流程圖和/或框圖塊中規定的功能/作用的處理。公開的主題應對的一種技術問題是測試由云操作時的計算機程序。另一技術問題是測試主機之間的遷移是否會使計算機程序的操作無效。另一技術問題是通過在單個主機上執行計算機程序或由另一非云處理系統執行計算機程序,關于云處理模式測試計算機程序。另一技術問題是關于不與云計算環境特別有關的可能遷移測試計算機程序。一種技術方案是模擬來自主機的對計算機程序的請求的資源響應。模擬的響應可被配置成模擬會在發生遷移的情況下發生的響應。另一技術方案是截取資源請求并提供替代的模擬響應。再一技術方案是截取引向主機的時鐘的時間請求,并且模擬替代的響應。再一技術方案是通過隨機地選擇事先提供的響應的預定范圍內的響應來模擬替代的響應。例如,在事先提供時間06:32:16的情況下,模擬響應可以是距離事先提供的時間在I分鐘范圍內的隨機時間(即,06:31:16和06:33:16之間的時間)。利用公開的主題的一種技術效果是模擬遷移的技術效果,而不必在測試階段執行實際遷移。測試環境可以是相對簡單的處理環境,并且不需要是云處理環境。另一技術效果是模擬在單個主機環境中預料不到但可能在云處理環境中發生的資源響應。例如,當時間是嚴格單調增加的函數時,第一提供時間必須早于在后面提供的第二提供時間。然而,在云計算環境中,由于可能基于第一時鐘來提供第一時間并且可能基于第二時鐘來提供第二時間,因此,可能會違反該提供的時間的固有特征。當通過單個主機執行計算機程序時,公開的主題提供了模擬這種情形的技術效果。另一技術效果是模擬其中返回的時間不由嚴格單調增加的函數表示的計算機程序的執行。另一技術效果是關于時鐘前跳,測試計算機程序的操作。在一些示例性實施例中,由于時鐘前跳,超時操作可被調用,并且可以測試計算機程序對于超時值的敏感性。現在參照示出根據主題的一些示例性實施例的使用公開的主題的計算機化環境的圖I。計算機化環境100可包含計算機程序110。計算機程序110可以是操作用于操作也被稱為主機的諸如處理器的處理機器的一組指令。可以在計算機可讀介質上嵌入計算機程序110。可通過云105來操作計算機程序110。云105可包含多個諸如主機106的主機。 可以在諸如LAN、WAN、WiFi、WiMax、Intetnet、intranet、它們的組合或其它通信網絡的計算機網絡中連接云105的主機。在一些示例性實施例中,計算機程序110可與云105的特定實現細節無關。例如,計算機程序110可與云105的主機的數量、它們的使用硬件的類型、 或連接主機的方式等無關。在一些示例性實施例中,可通過使用虛擬機(VM)(未示出)來執行計算機程序110。VM可被用于從計算機程序110提取實現細節。VM可能能夠被云105 執行。在計算機程序110的執行期間,云可從一個主機向另一個主機遷移VM。計算機程序 110可能不知道發生這種事件。在一些示例性實施例中,在不使用VM的示例性實施例中也會發生遷移。在一些示例性實施例中,遷移可包含取得分配用于VM的存儲器的快照、用所述快照設定另一主機的存儲器并釋放分配的存儲器。當存儲器保持計算機程序110的當前狀態時,復制它可被視為將計算機程序110從一個主機移動到另一個主機。注意,在特定狀態 (例如,文件處理器或信號量等)下,可能需要諸如設定操作系統(OS)實體的附加操作。本領域技術人員能夠將計算機程序110(通過或不通過虛擬機)從云中的一個主機遷移到云中的另一個主機。注意,也可在非云計算環境中發生遷移。例如,程序的快照可被取得并在后面被用于在重新啟動之后在同一機器中繼續計算機程序。作為另一例子,快照可被用于在另一機器(未必是云的一部分)上繼續計算機程序的操作。在一些示例性實施例中,驗證裝置120可被配置成測試計算機程序110的執行。驗證裝置120可被配置成執行諸如保持在測試基準中的計算機程序110的測試。測試可定義諸如來自用戶的輸入或來自執行計算機程序110的環境的輸入等的對計算機程序110的激勵事件。驗證裝置120可包含向執行的計算機程序110提供計算能力和/或其它資源的執行主機130。在一些示例性實施例中,執行主機130可以是諸如106的單個主機。在其它示例性實施例中,執行主機130可以是諸如105的云。對于公開主題的目的,執行主機130的實現細節一般不是特別重要的。在一些示例性實施例中,用戶140可通過諸如終端、顯示器、鍵盤或輸入設備等的人機界面(MMI) 145與驗證裝置120進行交互。用戶140可關于計算機程序110定義使用的測試。用戶140可向驗證裝置120提供規則、命令、偏好和參數。用戶140可觀察驗證裝置120的輸出。基于所述輸出,用戶140可確定設計新的測試或修改測試(或者,在基于生成的測試的情況下,修改用于生成測試的測試模板)等。用戶140可進一步識別故障、報告識別的故障和/或校正識別的故障。現在參照示出根據公開的主題的一些示例性實施例的裝置的圖2。諸如圖I的120 的裝置200可被配置成測試諸如圖I的110的計算機程序的功能操作。在一些示例性實施例中,測試模塊210可被配置成操作諸如圖I的110的計算機程序。測試模塊210可被配置成通過執行程序來便利計算機程序的測試。在一些示例性實施例中,測試程序被配置成訪問執行計算機程序的主機的資源。一些示例性資源可以是性能統計(例如,空閑存儲空間、執行的處理的數量或CPU使用率等)、與主機相關聯的存儲器的存儲位置或時鐘等。在一些示例性實施例中,測試模塊210操作用于測試當計算機程序在云處理環境中執行時的操作。在一些示例性實施例中,測試模塊210可操作用于在主機(或多個主機)上執行測試程序并向主機提供與測試計算機程序相關聯的適當激勵。激勵的非詳盡列表可包含 對計算機程序提供的輸入或諸如線程的并行實體的調度等。在一些示例性實施例中,訪問識別器220可被配置成識別計算機程序對資源的訪問請求。訪問識別器220可通過向資源請求添加掛鉤,諸如例如掛到系統呼叫請求上,來識別訪問。在一些示例性實施例中,訪問識別器220可通過回顧計算機程序的程序代碼并且識別有關功能呼叫的調用來識別訪問。在一些示例性實施例中,訪問識別器220可被配置成在通過測試模塊210執行計算機程序之前預處理計算機程序。在預處理期間,可以識別操作用于訪問資源的功能呼叫,并且,可使用其在執行過程中的調用來識別訪問請求。在一些示例性實施例中,代碼插裝器225可被用于插裝(instrument)操作用于與函數的調用相關地被調用的代碼。例如,代碼可被插裝在函數的開頭。作為另一例子,可以使用宏定義(例如,C語言中的#定義命令)來用插裝的代碼的調用替代函數引用。在一些示例性實施例中,諸如在源代碼不可用(即,“黑箱”的測試)的情況下,可關于計算機程序的二進制表示來執行插裝。可在與執行諸如例如調用系統引用或應用編程界面(API)等的訪問請求相關聯的部分中插裝二進制碼。本領域技術人員能夠以另外和替代的方式來實現訪問識別器220的識別。在一些示例性實施例中,可由訪問識別器220識別調用諸如C時間庫的函數的操作用于訪問時鐘并返回時間的函數。在一些示例性實施例中,代碼插裝器225可操作用于用諸如與截取器230相關聯的替代函數來替代對函數的函數引用,將在下面進一步描述這一點。在一些示例性實施例中,截取器230可操作用于截取諸如由訪問識別器220識別的訪問請求,并且提供其確定的響應。響應可由響應確定器240來確定。可通過使用由代碼插裝器225插裝的插裝代碼來執行訪問請求的截取。截取器230可操作用于在訪問或不訪問執行主機的資源的情況下提供響應。例如,在針對機器的時鐘的訪問請求的情況下,可以在訪問或不訪問時鐘本身的情況下返回時間。確定的響應可以是與時鐘返回的時間不同的時間。在一些示例性實施例中,響應確定器240可被配置成確定對訪問請求的響應。在一些示例性實施例中,響應確定器240可確定隨機響應。在一些示例性實施例中,響應確定器240可基于先前提供的響應來確定響應。在一些示例性實施例中,響應確定器240可操作用于保持提供的響應并利用它們用于將來的響應確定。在一些示例性實施例中,先前提供的響應可被用作基準值,并且,確定的響應可以是處于基準值的預定范圍內的值。所述范圍可由諸如圖I的140的用戶確定,并且可選地使用諸如205的輸入模塊被提供給裝置200。 所述范圍會受到各種附加因素的影響。作為例子,考慮提供響應“時間”的資源“時鐘”。確定的時間可基于作為基準點的先前提供的時間。確定的時間可在距離先前的響應兩分鐘的范圍內。在一個示例性實施例中,所述范圍會受到自先前的響應經過的時間的影響。在一些示例性實施例中,可通過訪問實際資源(例如,主機的時鐘)來確定諸如例如第一響應的一些確定的響應。在一些示例性實施例中,響應確定器240可操作用于提供在先前提供的時間之前的時間。由于時間是嚴格單調增加的函數,因此,在非云計算環境中,這種響應一般不是有效響應。然而,由于可由第一主機的第一時鐘提供第一響應,而可由第二主機的第二時鐘提供第二響應,因此,可在云計算環境中發生這種響應。在一些示例性實施例中,響應確定器240可操作用于提供時間,使得該時間和先前提供的時間之間的時間差長于提供先前提供的時間和該時間之間的實際時間差。以這種方式,可模擬時鐘的前跳。作為替代方案,這可被用于模擬執行計算機程序的計算機的操作的緩慢執行的一些方面。在一些示例性實施例中,計算機程序可響應于超時值,并且,提供的時間可被用于測試當達到超時值時計算機程序的操作。在一些示例性實施例中,計算機程序可固有地假定操作的近似定時。例如,由于計算機程序的程序編制員假定在預定時間量內將完成一些并行操作,因此,可在所述預定時間量內調用睡眠命令。在一些示例性實施例中,響應確定器240可訪問時鐘以確定當前時間。確定的時間可以是從當前時間在至少預定持續時間之后的時間。例如,在當前時間為09:10:20并且預定持續時間為I分鐘的情況下,確定的時間可以為09:11:22,09:20:00,10:00:00或 23:00:00等。在一些示例性實施例中,除了最小偏移時間或者作為其替代,可預定最大偏移時間。例如,時間可被偏移2分鐘的最小偏移和10分鐘的最大偏移。在一些示例性實施例中,裝置200可被配置成響應于第一請求而提供當前時間,并且響應于連續請求而提供根據本段的時間,由此提供具有快速時鐘的模擬。快速時鐘可被明顯變快(例如,每秒快速時鐘跳過十秒)。在一些示例性實施例中,由于兩個連續時間請求之間的報告的時間間隔被報告比實際的更長/更短,因此,響應提供了通過慢或快處理裝置執行計算機程序的模擬。 換句話說,在一個時間周期內實際執行的若干指令被報告為在更短/更長的時間周期內執行。在一些示例性實施例中,隨機化模塊245可被用于以隨機或偽隨機方式來確定響應。隨機化模塊245可被用于確定基準值的預定范圍內的響應。在一些示例性實施例中,裝置200可包括處理器202。處理器202可以是中央處理單元(CPU)、微處理器、電子電路或集成電路(IC)等。處理器202可被用于執行裝置200 或其任意子部件所需的計算。在公開的主題的一些示例性實施例中,裝置200可包括輸入/輸出模塊(1/0)205。 I/O模塊205可被用于向諸如圖I的140的用戶提供輸出并從其接收輸入。
在一些示例性實施例中,裝置200可包括存儲設備207。存儲設備207可以是硬盤驅動、閃存盤、隨機存取存儲器(ROM)或存儲器芯片等。在一些示例性實施例中,存儲設備207可保持操作用于使處理器202執行與裝置200的任意子部件相關聯的動作的程序代碼。在一些示例性實施例中,存儲設備207可保持先前提供的響應。現在參照示出根據公開的主題的一些示例性實施例的方法的流程圖的圖3。雖然圖3特別地參照其中訪問的資源是返回時間的時鐘的例子,但公開的主題不限于該例子。在步驟300中,獲得要測試的計算機程序。可獲得計算機程序的二進制表示。可獲得源代碼表示。可通過諸如圖2的205的輸入模塊獲得計算機程序。在步驟310中,可由計算機化設備執行所述計算機程序。所述計算機程序可出于測試其操作的目的而被執行。所述計算機程序可由諸如圖2的210的測試模塊來執行和測試。在步驟320中,可識別對時鐘的訪問請求。可由諸如圖2的220的訪問識別器執行識別。在一些示例性實施例中,可通過預處理計算機程序或通過在執行計算機程序之前用有關代碼插裝計算機程序等來實現識別。在步驟330中,可以截取訪問請求。在一些示例性實施例中,可截取訪問請求并可能或者可不訪問時鐘。在一些示例性實施例中,可通過執行由諸如圖2的225的代碼插裝器插裝的代碼來截取訪問請求。可由諸如圖2的230的截取器執行截取。在步驟340中,可確定響應于訪問將被提供的時間。可由諸如圖2的240的響應確定器確定時間。可將時間提供給計算機程序。在執行確定并提供確定的時間之后,根據公開的主題,可識別并響應于附加訪問請求。在一些示例性實施例中,確定要提供的時間包含步驟342和344。在步驟342中,可獲得先前提供的時間。可從諸如圖2的207的存儲設備獲得所述時間。在步驟344中,可隨機地確定先前提供的時間之前的時間。可通過使用諸如圖2 的245的隨機化模塊來執行確定。確定的時間可早于先前提供的時間,并因此可使返回時間是嚴格單調增加的函數的假定無效,這種假定在云計算環境中可能是不正確的。確定的時間可被確定,以便提供長于在提供兩個時間值之間實際經過的時間的該時間和先前提供的時間之間的時間差。在一些示例性實施例中,確定要提供的時間包含步驟346和348。在步驟346中,可以與步驟342類似的方式獲得先前提供的時間。在步驟348中,可確定先前提供的時間的預定范圍內的隨機時間。可通過使用諸如圖2的245的隨機化模塊來確定隨機時間。預定范圍可以是由諸如圖I的140的用戶確定的范圍。在一些示例性實施例中,在執行計算機程序的充分測試之后(例如,基于覆蓋度量或QA成員的確定等),計算機程序可被視為“是安全的”以被加載到云上以在其上運行。 在一些示例性實施例中,云的管理權可能禁止加載沒有經過充分測試的計算機程序。公開的主題可被用作在將計算機程序加載到云上之前執行的單獨測試或附加測試。僅為了闡明公開提供了以下例子,并且,該例子不應被解釋為限制公開的主題的范圍。考慮以下代碼片段
time I = gettime ();time2 = gettime ();timersub (timel, time2, &diff);assert (diff. tv_sec > = 0);這里,timersub是操作用于通過從“time2”減去“timel”來確定“timel”和 “time2”之間的時間差并將時間差賦予“diff”的函數。由于“timel”基于在與設定“time2” 相關聯的時鐘讀取之前執行的時鐘讀取被設定,因此,當在非云計算環境中測試時,該代碼片段是穩定的。然而,在云計算環境中,“timel”可包含“time2”之后的時間,因此斷言可能失敗。公開的主題可被用于測試該代碼片段,并且確定在一些情形中,在云計算環境中, “time2”即使在后面被設定也可以是“timel”之前的時間。公開的主題可被用于通過執行計算機程序、識別對資源的訪問請求(例如,調用函數“gettime”)、截取訪問請求并確定要依次提供的響應,來測試包含該代碼片段的計算機程序。可以理解,雖然本公開包括云計算的詳細描述,但是這里引用的教導的實現不限于云計算環境。而是本發明的實施例能夠結合現在已知或者以后開發的任何其它類型的計算環境被實現。為了方便,公開以下的定義,以提供云計算環境的徹底理解。所述定義源自Peter Mell 和 Tim Grance 在 2009 年 10 月 7 日提交的“Draft NIST Working Definition of Cloud Computing”,該文件在這里提交的IDS中被引用并且其復本作為附件提交。云計算是對可配置計算資源(例如,網絡、網絡帶寬、服務器、處理、存儲器、存儲、 應用、虛擬機和服務)的共享池,實現方便的按需網絡訪問的服務傳輸模型,所述可配置計算資源可以通過最小管理工作或與服務提供者的交互被迅速提供和釋放。該云模型可包含至少五種特性、至少三種服務模型和至少四種部署模型。特性如下按需自服務云消費者可以在不需要與服務提供者進行人員交互的情況下,根據需要自動地單方面地提供諸如服務器時間和網絡存儲的計算能力。寬網絡訪問在網絡上可用,并且通過促進異構薄或厚客戶機平臺(例如,移動電話、膝上型計算機和PDA)的使用的標準機構被訪問。資源成池提供者的計算資源被成池以使用多占用者模型來服務多個消費者,根據需要動態地分配和再分配不同的物理和虛擬資源。存在這樣一種位置獨立性的感覺,即, 消費者一般在提供的資源的確切位置上沒有控制或知識,但是能夠在更高的抽象水平上規定位置(例如,國家、州或數據中心)。迅速彈性在一些情況下可以自動地、迅速地并且彈性地提供能力,以迅速地標出并且迅速地釋放以迅速地標入。對于消費者,可用于提供的能力常常看起來是不受限制的, 并且,并且可以在任何時間以任意的量被購買。測量服務云系統通過在適于服務類型(例如,存儲、處理、帶寬和活動用戶帳戶) 的一些抽象水平上平衡計量能力,自動地控制和優化資源使用。可以監視、控制和報告資源使用,從而對于利用服務的提供者和消費者兩者提供透明性。服務模型如下
作為服務的軟件(SaaS):提供給消費者的能力是使用在云基礎結構上運行的提供者的應用。可通過諸如網絡瀏覽器(例如,基于web的電子郵件)的薄客戶機界面從各種客戶機設備訪問所述應用。消費者不管理或控制包含網絡、服務器、操作系統、存儲器或者甚至單個應用能力的底層云基礎結構,有限的用戶特殊應用配置設定可能是例外。作為服務的平臺(PaaS):提供給消費者的能力是將消費者創建的或使用由提供者支持的編程語言和工具創建的獲取應用部署到云基礎結構上。消費者不管理或控制包含網絡、服務器、操作系統或存儲器的底層云基礎結構,但對于部署的應用和宿主環境配置的應用具有控制。作為服務的基礎結構(IaaS):提供給消費者的能力是提供消費者能夠部署和運行可包含操作系統和應用的任意軟件的處理、存儲、網絡和其它基礎計算資源。消費者不管理或控制底層云基礎結構,但對于操作系統、存儲、部署的應用具有控制,并可能對于選擇聯網部件(例如,主機防火墻)具有有限控制。部署模型如下私人云云基礎結構被操作單獨用于一個組織。可由組織或第三方管理它,并且可存在應急或備用設備。社區云云基礎結構由幾個組織共享,并且支持具有共享關注(例如,任務、安全需要、政策和符合性考慮)的特定社區。可由組織或第三方管理它,并且可存在應急或備用設備。公共云使得云基礎結構可用于一般公共或大的工業組并且由出售云服務的組織擁有。混合云云基礎結構是保持唯一實體但通過實現數據和應用便攜性的標準化或私有技術接合在一起的兩個或更多個云(私人、社區或公共)的合成物(例如,用于云之間的負載均衡的云突發)。云計算環境是通過關注無國籍、低耦合、模塊性和語義互用性取向的服務。本質上,云計算環境是包含互連節點的網絡的基礎結構。現在參照示出諸如圖I的105的示意性云計算環境50的圖4。如所示的那樣,云計算環境50包含一個或更多個云計算節點10,通過所述云計算節點,諸如例如個人數字助理(PDA)或蜂窩式電話54A、臺式計算機54B、膝上型計算機54C和/或車載計算機系統54N 的由云消費者使用的本地計算設備可相互通信。節點10可相互通信。在一個或更多個諸如以上描述的私人、社區、公共或混合云的網絡或者它們的組合中,它們可以在物理上或在虛擬上被分組(未示出)。這允許云計算環境50提供基礎結構、平臺和/或軟件作為云消費者不需要在本地計算設備上保持資源的服務。可以理解,圖4所示的計算設備54A N 的類型僅出于解釋的目的,并且,計算節點10和云計算環境50可在任意類型的網絡和/或網絡可尋址連接(例如,通過使用web瀏覽器)上與任意類型的計算機化設備通信。現在參照圖5,示出由云計算環境50(圖4)提供的一組功能抽象層。應當事先理解,圖5所示的部件、層和功能僅出于解釋的目的,并且,本發明的實施例不限于此。如所示的那樣,提供以下的層和相應的功能硬件和軟件層60包含硬件和軟件部件。硬件部件的例子包含主計算機,一個例子是IBM zSeries 系統;基于Rise(精簡指令集計算機)體系結構的服務器,一個例子是IBM pSeries 系統;ibm xSeries 系統;iBMBladeCenter 系統;
存儲設備;網絡和聯網部件。軟件部件的例子包含網絡應用服務器軟件,一個例子是 IBM WebSphere 應用服務器軟件;和數據庫軟件,一個例子是IBMDB2 數據庫軟件。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere 和 DB2 是在世界范圍內的許多司法地域中注冊的國際商業機器公司的商標)。虛擬化層62提供可從中提供以下例子的虛擬實體的抽象層虛擬服務器虛擬存儲器;虛擬網絡,包含虛擬私人網絡;虛擬應用和操作系統;以及虛擬客戶機。在一個例子中,管理層64可提供以下描述的功能。資源提供提供用于在云計算環境內執行任務的計算資源和其它資源的動態供應。計量和定價提供當在云計算環境內利用資源時的成本跟蹤,以及消費這些資源的結算或計價。在一個例子中,這些資源可包含應用軟件許可。安全提供對于云消費者和任務的身份驗證以及對于數據和其它資源的保護。用戶門戶向消費者和系統管理員提供對云計算環境的訪問。服務水平管理提供云計算資源分配和管理,使得滿足需要的服務水平。服務水平協定(SLA)計劃和實現根據SLA提供預期未來需要的云計算資源的預安排和供應。工作負載層66提供可利用云計算環境的功能的例子。可從該層提供的工作負載和功能的例子包含地圖和導航;軟件開發和生命周期管理;虛擬教室教育傳輸;數據分析
處理;事務處理等。圖中的流程和框圖示出根據本發明的各種實施例的系統、方法和計算機程序產品的可能實現的體系結構、功能和操作。在這一點上,流程圖或框圖中的各塊可表示包含用于實現規定的邏輯功能的一個或更多個可執行指令的模塊、段或代碼部分。還應注意,在一些替代性實現中,在塊中注明的功能的次序可以與在圖中注明的次序不同。例如,根據包含的功能,連續表示的兩個塊事實上可被基本上同時執行,或者,各塊有時可以以相反的次序被執行。還應注意,可通過執行規定的功能或作用的基于特殊用途硬件的系統或特殊用途硬件和計算機指令的組合,實現框圖和/或流程圖的各塊和框圖和/或流程圖的各塊的組合。這里使用的術語僅出于描述特定的實施例的目的,并且不是要限制本發明。如這里使用的那樣,除非上下文清楚地另外表示,否則,單數形式“一個”、“一種”和“該”也要包含多數形式。還應理解,在本說明書中使用的術語“包括”和/或“包含”規定陳述的特征、 整數、步驟、動作、要素和/或部件的存在,但不排除一個或更多個其它的特征、整數、步驟、 動作、要素、部件和/或它們的組的存在或添加。本領域技術人員可以理解,公開的主題可體現為系統、方法或計算機程序產品。因此,公開的主題可采取完全硬件實施例、完全軟件實施例(包含固件、駐留軟件、微代碼等) 或組合軟件和硬件方面的實施例,它們在這里均可被統稱為“電路”、“模塊”或“系統”。并且,本發明的方面可采取在具有在介質中體現的計算機可用程序代碼的表現的任何可接觸知介質中體現的計算機程序產品的形式。可以利用一個或更多個計算機可用或計算機可讀介質的任意組合。計算機可用或計算機可讀介質可例如為但不限于電子、磁、光學、電磁、紅外或半導體系統、裝置或設備或傳播介質。計算機可讀存儲介質的更具體的例子(非詳盡的列表)會包含以下方面具有一個或更多個導線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦可編程只讀存儲器(EPR0M或快擦寫存儲器)、光纖、便攜式光盤只讀存儲器(CD-ROM)、光學存儲設備、諸如支持因特網或內聯網的傳輸介質或磁存儲設備。注意,由于程序可通過例如紙或其它的介質的光學掃描以電子的方式被捕獲、然后如果必要的話以適當的方式被編輯、解釋或以另外的方式被處理并被然后被存儲于計算機存儲器中,因此,計算機可用或計算機可讀介質甚至可以為上面打印程序的紙或另一適當的介質。在本文件的上下文中,計算機可用或計算機可讀存儲介質可以是可包含、存儲、通信、傳播或傳輸供指令執行系統、裝置或設備使用或與其組合的程序的任何介質。計算機可用介質可例如在基帶中或作為載波的一部分包含具有在其中體現的計算機可讀程序代碼的傳播的數據信號。 可通過使用包含但不限于無線、有線、光纖電纜、RF等或以上的任意適當的組合的任意適當的介質傳送在計算機可用程序代碼。可以以包括諸如Java、Smalltalk、C++等的面向對象的編程語目和諸如“C”編程語言或類似的編程語言的常規的過程編程語言的一個或更多個編程語言的任意組合書寫用于實施本發明的操作的計算機程序代碼。程序代碼可整體在用戶的計算機上、作為獨立軟件封裝部分地在用戶的計算機上、部分地在用戶的計算機上并且部分地在遠程計算機上或者完全在遠程計算機或服務器上執行。在后一種方案中,遠程計算機可通過包含局域網絡(LAN)或廣域網絡(WAN)的任意類型的網絡與用戶的計算機連接,或者,可與外部計算機連接(例如,通過使用Internet Service Provider的因特網)。以下的權利要求中的相應的結構、材料、動作和所有手段或步驟加功能要素的等同物要包含用于與特別要求權利的其它的要求權利的要素結合執行功能的任何結構、材料和動作。本發明的描述的給出是出于解釋和描述的目的,不是詳盡的,或者不是將本發明限于公開的形式。在不背離本發明的范圍和精神的情況下,許多的修改和變更對于本領域技術人員來說是十分明顯的。實施例的選擇和描述是為了最好地解釋本發明的原理和實際的應用并且為了使得其它的本領域技術人員能夠理解本發明的具有適于設想的實際用途的各種修改的各種實施例。
權利要求
1.一種計算機實現的方法,該方法包括通過由計算機化設備操作計算機程序來測試計算機程序,其中,計算機化設備操作用于向計算機程序提供對資源的訪問;由計算機程序截取對資源的訪問請求,其中,所述截取包含確定要向計算機程序提供的響應;和向計算機程序提供確定的響應而不是來自資源的對請求的響應。
2.根據權利要求1的計算機實現的方法,其中,所述資源是時鐘;并且,所述響應是時鐘的時間。
3.根據權利要求2的計算機實現的方法,其中,所述確定包含檢索先前提供的時間;和隨機化在先前提供的時間的預定范圍內的時間,其中,隨機化的時間是所述確定的響應。
4.根據權利要求3的計算機實現的方法,還包括從用戶接收所述預定范圍。
5.根據權利要求2的計算機實現的方法,其中,所述確定包含檢索先前提供的時間;和將所述時間確定為在先前提供的時間之前。
6.根據權利要求5的計算機實現的方法,其中,所述確定包含從所述時鐘檢索當前時間;和將時間確定為從當前時間至少在預定持續時間之后的時間。
7.根據權利要求I的計算機實現的方法,其中,關于對資源的多個訪問請求,所述截取被執行多次。
8.根據權利要求I的計算機實現的方法,其中,所述測試包含測試所述計算機程序在云計算環境中的操作的有效性。
9.根據權利要求8的計算機實現的方法,還包括響應于所述測試操作的有效性的完成,將計算機程序加載到云計算環境上。
10.根據權利要求I的計算機實現的方法,還包括預處理所述計算機程序并且識別操作用于訪問資源的函數調用。
11.根據權利要求10的計算機實現的方法,還包括用操作用于替代函數調用的代碼來插裝所述計算機程序;并且,其中,所述截取包含執行所述代碼。
12.一種具有處理器的計算機化設備,該設備包括操作用于操作計算機程序的測試模塊,其中,所述測試模塊被配置成向計算機程序提供對資源的訪問;操作用于截取計算機程序對資源的訪問請求的截取器,其中,所述截取器包含操作用于確定要向計算機程序提供的響應的響應確定器,并且,所述截取器進一步操作用于向計算機程序提供預定響應,而不是來自資源的對請求的響應。
13.根據權利要求12的計算機化設備,其中,其中,所述資源是時鐘;并且,所述響應是時鐘的時間。
14.根據權利要求13的計算機化設備,其中,所述響應確定器進一步操作用于檢索先前提供的時間;其中,所述響應確定器與操作用于隨機化先前提供的時間的預定范圍內的時間的隨機化模塊在操作上耦合,并且,其中,隨機化的時間是確定的響應。
15.根據權利要求14的計算機化設備,其中,還包括操作用于從用戶接收所述預定范圍的輸入模塊。
16.根據權利要求13的計算機化設備,其中,所述響應確定器進一步操作用于檢索先前提供的時間;并且,其中,確定的響應是先前提供的時間之前的時間。
17.根據權利要求13的計算機化設備,其中,所述響應確定器進一步操作用于從時鐘檢索當前時間,并且,將所述時間確定為從當前時間至少在預定持續時間之后的時間。
18.根據權利要求12的計算機化設備,其中,所述測試模塊被配置成測試所述計算機程序在云計算環境中的操作的有效性。
19.根據權利要求12的計算機化設備,還包括操作用于預處理所述計算機程序并且識別操作用于訪問所述資源的函數調用的訪問識別器。
20.根據權利要求19的計算機化設備,其中,所述預處理所述計算機程序包含用操作用于替代所述函數調用的代碼來插裝所述計算機程序。
全文摘要
關于對訪問請求的意外響應驗證計算機程序的方法和裝置。測試計算機程序包含識別計算機程序對底層主機所提供的資源的資源訪問請求。資源訪問請求可被截取,并且,確定的響應可被返回而不是底層主機的實際響應。在一些示例性實施例中,資源可以是底層主機的時鐘,并且,響應可以是時鐘的時間。在一些示例性實施例中,計算機程序可被測試以檢查在云計算環境上執行期間的有效性,其中,對資源的訪問會產生在非云計算環境上一般不可預料到的結果。測試可以在非云計算環境上執行并且模擬可應用于云計算環境的情形。
文檔編號G06F11/36GK102591771SQ201110360010
公開日2012年7月18日 申請日期2011年11月15日 優先權日2010年11月18日
發明者A·茲羅特尼克, D·西特龍, Y·尼爾-布奇賓德 申請人:國際商業機器公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 桑日县| 库尔勒市| 乡宁县| 丘北县| 海口市| 南陵县| 托克托县| 周口市| 阳山县| 罗平县| 平顺县| 建始县| 鄯善县| 绥德县| 简阳市| 汉寿县| 沙洋县| 郑州市| 特克斯县| 嵩明县| 安仁县| 黔南| 河东区| 荔波县| 桐梓县| 交城县| 达孜县| 连平县| 西乌珠穆沁旗| 栖霞市| 广德县| 无棣县| 瓮安县| 大姚县| 宝山区| 惠安县| 丰都县| 定襄县| 信宜市| 盘锦市| 日土县|