亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

創(chuàng)建容錯(cuò)和自適應(yīng)圖形用戶(hù)接口測(cè)試自動(dòng)化的方法和系統(tǒng)的制作方法

文檔序號(hào):6609571閱讀:204來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):創(chuàng)建容錯(cuò)和自適應(yīng)圖形用戶(hù)接口測(cè)試自動(dòng)化的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及計(jì)算機(jī)和包括硬件、軟件和處理的其他數(shù)據(jù)處理系統(tǒng)的領(lǐng)域。更具體地說(shuō),本發(fā)明涉及容錯(cuò)和自適應(yīng)圖形用戶(hù)接口(GUI)測(cè)試自動(dòng)化。
背景技術(shù)
隨著軟件開(kāi)發(fā)人員不斷引入新的和更復(fù)雜的應(yīng)用,基礎(chǔ)程序代碼的復(fù)雜性也相應(yīng)增加。這種復(fù)雜性通常擴(kuò)展到應(yīng)用的圖形用戶(hù)接口(GUI),導(dǎo)致在作為質(zhì)量保證(QA)過(guò)程的一部分開(kāi)發(fā)有意義的軟件測(cè)試過(guò)程時(shí)出現(xiàn)額外且有時(shí)出乎意外之外的難題。應(yīng)用的GUI的手動(dòng)測(cè)試可以是勞動(dòng)密集的、易出錯(cuò)的和昂貴的,這導(dǎo)致開(kāi)發(fā)自動(dòng)化的GUI測(cè)試解決方案。雖然GUI測(cè)試自動(dòng)化的目標(biāo)是消除對(duì)手動(dòng)測(cè)試的需要,但是它目前仍用作人工測(cè)試者的助手。
使GUI測(cè)試過(guò)程自動(dòng)化的現(xiàn)有技術(shù)方法一般包括手動(dòng)GUI測(cè)試交互的“記錄和重放”或?yàn)槊總€(gè)應(yīng)用編寫(xiě)自動(dòng)化的測(cè)試過(guò)程。記錄和重放方法可能是不可靠的,因?yàn)楹芸赡軟](méi)有捕獲和記錄所有可能的用戶(hù)手勢(shì)和GUI交互以便后來(lái)的重放。開(kāi)發(fā)定制編寫(xiě)的自動(dòng)化的GUI測(cè)試帶來(lái)了其他難題,因?yàn)殚_(kāi)發(fā)自動(dòng)化的測(cè)試通常比手動(dòng)測(cè)試GUI要花更長(zhǎng)的時(shí)間。此外,GUI測(cè)試需要調(diào)試自身,并且不能保證定制編寫(xiě)的自動(dòng)化的GUI測(cè)試提供對(duì)所有可能測(cè)試用例的更好覆蓋。類(lèi)似地,得到的測(cè)試自動(dòng)化代碼可能易受被測(cè)試應(yīng)用的后續(xù)更改的影響,這可能導(dǎo)致不可靠的測(cè)試和質(zhì)量保證結(jié)果。
其他現(xiàn)有技術(shù)方法包括使用GUI結(jié)構(gòu)的分層模型來(lái)創(chuàng)建測(cè)試用例。測(cè)試用例通常用作人工測(cè)試者的指示或指導(dǎo)。自動(dòng)化的測(cè)試旨在自動(dòng)定位和測(cè)試軟件應(yīng)用的功能而無(wú)需人工協(xié)助。還存在使測(cè)試GUI軟件自動(dòng)化的現(xiàn)有技術(shù)方法,該方法映射GUI窗口中的對(duì)象和按鈕并隨后隨機(jī)地單擊按鈕并輸入文本直至應(yīng)用出現(xiàn)故障。這些方法記錄導(dǎo)致應(yīng)用出現(xiàn)故障的操作,重新啟動(dòng)應(yīng)用并重復(fù)該過(guò)程,排除任何此前導(dǎo)致應(yīng)用出現(xiàn)故障的操作。但是,這些方法通?;陔S機(jī)操作,并且可能不完全與典型的用戶(hù)行為相關(guān)。鑒于上述內(nèi)容,需要軟件應(yīng)用GUI的改進(jìn)的測(cè)試自動(dòng)化。

發(fā)明內(nèi)容
本發(fā)明包括,但不限于,改進(jìn)的自動(dòng)化的測(cè)試軟件應(yīng)用的圖形用戶(hù)接口(GUI)的方法、裝置和計(jì)算機(jī)可用介質(zhì)。在本發(fā)明的實(shí)施例中,實(shí)現(xiàn)記錄代理以捕獲一個(gè)或多個(gè)人工軟件測(cè)試者的GUI交互。所述測(cè)試者然后制定多個(gè)預(yù)定測(cè)試用例或過(guò)程,它們具有與先決條件相比的已知輸入和與得到的后置條件相比的預(yù)期輸出,以測(cè)試應(yīng)用的GUI的預(yù)期操作。記錄每個(gè)測(cè)試會(huì)話(huà)的輸入、先決條件、交互、輸出和后置條件并將它們編輯成聚集測(cè)試過(guò)程的草案,然后對(duì)其分析以標(biāo)識(shí)每個(gè)試運(yùn)行的公共故障點(diǎn)和異常。
將得到的聚集測(cè)試過(guò)程草案進(jìn)行手動(dòng)修改并將其配置成糾正和/或協(xié)調(diào)標(biāo)識(shí)的異常,以創(chuàng)建隨后在自動(dòng)化測(cè)試環(huán)境中實(shí)現(xiàn)的最終測(cè)試過(guò)程。得到的自動(dòng)化測(cè)試過(guò)程的可靠性隨執(zhí)行的試運(yùn)行數(shù)的增加而增加,這對(duì)本領(lǐng)域的技術(shù)人員是顯而易見(jiàn)的。同樣顯而易見(jiàn)的是,本發(fā)明同時(shí)包含“記錄和重放”及定制編寫(xiě)的自動(dòng)化測(cè)試過(guò)程的優(yōu)點(diǎn),同時(shí)減輕了它們相應(yīng)的不足。
本發(fā)明的測(cè)試系統(tǒng)的各種實(shí)施例隨著人工測(cè)試者的數(shù)量和種類(lèi)的增加會(huì)變得逐漸地容錯(cuò)。此外,本發(fā)明無(wú)需開(kāi)發(fā)定制的測(cè)試過(guò)程,也不依賴(lài)于GUI應(yīng)用的隨機(jī)操作。相反,收集試運(yùn)行期間在測(cè)試用例或過(guò)程之后來(lái)自用戶(hù)的數(shù)據(jù)并將它們相互關(guān)聯(lián),以生成可以以自適應(yīng)和容錯(cuò)的方式定位和測(cè)試軟件應(yīng)用的GUI的自動(dòng)化的測(cè)試過(guò)程。此外,得到的軟件GUI試運(yùn)行是可靠的、可記錄的和可審計(jì)的,由此提供了一致性驗(yàn)證通常所需的可檢驗(yàn)的文檔編制。本發(fā)明的上述以及其他目的、特征和優(yōu)點(diǎn)將在以下詳細(xì)的書(shū)面說(shuō)明中變得顯而易見(jiàn)。


