專利名稱:關(guān)于對(duì)訪問請(qǐng)求的意外響應(yīng)驗(yàn)證計(jì)算機(jī)程序的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本公開一般涉及計(jì)算機(jī)程序的驗(yàn)證,并且特別涉及可在計(jì)算機(jī)程序的操作期間從第一主機(jī)遷移到第二主機(jī)的計(jì)算機(jī)程序的測試。
背景技術(shù):
計(jì)算機(jī)化設(shè)備控制幾乎我們生活的每個(gè)方面-從寫入文檔到控制交通信號(hào)燈。然而,計(jì)算機(jī)化設(shè)備是易于出現(xiàn)故障的,因此需要應(yīng)當(dāng)發(fā)現(xiàn)故障的測試階段。在設(shè)計(jì)計(jì)算機(jī)化設(shè)備時(shí),測試階段被視為最困難的任務(wù)之一。由于故障的結(jié)果可能是災(zāi)難性的,因此不發(fā)現(xiàn)故障的成本可能是巨大的。例如,故障會(huì)導(dǎo)致依賴于計(jì)算機(jī)化設(shè)備的指定行為的人受傷。另外,硬件或固件中的故障修理起來是成本昂貴的,因?yàn)榫S修它需要召回計(jì)算機(jī)化設(shè)備。由此,計(jì)算機(jī)化設(shè)備的許多開發(fā)者投入相當(dāng)一部分開發(fā)周期來發(fā)現(xiàn)計(jì)算機(jī)化設(shè)備的錯(cuò)誤行為。計(jì)算機(jī)程序可由諸如計(jì)算機(jī)服務(wù)器的主機(jī)操作。當(dāng)今,云計(jì)算是被很好地建立和利用的計(jì)算范例。在云計(jì)算中,計(jì)算機(jī)程序可由諸如服務(wù)器和類似計(jì)算機(jī)器的網(wǎng)絡(luò)的處理設(shè)備的“云”來執(zhí)行。在通過云執(zhí)行計(jì)算機(jī)程序期間,計(jì)算機(jī)程序可從第一主機(jī)遷移到第二主機(jī)。例如,計(jì)算機(jī)程序可由虛擬機(jī)執(zhí)行。虛擬機(jī)可首先由第一服務(wù)器處理,然后虛擬機(jī)可被遷移到第二服務(wù)器以繼續(xù)執(zhí)行計(jì)算機(jī)程序。服務(wù)器和其它計(jì)算機(jī)器被視為主機(jī)。主機(jī)可負(fù)責(zé)向虛擬機(jī)并因此向計(jì)算機(jī)程序提供資源。資源可以是例如空閑存儲(chǔ)器、共享存儲(chǔ)器、存儲(chǔ)空間、對(duì)偽隨機(jī)發(fā)生器的訪問或?qū)r(shí)鐘的訪問等。
發(fā)明內(nèi)容
公開的主題的一個(gè)示例性實(shí)施例是一種計(jì)算機(jī)實(shí)現(xiàn)的方法,該方法包括通過由計(jì)算機(jī)化設(shè)備操作計(jì)算機(jī)程序來測試計(jì)算機(jī)程序,其中,計(jì)算機(jī)化設(shè)備操作用于向計(jì)算機(jī)程序提供對(duì)資源的訪問;截取計(jì)算機(jī)程序?qū)Y源的訪問請(qǐng)求,其中,所述截取包含確定要向計(jì)算機(jī)程序提供的響應(yīng);和向計(jì)算機(jī)程序提供確定的響應(yīng),而不是來自資源的對(duì)所述請(qǐng)求的響應(yīng)。公開的主題的一個(gè)示例性實(shí)施例是一種具有處理器的計(jì)算機(jī)化裝置,該裝置包括操作用于操作計(jì)算機(jī)程序的測試模塊,其中,測試模塊被配置成向計(jì)算機(jī)程序提供對(duì)資源的訪問;操作用于截取計(jì)算機(jī)程序?qū)Y源的訪問請(qǐng)求的截取器,其中,截取器包含操作用于確定要向計(jì)算機(jī)程序提供的響應(yīng)的響應(yīng)確定器,并且,截取器進(jìn)一步操作用于向計(jì)算機(jī)程序提供確定的響應(yīng),而不是來自資源的對(duì)所述請(qǐng)求的響應(yīng)。公開的主題的一個(gè)示例性實(shí)施例是一種計(jì)算機(jī)程序產(chǎn)品,該產(chǎn)品包含計(jì)算機(jī)可讀介質(zhì);用于通過由計(jì)算機(jī)化設(shè)備操作計(jì)算機(jī)程序來測試計(jì)算機(jī)程序的第一程序指令,其中,計(jì)算機(jī)化設(shè)備操作用于向計(jì)算機(jī)程序提供對(duì)資源的訪問;用于截取計(jì)算機(jī)程序?qū)Y源的訪問請(qǐng)求的第二程序指令,其中,第二程序指令包含用于確定要向計(jì)算機(jī)程序提供的響應(yīng)的第三程序指令;和用于向計(jì)算機(jī)程序提供確定的響應(yīng),而不是來自資源的對(duì)所述請(qǐng)求的響應(yīng)的第四程序指令;其中,第一、第二、第三和第四程序指令被存儲(chǔ)在所述計(jì)算機(jī)可讀介質(zhì)上。
結(jié)合相應(yīng)或類似附圖標(biāo)記表示相應(yīng)或類似部件的附圖閱讀以下詳細(xì)描述,將更完全地理解和認(rèn)識(shí)本公開的主題。除非另外指出,附圖提供公開的各示例性實(shí)施例或方面并且不限制公開的范圍。在這些附圖中,圖I示出根據(jù)主題的一些示例性實(shí)施例,使用公開的主題的計(jì)算機(jī)化環(huán)境。圖2示出根據(jù)公開的主題的一些示例性實(shí)施例的裝置的框圖。圖3示出根據(jù)公開的主題的一些示例性實(shí)施例的方法的流程圖。圖4示出根據(jù)公開的主題的一些示例性實(shí)施例的云計(jì)算環(huán)境。圖5示出根據(jù)公開的主題的一些示例性實(shí)施例的抽象模型層。
具體實(shí)施例方式以下參照根據(jù)主題的實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/ 或框圖描述公開的主題??梢岳斫?,可通過計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或框圖的各塊和流程圖和/或框圖中的塊的組合。這些計(jì)算機(jī)程序指令可被提供給通用計(jì)算機(jī)、特殊用途計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器以制造機(jī)器,使得通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖和/或框圖塊中規(guī)定的功能/作用的部件。這些計(jì)算機(jī)程序指令也可被存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,該計(jì)算機(jī)可讀介質(zhì)可引導(dǎo)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式起作用,使得存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生包含實(shí)現(xiàn)在流程圖和/或框圖塊中規(guī)定的功能/作用的指令部件的制造物品。計(jì)算機(jī)程序指令也可被加載到計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置,以引起在計(jì)算機(jī)或其它可編程裝置上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或框圖塊中規(guī)定的功能/作用的處理。公開的主題應(yīng)對(duì)的一種技術(shù)問題是測試由云操作時(shí)的計(jì)算機(jī)程序。另一技術(shù)問題是測試主機(jī)之間的遷移是否會(huì)使計(jì)算機(jī)程序的操作無效。另一技術(shù)問題是通過在單個(gè)主機(jī)上執(zhí)行計(jì)算機(jī)程序或由另一非云處理系統(tǒng)執(zhí)行計(jì)算機(jī)程序,關(guān)于云處理模式測試計(jì)算機(jī)程序。另一技術(shù)問題是關(guān)于不與云計(jì)算環(huán)境特別有關(guān)的可能遷移測試計(jì)算機(jī)程序。一種技術(shù)方案是模擬來自主機(jī)的對(duì)計(jì)算機(jī)程序的請(qǐng)求的資源響應(yīng)。模擬的響應(yīng)可被配置成模擬會(huì)在發(fā)生遷移的情況下發(fā)生的響應(yīng)。另一技術(shù)方案是截取資源請(qǐng)求并提供替代的模擬響應(yīng)。再一技術(shù)方案是截取引向主機(jī)的時(shí)鐘的時(shí)間請(qǐng)求,并且模擬替代的響應(yīng)。再一技術(shù)方案是通過隨機(jī)地選擇事先提供的響應(yīng)的預(yù)定范圍內(nèi)的響應(yīng)來模擬替代的響應(yīng)。例如,在事先提供時(shí)間06:32:16的情況下,模擬響應(yīng)可以是距離事先提供的時(shí)間在I分鐘范圍內(nèi)的隨機(jī)時(shí)間(即,06:31:16和06:33:16之間的時(shí)間)。利用公開的主題的一種技術(shù)效果是模擬遷移的技術(shù)效果,而不必在測試階段執(zhí)行實(shí)際遷移。測試環(huán)境可以是相對(duì)簡單的處理環(huán)境,并且不需要是云處理環(huán)境。另一技術(shù)效果是模擬在單個(gè)主機(jī)環(huán)境中預(yù)料不到但可能在云處理環(huán)境中發(fā)生的資源響應(yīng)。例如,當(dāng)時(shí)間是嚴(yán)格單調(diào)增加的函數(shù)時(shí),第一提供時(shí)間必須早于在后面提供的第二提供時(shí)間。然而,在云計(jì)算環(huán)境中,由于可能基于第一時(shí)鐘來提供第一時(shí)間并且可能基于第二時(shí)鐘來提供第二時(shí)間,因此,可能會(huì)違反該提供的時(shí)間的固有特征。當(dāng)通過單個(gè)主機(jī)執(zhí)行計(jì)算機(jī)程序時(shí),公開的主題提供了模擬這種情形的技術(shù)效果。另一技術(shù)效果是模擬其中返回的時(shí)間不由嚴(yán)格單調(diào)增加的函數(shù)表示的計(jì)算機(jī)程序的執(zhí)行。另一技術(shù)效果是關(guān)于時(shí)鐘前跳,測試計(jì)算機(jī)程序的操作。在一些示例性實(shí)施例中,由于時(shí)鐘前跳,超時(shí)操作可被調(diào)用,并且可以測試計(jì)算機(jī)程序?qū)τ诔瑫r(shí)值的敏感性?,F(xiàn)在參照示出根據(jù)主題的一些示例性實(shí)施例的使用公開的主題的計(jì)算機(jī)化環(huán)境的圖I。計(jì)算機(jī)化環(huán)境100可包含計(jì)算機(jī)程序110。計(jì)算機(jī)程序110可以是操作用于操作也被稱為主機(jī)的諸如處理器的處理機(jī)器的一組指令??梢栽谟?jì)算機(jī)可讀介質(zhì)上嵌入計(jì)算機(jī)程序110??赏ㄟ^云105來操作計(jì)算機(jī)程序110。云105可包含多個(gè)諸如主機(jī)106的主機(jī)。 可以在諸如LAN、WAN、WiFi、WiMax、Intetnet、intranet、它們的組合或其它通信網(wǎng)絡(luò)的計(jì)算機(jī)網(wǎng)絡(luò)中連接云105的主機(jī)。在一些示例性實(shí)施例中,計(jì)算機(jī)程序110可與云105的特定實(shí)現(xiàn)細(xì)節(jié)無關(guān)。例如,計(jì)算機(jī)程序110可與云105的主機(jī)的數(shù)量、它們的使用硬件的類型、 或連接主機(jī)的方式等無關(guān)。在一些示例性實(shí)施例中,可通過使用虛擬機(jī)(VM)(未示出)來執(zhí)行計(jì)算機(jī)程序110。VM可被用于從計(jì)算機(jī)程序110提取實(shí)現(xiàn)細(xì)節(jié)。VM可能能夠被云105 執(zhí)行。在計(jì)算機(jī)程序110的執(zhí)行期間,云可從一個(gè)主機(jī)向另一個(gè)主機(jī)遷移VM。計(jì)算機(jī)程序 110可能不知道發(fā)生這種事件。在一些示例性實(shí)施例中,在不使用VM的示例性實(shí)施例中也會(huì)發(fā)生遷移。在一些示例性實(shí)施例中,遷移可包含取得分配用于VM的存儲(chǔ)器的快照、用所述快照設(shè)定另一主機(jī)的存儲(chǔ)器并釋放分配的存儲(chǔ)器。當(dāng)存儲(chǔ)器保持計(jì)算機(jī)程序110的當(dāng)前狀態(tài)時(shí),復(fù)制它可被視為將計(jì)算機(jī)程序110從一個(gè)主機(jī)移動(dòng)到另一個(gè)主機(jī)。注意,在特定狀態(tài) (例如,文件處理器或信號(hào)量等)下,可能需要諸如設(shè)定操作系統(tǒng)(OS)實(shí)體的附加操作。本領(lǐng)域技術(shù)人員能夠?qū)⒂?jì)算機(jī)程序110(通過或不通過虛擬機(jī))從云中的一個(gè)主機(jī)遷移到云中的另一個(gè)主機(jī)。注意,也可在非云計(jì)算環(huán)境中發(fā)生遷移。例如,程序的快照可被取得并在后面被用于在重新啟動(dòng)之后在同一機(jī)器中繼續(xù)計(jì)算機(jī)程序。作為另一例子,快照可被用于在另一機(jī)器(未必是云的一部分)上繼續(xù)計(jì)算機(jī)程序的操作。在一些示例性實(shí)施例中,驗(yàn)證裝置120可被配置成測試計(jì)算機(jī)程序110的執(zhí)行。驗(yàn)證裝置120可被配置成執(zhí)行諸如保持在測試基準(zhǔn)中的計(jì)算機(jī)程序110的測試。測試可定義諸如來自用戶的輸入或來自執(zhí)行計(jì)算機(jī)程序110的環(huán)境的輸入等的對(duì)計(jì)算機(jī)程序110的激勵(lì)事件。驗(yàn)證裝置120可包含向執(zhí)行的計(jì)算機(jī)程序110提供計(jì)算能力和/或其它資源的執(zhí)行主機(jī)130。在一些示例性實(shí)施例中,執(zhí)行主機(jī)130可以是諸如106的單個(gè)主機(jī)。在其它示例性實(shí)施例中,執(zhí)行主機(jī)130可以是諸如105的云。對(duì)于公開主題的目的,執(zhí)行主機(jī)130的實(shí)現(xiàn)細(xì)節(jié)一般不是特別重要的。在一些示例性實(shí)施例中,用戶140可通過諸如終端、顯示器、鍵盤或輸入設(shè)備等的人機(jī)界面(MMI) 145與驗(yàn)證裝置120進(jìn)行交互。用戶140可關(guān)于計(jì)算機(jī)程序110定義使用的測試。用戶140可向驗(yàn)證裝置120提供規(guī)則、命令、偏好和參數(shù)。用戶140可觀察驗(yàn)證裝置120的輸出?;谒鲚敵?,用戶140可確定設(shè)計(jì)新的測試或修改測試(或者,在基于生成的測試的情況下,修改用于生成測試的測試模板)等。用戶140可進(jìn)一步識(shí)別故障、報(bào)告識(shí)別的故障和/或校正識(shí)別的故障?,F(xiàn)在參照示出根據(jù)公開的主題的一些示例性實(shí)施例的裝置的圖2。諸如圖I的120 的裝置200可被配置成測試諸如圖I的110的計(jì)算機(jī)程序的功能操作。在一些示例性實(shí)施例中,測試模塊210可被配置成操作諸如圖I的110的計(jì)算機(jī)程序。測試模塊210可被配置成通過執(zhí)行程序來便利計(jì)算機(jī)程序的測試。在一些示例性實(shí)施例中,測試程序被配置成訪問執(zhí)行計(jì)算機(jī)程序的主機(jī)的資源。一些示例性資源可以是性能統(tǒng)計(jì)(例如,空閑存儲(chǔ)空間、執(zhí)行的處理的數(shù)量或CPU使用率等)、與主機(jī)相關(guān)聯(lián)的存儲(chǔ)器的存儲(chǔ)位置或時(shí)鐘等。在一些示例性實(shí)施例中,測試模塊210操作用于測試當(dāng)計(jì)算機(jī)程序在云處理環(huán)境中執(zhí)行時(shí)的操作。在一些示例性實(shí)施例中,測試模塊210可操作用于在主機(jī)(或多個(gè)主機(jī))上執(zhí)行測試程序并向主機(jī)提供與測試計(jì)算機(jī)程序相關(guān)聯(lián)的適當(dāng)激勵(lì)。激勵(lì)的非詳盡列表可包含 對(duì)計(jì)算機(jī)程序提供的輸入或諸如線程的并行實(shí)體的調(diào)度等。在一些示例性實(shí)施例中,訪問識(shí)別器220可被配置成識(shí)別計(jì)算機(jī)程序?qū)Y源的訪問請(qǐng)求。訪問識(shí)別器220可通過向資源請(qǐng)求添加掛鉤,諸如例如掛到系統(tǒng)呼叫請(qǐng)求上,來識(shí)別訪問。在一些示例性實(shí)施例中,訪問識(shí)別器220可通過回顧計(jì)算機(jī)程序的程序代碼并且識(shí)別有關(guān)功能呼叫的調(diào)用來識(shí)別訪問。在一些示例性實(shí)施例中,訪問識(shí)別器220可被配置成在通過測試模塊210執(zhí)行計(jì)算機(jī)程序之前預(yù)處理計(jì)算機(jī)程序。在預(yù)處理期間,可以識(shí)別操作用于訪問資源的功能呼叫,并且,可使用其在執(zhí)行過程中的調(diào)用來識(shí)別訪問請(qǐng)求。在一些示例性實(shí)施例中,代碼插裝器225可被用于插裝(instrument)操作用于與函數(shù)的調(diào)用相關(guān)地被調(diào)用的代碼。例如,代碼可被插裝在函數(shù)的開頭。作為另一例子,可以使用宏定義(例如,C語言中的#定義命令)來用插裝的代碼的調(diào)用替代函數(shù)引用。在一些示例性實(shí)施例中,諸如在源代碼不可用(即,“黑箱”的測試)的情況下,可關(guān)于計(jì)算機(jī)程序的二進(jìn)制表示來執(zhí)行插裝。可在與執(zhí)行諸如例如調(diào)用系統(tǒng)引用或應(yīng)用編程界面(API)等的訪問請(qǐng)求相關(guān)聯(lián)的部分中插裝二進(jìn)制碼。本領(lǐng)域技術(shù)人員能夠以另外和替代的方式來實(shí)現(xiàn)訪問識(shí)別器220的識(shí)別。在一些示例性實(shí)施例中,可由訪問識(shí)別器220識(shí)別調(diào)用諸如C時(shí)間庫的函數(shù)的操作用于訪問時(shí)鐘并返回時(shí)間的函數(shù)。在一些示例性實(shí)施例中,代碼插裝器225可操作用于用諸如與截取器230相關(guān)聯(lián)的替代函數(shù)來替代對(duì)函數(shù)的函數(shù)引用,將在下面進(jìn)一步描述這一點(diǎn)。在一些示例性實(shí)施例中,截取器230可操作用于截取諸如由訪問識(shí)別器220識(shí)別的訪問請(qǐng)求,并且提供其確定的響應(yīng)。響應(yīng)可由響應(yīng)確定器240來確定??赏ㄟ^使用由代碼插裝器225插裝的插裝代碼來執(zhí)行訪問請(qǐng)求的截取。截取器230可操作用于在訪問或不訪問執(zhí)行主機(jī)的資源的情況下提供響應(yīng)。例如,在針對(duì)機(jī)器的時(shí)鐘的訪問請(qǐng)求的情況下,可以在訪問或不訪問時(shí)鐘本身的情況下返回時(shí)間。確定的響應(yīng)可以是與時(shí)鐘返回的時(shí)間不同的時(shí)間。在一些示例性實(shí)施例中,響應(yīng)確定器240可被配置成確定對(duì)訪問請(qǐng)求的響應(yīng)。在一些示例性實(shí)施例中,響應(yīng)確定器240可確定隨機(jī)響應(yīng)。在一些示例性實(shí)施例中,響應(yīng)確定器240可基于先前提供的響應(yīng)來確定響應(yīng)。在一些示例性實(shí)施例中,響應(yīng)確定器240可操作用于保持提供的響應(yīng)并利用它們用于將來的響應(yīng)確定。在一些示例性實(shí)施例中,先前提供的響應(yīng)可被用作基準(zhǔn)值,并且,確定的響應(yīng)可以是處于基準(zhǔn)值的預(yù)定范圍內(nèi)的值。所述范圍可由諸如圖I的140的用戶確定,并且可選地使用諸如205的輸入模塊被提供給裝置200。 所述范圍會(huì)受到各種附加因素的影響。作為例子,考慮提供響應(yīng)“時(shí)間”的資源“時(shí)鐘”。確定的時(shí)間可基于作為基準(zhǔn)點(diǎn)的先前提供的時(shí)間。確定的時(shí)間可在距離先前的響應(yīng)兩分鐘的范圍內(nèi)。在一個(gè)示例性實(shí)施例中,所述范圍會(huì)受到自先前的響應(yīng)經(jīng)過的時(shí)間的影響。在一些示例性實(shí)施例中,可通過訪問實(shí)際資源(例如,主機(jī)的時(shí)鐘)來確定諸如例如第一響應(yīng)的一些確定的響應(yīng)。在一些示例性實(shí)施例中,響應(yīng)確定器240可操作用于提供在先前提供的時(shí)間之前的時(shí)間。由于時(shí)間是嚴(yán)格單調(diào)增加的函數(shù),因此,在非云計(jì)算環(huán)境中,這種響應(yīng)一般不是有效響應(yīng)。然而,由于可由第一主機(jī)的第一時(shí)鐘提供第一響應(yīng),而可由第二主機(jī)的第二時(shí)鐘提供第二響應(yīng),因此,可在云計(jì)算環(huán)境中發(fā)生這種響應(yīng)。在一些示例性實(shí)施例中,響應(yīng)確定器240可操作用于提供時(shí)間,使得該時(shí)間和先前提供的時(shí)間之間的時(shí)間差長于提供先前提供的時(shí)間和該時(shí)間之間的實(shí)際時(shí)間差。以這種方式,可模擬時(shí)鐘的前跳。作為替代方案,這可被用于模擬執(zhí)行計(jì)算機(jī)程序的計(jì)算機(jī)的操作的緩慢執(zhí)行的一些方面。在一些示例性實(shí)施例中,計(jì)算機(jī)程序可響應(yīng)于超時(shí)值,并且,提供的時(shí)間可被用于測試當(dāng)達(dá)到超時(shí)值時(shí)計(jì)算機(jī)程序的操作。在一些示例性實(shí)施例中,計(jì)算機(jī)程序可固有地假定操作的近似定時(shí)。例如,由于計(jì)算機(jī)程序的程序編制員假定在預(yù)定時(shí)間量內(nèi)將完成一些并行操作,因此,可在所述預(yù)定時(shí)間量內(nèi)調(diào)用睡眠命令。在一些示例性實(shí)施例中,響應(yīng)確定器240可訪問時(shí)鐘以確定當(dāng)前時(shí)間。確定的時(shí)間可以是從當(dāng)前時(shí)間在至少預(yù)定持續(xù)時(shí)間之后的時(shí)間。例如,在當(dāng)前時(shí)間為09:10:20并且預(yù)定持續(xù)時(shí)間為I分鐘的情況下,確定的時(shí)間可以為09:11:22,09:20:00,10:00:00或 23:00:00等。在一些示例性實(shí)施例中,除了最小偏移時(shí)間或者作為其替代,可預(yù)定最大偏移時(shí)間。例如,時(shí)間可被偏移2分鐘的最小偏移和10分鐘的最大偏移。在一些示例性實(shí)施例中,裝置200可被配置成響應(yīng)于第一請(qǐng)求而提供當(dāng)前時(shí)間,并且響應(yīng)于連續(xù)請(qǐng)求而提供根據(jù)本段的時(shí)間,由此提供具有快速時(shí)鐘的模擬??焖贂r(shí)鐘可被明顯變快(例如,每秒快速時(shí)鐘跳過十秒)。在一些示例性實(shí)施例中,由于兩個(gè)連續(xù)時(shí)間請(qǐng)求之間的報(bào)告的時(shí)間間隔被報(bào)告比實(shí)際的更長/更短,因此,響應(yīng)提供了通過慢或快處理裝置執(zhí)行計(jì)算機(jī)程序的模擬。 換句話說,在一個(gè)時(shí)間周期內(nèi)實(shí)際執(zhí)行的若干指令被報(bào)告為在更短/更長的時(shí)間周期內(nèi)執(zhí)行。在一些示例性實(shí)施例中,隨機(jī)化模塊245可被用于以隨機(jī)或偽隨機(jī)方式來確定響應(yīng)。隨機(jī)化模塊245可被用于確定基準(zhǔn)值的預(yù)定范圍內(nèi)的響應(yīng)。在一些示例性實(shí)施例中,裝置200可包括處理器202。處理器202可以是中央處理單元(CPU)、微處理器、電子電路或集成電路(IC)等。處理器202可被用于執(zhí)行裝置200 或其任意子部件所需的計(jì)算。在公開的主題的一些示例性實(shí)施例中,裝置200可包括輸入/輸出模塊(1/0)205。 I/O模塊205可被用于向諸如圖I的140的用戶提供輸出并從其接收輸入。
在一些示例性實(shí)施例中,裝置200可包括存儲(chǔ)設(shè)備207。存儲(chǔ)設(shè)備207可以是硬盤驅(qū)動(dòng)、閃存盤、隨機(jī)存取存儲(chǔ)器(ROM)或存儲(chǔ)器芯片等。在一些示例性實(shí)施例中,存儲(chǔ)設(shè)備207可保持操作用于使處理器202執(zhí)行與裝置200的任意子部件相關(guān)聯(lián)的動(dòng)作的程序代碼。在一些示例性實(shí)施例中,存儲(chǔ)設(shè)備207可保持先前提供的響應(yīng)?,F(xiàn)在參照示出根據(jù)公開的主題的一些示例性實(shí)施例的方法的流程圖的圖3。雖然圖3特別地參照其中訪問的資源是返回時(shí)間的時(shí)鐘的例子,但公開的主題不限于該例子。在步驟300中,獲得要測試的計(jì)算機(jī)程序。可獲得計(jì)算機(jī)程序的二進(jìn)制表示??色@得源代碼表示??赏ㄟ^諸如圖2的205的輸入模塊獲得計(jì)算機(jī)程序。在步驟310中,可由計(jì)算機(jī)化設(shè)備執(zhí)行所述計(jì)算機(jī)程序。所述計(jì)算機(jī)程序可出于測試其操作的目的而被執(zhí)行。所述計(jì)算機(jī)程序可由諸如圖2的210的測試模塊來執(zhí)行和測試。在步驟320中,可識(shí)別對(duì)時(shí)鐘的訪問請(qǐng)求??捎芍T如圖2的220的訪問識(shí)別器執(zhí)行識(shí)別。在一些示例性實(shí)施例中,可通過預(yù)處理計(jì)算機(jī)程序或通過在執(zhí)行計(jì)算機(jī)程序之前用有關(guān)代碼插裝計(jì)算機(jī)程序等來實(shí)現(xiàn)識(shí)別。在步驟330中,可以截取訪問請(qǐng)求。在一些示例性實(shí)施例中,可截取訪問請(qǐng)求并可能或者可不訪問時(shí)鐘。在一些示例性實(shí)施例中,可通過執(zhí)行由諸如圖2的225的代碼插裝器插裝的代碼來截取訪問請(qǐng)求??捎芍T如圖2的230的截取器執(zhí)行截取。在步驟340中,可確定響應(yīng)于訪問將被提供的時(shí)間。可由諸如圖2的240的響應(yīng)確定器確定時(shí)間??蓪r(shí)間提供給計(jì)算機(jī)程序。在執(zhí)行確定并提供確定的時(shí)間之后,根據(jù)公開的主題,可識(shí)別并響應(yīng)于附加訪問請(qǐng)求。在一些示例性實(shí)施例中,確定要提供的時(shí)間包含步驟342和344。在步驟342中,可獲得先前提供的時(shí)間??蓮闹T如圖2的207的存儲(chǔ)設(shè)備獲得所述時(shí)間。在步驟344中,可隨機(jī)地確定先前提供的時(shí)間之前的時(shí)間??赏ㄟ^使用諸如圖2 的245的隨機(jī)化模塊來執(zhí)行確定。確定的時(shí)間可早于先前提供的時(shí)間,并因此可使返回時(shí)間是嚴(yán)格單調(diào)增加的函數(shù)的假定無效,這種假定在云計(jì)算環(huán)境中可能是不正確的。確定的時(shí)間可被確定,以便提供長于在提供兩個(gè)時(shí)間值之間實(shí)際經(jīng)過的時(shí)間的該時(shí)間和先前提供的時(shí)間之間的時(shí)間差。在一些示例性實(shí)施例中,確定要提供的時(shí)間包含步驟346和348。在步驟346中,可以與步驟342類似的方式獲得先前提供的時(shí)間。在步驟348中,可確定先前提供的時(shí)間的預(yù)定范圍內(nèi)的隨機(jī)時(shí)間。可通過使用諸如圖2的245的隨機(jī)化模塊來確定隨機(jī)時(shí)間。預(yù)定范圍可以是由諸如圖I的140的用戶確定的范圍。在一些示例性實(shí)施例中,在執(zhí)行計(jì)算機(jī)程序的充分測試之后(例如,基于覆蓋度量或QA成員的確定等),計(jì)算機(jī)程序可被視為“是安全的”以被加載到云上以在其上運(yùn)行。 在一些示例性實(shí)施例中,云的管理權(quán)可能禁止加載沒有經(jīng)過充分測試的計(jì)算機(jī)程序。公開的主題可被用作在將計(jì)算機(jī)程序加載到云上之前執(zhí)行的單獨(dú)測試或附加測試。僅為了闡明公開提供了以下例子,并且,該例子不應(yīng)被解釋為限制公開的主題的范圍。考慮以下代碼片段
time I = gettime ();time2 = gettime ();timersub (timel, time2, &diff);assert (diff. tv_sec > = 0);這里,timersub是操作用于通過從“time2”減去“timel”來確定“timel”和 “time2”之間的時(shí)間差并將時(shí)間差賦予“diff”的函數(shù)。由于“timel”基于在與設(shè)定“time2” 相關(guān)聯(lián)的時(shí)鐘讀取之前執(zhí)行的時(shí)鐘讀取被設(shè)定,因此,當(dāng)在非云計(jì)算環(huán)境中測試時(shí),該代碼片段是穩(wěn)定的。然而,在云計(jì)算環(huán)境中,“timel”可包含“time2”之后的時(shí)間,因此斷言可能失敗。公開的主題可被用于測試該代碼片段,并且確定在一些情形中,在云計(jì)算環(huán)境中, “time2”即使在后面被設(shè)定也可以是“timel”之前的時(shí)間。公開的主題可被用于通過執(zhí)行計(jì)算機(jī)程序、識(shí)別對(duì)資源的訪問請(qǐng)求(例如,調(diào)用函數(shù)“gettime”)、截取訪問請(qǐng)求并確定要依次提供的響應(yīng),來測試包含該代碼片段的計(jì)算機(jī)程序。可以理解,雖然本公開包括云計(jì)算的詳細(xì)描述,但是這里引用的教導(dǎo)的實(shí)現(xiàn)不限于云計(jì)算環(huán)境。而是本發(fā)明的實(shí)施例能夠結(jié)合現(xiàn)在已知或者以后開發(fā)的任何其它類型的計(jì)算環(huán)境被實(shí)現(xiàn)。為了方便,公開以下的定義,以提供云計(jì)算環(huán)境的徹底理解。所述定義源自Peter Mell 和 Tim Grance 在 2009 年 10 月 7 日提交的“Draft NIST Working Definition of Cloud Computing”,該文件在這里提交的IDS中被引用并且其復(fù)本作為附件提交。云計(jì)算是對(duì)可配置計(jì)算資源(例如,網(wǎng)絡(luò)、網(wǎng)絡(luò)帶寬、服務(wù)器、處理、存儲(chǔ)器、存儲(chǔ)、 應(yīng)用、虛擬機(jī)和服務(wù))的共享池,實(shí)現(xiàn)方便的按需網(wǎng)絡(luò)訪問的服務(wù)傳輸模型,所述可配置計(jì)算資源可以通過最小管理工作或與服務(wù)提供者的交互被迅速提供和釋放。該云模型可包含至少五種特性、至少三種服務(wù)模型和至少四種部署模型。特性如下按需自服務(wù)云消費(fèi)者可以在不需要與服務(wù)提供者進(jìn)行人員交互的情況下,根據(jù)需要自動(dòng)地單方面地提供諸如服務(wù)器時(shí)間和網(wǎng)絡(luò)存儲(chǔ)的計(jì)算能力。寬網(wǎng)絡(luò)訪問在網(wǎng)絡(luò)上可用,并且通過促進(jìn)異構(gòu)薄或厚客戶機(jī)平臺(tái)(例如,移動(dòng)電話、膝上型計(jì)算機(jī)和PDA)的使用的標(biāo)準(zhǔn)機(jī)構(gòu)被訪問。資源成池提供者的計(jì)算資源被成池以使用多占用者模型來服務(wù)多個(gè)消費(fèi)者,根據(jù)需要?jiǎng)討B(tài)地分配和再分配不同的物理和虛擬資源。存在這樣一種位置獨(dú)立性的感覺,即, 消費(fèi)者一般在提供的資源的確切位置上沒有控制或知識(shí),但是能夠在更高的抽象水平上規(guī)定位置(例如,國家、州或數(shù)據(jù)中心)。迅速彈性在一些情況下可以自動(dòng)地、迅速地并且彈性地提供能力,以迅速地標(biāo)出并且迅速地釋放以迅速地標(biāo)入。對(duì)于消費(fèi)者,可用于提供的能力常常看起來是不受限制的, 并且,并且可以在任何時(shí)間以任意的量被購買。測量服務(wù)云系統(tǒng)通過在適于服務(wù)類型(例如,存儲(chǔ)、處理、帶寬和活動(dòng)用戶帳戶) 的一些抽象水平上平衡計(jì)量能力,自動(dòng)地控制和優(yōu)化資源使用。可以監(jiān)視、控制和報(bào)告資源使用,從而對(duì)于利用服務(wù)的提供者和消費(fèi)者兩者提供透明性。服務(wù)模型如下
作為服務(wù)的軟件(SaaS):提供給消費(fèi)者的能力是使用在云基礎(chǔ)結(jié)構(gòu)上運(yùn)行的提供者的應(yīng)用。可通過諸如網(wǎng)絡(luò)瀏覽器(例如,基于web的電子郵件)的薄客戶機(jī)界面從各種客戶機(jī)設(shè)備訪問所述應(yīng)用。消費(fèi)者不管理或控制包含網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)、存儲(chǔ)器或者甚至單個(gè)應(yīng)用能力的底層云基礎(chǔ)結(jié)構(gòu),有限的用戶特殊應(yīng)用配置設(shè)定可能是例外。作為服務(wù)的平臺(tái)(PaaS):提供給消費(fèi)者的能力是將消費(fèi)者創(chuàng)建的或使用由提供者支持的編程語言和工具創(chuàng)建的獲取應(yīng)用部署到云基礎(chǔ)結(jié)構(gòu)上。消費(fèi)者不管理或控制包含網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)或存儲(chǔ)器的底層云基礎(chǔ)結(jié)構(gòu),但對(duì)于部署的應(yīng)用和宿主環(huán)境配置的應(yīng)用具有控制。作為服務(wù)的基礎(chǔ)結(jié)構(gòu)(IaaS):提供給消費(fèi)者的能力是提供消費(fèi)者能夠部署和運(yùn)行可包含操作系統(tǒng)和應(yīng)用的任意軟件的處理、存儲(chǔ)、網(wǎng)絡(luò)和其它基礎(chǔ)計(jì)算資源。消費(fèi)者不管理或控制底層云基礎(chǔ)結(jié)構(gòu),但對(duì)于操作系統(tǒng)、存儲(chǔ)、部署的應(yīng)用具有控制,并可能對(duì)于選擇聯(lián)網(wǎng)部件(例如,主機(jī)防火墻)具有有限控制。部署模型如下私人云云基礎(chǔ)結(jié)構(gòu)被操作單獨(dú)用于一個(gè)組織??捎山M織或第三方管理它,并且可存在應(yīng)急或備用設(shè)備。社區(qū)云云基礎(chǔ)結(jié)構(gòu)由幾個(gè)組織共享,并且支持具有共享關(guān)注(例如,任務(wù)、安全需要、政策和符合性考慮)的特定社區(qū)??捎山M織或第三方管理它,并且可存在應(yīng)急或備用設(shè)備。公共云使得云基礎(chǔ)結(jié)構(gòu)可用于一般公共或大的工業(yè)組并且由出售云服務(wù)的組織擁有。混合云云基礎(chǔ)結(jié)構(gòu)是保持唯一實(shí)體但通過實(shí)現(xiàn)數(shù)據(jù)和應(yīng)用便攜性的標(biāo)準(zhǔn)化或私有技術(shù)接合在一起的兩個(gè)或更多個(gè)云(私人、社區(qū)或公共)的合成物(例如,用于云之間的負(fù)載均衡的云突發(fā))。云計(jì)算環(huán)境是通過關(guān)注無國籍、低耦合、模塊性和語義互用性取向的服務(wù)。本質(zhì)上,云計(jì)算環(huán)境是包含互連節(jié)點(diǎn)的網(wǎng)絡(luò)的基礎(chǔ)結(jié)構(gòu)?,F(xiàn)在參照示出諸如圖I的105的示意性云計(jì)算環(huán)境50的圖4。如所示的那樣,云計(jì)算環(huán)境50包含一個(gè)或更多個(gè)云計(jì)算節(jié)點(diǎn)10,通過所述云計(jì)算節(jié)點(diǎn),諸如例如個(gè)人數(shù)字助理(PDA)或蜂窩式電話54A、臺(tái)式計(jì)算機(jī)54B、膝上型計(jì)算機(jī)54C和/或車載計(jì)算機(jī)系統(tǒng)54N 的由云消費(fèi)者使用的本地計(jì)算設(shè)備可相互通信。節(jié)點(diǎn)10可相互通信。在一個(gè)或更多個(gè)諸如以上描述的私人、社區(qū)、公共或混合云的網(wǎng)絡(luò)或者它們的組合中,它們可以在物理上或在虛擬上被分組(未示出)。這允許云計(jì)算環(huán)境50提供基礎(chǔ)結(jié)構(gòu)、平臺(tái)和/或軟件作為云消費(fèi)者不需要在本地計(jì)算設(shè)備上保持資源的服務(wù)??梢岳斫?,圖4所示的計(jì)算設(shè)備54A N 的類型僅出于解釋的目的,并且,計(jì)算節(jié)點(diǎn)10和云計(jì)算環(huán)境50可在任意類型的網(wǎng)絡(luò)和/或網(wǎng)絡(luò)可尋址連接(例如,通過使用web瀏覽器)上與任意類型的計(jì)算機(jī)化設(shè)備通信?,F(xiàn)在參照?qǐng)D5,示出由云計(jì)算環(huán)境50(圖4)提供的一組功能抽象層。應(yīng)當(dāng)事先理解,圖5所示的部件、層和功能僅出于解釋的目的,并且,本發(fā)明的實(shí)施例不限于此。如所示的那樣,提供以下的層和相應(yīng)的功能硬件和軟件層60包含硬件和軟件部件。硬件部件的例子包含主計(jì)算機(jī),一個(gè)例子是IBM zSeries 系統(tǒng);基于Rise(精簡指令集計(jì)算機(jī))體系結(jié)構(gòu)的服務(wù)器,一個(gè)例子是IBM pSeries 系統(tǒng);ibm xSeries 系統(tǒng);iBMBladeCenter 系統(tǒng);
存儲(chǔ)設(shè)備;網(wǎng)絡(luò)和聯(lián)網(wǎng)部件。軟件部件的例子包含網(wǎng)絡(luò)應(yīng)用服務(wù)器軟件,一個(gè)例子是 IBM WebSphere 應(yīng)用服務(wù)器軟件;和數(shù)據(jù)庫軟件,一個(gè)例子是IBMDB2 數(shù)據(jù)庫軟件。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere 和 DB2 是在世界范圍內(nèi)的許多司法地域中注冊(cè)的國際商業(yè)機(jī)器公司的商標(biāo))。虛擬化層62提供可從中提供以下例子的虛擬實(shí)體的抽象層虛擬服務(wù)器虛擬存儲(chǔ)器;虛擬網(wǎng)絡(luò),包含虛擬私人網(wǎng)絡(luò);虛擬應(yīng)用和操作系統(tǒng);以及虛擬客戶機(jī)。在一個(gè)例子中,管理層64可提供以下描述的功能。資源提供提供用于在云計(jì)算環(huán)境內(nèi)執(zhí)行任務(wù)的計(jì)算資源和其它資源的動(dòng)態(tài)供應(yīng)。計(jì)量和定價(jià)提供當(dāng)在云計(jì)算環(huán)境內(nèi)利用資源時(shí)的成本跟蹤,以及消費(fèi)這些資源的結(jié)算或計(jì)價(jià)。在一個(gè)例子中,這些資源可包含應(yīng)用軟件許可。安全提供對(duì)于云消費(fèi)者和任務(wù)的身份驗(yàn)證以及對(duì)于數(shù)據(jù)和其它資源的保護(hù)。用戶門戶向消費(fèi)者和系統(tǒng)管理員提供對(duì)云計(jì)算環(huán)境的訪問。服務(wù)水平管理提供云計(jì)算資源分配和管理,使得滿足需要的服務(wù)水平。服務(wù)水平協(xié)定(SLA)計(jì)劃和實(shí)現(xiàn)根據(jù)SLA提供預(yù)期未來需要的云計(jì)算資源的預(yù)安排和供應(yīng)。工作負(fù)載層66提供可利用云計(jì)算環(huán)境的功能的例子??蓮脑搶犹峁┑墓ぷ髫?fù)載和功能的例子包含地圖和導(dǎo)航;軟件開發(fā)和生命周期管理;虛擬教室教育傳輸;數(shù)據(jù)分析
處理;事務(wù)處理等。圖中的流程和框圖示出根據(jù)本發(fā)明的各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系結(jié)構(gòu)、功能和操作。在這一點(diǎn)上,流程圖或框圖中的各塊可表示包含用于實(shí)現(xiàn)規(guī)定的邏輯功能的一個(gè)或更多個(gè)可執(zhí)行指令的模塊、段或代碼部分。還應(yīng)注意,在一些替代性實(shí)現(xiàn)中,在塊中注明的功能的次序可以與在圖中注明的次序不同。例如,根據(jù)包含的功能,連續(xù)表示的兩個(gè)塊事實(shí)上可被基本上同時(shí)執(zhí)行,或者,各塊有時(shí)可以以相反的次序被執(zhí)行。還應(yīng)注意,可通過執(zhí)行規(guī)定的功能或作用的基于特殊用途硬件的系統(tǒng)或特殊用途硬件和計(jì)算機(jī)指令的組合,實(shí)現(xiàn)框圖和/或流程圖的各塊和框圖和/或流程圖的各塊的組合。這里使用的術(shù)語僅出于描述特定的實(shí)施例的目的,并且不是要限制本發(fā)明。如這里使用的那樣,除非上下文清楚地另外表示,否則,單數(shù)形式“一個(gè)”、“一種”和“該”也要包含多數(shù)形式。還應(yīng)理解,在本說明書中使用的術(shù)語“包括”和/或“包含”規(guī)定陳述的特征、 整數(shù)、步驟、動(dòng)作、要素和/或部件的存在,但不排除一個(gè)或更多個(gè)其它的特征、整數(shù)、步驟、 動(dòng)作、要素、部件和/或它們的組的存在或添加。本領(lǐng)域技術(shù)人員可以理解,公開的主題可體現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,公開的主題可采取完全硬件實(shí)施例、完全軟件實(shí)施例(包含固件、駐留軟件、微代碼等) 或組合軟件和硬件方面的實(shí)施例,它們?cè)谶@里均可被統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。并且,本發(fā)明的方面可采取在具有在介質(zhì)中體現(xiàn)的計(jì)算機(jī)可用程序代碼的表現(xiàn)的任何可接觸知介質(zhì)中體現(xiàn)的計(jì)算機(jī)程序產(chǎn)品的形式??梢岳靡粋€(gè)或更多個(gè)計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可例如為但不限于電子、磁、光學(xué)、電磁、紅外或半導(dǎo)體系統(tǒng)、裝置或設(shè)備或傳播介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非詳盡的列表)會(huì)包含以下方面具有一個(gè)或更多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦可編程只讀存儲(chǔ)器(EPR0M或快擦寫存儲(chǔ)器)、光纖、便攜式光盤只讀存儲(chǔ)器(CD-ROM)、光學(xué)存儲(chǔ)設(shè)備、諸如支持因特網(wǎng)或內(nèi)聯(lián)網(wǎng)的傳輸介質(zhì)或磁存儲(chǔ)設(shè)備。注意,由于程序可通過例如紙或其它的介質(zhì)的光學(xué)掃描以電子的方式被捕獲、然后如果必要的話以適當(dāng)?shù)姆绞奖痪庉?、解釋或以另外的方式被處理并被然后被存?chǔ)于計(jì)算機(jī)存儲(chǔ)器中,因此,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)甚至可以為上面打印程序的紙或另一適當(dāng)?shù)慕橘|(zhì)。在本文件的上下文中,計(jì)算機(jī)可用或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是可包含、存儲(chǔ)、通信、傳播或傳輸供指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與其組合的程序的任何介質(zhì)。計(jì)算機(jī)可用介質(zhì)可例如在基帶中或作為載波的一部分包含具有在其中體現(xiàn)的計(jì)算機(jī)可讀程序代碼的傳播的數(shù)據(jù)信號(hào)。 可通過使用包含但不限于無線、有線、光纖電纜、RF等或以上的任意適當(dāng)?shù)慕M合的任意適當(dāng)?shù)慕橘|(zhì)傳送在計(jì)算機(jī)可用程序代碼??梢砸园ㄖT如Java、Smalltalk、C++等的面向?qū)ο蟮木幊陶Z目和諸如“C”編程語言或類似的編程語言的常規(guī)的過程編程語言的一個(gè)或更多個(gè)編程語言的任意組合書寫用于實(shí)施本發(fā)明的操作的計(jì)算機(jī)程序代碼。程序代碼可整體在用戶的計(jì)算機(jī)上、作為獨(dú)立軟件封裝部分地在用戶的計(jì)算機(jī)上、部分地在用戶的計(jì)算機(jī)上并且部分地在遠(yuǎn)程計(jì)算機(jī)上或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后一種方案中,遠(yuǎn)程計(jì)算機(jī)可通過包含局域網(wǎng)絡(luò)(LAN)或廣域網(wǎng)絡(luò)(WAN)的任意類型的網(wǎng)絡(luò)與用戶的計(jì)算機(jī)連接,或者,可與外部計(jì)算機(jī)連接(例如,通過使用Internet Service Provider的因特網(wǎng))。以下的權(quán)利要求中的相應(yīng)的結(jié)構(gòu)、材料、動(dòng)作和所有手段或步驟加功能要素的等同物要包含用于與特別要求權(quán)利的其它的要求權(quán)利的要素結(jié)合執(zhí)行功能的任何結(jié)構(gòu)、材料和動(dòng)作。本發(fā)明的描述的給出是出于解釋和描述的目的,不是詳盡的,或者不是將本發(fā)明限于公開的形式。在不背離本發(fā)明的范圍和精神的情況下,許多的修改和變更對(duì)于本領(lǐng)域技術(shù)人員來說是十分明顯的。實(shí)施例的選擇和描述是為了最好地解釋本發(fā)明的原理和實(shí)際的應(yīng)用并且為了使得其它的本領(lǐng)域技術(shù)人員能夠理解本發(fā)明的具有適于設(shè)想的實(shí)際用途的各種修改的各種實(shí)施例。
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,該方法包括通過由計(jì)算機(jī)化設(shè)備操作計(jì)算機(jī)程序來測試計(jì)算機(jī)程序,其中,計(jì)算機(jī)化設(shè)備操作用于向計(jì)算機(jī)程序提供對(duì)資源的訪問;由計(jì)算機(jī)程序截取對(duì)資源的訪問請(qǐng)求,其中,所述截取包含確定要向計(jì)算機(jī)程序提供的響應(yīng);和向計(jì)算機(jī)程序提供確定的響應(yīng)而不是來自資源的對(duì)請(qǐng)求的響應(yīng)。
2.根據(jù)權(quán)利要求1的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,所述資源是時(shí)鐘;并且,所述響應(yīng)是時(shí)鐘的時(shí)間。
3.根據(jù)權(quán)利要求2的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,所述確定包含檢索先前提供的時(shí)間;和隨機(jī)化在先前提供的時(shí)間的預(yù)定范圍內(nèi)的時(shí)間,其中,隨機(jī)化的時(shí)間是所述確定的響應(yīng)。
4.根據(jù)權(quán)利要求3的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括從用戶接收所述預(yù)定范圍。
5.根據(jù)權(quán)利要求2的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,所述確定包含檢索先前提供的時(shí)間;和將所述時(shí)間確定為在先前提供的時(shí)間之前。
6.根據(jù)權(quán)利要求5的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,所述確定包含從所述時(shí)鐘檢索當(dāng)前時(shí)間;和將時(shí)間確定為從當(dāng)前時(shí)間至少在預(yù)定持續(xù)時(shí)間之后的時(shí)間。
7.根據(jù)權(quán)利要求I的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,關(guān)于對(duì)資源的多個(gè)訪問請(qǐng)求,所述截取被執(zhí)行多次。
8.根據(jù)權(quán)利要求I的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,所述測試包含測試所述計(jì)算機(jī)程序在云計(jì)算環(huán)境中的操作的有效性。
9.根據(jù)權(quán)利要求8的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括響應(yīng)于所述測試操作的有效性的完成,將計(jì)算機(jī)程序加載到云計(jì)算環(huán)境上。
10.根據(jù)權(quán)利要求I的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括預(yù)處理所述計(jì)算機(jī)程序并且識(shí)別操作用于訪問資源的函數(shù)調(diào)用。
11.根據(jù)權(quán)利要求10的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括用操作用于替代函數(shù)調(diào)用的代碼來插裝所述計(jì)算機(jī)程序;并且,其中,所述截取包含執(zhí)行所述代碼。
12.一種具有處理器的計(jì)算機(jī)化設(shè)備,該設(shè)備包括操作用于操作計(jì)算機(jī)程序的測試模塊,其中,所述測試模塊被配置成向計(jì)算機(jī)程序提供對(duì)資源的訪問;操作用于截取計(jì)算機(jī)程序?qū)Y源的訪問請(qǐng)求的截取器,其中,所述截取器包含操作用于確定要向計(jì)算機(jī)程序提供的響應(yīng)的響應(yīng)確定器,并且,所述截取器進(jìn)一步操作用于向計(jì)算機(jī)程序提供預(yù)定響應(yīng),而不是來自資源的對(duì)請(qǐng)求的響應(yīng)。
13.根據(jù)權(quán)利要求12的計(jì)算機(jī)化設(shè)備,其中,其中,所述資源是時(shí)鐘;并且,所述響應(yīng)是時(shí)鐘的時(shí)間。
14.根據(jù)權(quán)利要求13的計(jì)算機(jī)化設(shè)備,其中,所述響應(yīng)確定器進(jìn)一步操作用于檢索先前提供的時(shí)間;其中,所述響應(yīng)確定器與操作用于隨機(jī)化先前提供的時(shí)間的預(yù)定范圍內(nèi)的時(shí)間的隨機(jī)化模塊在操作上耦合,并且,其中,隨機(jī)化的時(shí)間是確定的響應(yīng)。
15.根據(jù)權(quán)利要求14的計(jì)算機(jī)化設(shè)備,其中,還包括操作用于從用戶接收所述預(yù)定范圍的輸入模塊。
16.根據(jù)權(quán)利要求13的計(jì)算機(jī)化設(shè)備,其中,所述響應(yīng)確定器進(jìn)一步操作用于檢索先前提供的時(shí)間;并且,其中,確定的響應(yīng)是先前提供的時(shí)間之前的時(shí)間。
17.根據(jù)權(quán)利要求13的計(jì)算機(jī)化設(shè)備,其中,所述響應(yīng)確定器進(jìn)一步操作用于從時(shí)鐘檢索當(dāng)前時(shí)間,并且,將所述時(shí)間確定為從當(dāng)前時(shí)間至少在預(yù)定持續(xù)時(shí)間之后的時(shí)間。
18.根據(jù)權(quán)利要求12的計(jì)算機(jī)化設(shè)備,其中,所述測試模塊被配置成測試所述計(jì)算機(jī)程序在云計(jì)算環(huán)境中的操作的有效性。
19.根據(jù)權(quán)利要求12的計(jì)算機(jī)化設(shè)備,還包括操作用于預(yù)處理所述計(jì)算機(jī)程序并且識(shí)別操作用于訪問所述資源的函數(shù)調(diào)用的訪問識(shí)別器。
20.根據(jù)權(quán)利要求19的計(jì)算機(jī)化設(shè)備,其中,所述預(yù)處理所述計(jì)算機(jī)程序包含用操作用于替代所述函數(shù)調(diào)用的代碼來插裝所述計(jì)算機(jī)程序。
全文摘要
關(guān)于對(duì)訪問請(qǐng)求的意外響應(yīng)驗(yàn)證計(jì)算機(jī)程序的方法和裝置。測試計(jì)算機(jī)程序包含識(shí)別計(jì)算機(jī)程序?qū)Φ讓又鳈C(jī)所提供的資源的資源訪問請(qǐng)求。資源訪問請(qǐng)求可被截取,并且,確定的響應(yīng)可被返回而不是底層主機(jī)的實(shí)際響應(yīng)。在一些示例性實(shí)施例中,資源可以是底層主機(jī)的時(shí)鐘,并且,響應(yīng)可以是時(shí)鐘的時(shí)間。在一些示例性實(shí)施例中,計(jì)算機(jī)程序可被測試以檢查在云計(jì)算環(huán)境上執(zhí)行期間的有效性,其中,對(duì)資源的訪問會(huì)產(chǎn)生在非云計(jì)算環(huán)境上一般不可預(yù)料到的結(jié)果。測試可以在非云計(jì)算環(huán)境上執(zhí)行并且模擬可應(yīng)用于云計(jì)算環(huán)境的情形。
文檔編號(hào)G06F11/36GK102591771SQ201110360010
公開日2012年7月18日 申請(qǐng)日期2011年11月15日 優(yōu)先權(quán)日2010年11月18日
發(fā)明者A·茲羅特尼克, D·西特龍, Y·尼爾-布奇賓德 申請(qǐng)人:國際商業(yè)機(jī)器公司