在所附權(quán)利要求中說(shuō)明了被認(rèn)為是本發(fā)明特性的新穎特征。但是,當(dāng)結(jié)合附圖閱讀時(shí),通過(guò)參考以下對(duì)示例性實(shí)施例的詳細(xì)說(shuō)明,可以最佳地理解發(fā)明本身及其優(yōu)選使用方式、進(jìn)一步的目的和優(yōu)點(diǎn),這些附圖是圖1示出了其中可以實(shí)現(xiàn)本發(fā)明的示例性客戶(hù)機(jī);圖2示出了為了圖4中示出的客戶(hù)機(jī)的用戶(hù)的利益而可以從其部署和/或?qū)崿F(xiàn)用于執(zhí)行本發(fā)明的軟件的示例性服務(wù)器;圖3是根據(jù)本發(fā)明的實(shí)施例實(shí)現(xiàn)的容錯(cuò)和自適應(yīng)的自動(dòng)化圖形用戶(hù)接口(GUI)測(cè)試系統(tǒng)的通用流程圖;圖4是根據(jù)本發(fā)明的實(shí)施例實(shí)現(xiàn)的容錯(cuò)和自適應(yīng)的自動(dòng)化GUI測(cè)試系統(tǒng)的通用方塊圖;圖5是根據(jù)本發(fā)明的實(shí)施例實(shí)現(xiàn)的修改后的聚集測(cè)試過(guò)程的概括圖示;圖6a-b示出了部署能夠執(zhí)行圖3中示出和說(shuō)明的步驟的軟件而采取的步驟的流程圖;圖7a-c示出了在虛擬專(zhuān)用網(wǎng)絡(luò)(VPN)中部署能夠執(zhí)行在圖3中示出和說(shuō)明的步驟的軟件而采取的步驟的流程圖;圖8a-b是示出了將能夠執(zhí)行在圖3中示出和說(shuō)明的步驟的軟件集成到計(jì)算機(jī)系統(tǒng)中而采取的步驟的流程圖;以及圖9a-b是示出了使用按需服務(wù)提供商執(zhí)行圖3中示出和說(shuō)明的步驟而采取的步驟的流程圖。
具體實(shí)施例方式
現(xiàn)在參考附圖,具體地說(shuō)參考圖3,其中示出了通過(guò)實(shí)現(xiàn)記錄代理來(lái)進(jìn)行改進(jìn)的和自動(dòng)的測(cè)試軟件應(yīng)用的圖形用戶(hù)接口(GUI)的方法、裝置和計(jì)算機(jī)可用介質(zhì),該代理允許捕獲一個(gè)或多個(gè)人工軟件測(cè)試者的圖形用戶(hù)接口交互并將其結(jié)合到自動(dòng)化的圖形用戶(hù)接口測(cè)試系統(tǒng)中。
現(xiàn)在參考圖1,圖1示出了其中可以使用本發(fā)明的示例性客戶(hù)機(jī)102的方塊圖。客戶(hù)機(jī)102包括連接到系統(tǒng)總線(xiàn)106的處理器單元104。驅(qū)動(dòng)/支持顯示器110的視頻適配器108也連接到系統(tǒng)總線(xiàn)106。系統(tǒng)總線(xiàn)106通過(guò)總線(xiàn)橋112連接到輸入/輸出(I/O)總線(xiàn)114。I/O接口116連接到I/O總線(xiàn)114。I/O接口116提供與各種I/O設(shè)備(包括鍵盤(pán)118、鼠標(biāo)120、光盤(pán)-只讀存儲(chǔ)器(CD-ROM)驅(qū)動(dòng)器122、軟盤(pán)驅(qū)動(dòng)器124和閃存126)的通信。連接到I/O接口416的端口的格式可以是計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域中的技術(shù)人員公知的任何格式,包括但不限于通用串行總線(xiàn)(USB)端口。
客戶(hù)機(jī)102可以使用網(wǎng)絡(luò)接口130(其連接到系統(tǒng)總線(xiàn)106)通過(guò)網(wǎng)絡(luò)128與服務(wù)提供商服務(wù)器202通信。網(wǎng)絡(luò)128可以是外部網(wǎng)絡(luò),例如因特網(wǎng),或內(nèi)部網(wǎng)絡(luò),例如以太網(wǎng)或虛擬專(zhuān)用網(wǎng)絡(luò)(VPN)。通過(guò)使用網(wǎng)絡(luò)128,客戶(hù)機(jī)102可以使用本發(fā)明來(lái)訪(fǎng)問(wèn)服務(wù)提供商服務(wù)器202。
硬盤(pán)驅(qū)動(dòng)器接口132也連接到系統(tǒng)總線(xiàn)106。硬盤(pán)驅(qū)動(dòng)器接口132和硬盤(pán)驅(qū)動(dòng)器134連接。在優(yōu)選實(shí)施例中,硬盤(pán)驅(qū)動(dòng)器134填充也連接到系統(tǒng)總線(xiàn)106的系統(tǒng)存儲(chǔ)器136。填充系統(tǒng)存儲(chǔ)器136的數(shù)據(jù)包括客戶(hù)機(jī)102的操作系統(tǒng)(OS)138和應(yīng)用程序144。
操作系統(tǒng)138包括外殼(shell)140,用于提供對(duì)資源(例如,應(yīng)用程序144)的透明的用戶(hù)訪(fǎng)問(wèn)。一般地說(shuō),外殼140是提供解釋器和用戶(hù)與操作系統(tǒng)之間的接口的程序。更具體地說(shuō),外殼140執(zhí)行輸入命令行用戶(hù)接口或來(lái)自文件的命令。因此,外殼140(在UNIX中的名稱(chēng)),在Windows中也稱(chēng)為命令處理器,通常是操作系統(tǒng)軟件分層結(jié)構(gòu)的最高級(jí)別并充當(dāng)命令解釋器。外殼提供系統(tǒng)提示,解釋由鍵盤(pán)、鼠標(biāo)或其他用戶(hù)輸入介質(zhì)輸入的命令,并將一個(gè)或多個(gè)解釋后的命令發(fā)送到操作系統(tǒng)的適當(dāng)較低級(jí)別(例如,內(nèi)核142)以供處理。注意,雖然外殼140是基于文本的面向行的用戶(hù)接口,但是本發(fā)明將同樣地支持其他用戶(hù)接口模式,例如,圖形、語(yǔ)音、手勢(shì)等。
如圖所示,操作系統(tǒng)138還包括內(nèi)核142,后者包括操作系統(tǒng)138的較低級(jí)別的功能,其中包括提供操作系統(tǒng)138的其他部分和應(yīng)用程序144所需的基本服務(wù),包括存儲(chǔ)器管理、進(jìn)程和任務(wù)管理、盤(pán)管理,以及鼠標(biāo)和鍵盤(pán)管理。
應(yīng)用程序144包括瀏覽器146。瀏覽器146包括使得萬(wàn)維網(wǎng)(WWW)客戶(hù)端(即,客戶(hù)機(jī)102)能夠使用超文本傳輸協(xié)議(HTTP)消息傳送來(lái)向因特網(wǎng)發(fā)送和從因特網(wǎng)接收消息的程序模塊和指令,由此使能與服務(wù)提供商服務(wù)器202的通信。
客戶(hù)機(jī)102的系統(tǒng)存儲(chǔ)器中的應(yīng)用程序144還包括自動(dòng)化的圖形用戶(hù)接口(GUI)測(cè)試系統(tǒng)148。自動(dòng)化的GUI測(cè)試系統(tǒng)148包括用于實(shí)現(xiàn)圖3中說(shuō)明的過(guò)程的代碼。在一個(gè)實(shí)施例中,客戶(hù)機(jī)102可以從服務(wù)提供商服務(wù)器202下載自動(dòng)化的GUI測(cè)試系統(tǒng)148。
客戶(hù)機(jī)102中示出的硬件元件并非旨在是窮舉的,而是代表本發(fā)明所需的重要基本組件。例如,客戶(hù)機(jī)102可以包括備選存儲(chǔ)設(shè)備,例如,磁帶、數(shù)字多功能盤(pán)(DVD)、Bernoulli盒式磁帶等。這些和其他變型都旨在處于本發(fā)明的精神和范圍之內(nèi)。
如上所述,可以從服務(wù)提供商服務(wù)器202將自動(dòng)化的GUI測(cè)試系統(tǒng)148下載到客戶(hù)機(jī)102,如圖2中的示例性形式所示。服務(wù)提供商服務(wù)器202包括連接到系統(tǒng)總線(xiàn)206的處理器單元204。視頻適配器208也連接到系統(tǒng)總線(xiàn)206。視頻適配器208驅(qū)動(dòng)/支持顯示器210。系統(tǒng)總線(xiàn)206通過(guò)總線(xiàn)橋212連接到輸入/輸出(I/O)總線(xiàn)214。I/O接口216連接到I/O總線(xiàn)214。I/O接口216提供與各種I/O設(shè)備(包括鍵盤(pán)218、鼠標(biāo)220、光盤(pán)-只讀存儲(chǔ)器(CD-ROM)驅(qū)動(dòng)器222、軟盤(pán)驅(qū)動(dòng)器224和閃存226)的通信。連接到I/O接口216的端口的格式可以是計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域中的技術(shù)人員公知的任何格式,包括但不限于通用串行總線(xiàn)(USB)端口。
服務(wù)提供商服務(wù)器202可以使用網(wǎng)絡(luò)接口230(其連接到系統(tǒng)總線(xiàn)206)通過(guò)網(wǎng)絡(luò)128與客戶(hù)機(jī)102通信。對(duì)網(wǎng)絡(luò)128的訪(fǎng)問(wèn)允許服務(wù)提供商服務(wù)器202執(zhí)行和/或下載自動(dòng)化的GUI測(cè)試系統(tǒng)148到客戶(hù)機(jī)102。
系統(tǒng)總線(xiàn)206還連接到硬盤(pán)驅(qū)動(dòng)器接口232,后者和硬盤(pán)驅(qū)動(dòng)器234相連。在優(yōu)選實(shí)施例中,硬盤(pán)驅(qū)動(dòng)器234填充系統(tǒng)存儲(chǔ)器236,后者也連接到系統(tǒng)總線(xiàn)206。填充系統(tǒng)存儲(chǔ)器236的數(shù)據(jù)包括服務(wù)提供商服務(wù)器202的操作系統(tǒng)238,后者包括外殼240和內(nèi)核242。外殼240結(jié)合到較高級(jí)別的操作系統(tǒng)層中并用于提供對(duì)資源(例如,包括瀏覽器246的應(yīng)用程序244和上述可以部署到客戶(hù)機(jī)102的自動(dòng)化GUI測(cè)試系統(tǒng)148的副本)的透明的用戶(hù)訪(fǎng)問(wèn)。
服務(wù)提供商服務(wù)器202中示出的硬件元件并非旨在是窮舉的,而是代表本發(fā)明所需的重要基本組件。例如,服務(wù)提供商服務(wù)器202可以包括備選存儲(chǔ)設(shè)備,例如閃速驅(qū)動(dòng)器、磁帶、數(shù)字多功能盤(pán)(DVD)、Bernoulli盒式磁帶等。這些和其他變型都在本發(fā)明的精神和范圍內(nèi)。
還要注意的是,在本發(fā)明的優(yōu)選實(shí)施例中,服務(wù)提供商服務(wù)器202執(zhí)行所有與本發(fā)明關(guān)聯(lián)的功能(包括執(zhí)行自動(dòng)化的GUI測(cè)試系統(tǒng)148),由此使得客戶(hù)機(jī)102免于使用其資源。
應(yīng)當(dāng)理解,本發(fā)明的至少某些方面可以備選地以包含程序產(chǎn)品的計(jì)算機(jī)可用介質(zhì)來(lái)實(shí)現(xiàn)。定義本發(fā)明的功能的程序可以通過(guò)各種信號(hào)承載介質(zhì)被傳送到數(shù)據(jù)存儲(chǔ)系統(tǒng)或計(jì)算機(jī)系統(tǒng),所述信號(hào)承載介質(zhì)包括但不限于,不可寫(xiě)存儲(chǔ)介質(zhì)(例如,CD-ROM),可寫(xiě)存儲(chǔ)介質(zhì)(例如,硬盤(pán)驅(qū)動(dòng)器、讀/寫(xiě)CD ROM、光介質(zhì)),系統(tǒng)存儲(chǔ)器(諸如但不限于隨機(jī)存取存儲(chǔ)器(RAM))以及通信介質(zhì),如包括以太網(wǎng)、因特網(wǎng)、無(wú)線(xiàn)網(wǎng)絡(luò)和類(lèi)似網(wǎng)絡(luò)系統(tǒng)的計(jì)算機(jī)和電話(huà)網(wǎng)絡(luò)。因此應(yīng)當(dāng)理解,當(dāng)承載或編碼有管理本發(fā)明中的方法功能的計(jì)算機(jī)可讀指令時(shí),此類(lèi)信號(hào)承載介質(zhì)代表本發(fā)明的備選實(shí)施例。另外,可以理解,本發(fā)明可以由具有形式為硬件、軟件或如此處描述的軟件和硬件的組合或其等效物的裝置的系統(tǒng)來(lái)實(shí)現(xiàn)。
圖3是根據(jù)本發(fā)明的實(shí)施例實(shí)現(xiàn)的容錯(cuò)和自適應(yīng)的自動(dòng)化圖形用戶(hù)接口(GUI)測(cè)試系統(tǒng)148的通用流程圖。在步驟302,測(cè)試軟件應(yīng)用的GUI開(kāi)始。在步驟304,選擇由人工測(cè)試者要在測(cè)試期間實(shí)現(xiàn)的預(yù)定測(cè)試用例和過(guò)程。在步驟306,選擇人工測(cè)試者來(lái)實(shí)施測(cè)試,并在其計(jì)算機(jī)上實(shí)現(xiàn)記錄代理。
由制定預(yù)定測(cè)試用例或過(guò)程的測(cè)試者在步驟308實(shí)施試運(yùn)行,在此期間,將已知輸入與先決條件相比較,將預(yù)期輸出與得到的后置條件相比較,以測(cè)試主體應(yīng)用的GUI的預(yù)期操作。一旦GUI測(cè)試在步驟308失敗或完成,則將試運(yùn)行的記錄的輸入、先決條件、交互、輸出和后置條件添加到步驟312中的先前試運(yùn)行的結(jié)果,然后使用試運(yùn)行結(jié)果的得到的匯集在步驟310創(chuàng)建聚集的測(cè)試過(guò)程的草案。然后分析該聚集的測(cè)試過(guò)程草案以標(biāo)識(shí)兩個(gè)或更多試運(yùn)行共同的故障點(diǎn)以及個(gè)別試運(yùn)行的操作異常和不一致,然后在步驟314對(duì)它們進(jìn)行手動(dòng)修改、協(xié)調(diào)和/或配置。
例如,在本發(fā)明的實(shí)施例中,將單個(gè)試運(yùn)行解構(gòu)為各個(gè)級(jí)別的粒度(例如,測(cè)試中的步驟、步驟中的任務(wù)、任務(wù)中的命令等)并比較在試運(yùn)行期間出現(xiàn)的共同的操作、差異、意外操作或異常。在本發(fā)明的另一個(gè)實(shí)施例中,使用基于規(guī)則的決策引擎產(chǎn)生操作的一組草案,其中規(guī)則考慮包括,但不限于,人工測(cè)試者的相應(yīng)特性(例如,初學(xué)者、專(zhuān)家等),以及試運(yùn)行中任務(wù)的頻率和共性。在本發(fā)明的再一個(gè)實(shí)施例中,在“diff”實(shí)用程序中顯示不具有共性的分析的結(jié)果,以便測(cè)試管理員可以手動(dòng)選擇聚集的測(cè)試過(guò)程草案的個(gè)別元素的適當(dāng)操作(例如,添加、刪除、修改、配置等)。同樣,雖然試運(yùn)行結(jié)果之間的共性通??梢员恍湃螢槭强煽康牟⑶覠o(wú)需管理員注意,但是仍保留對(duì)聚集的測(cè)試過(guò)程草案進(jìn)行修改的能力??梢灶?lèi)似地檢查、編輯和/或結(jié)合不同試運(yùn)行中的備選測(cè)試路徑和個(gè)別測(cè)試者對(duì)異常的反應(yīng),以便用作備選測(cè)試操作。
然后在步驟316,從在步驟314中創(chuàng)建的修改、協(xié)調(diào)和配置后的測(cè)試過(guò)程草案來(lái)創(chuàng)建自動(dòng)化的測(cè)試過(guò)程,以便在自動(dòng)化的測(cè)試環(huán)境中實(shí)現(xiàn)。在步驟318,在步驟316創(chuàng)建的自動(dòng)化測(cè)試過(guò)程的自動(dòng)化重放實(shí)施在步驟308手動(dòng)實(shí)施的同一預(yù)定測(cè)試用例或過(guò)程,在此期間,將已知輸入與先決條件相比較,將預(yù)期輸出與得到的后置條件相比較,以測(cè)試主體應(yīng)用的GUI的預(yù)期操作。一旦GUI測(cè)試在步驟318失敗或完成,則將試運(yùn)行的記錄的輸入、先決條件、交互、輸出和后置條件添加到步驟312中的先前試運(yùn)行的結(jié)果。
如果在步驟320決定執(zhí)行其他試運(yùn)行,則在步驟322決定是否修改當(dāng)前的測(cè)試用例和/或過(guò)程。如果在步驟322決定修改當(dāng)前的測(cè)試用例和/或過(guò)程,則在步驟324對(duì)它們進(jìn)行修改并在步驟326決定是否由不同的人工測(cè)試者來(lái)運(yùn)行測(cè)試。如果在步驟326決定由不同的人工測(cè)試者來(lái)運(yùn)行測(cè)試,則在步驟306選擇人工測(cè)試者,并且試運(yùn)行如上文更詳細(xì)描述的那樣繼續(xù)。否則,當(dāng)前的人工測(cè)試者在步驟308實(shí)施預(yù)定的測(cè)試用例或過(guò)程,并如上文更詳細(xì)描述的那樣繼續(xù)試運(yùn)行。如果在步驟322決定使用當(dāng)前的測(cè)試用例和/或過(guò)程繼續(xù),則在步驟326決定是否由不同的人工測(cè)試者運(yùn)行測(cè)試。如果在步驟326決定由不同的人工測(cè)試者運(yùn)行測(cè)試,則在步驟306選擇人工測(cè)試者,并且試運(yùn)行如上文更詳細(xì)描述的那樣繼續(xù)。否則,當(dāng)前的人工測(cè)試者在步驟308實(shí)施預(yù)定的測(cè)試用例或過(guò)程,并且試運(yùn)行如上文更詳細(xì)描述的那樣繼續(xù)。
如果在步驟320決定不執(zhí)行其他試運(yùn)行,則在步驟328報(bào)告軟件錯(cuò)誤列表和其他問(wèn)題并且GUI測(cè)試在步驟330結(jié)束。對(duì)本領(lǐng)域的技術(shù)人員將顯而易見(jiàn)的是,本發(fā)明的不同實(shí)施例隨著人工測(cè)試者的數(shù)量和種類(lèi)的增加會(huì)變得逐漸地容錯(cuò)和自適應(yīng)。此外,本發(fā)明無(wú)需開(kāi)發(fā)定制的測(cè)試過(guò)程,也不依賴(lài)于GUI應(yīng)用的隨機(jī)操縱。相反,收集試運(yùn)行期間在測(cè)試用例或過(guò)程之后來(lái)自用戶(hù)的數(shù)據(jù)并將它們相互關(guān)聯(lián),以生成可以以容錯(cuò)和自適應(yīng)的方式定位和測(cè)試軟件應(yīng)用的GUI的自動(dòng)化的測(cè)試過(guò)程。此外,得到的軟件GUI試運(yùn)行是可靠的、可記錄的和可審計(jì)的,由此提供了一致性驗(yàn)證通常所需的可檢驗(yàn)的文檔編制。
圖4是根據(jù)本發(fā)明的實(shí)施例實(shí)現(xiàn)的容錯(cuò)和自適應(yīng)的自動(dòng)化GUI測(cè)試系統(tǒng)148的通用方塊圖。容錯(cuò)和自適應(yīng)的自動(dòng)化GUI測(cè)試系統(tǒng)148包括人工測(cè)試者“A”402、“B”406和“C”410的測(cè)試計(jì)算機(jī)、測(cè)試服務(wù)器414、聚集的試運(yùn)行結(jié)果418、分析和修改的聚集測(cè)試過(guò)程444、自動(dòng)化的測(cè)試過(guò)程446,以及自動(dòng)化的試運(yùn)行結(jié)果448。測(cè)試服務(wù)器414包括要測(cè)試的主體軟件應(yīng)用GUI 416,聚集的試運(yùn)行結(jié)果418包括復(fù)合試運(yùn)行“1”結(jié)果420、復(fù)合試運(yùn)行“2”結(jié)果428,以及復(fù)合試運(yùn)行“3”結(jié)果436。復(fù)合試運(yùn)行“1”結(jié)果420包括來(lái)自測(cè)試者“A”的試運(yùn)行“1”結(jié)果422、來(lái)自測(cè)試者“B”的試運(yùn)行“1”結(jié)果424,以及來(lái)自測(cè)試者“C”的試運(yùn)行“1”結(jié)果426。復(fù)合試運(yùn)行“2”結(jié)果428包括來(lái)自測(cè)試者“A”的試運(yùn)行“2”結(jié)果4 30、來(lái)自測(cè)試者“B”的試運(yùn)行“2”結(jié)果4 32,以及來(lái)自測(cè)試者“C”的試運(yùn)行“2”結(jié)果434。復(fù)合試運(yùn)行“3”結(jié)果436包括來(lái)自測(cè)試者“A”的試運(yùn)行“3”結(jié)果438、來(lái)自測(cè)試者“B”的試運(yùn)行“3”結(jié)果440,以及來(lái)自測(cè)試者“C”的試運(yùn)行“3”結(jié)果442。
在本發(fā)明的其他實(shí)施例中,分別在人工測(cè)試者“A”402、“B”406和“C”410的測(cè)試計(jì)算機(jī)上實(shí)現(xiàn)記錄代理404、408、412,并且啟動(dòng)測(cè)試軟件應(yīng)用的GUI 416,包括測(cè)試服務(wù)器414。由人工測(cè)試者“A”402、“B”406、“C”410選擇并實(shí)施預(yù)定測(cè)試用例和過(guò)程,在此期間,將已知輸入與先決條件相比較,將預(yù)期輸出與得到的后置條件相比較,以測(cè)試在試運(yùn)行期間主體軟件應(yīng)用的GUI 416(包括測(cè)試服務(wù)器414)的預(yù)期操作。一旦每個(gè)測(cè)試者對(duì)軟件應(yīng)用的GUI 416的測(cè)試在試運(yùn)行中出現(xiàn)故障或完成,則將由記錄代理404、408、412捕獲的相應(yīng)試運(yùn)行的輸入、先決條件、交互、輸出和后置條件添加到包括聚集試運(yùn)行結(jié)果418的先前試運(yùn)行的結(jié)果中。
分析聚集試運(yùn)行結(jié)果418以標(biāo)識(shí)兩個(gè)或更多試運(yùn)行共同的故障點(diǎn)以及個(gè)別試運(yùn)行的操作異常和不一致,然后如上文更詳細(xì)說(shuō)明的那樣對(duì)它們進(jìn)行手動(dòng)修改、協(xié)調(diào)和/或配置,以創(chuàng)建分析和修改后的聚集測(cè)試過(guò)程444。從分析和修改后的聚集測(cè)試過(guò)程444創(chuàng)建自動(dòng)化的測(cè)試過(guò)程446并在測(cè)試服務(wù)器414上實(shí)現(xiàn)測(cè)試過(guò)程446,以自動(dòng)化地測(cè)試主體軟件應(yīng)用的GUI 416,生成自動(dòng)化的試運(yùn)行結(jié)果448。
在本發(fā)明的實(shí)施例中,將來(lái)自測(cè)試者“A”422、測(cè)試者“B”424和測(cè)試者“C”426的第一試運(yùn)行的相應(yīng)結(jié)果組合成復(fù)合試運(yùn)行“1”420,然后對(duì)其進(jìn)行分析以標(biāo)識(shí)每個(gè)測(cè)試者的個(gè)別測(cè)試結(jié)果共同的故障點(diǎn),以及其個(gè)別操作異常和不一致,然后如上文更詳細(xì)說(shuō)明的那樣對(duì)它們進(jìn)行手動(dòng)修改、協(xié)調(diào)和/或配置,以創(chuàng)建分析和修改后的聚集測(cè)試過(guò)程444。從分析和修改后的聚集測(cè)試過(guò)程444創(chuàng)建自動(dòng)化的測(cè)試過(guò)程446,并在測(cè)試服務(wù)器414上實(shí)現(xiàn)測(cè)試過(guò)程446,以自動(dòng)化地測(cè)試主體軟件應(yīng)用的GUI 416,生成自動(dòng)化的試運(yùn)行結(jié)果448,所述結(jié)果用作輸入以對(duì)主體軟件應(yīng)用的GUI 416做出更改。
進(jìn)行第二試運(yùn)行,其中將測(cè)試者“A”430、測(cè)試者“B”432和測(cè)試者“C”434的相應(yīng)結(jié)果組合成復(fù)合試運(yùn)行“2”428,然后如上文更詳細(xì)說(shuō)明的那樣對(duì)其進(jìn)行分析和/或修改,以創(chuàng)建分析和修改后的聚集測(cè)試過(guò)程444。創(chuàng)建和實(shí)現(xiàn)第二容錯(cuò)、自適應(yīng)的自動(dòng)化的測(cè)試過(guò)程446,以自動(dòng)化地測(cè)試主體軟件應(yīng)用的GUI 416,生成自動(dòng)化的試運(yùn)行結(jié)果448,所述結(jié)果用作輸入以對(duì)主體軟件應(yīng)用的GUI 416做出后續(xù)更改。
然后進(jìn)行第三試運(yùn)行,其中將測(cè)試者“A”438、測(cè)試者“B”440和測(cè)試者“C”442的相應(yīng)結(jié)果組合成復(fù)合試運(yùn)行“2”436,然后如上文更詳細(xì)說(shuō)明的那樣對(duì)其進(jìn)行分析和/或修改,以創(chuàng)建分析和修改后的聚集測(cè)試過(guò)程444。創(chuàng)建和實(shí)現(xiàn)第三自動(dòng)化的測(cè)試過(guò)程446,以自動(dòng)化地測(cè)試主體軟件應(yīng)用的GUI 416,生成自動(dòng)化的試運(yùn)行結(jié)果448。對(duì)本領(lǐng)域的技術(shù)人員顯而易見(jiàn)的是,每個(gè)實(shí)現(xiàn)自動(dòng)化的測(cè)試過(guò)程446的相繼試運(yùn)行通過(guò)結(jié)合先前試運(yùn)行的結(jié)果而逐漸地變得更加容錯(cuò)。
圖5是根據(jù)本發(fā)明的實(shí)施例實(shí)現(xiàn)的修改后的聚集測(cè)試過(guò)程444的概括圖示。修改后的聚集測(cè)試過(guò)程444包括復(fù)合試運(yùn)行“1”結(jié)果418、復(fù)合試運(yùn)行“2”結(jié)果426,以及復(fù)合試運(yùn)行“3”結(jié)果434。復(fù)合試運(yùn)行“1”結(jié)果418包括由試運(yùn)行“1”組成的測(cè)試步驟、來(lái)自試運(yùn)行“2”的其他測(cè)試步驟504,以及來(lái)自試運(yùn)行“3”的其他測(cè)試步驟506。復(fù)合試運(yùn)行“2”結(jié)果426包括由試運(yùn)行“2”組成的測(cè)試步驟、來(lái)自試運(yùn)行“1”的其他測(cè)試步驟502,以及來(lái)自試運(yùn)行“3”的其他測(cè)試步驟506。復(fù)合試運(yùn)行“3”結(jié)果434包括由試運(yùn)行“3”組成的測(cè)試步驟和來(lái)自試運(yùn)行“2”的其他測(cè)試步驟504。
如上文更詳細(xì)說(shuō)明的那樣,分析和修改后的聚集測(cè)試過(guò)程444是以下操作的結(jié)果標(biāo)識(shí)兩個(gè)或更多試運(yùn)行共同的故障點(diǎn)以及個(gè)別試運(yùn)行的操作異常和不一致,然后對(duì)它們進(jìn)行手動(dòng)修改、協(xié)調(diào)和/或配置,然后用于創(chuàng)建容錯(cuò)、自適應(yīng)的自動(dòng)化測(cè)試過(guò)程446,測(cè)試過(guò)程446在測(cè)試服務(wù)器414上實(shí)現(xiàn),以自動(dòng)化地測(cè)試主體軟件應(yīng)用的GUI 416,生成自動(dòng)化的試運(yùn)行結(jié)果448。
因此,可以將本文所述并具體在圖3中示出和說(shuō)明的方法部署為從服務(wù)提供商服務(wù)器202到客戶(hù)機(jī)102的處理軟件。
現(xiàn)在參考圖6,步驟600開(kāi)始部署所述處理軟件。首先判定在執(zhí)行所述處理軟件時(shí)是否有任何程序駐留在一個(gè)或多個(gè)服務(wù)器上(查詢(xún)塊602)。如果是,則標(biāo)識(shí)將包含可執(zhí)行程序的服務(wù)器(塊604)。將所述一個(gè)或多個(gè)服務(wù)器的處理軟件通過(guò)文件傳輸協(xié)議(FTP)或某種其他協(xié)議或通過(guò)使用共享文件系統(tǒng)復(fù)制來(lái)直接傳輸?shù)椒?wù)器的存儲(chǔ)裝置(塊606)。然后將處理軟件安裝在服務(wù)器上(塊608)。
接著,判定是否通過(guò)使用戶(hù)訪(fǎng)問(wèn)一個(gè)或多個(gè)服務(wù)器上的處理軟件來(lái)部署處理軟件(查詢(xún)塊610)。如果用戶(hù)要訪(fǎng)問(wèn)服務(wù)器上的處理軟件,則標(biāo)識(shí)存儲(chǔ)所述處理軟件的服務(wù)器地址(塊612)。
判定是否構(gòu)建代理服務(wù)器(查詢(xún)塊614)來(lái)存儲(chǔ)所述處理軟件。代理服務(wù)器是位于客戶(hù)端應(yīng)用(例如,Web瀏覽器)與真實(shí)服務(wù)器之間的服務(wù)器。它攔截所有對(duì)真實(shí)服務(wù)器的請(qǐng)求以查看它自身是否可以滿(mǎn)足所述請(qǐng)求。如果不能,它就將所述請(qǐng)求轉(zhuǎn)發(fā)到真實(shí)服務(wù)器。代理服務(wù)器的兩個(gè)主要益處是改進(jìn)性能和過(guò)濾請(qǐng)求。如果需要代理服務(wù)器,將安裝代理服務(wù)器(塊616)。通過(guò)諸如FTP的協(xié)議將處理軟件發(fā)送到服務(wù)器,或通過(guò)文件共享直接將其從源文件復(fù)制到服務(wù)器文件(塊618)。其他實(shí)施例將向包含處理軟件的服務(wù)器發(fā)送事務(wù)并使服務(wù)器處理事務(wù),然后接收所述處理軟件并將其復(fù)制到服務(wù)器的文件系統(tǒng)。一旦將所述處理軟件存儲(chǔ)到服務(wù)器,用戶(hù)就可以通過(guò)他們的客戶(hù)機(jī)訪(fǎng)問(wèn)服務(wù)器上的處理軟件并將其復(fù)制到他們的客戶(hù)機(jī)文件系統(tǒng)(塊620)。其他實(shí)施例是使服務(wù)器自動(dòng)將所述處理軟件復(fù)制到每個(gè)客戶(hù)機(jī),然后在每個(gè)客戶(hù)機(jī)處運(yùn)行所述處理軟件的安裝程序。用戶(hù)執(zhí)行將所述處理軟件安裝到其客戶(hù)機(jī)的程序(塊622),然后退出過(guò)程(終止塊624)。
在查詢(xún)步驟626,判定是否通過(guò)將處理軟件通過(guò)電子郵件發(fā)送到用戶(hù)來(lái)部署所述處理軟件。標(biāo)識(shí)將所述處理軟件部署到該處的用戶(hù)集以及用戶(hù)客戶(hù)機(jī)的地址(塊628)。通過(guò)電子郵件將所述處理軟件發(fā)送到每個(gè)用戶(hù)的客戶(hù)機(jī)(塊630)。然后,用戶(hù)接收電子郵件(塊632)并將所述處理軟件從電子郵件分離到他們的客戶(hù)機(jī)上的目錄(塊634)。用戶(hù)執(zhí)行將所述處理軟件安裝到其客戶(hù)機(jī)的程序(塊622),然后退出過(guò)程(終止塊624)。
最后,判定是否將所述處理軟件直接發(fā)送到他們的客戶(hù)機(jī)上的用戶(hù)目錄(查詢(xún)塊636)。如果是,則標(biāo)識(shí)用戶(hù)目錄(塊638)。將所述處理軟件直接傳輸?shù)接脩?hù)的客戶(hù)機(jī)目錄(塊640)。這可以通過(guò)若干種方式完成,例如,但不限于,共享文件系統(tǒng)目錄并從發(fā)送方的文件系統(tǒng)復(fù)制到接收用戶(hù)的文件系統(tǒng)或備選地使用諸如文件傳輸協(xié)議(FTP)之類(lèi)的傳輸協(xié)議。用戶(hù)訪(fǎng)問(wèn)他們的客戶(hù)機(jī)文件系統(tǒng)上的目錄以準(zhǔn)備安裝所述處理軟件(塊642)。用戶(hù)執(zhí)行將所述處理軟件安裝到他的客戶(hù)機(jī)的程序(塊622),然后退出過(guò)程(終止塊624)。
可以將本軟件作為服務(wù)的一部分部署到第三方,其中作為安全部署工具來(lái)提供第三方VPN服務(wù)或其中按照特定部署的需要來(lái)按需建立VPN。
虛擬專(zhuān)用網(wǎng)絡(luò)(VPN)是可用于通過(guò)否則不安全或不被信任的網(wǎng)絡(luò)來(lái)保護(hù)連接的技術(shù)的任何組合。VPN提高了安全性并降低了運(yùn)行成本。VPN利用公共網(wǎng)絡(luò)(通常是因特網(wǎng))將遠(yuǎn)程站點(diǎn)或用戶(hù)連接到一起。VPN不使用專(zhuān)用的真實(shí)連接(例如,租用線(xiàn)路),而是使用通過(guò)因特網(wǎng)從公司的專(zhuān)用網(wǎng)絡(luò)路由到遠(yuǎn)程站點(diǎn)或雇員的“虛擬”連接。通過(guò)為了傳送或執(zhí)行處理軟件(即,軟件位于其他位置)的目的而特別構(gòu)建VPN,可以作為服務(wù)來(lái)提供通過(guò)VPN訪(fǎng)問(wèn)軟件,其中根據(jù)支付的金額,VPN的使用期限限于給定的時(shí)間周期或給定次數(shù)的部署。
可以通過(guò)遠(yuǎn)程訪(fǎng)問(wèn)或站點(diǎn)到站點(diǎn)VPN來(lái)部署、訪(fǎng)問(wèn)和執(zhí)行處理軟件。當(dāng)使用遠(yuǎn)程訪(fǎng)問(wèn)VPN時(shí),經(jīng)由公司專(zhuān)用網(wǎng)絡(luò)與遠(yuǎn)程用戶(hù)之間的安全和加密的連接并通過(guò)第三方服務(wù)提供商來(lái)部署、訪(fǎng)問(wèn)和執(zhí)行處理軟件。企業(yè)服務(wù)提供商(ESP)設(shè)置網(wǎng)絡(luò)訪(fǎng)問(wèn)服務(wù)器(NAS)并向遠(yuǎn)程用戶(hù)的計(jì)算機(jī)提供桌面客戶(hù)端軟件。然后,遠(yuǎn)程工作者可以撥打免費(fèi)號(hào)碼或通過(guò)電纜或DSL調(diào)制解調(diào)器直接連接以到達(dá)NAS并使用他們的VPN客戶(hù)端軟件來(lái)訪(fǎng)問(wèn)公司網(wǎng)絡(luò)以及訪(fǎng)問(wèn)、下載和執(zhí)行處理軟件。
當(dāng)使用站點(diǎn)到站點(diǎn)VPN時(shí),通過(guò)使用用于在公共網(wǎng)絡(luò)(例如,因特網(wǎng))上連接公司的多個(gè)固定站點(diǎn)的專(zhuān)用設(shè)備和大規(guī)模加密來(lái)部署、訪(fǎng)問(wèn)和執(zhí)行處理軟件。
所述處理軟件在VPN上通過(guò)隧道傳輸,其是將整個(gè)分組置于其他分組內(nèi)并將其在網(wǎng)絡(luò)上發(fā)送的過(guò)程。網(wǎng)絡(luò)和兩個(gè)點(diǎn)(稱(chēng)為隧道接口,分組從該處進(jìn)入和離開(kāi)網(wǎng)絡(luò))理解外部分組的協(xié)議。
圖7中說(shuō)明了這種VPN部署的過(guò)程。起始?jí)K702開(kāi)始虛擬專(zhuān)用網(wǎng)絡(luò)(VPN)過(guò)程。判定是否需要用于遠(yuǎn)程訪(fǎng)問(wèn)的VPN(查詢(xún)塊704)。如果不需要,則前進(jìn)到查詢(xún)塊706。如果需要,則判定是否存在遠(yuǎn)程訪(fǎng)問(wèn)VPN(查詢(xún)塊708)。
如果確實(shí)存在VPN,則前進(jìn)到塊710。否則,標(biāo)識(shí)將提供公司的專(zhuān)用網(wǎng)絡(luò)與公司的遠(yuǎn)程用戶(hù)之間的安全、加密連接的第三方提供商(塊712)。標(biāo)識(shí)公司的遠(yuǎn)程用戶(hù)(塊714)。然后,第三方提供商建立網(wǎng)絡(luò)訪(fǎng)問(wèn)服務(wù)器(NAS)(塊716),其允許遠(yuǎn)程用戶(hù)撥打免費(fèi)號(hào)碼或通過(guò)寬帶調(diào)制解調(diào)器直接連接以訪(fǎng)問(wèn)、下載和安裝遠(yuǎn)程訪(fǎng)問(wèn)VPN的桌面客戶(hù)端軟件(塊718)。
在建立了遠(yuǎn)程訪(fǎng)問(wèn)VPN之后或如果先前安裝了VPN,則遠(yuǎn)程用戶(hù)可以通過(guò)撥入NAS或通過(guò)電纜或DSL調(diào)制解調(diào)器直接連接到NAS來(lái)訪(fǎng)問(wèn)所述處理軟件(塊710)。這允許進(jìn)入從該處可以訪(fǎng)問(wèn)處理軟件的公司網(wǎng)絡(luò)(塊720)。通過(guò)隧道在網(wǎng)絡(luò)上將所述處理軟件傳輸?shù)竭h(yuǎn)程用戶(hù)的桌面。也就是說(shuō),將所述處理軟件分為分組,并將每個(gè)包括數(shù)據(jù)和協(xié)議的分組置于其他分組中(塊722)。當(dāng)所述處理軟件到達(dá)遠(yuǎn)程用戶(hù)的桌面時(shí),將其從分組中取出、重構(gòu),然后在遠(yuǎn)程用戶(hù)的桌面上執(zhí)行(塊724)。
然后判定是否需要站點(diǎn)到站點(diǎn)訪(fǎng)問(wèn)的VPN(查詢(xún)塊706)。如果不需要,則前進(jìn)以退出過(guò)程(終止塊726)。否則,判定是否存在站點(diǎn)到站點(diǎn)VPN(查詢(xún)塊728)。如果確實(shí)不存在,則前進(jìn)到塊730。否則,安裝建立站點(diǎn)到站點(diǎn)VPN所需的專(zhuān)用設(shè)備(塊738)。然后,將大規(guī)模加密構(gòu)建到VPN中(塊740)。
在建立了站點(diǎn)到站點(diǎn)VPN之后或如果先前建立了VPN,則用戶(hù)通過(guò)VPN來(lái)訪(fǎng)問(wèn)所述處理軟件(塊730)。在網(wǎng)絡(luò)上通過(guò)隧道將所述處理軟件傳輸?shù)秸军c(diǎn)用戶(hù)(塊732)。也就是說(shuō),將處理軟件分為多個(gè)分組,并將每個(gè)包括數(shù)據(jù)和協(xié)議的分組置于其他分組中(塊734)。當(dāng)所述處理軟件到達(dá)遠(yuǎn)程用戶(hù)的桌面時(shí),將其從分組中取出、重建,然后在站點(diǎn)用戶(hù)的桌面上執(zhí)行(塊736)。然后,過(guò)程在終止塊726結(jié)束。
通過(guò)規(guī)定包括用于實(shí)現(xiàn)本文所說(shuō)明過(guò)程的代碼的處理軟件與應(yīng)用、操作系統(tǒng)和網(wǎng)絡(luò)操作系統(tǒng)軟件共存,然后將處理軟件安裝在環(huán)境(所述處理軟件在其中工作)中的客戶(hù)機(jī)和服務(wù)器上,可以將所述處理軟件集成到客戶(hù)機(jī)、服務(wù)器和網(wǎng)絡(luò)環(huán)境中。
第一步是標(biāo)識(shí)客戶(hù)機(jī)和服務(wù)器上的任何軟件,包括處理軟件所需的或與處理軟件協(xié)同工作的網(wǎng)絡(luò)操作系統(tǒng)(將在該處部署處理軟件)。這包括是通過(guò)添加聯(lián)網(wǎng)功能來(lái)增強(qiáng)基本操作系統(tǒng)的軟件的網(wǎng)絡(luò)操作系統(tǒng)。
接著,標(biāo)識(shí)軟件應(yīng)用和版本號(hào)并將其與已測(cè)試為可與所述處理軟件一起運(yùn)行的軟件應(yīng)用和版本號(hào)的列表相比較。將使用正確的版本號(hào)來(lái)升級(jí)那些丟失的或不匹配正確版本的軟件應(yīng)用。檢查將參數(shù)從所述處理軟件傳遞到軟件應(yīng)用的程序指令以確保參數(shù)列表與所述處理軟件所需的參數(shù)列表匹配。相反地,檢查由軟件應(yīng)用傳遞到處理軟件的參數(shù)以確保所述參數(shù)與所述處理軟件所需的參數(shù)匹配。標(biāo)識(shí)包括網(wǎng)絡(luò)操作系統(tǒng)的客戶(hù)機(jī)和服務(wù)器操作系統(tǒng)并將其與已測(cè)試為可與所述處理軟件一起運(yùn)行的操作系統(tǒng)、版本號(hào)和網(wǎng)絡(luò)軟件的列表相比較。在客戶(hù)機(jī)和服務(wù)器上將與已測(cè)試的操作系統(tǒng)和版本號(hào)的列表不匹配的那些操作系統(tǒng)、版本號(hào)和網(wǎng)絡(luò)軟件升級(jí)到所需級(jí)別。
在確保軟件(要將處理軟件部署到該處)處于已測(cè)試為可與所述處理軟件一起運(yùn)行的正確版本級(jí)別之后,通過(guò)將所述處理軟件安裝到客戶(hù)機(jī)和服務(wù)器上來(lái)完成集成。
對(duì)于此過(guò)程的高級(jí)描述,現(xiàn)在參考圖8。起始?jí)K802開(kāi)始處理軟件的集成。首先判定是否存在任何將在一個(gè)或多個(gè)服務(wù)器上執(zhí)行的處理軟件程序(塊804)。如果否,則集成前進(jìn)到查詢(xún)塊806。如果是,則標(biāo)識(shí)服務(wù)器地址(塊808)。檢查服務(wù)器以查看它們是否包含包括操作系統(tǒng)(OS)、應(yīng)用和網(wǎng)絡(luò)操作系統(tǒng)(NOS)連同它們的版本號(hào)(已與所述處理軟件一起測(cè)試)的軟件(塊810)。還檢查服務(wù)器以判定在塊810中,是否缺失任何處理軟件所需的軟件。
判定版本號(hào)是否和已與所述處理軟件一起測(cè)試的操作系統(tǒng)、應(yīng)用和網(wǎng)絡(luò)操作系統(tǒng)的版本號(hào)相匹配(塊812)。如果所有版本都匹配并且沒(méi)有缺失任何所需的軟件,則集成在查詢(xún)塊806繼續(xù)。
如果一個(gè)或多個(gè)版本號(hào)不匹配,則使用正確的版本在一個(gè)或多個(gè)服務(wù)器上更新不匹配的版本(塊814)。此外,如果缺失所需的軟件,則在塊814示出的步驟中在一個(gè)或多個(gè)服務(wù)器上更新該軟件。通過(guò)安裝所述處理軟件來(lái)完成服務(wù)器集成(塊816)。
在查詢(xún)塊806中示出的步驟(其在塊804、812或816中示出的步驟之后)判定是否存在任何將在客戶(hù)機(jī)上執(zhí)行的處理軟件的程序。如果沒(méi)有處理軟件程序在客戶(hù)機(jī)上執(zhí)行,則集成前進(jìn)到終止塊818并退出。如果不是這種情況,則如塊820中所示的那樣標(biāo)識(shí)客戶(hù)機(jī)地址。
檢查客戶(hù)機(jī)以查看它們是否包含包括操作系統(tǒng)(OS)、應(yīng)用和網(wǎng)絡(luò)操作系統(tǒng)(NOS)連同它們的版本號(hào)(已與所述處理軟件一起測(cè)試)的軟件(塊822)。還檢查客戶(hù)機(jī)以判定在塊822描述的步驟中,是否缺失任何處理軟件所需的軟件。
判定版本號(hào)是否和已與所述處理軟件一起測(cè)試的操作系統(tǒng)、應(yīng)用和網(wǎng)絡(luò)操作系統(tǒng)的版本號(hào)相匹配(查詢(xún)塊824)。如果所有版本都匹配并且沒(méi)有缺失任何所需的軟件,則集成前進(jìn)到終止塊818并退出。
如果一個(gè)或多個(gè)版本號(hào)不匹配,則使用正確的版本在客戶(hù)機(jī)上更新不匹配的版本(塊826)。此外,如果缺失所需的軟件,則在客戶(hù)機(jī)上更新該軟件(也在塊826)。通過(guò)在客戶(hù)機(jī)上安裝所述處理軟件來(lái)完成客戶(hù)機(jī)集成(塊828)。集成前進(jìn)到終止塊818并退出。
共享所述處理軟件,其以靈活和自動(dòng)化的方式同時(shí)為多個(gè)客戶(hù)服務(wù)。它是標(biāo)準(zhǔn)化的,幾乎不需要定制,并且它是可伸縮的,以現(xiàn)買(mǎi)現(xiàn)付模式按需提供容量。
可以將處理軟件存儲(chǔ)在可從一個(gè)或多個(gè)服務(wù)器訪(fǎng)問(wèn)的共享文件系統(tǒng)上。通過(guò)事務(wù)來(lái)執(zhí)行處理軟件,所述事務(wù)包含數(shù)據(jù)和使用被訪(fǎng)問(wèn)服務(wù)器上的CPU單位的服務(wù)器處理請(qǐng)求。CPU單位是服務(wù)器的中央處理器上的諸如分、秒、小時(shí)之類(lèi)的時(shí)間單位。此外,被訪(fǎng)問(wèn)的服務(wù)器可以做出對(duì)其他需要CPU單位的服務(wù)器的請(qǐng)求。CPU單位只是代表一個(gè)使用度量的實(shí)例。其他使用度量包括但不限于網(wǎng)絡(luò)帶寬、存儲(chǔ)器使用率、存儲(chǔ)裝置使用率、分組傳輸、完整的事務(wù)等。
當(dāng)多個(gè)客戶(hù)使用同一處理軟件應(yīng)用時(shí),通過(guò)包括在事務(wù)中的標(biāo)識(shí)唯一客戶(hù)及該客戶(hù)的服務(wù)類(lèi)型的參數(shù)來(lái)區(qū)分他們的事務(wù)。記錄每個(gè)客戶(hù)的服務(wù)使用的CPU單位和其他使用度量。當(dāng)針對(duì)任何一個(gè)服務(wù)器的事務(wù)數(shù)達(dá)到開(kāi)始影響該服務(wù)器的性能的數(shù)量時(shí),訪(fǎng)問(wèn)其他服務(wù)器以增加容量并共享工作負(fù)荷。同樣,當(dāng)其他使用度量(例如,網(wǎng)絡(luò)帶寬、存儲(chǔ)器使用率、存儲(chǔ)裝置使用率等)接近可以影響性能的容量時(shí),將添加額外的網(wǎng)絡(luò)帶寬、存儲(chǔ)器、存儲(chǔ)裝置等以共享工作負(fù)荷。
將用于每個(gè)服務(wù)和客戶(hù)的使用度量發(fā)送到收集服務(wù)器,收集服務(wù)器將在服務(wù)器網(wǎng)絡(luò)(提供處理軟件的共享執(zhí)行)中的任何位置處理的每個(gè)服務(wù)的每個(gè)客戶(hù)的使用度量相加。將相加的使用度量單位定期乘以單位成本,并備選地將得到的總處理軟件應(yīng)用服務(wù)成本發(fā)送到客戶(hù)和/或在由客戶(hù)訪(fǎng)問(wèn)的Web站點(diǎn)上指示,然后客戶(hù)向服務(wù)提供商付費(fèi)。
在另一個(gè)實(shí)施例中,服務(wù)提供商從銀行或金融機(jī)構(gòu)處的客戶(hù)賬戶(hù)直接請(qǐng)求支付。在再一個(gè)實(shí)施例中,如果服務(wù)提供商也是使用處理軟件應(yīng)用的客戶(hù)的客戶(hù),則將欠服務(wù)提供商的款項(xiàng)與服務(wù)提供商的欠款相協(xié)調(diào)以最小化支付傳輸。
現(xiàn)在參考圖9,起始?jí)K902開(kāi)始按需過(guò)程。創(chuàng)建包含唯一客戶(hù)標(biāo)識(shí)、請(qǐng)求的服務(wù)類(lèi)型和任何進(jìn)一步指定服務(wù)類(lèi)型的服務(wù)參數(shù)的事務(wù)(塊904)。然后,將事務(wù)發(fā)送到主服務(wù)器(塊906)。在按需環(huán)境下,主服務(wù)器可以最初是唯一的服務(wù)器,然后隨著容量的消耗,可以將其他服務(wù)器添加到所述按需環(huán)境。
查詢(xún)按需環(huán)境中的服務(wù)器中央處理單元(CPU)容量(塊908)。估計(jì)事務(wù)的CPU需求,然后將按需環(huán)境中的服務(wù)器可用CPU容量與事務(wù)CPU需求相比較,以查看任何服務(wù)器中是否有足夠的CPU可用容量來(lái)處理事務(wù)(查詢(xún)塊910)。如果沒(méi)有足夠的服務(wù)器CPU可用容量,則分配額外的服務(wù)器CPU容量來(lái)處理事務(wù)(塊912)。如果已存在足夠的可用CPU容量,則將事務(wù)發(fā)送到選定的服務(wù)器(塊914)。
在執(zhí)行事務(wù)之前,檢查其余按需環(huán)境以判定所述環(huán)境是否具有足夠的可用容量以便處理事務(wù)。此環(huán)境容量包括但不限于網(wǎng)絡(luò)帶寬、處理器存儲(chǔ)器、存儲(chǔ)裝置等(塊916)。如果沒(méi)有足夠的可用容量,則將容量添加到按需環(huán)境(塊918)。接著,訪(fǎng)問(wèn)處理事務(wù)所需的軟件,將其加載到存儲(chǔ)器中,然后執(zhí)行事務(wù)(塊920)。
記錄使用率度量(塊922)。使用率度量包括按需環(huán)境中用于處理事務(wù)的那些功能的部分。記錄了此類(lèi)功能的使用率,包括但不限于網(wǎng)絡(luò)帶寬、處理器存儲(chǔ)器、存儲(chǔ)裝置和CPU周期。將使用率度量相加,乘以單位成本,然后記錄為對(duì)發(fā)出請(qǐng)求的客戶(hù)的收費(fèi)(塊924)。
如果客戶(hù)請(qǐng)求將按需費(fèi)用發(fā)布到Web站點(diǎn)(查詢(xún)塊926),則將其發(fā)布(塊928)。如果客戶(hù)請(qǐng)求將按需費(fèi)用通過(guò)電子郵件發(fā)送到客戶(hù)地址(查詢(xún)塊930),則將這些費(fèi)用發(fā)送到客戶(hù)(塊932)。如果客戶(hù)請(qǐng)求直接從客戶(hù)賬戶(hù)支付按需費(fèi)用(查詢(xún)塊934),則直接從客戶(hù)賬戶(hù)接收付款(塊936)。然后在終止塊938退出按需過(guò)程。
雖然參考優(yōu)選實(shí)施例具體示出和描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員將理解,可以在不偏離本發(fā)明的精神和范圍的情況下對(duì)其做出形式和細(xì)節(jié)上的各種更改。此外,如說(shuō)明書(shū)和所附權(quán)利要求中使用的,術(shù)語(yǔ)“計(jì)算機(jī)”或“系統(tǒng)”或“計(jì)算機(jī)系統(tǒng)”或“計(jì)算設(shè)備”包括任何數(shù)據(jù)處理系統(tǒng),包括但不限于,個(gè)人計(jì)算機(jī)、服務(wù)器、工作站、網(wǎng)絡(luò)計(jì)算機(jī)、大型機(jī)、路由器、交換機(jī)、個(gè)人數(shù)字助理(PDA)、電話(huà),以及任何其他能夠處理、傳輸、接收、捕獲和/或存儲(chǔ)數(shù)據(jù)的系統(tǒng)。
權(quán)利要求
1.一種可計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括捕獲與在第一測(cè)試過(guò)程期間和圖形用戶(hù)接口進(jìn)行的多個(gè)用戶(hù)交互對(duì)應(yīng)的數(shù)據(jù);生成與所述第一測(cè)試過(guò)程期間的所述用戶(hù)交互對(duì)應(yīng)的復(fù)合數(shù)據(jù);處理所述復(fù)合數(shù)據(jù)并從其生成第二測(cè)試過(guò)程;捕獲與在所述第二測(cè)試過(guò)程期間和所述圖形用戶(hù)接口進(jìn)行的多個(gè)用戶(hù)交互對(duì)應(yīng)的數(shù)據(jù);使用來(lái)自所述第二測(cè)試過(guò)程的所述捕獲的數(shù)據(jù)來(lái)生成自適應(yīng)過(guò)程以便進(jìn)一步測(cè)試所述圖形用戶(hù)接口。
2.如權(quán)利要求1中所述的方法,還包括使用記錄代理來(lái)捕獲與所述第一和第二測(cè)試過(guò)程期間的所述多個(gè)用戶(hù)交互對(duì)應(yīng)的所述數(shù)據(jù)。
3.如權(quán)利要求2中所述的方法,其中所述第一測(cè)試過(guò)程包括第一組與先決條件相比的已知輸入和與后置條件相比的相應(yīng)預(yù)期輸出。
4.如權(quán)利要求3中所述的方法,其中所述第一測(cè)試過(guò)程的所述第一組已知輸入、先決條件、輸出和后置條件由所述記錄代理記錄并分析以生成所述第二測(cè)試過(guò)程。
5.如權(quán)利要求4中所述的方法,其中所述第二測(cè)試過(guò)程包括第二組與先決條件相比的已知輸入和與后置條件相比的相應(yīng)預(yù)期輸出。
6.如權(quán)利要求5中所述的方法,還包括執(zhí)行所述第二測(cè)試過(guò)程;使用所述記錄代理來(lái)捕獲與所述第二組已知輸入、先決條件、輸出和后置條件對(duì)應(yīng)的數(shù)據(jù);以及使用來(lái)自所述第二測(cè)試過(guò)程的所述捕獲的數(shù)據(jù)來(lái)生成所述圖形用戶(hù)接口的后續(xù)測(cè)試過(guò)程。
7.一種系統(tǒng),所述系統(tǒng)包括處理器;連接到所述處理器的數(shù)據(jù)總線(xiàn);以及包含計(jì)算機(jī)程序代碼的計(jì)算機(jī)可用介質(zhì),所述計(jì)算機(jī)可用介質(zhì)連接到所述數(shù)據(jù)總線(xiàn),所述計(jì)算機(jī)程序代碼包括可由所述處理器執(zhí)行的指令,所述指令配置為執(zhí)行以下操作捕獲與在第一測(cè)試過(guò)程期間和圖形用戶(hù)接口進(jìn)行的多個(gè)用戶(hù)交互對(duì)應(yīng)的數(shù)據(jù);生成與所述第一測(cè)試過(guò)程期間的所述用戶(hù)交互對(duì)應(yīng)的復(fù)合數(shù)據(jù);處理所述復(fù)合數(shù)據(jù)并從其生成第二測(cè)試過(guò)程;捕獲與在所述第二測(cè)試過(guò)程期間和所述圖形用戶(hù)接口進(jìn)行的多個(gè)用戶(hù)交互對(duì)應(yīng)的數(shù)據(jù);使用來(lái)自所述第二測(cè)試過(guò)程的所述捕獲的數(shù)據(jù)來(lái)生成自適應(yīng)過(guò)程以便進(jìn)一步測(cè)試所述圖形用戶(hù)接口。
8.如權(quán)利要求7中所述的系統(tǒng),其中所述指令還配置為執(zhí)行以下操作使用記錄代理來(lái)捕獲與所述第一和第二測(cè)試過(guò)程期間的所述多個(gè)用戶(hù)交互對(duì)應(yīng)的所述數(shù)據(jù)。
9.如權(quán)利要求8中所述的系統(tǒng),其中所述第一測(cè)試過(guò)程包括第一組與先決條件相比的已知輸入和與后置條件相比的相應(yīng)預(yù)期輸出。
10.如權(quán)利要求9中所述的系統(tǒng),其中所述第一測(cè)試過(guò)程的所述第一組已知輸入、先決條件、輸出和后置條件由所述記錄代理記錄并分析以生成所述第二測(cè)試過(guò)程。
11.如權(quán)利要求10中所述的系統(tǒng),其中所述第二測(cè)試過(guò)程包括第二組與先決條件相比的已知輸入和與后置條件相比的相應(yīng)預(yù)期輸出。
12.如權(quán)利要求11中所述的系統(tǒng),其中所述指令還配置為執(zhí)行以下操作執(zhí)行所述第二測(cè)試過(guò)程;使用所述記錄代理來(lái)捕獲與所述第二組已知輸入、先決條件、輸出和后置條件對(duì)應(yīng)的數(shù)據(jù);以及使用來(lái)自所述第二測(cè)試過(guò)程的所述捕獲的數(shù)據(jù)來(lái)生成所述圖形用戶(hù)接口的后續(xù)測(cè)試過(guò)程。
全文摘要
一種通過(guò)實(shí)現(xiàn)記錄代理來(lái)進(jìn)行改進(jìn)的和自動(dòng)的測(cè)試軟件應(yīng)用的圖形用戶(hù)接口的方法、裝置和計(jì)算機(jī)可用介質(zhì),該代理允許捕獲一個(gè)或多個(gè)人工軟件測(cè)試者的圖形用戶(hù)接口交互并將其結(jié)合到容錯(cuò)和自適應(yīng)的自動(dòng)化圖形用戶(hù)接口測(cè)試系統(tǒng)中。實(shí)現(xiàn)記錄代理以捕獲一個(gè)或多個(gè)人工軟件測(cè)試者的圖形用戶(hù)接口交互。測(cè)試者制定多個(gè)預(yù)定測(cè)試用例或過(guò)程,其具有與先決條件相比的已知輸入和與得到的后置條件相比的預(yù)期輸出,它們被記錄并編輯到聚集測(cè)試過(guò)程中。修改得到的聚集測(cè)試過(guò)程并將其配置為糾正和/或協(xié)調(diào)識(shí)別的異常,以創(chuàng)建在自動(dòng)化的測(cè)試環(huán)境中實(shí)現(xiàn)的最終測(cè)試過(guò)程。將每個(gè)試運(yùn)行的結(jié)果隨后合并到自動(dòng)化測(cè)試過(guò)程中,使其隨試運(yùn)行數(shù)的增加變得更加容錯(cuò)和自適應(yīng)。
文檔編號(hào)G06F11/36GK101089826SQ20071010899
公開(kāi)日2007年12月19日 申請(qǐng)日期2007年6月11日 優(yōu)先權(quán)日2006年6月12日
發(fā)明者J·D·吉洛尼, H·S·克洛維茨, W·D·哈于廷, S·A·施瓦茨曼 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1