專利名稱:用于集成測試平臺的測試數(shù)據(jù)供應(yīng)鏈管理器的制作方法
技術(shù)領(lǐng)域:
本公開涉及軟件測試,并且更具體地,本公開涉及用于開發(fā)、調(diào)試和執(zhí)行測試以確保軟件系統(tǒng)的完整性和功能性的集成平臺。
背景技術(shù):
計算機(jī)軟件的開發(fā)涉及嚴(yán)格的測試過程,以確保軟件如預(yù)期運行。在測試過程期間,測試者編寫各種測試腳本,以執(zhí)行確保計算機(jī)軟件按設(shè)計運行所需的不同類型的測試。 測試者還設(shè)置和運行測試腳本,同時追蹤結(jié)果,并且向適當(dāng)?shù)娜藛T報告測試結(jié)果。該過程效率不高且耗時,并且需要大量測試者參與。此外,隨著商業(yè)繼續(xù)依賴于計算機(jī)軟件和復(fù)雜的軟件包,已經(jīng)開發(fā)了越來越多高度復(fù)雜的計算機(jī)軟件來滿足商業(yè)需求。由于增加的復(fù)雜度和規(guī)模,此類軟件程序要求大規(guī)模的測試過程,該測試過程涉及比先前所需更多的測試者和測試腳本。此類增加與將它們的測試集中起來并且轉(zhuǎn)移到外包測試模型的組織有關(guān)。傳統(tǒng)的測試“嵌入”在針對每個項目的系統(tǒng)開發(fā)生命周期(SDLC)中,而現(xiàn)在組織中存在集中的“離散”測試功能,其跨多個項目和發(fā)布(release)進(jìn)行測試。已經(jīng)開發(fā)了測試工具來輔助測試者執(zhí)行測試過程的各個步驟。然而,現(xiàn)有測試工具不能夠提供為克服由大規(guī)模測試過程造成的挑戰(zhàn)所需的功能和效率。對各種產(chǎn)品和/或軟件產(chǎn)品進(jìn)行測試的復(fù)雜度和范圍已經(jīng)增加。在過去,相對小團(tuán)體(數(shù)目可能為10個到30個)的設(shè)計者和開發(fā)者開發(fā)用于測試和驗證軟件模塊或者代碼段的功能的各種測試。此類個體的小團(tuán)體曾經(jīng)是易于管理的。然而,隨著對項目做出貢獻(xiàn)的個體的數(shù)目變大,冗余和復(fù)雜度增加,這導(dǎo)致增加的成本和錯誤數(shù)目的增加。因此,存在對處理上述問題的需要。
發(fā)明內(nèi)容
下一代測試系統(tǒng)(NGT)提供用于軟件測試的集中的開發(fā)、調(diào)試和實現(xiàn)的管理服務(wù)平臺,其中幾百或可能幾千個個體可以協(xié)作以開發(fā)和實現(xiàn)形成測試套件的模塊或者測試腳本的大型陣列。下一代測試系統(tǒng)不僅限于測試軟件模塊,而是還可以用于測試硬件,前提是向測試系統(tǒng)提供反映硬件的狀態(tài)的測試結(jié)果信號和指示符。例如,下一代測試系統(tǒng)可以由組織或者軟件開發(fā)機(jī)構(gòu)使用,以測試和驗證大型軟件包或者應(yīng)用、或者應(yīng)用的集合(諸如會計系統(tǒng)、進(jìn)銷存系統(tǒng)(invoicing system)、操作系統(tǒng)版本發(fā)布或者任何其他系統(tǒng))的功能和操作。下一代測試系統(tǒng)可以在測試“工廠”中使用,在該工廠中,好幾百個個體對相同或者相似產(chǎn)品執(zhí)行最終測試或者質(zhì)量控制測試,例如,在發(fā)布之前的PC操作系統(tǒng)測試。下一代測試系統(tǒng)可以用于開發(fā)和調(diào)試測試,并且還可以用來實現(xiàn)最終測試程序,以在運送之前驗證正在測試的實際產(chǎn)品的發(fā)布或者最終質(zhì)量控制。下一代測試系統(tǒng)可用于a)規(guī)劃和開發(fā)用于發(fā)布的產(chǎn)品的測試;b)規(guī)劃和估計開發(fā)測試過程所需的努力或人力;c)管理準(zhǔn)備過程;d)管理測試腳本向測試人員的分布;以及e)對測試過程進(jìn)行自動化。在集成的測試平臺中提供了一種為測試腳本供應(yīng)測試數(shù)據(jù)的方法,其中測試平臺被配置成組織、管理和促進(jìn)由測試個體準(zhǔn)備的對測試腳本的調(diào)試。該方法包括測試數(shù)據(jù)供應(yīng)鏈,該測試數(shù)據(jù)供應(yīng)鏈被配置成如果對應(yīng)的輸入數(shù)據(jù)集合可用,則將該輸入數(shù)據(jù)集合映射到每個測試腳本。監(jiān)控對優(yōu)先化和指派管理器提出的針對測試腳本的請求,并且如果將響應(yīng)于請求而供應(yīng)的測試腳本具有對應(yīng)的映射的輸入數(shù)據(jù)集合,則從數(shù)據(jù)庫獲取對應(yīng)的輸入數(shù)據(jù)集合,以及在執(zhí)行該測試腳本之前向測試腳本提供輸入數(shù)據(jù)集合。在查看了附圖和詳細(xì)描述之后,系統(tǒng)、方法、特征的其他實施方式及其對應(yīng)的優(yōu)點 將對本領(lǐng)域技術(shù)人員而言變得容易理解。旨在使所有此類附加的系統(tǒng)、方法、特征以及優(yōu)點被包括在本說明書內(nèi)、在本發(fā)明的范圍內(nèi)并且使它們由以下權(quán)利要求所保護(hù)。
參照以下附圖和描述,可以更好地理解該系統(tǒng)。在附圖中的部件未必按比例繪制,而是對圖示本發(fā)明的原理加以強(qiáng)調(diào)。此外,在附圖中,類似的參考標(biāo)記貫穿不同的視圖指代對應(yīng)的部件。圖I是示出了下一代測試系統(tǒng)的主要部件的具體實施方式
的高層框圖;圖2是使用下一代測試系統(tǒng)的整體測試過程的示圖;圖3是模塊化腳本設(shè)計器的具體實施方式
的用戶界面的邏輯示圖;圖4是模塊化腳本設(shè)計器的實施方式的屏幕截圖;圖5是模塊化腳本設(shè)計器的實施方式的屏幕截圖;圖6是示出了下一代測試系統(tǒng)可以在其中操作的機(jī)器環(huán)境的高層框圖;圖7是計算機(jī)系統(tǒng)的高層框圖;圖8是NGT系統(tǒng)的實施方式的邏輯示圖;圖9是NGT系統(tǒng)的實施方式的邏輯示圖;以及圖10是NGT系統(tǒng)的另一實施方式的高層硬件框圖。
具體實施例方式圖I是示出了下一代測試系統(tǒng)100的8個部件的高層框圖,其包括測試規(guī)劃工具110、模塊化腳本設(shè)計器120、優(yōu)先化和指派管理器(PAM) 130、測試執(zhí)行工具欄140、自動化控制器150、測試數(shù)據(jù)供應(yīng)鏈控制器160、報告門戶170和缺陷管理工具180。下一代測試系統(tǒng)100可以是與現(xiàn)有或者底層基本測試工具集成的工具套件。因此,下一代測試系統(tǒng)100不是必須替代現(xiàn)有的管理工具和開發(fā)工具,而是提升增加擴(kuò)展此類現(xiàn)有工具的能力。下一代測試系統(tǒng)100充當(dāng)在現(xiàn)有的管理工具和開發(fā)工具頂部的層。圖2是使用下一代測試系統(tǒng)100的整體測試過程的示圖。測試過程可以包括測試規(guī)劃階段202、測試準(zhǔn)備階段204和測試執(zhí)行階段206。從測試規(guī)劃階段202到測試準(zhǔn)備階段204,以及從測試準(zhǔn)備階段204到測試執(zhí)行階段206的轉(zhuǎn)換可以涉及工作指派208。測試規(guī)劃階段202可以包括劃定(scoping) 210、估計212以及尋找資源214。測試準(zhǔn)備階段204可以包括設(shè)計新腳本222、優(yōu)化回歸包224、準(zhǔn)備測試數(shù)據(jù)226和開發(fā)自動化測試228。測試執(zhí)行階段206可以包括分配測試數(shù)據(jù)232、執(zhí)行手動測試234、執(zhí)行自動化測試236和缺陷管理238。下一代測試系統(tǒng)100還可以包括貫穿測試過程的所有階段的報告能力240。下一代測試系統(tǒng)100可以跨所有測試階段提供增加的效率和功能性。回到圖1,測試規(guī)劃工具110估計和規(guī)劃在特定軟件發(fā)布開始時所涉及的準(zhǔn)備、工作和人力需求。測試規(guī)劃工具110提供對測試各個測試腳本所需的多個技能集合以及與可用的測試人員相關(guān)聯(lián)的不同技能組的指示。測試規(guī)劃工具110還提供輔助的估計。測試規(guī)劃工具可以使用三階段過程來以增加的精確度水平提供估計。使用來自先前發(fā)布的信息來改善估計??梢允褂冕槍蛻舳颂囟ǖ挠嬎愕目刹灏渭軜?gòu)。測試規(guī)劃工具110還提供需求到測試的解構(gòu)。測試規(guī)劃工具110輔助用戶將需求分解成所需數(shù)目的測試。協(xié)作工作能力允許分而治之(divide and conquer)途徑。測試規(guī)劃工具110還通過技能提供資源預(yù)測。測試規(guī)劃工具110可以允許對支持測試活動所需的技能的早期預(yù)測并且呈現(xiàn)可用性對比需求的圖形化顯示。測試規(guī)劃工具110還通過促進(jìn)交叉技能(cross-ski I ling)來幫助測試組織成形。測試規(guī)劃工具110還提供回歸包建議。使用元數(shù)據(jù)驅(qū)動途徑,系統(tǒng)建議適當(dāng)?shù)幕貧w包?;陲L(fēng)險的測試分?jǐn)?shù)可以用來相應(yīng)地確定包的大小。測試規(guī)劃工具110主要對需要測試哪些項目、執(zhí)行測試需要哪些技能集合以及所提供的資源中是否存在所需的技能進(jìn)行量化。模塊化腳本設(shè)計器120用于以模塊化方式設(shè)計新的測試或者測試腳本,并且通過使已經(jīng)由其他設(shè)計者、工程師、或者測試個體編寫的測試腳本的益處最大化來增加測試努力和組織的效率。這通過重新使用在功能上已經(jīng)被驗證的、其他人已經(jīng)創(chuàng)建的測試腳本來避免冗余。模塊化腳本設(shè)計器120還提供對模塊而不是對完整腳本的重新使用,這是由于腳本是由若干個測試模塊組成,并且其中每個模塊表示測試的邏輯部分,例如,到應(yīng)用的登錄。模塊化腳本設(shè)計器120對新創(chuàng)建的測試腳本的創(chuàng)建及存在與同下一代測試系統(tǒng)100相關(guān)聯(lián)的所有測試人員進(jìn)行協(xié)調(diào),并且驗證測試腳本適于其測試目的。這減少了測試個體之一創(chuàng)建冗余的測試腳本的機(jī)會,并且還向測試個體提供所考慮的測試腳本適于他或她在目標(biāo)系統(tǒng)中的目的的指不。由測試個體或者測試創(chuàng)建者使用模塊化腳本設(shè)計器120創(chuàng)建的每個測試腳本包括關(guān)聯(lián)數(shù)據(jù),這些數(shù)據(jù)對應(yīng)于測試腳本的認(rèn)可歷史(approval history)以及相對于在所考慮的測試腳本之前或者之后執(zhí)行的其他測試腳本而言測試腳本的功能位置和等級。測試腳本的關(guān)聯(lián)數(shù)據(jù)還包括對測試腳本的功能的描述,以及標(biāo)識針對其使用測試腳本的產(chǎn)品的描述。一旦已經(jīng)使用模塊化腳本設(shè)計器120設(shè)計了測試腳本,便將其保存并且最終上傳到標(biāo)準(zhǔn)測試工具,標(biāo)準(zhǔn)測試工具可以是由下一代測試系統(tǒng)100使用的分離且獨立的可商購測試設(shè)備或者系統(tǒng)。如上所述,下一代測試系統(tǒng)100并不替代低層或者基本測試工具。例如,基本測試工具可以是 Hewlett Packard HP Quality Center 測試工具、IBM RationalQuality Manager或者其他可商購的基本測試工具,這些基本測試工具可以在下一代測試系統(tǒng)100的控制和指導(dǎo)下運行。下一代測試系統(tǒng)100與所有各種基本測試工具集成在一起,并且允許去往和來自各種基本測試工具的通信。圖3是MSD 120的具體實施方式
的用戶界面的邏輯示圖。MSD120可以允許測試者基于現(xiàn)有的模塊庫快速設(shè)計新腳本。當(dāng)需要新模塊時,測試者可以在MSD 120內(nèi)創(chuàng)建該模塊。使用MSD 120,測試者可以錄入關(guān)于測試的信息和執(zhí)行測試所需的技能(304)。測試者可以從數(shù)據(jù)目錄選擇測試數(shù)據(jù)的類型(306)。測試者還能夠錄入關(guān)于當(dāng)前模塊的元數(shù)據(jù)并且設(shè)置模塊的輸入?yún)?shù)(308)。MSD 120還可以示出當(dāng)前測試腳本的概述。概述可以示出針對當(dāng)前測試腳本所選擇的模塊(310)。在需要時可以使用MSD 120來創(chuàng)建新模塊(312),并且測試者能夠搜索具體模塊(314)。MSD 120還可以自動示出前5個緊接其后的模塊,測試者很可能接下來使用這些模塊(316)??梢燥@示任何其他數(shù)目的可能的緊接其后的模塊。基于現(xiàn)有測試的知識確定最可能的緊接其后的模塊。MSD 120可以允許測試者將模塊拖放到腳本中(318)。MSD 120還可以顯示測試步驟信息以供測試者參考(320)。圖4示出了 MSD 120的實施方式的屏幕截圖400。用戶界面可以包括多個屏幕或者標(biāo)簽,這些屏幕或者標(biāo)簽包括如在圖4中更詳細(xì)示出的細(xì)節(jié)標(biāo)簽402、前提標(biāo)簽404、腳本標(biāo)簽406、輸出/輸出標(biāo)簽408、完成標(biāo)簽410。多個屏幕或者標(biāo)簽可以通過向用戶顯示選項·和信息并且提示用戶輸入信息來創(chuàng)建或者設(shè)計腳本而引導(dǎo)用戶完成腳本設(shè)計過程。例如,用戶可以通過點擊文件按鈕而訪問功能的下拉列表并且在其中進(jìn)行選擇而在細(xì)節(jié)標(biāo)簽402上開始,功能的下拉列表包括打開腳本、新腳本、查看腳本、克隆腳本或者保存草稿。測試者還可以在細(xì)節(jié)標(biāo)簽402上輸入關(guān)于腳本的關(guān)鍵信息。關(guān)鍵信息可以包括腳本頭部414、腳本名稱416、腳本描述418、測試屬性的名稱和值420、完成腳本執(zhí)行所需的技能422、以及針對腳本的需求參考。用戶可以從在細(xì)節(jié)標(biāo)簽402上顯示的技能列表選擇所需技能422。所需技能422稍后可以用來將腳本指派給相關(guān)的測試者和認(rèn)可者或者合格的測試者和認(rèn)可者。細(xì)節(jié)標(biāo)簽402還可以包括保存草稿按鈕424,用戶可以點擊該按鈕以保存所錄入的腳本信息。在前提標(biāo)簽404上,MSD 120可以顯示和允許用戶修改用于執(zhí)行腳本的前提,其可以包括數(shù)據(jù)類型、數(shù)據(jù)注釋以及其他前提。其他實施方式可以包括更少、附加的或者備選的屏幕或者標(biāo)簽,以向用戶顯示腳本選項和信息,以及以接收關(guān)于腳本的用戶輸入。如圖5中所示,腳本標(biāo)簽406可以向用戶顯示在測試腳本中的所有模塊,并且允許用戶通過創(chuàng)建新模塊、編輯現(xiàn)有模塊或者克隆現(xiàn)有模塊而向腳本添加模塊。用戶還可以輸入關(guān)于模塊的數(shù)據(jù),包括例如模塊名稱502、模塊狀態(tài)504、模塊版本506以及模塊描述508。用戶界面還可以在窗格(pane)中向用戶顯示多個選項,包括待包括在腳本中的建議的模塊510,以及用于搜索模塊的選項512。用戶可以通過點擊和拖動所選模塊到當(dāng)前腳本字段514中來從建議的模塊510中選擇模塊。用戶可以輸入關(guān)于模塊的附加信息,包括模塊鏈接到的部件(從配置管理數(shù)據(jù)庫(CMDB)和任何其他元數(shù)據(jù)中拉出)。用戶界面可以向用戶顯示關(guān)于腳本的其他信息,包括例如模塊步驟516、針對每個模塊步驟的測試步驟518、針對每個模塊步驟的預(yù)期結(jié)果520、當(dāng)前腳本步驟514、屬性名稱522、屬性值524以及參數(shù)526。用戶可以點擊“添加到腳本”按鈕528來將模塊添加到腳本。優(yōu)先化和指派管理器130是下一代測試系統(tǒng)100的重要元件。優(yōu)先化和指派管理器130追蹤作為數(shù)據(jù)庫中的列表的一部分的測試套件中的所有測試或者測試腳本,并且基于優(yōu)先化因子和指派因子的給定集合向每個個體測試腳本指派優(yōu)先級。優(yōu)先化因子可以是腳本屬性,包括例如故障的影響、故障的似然性、提前期(leadtime)、商業(yè)優(yōu)先級、估計的努力、以及測試結(jié)束日期。優(yōu)先化和指派管理器130可以使用優(yōu)先化因子來指派數(shù)字評級給腳本,以用于棧排序,例如以評估腳本的執(zhí)行的優(yōu)先級。指派因子可以是被評估以相對于可用于測試的腳本集合對用戶進(jìn)行加權(quán)的用戶屬性,并且可以是指派給個體用戶的腳本的數(shù)字值。指派因子可以包括例如,所需技能、測試者的技能、腳本狀態(tài)、腳本工作流、測試者工作流、腳本作者、用戶與腳本或者其前任的先前經(jīng)歷、以及關(guān)于腳本被指派給的測試者的信息。優(yōu)先化和指派管理器130可以使用指派因子來向個體用戶的腳本指派數(shù)字值。特定測試腳本的優(yōu)先級決定其在測試隊列中的位置。優(yōu)先化和指派管理器130可以使用優(yōu)先化因子和指派因子一起來在請求時匹配腳本并且將其指派給用戶。
優(yōu)先化和指派管理器130利用實時指派邏輯提供測試腳本的集中的自動化的優(yōu)先化。所有測試腳本均基于因子的集中集合來優(yōu)先化,其可以被配置成集中地影響整個測試操作(例如,以改善相對于KPI (關(guān)鍵過程指示符)的性能)。優(yōu)先化和指派管理器130還提供基于技能的指派,并且提供拉出而不是壓入途徑。測試者可以點擊在他們的臺式機(jī)屏幕上的“獲取緊接其后的”圖標(biāo)以被指派給待執(zhí)行的緊接其后的腳本。緊接其后的腳本被基于加權(quán)指派因子實時地選擇。用來指派優(yōu)先級給腳本的每個因子可以被加權(quán)。在一個示例中,可以向開發(fā)者呈現(xiàn)具有對應(yīng)于每個測試腳本的多個滑塊或者按鈕的屏幕。向右移動滑塊可以增加與對應(yīng)的測試腳本相關(guān)聯(lián)的優(yōu)先級水平,而向左移動滑塊可以減小與對應(yīng)的測試腳本相關(guān)聯(lián)的優(yōu)先級水平。因此,測試者可以基于測試者的判斷和專業(yè)技能向測試腳本指派優(yōu)先級水平。各個測試腳本的優(yōu)先化可以影響所有各個測試腳本之間的關(guān)系和交互。優(yōu)先化和指派管理器130可以在從測試腳本創(chuàng)建者接收到輸入之后以批處理模式執(zhí)行優(yōu)先化功能。與測試腳本的所指派的優(yōu)先級相關(guān)聯(lián)的某些因子可以具有反饋或者決策樹能力,從而使得例如如果執(zhí)行了測試且返回故障指示,則優(yōu)先化和指派管理器130可以標(biāo)識可能由該故障影響的其他測試腳本。優(yōu)先化和指派管理器130還向下一代測試系統(tǒng)100中的每個測試腳本指派技能集合,以優(yōu)化對人力人員的使用。例如,基于特定測試個體的技能集合將各個測試腳本指派給測試人員。例如,測試者可以點擊屏幕上的“獲得緊接其后”按鈕或者圖標(biāo),以請求將新的測試腳本發(fā)送給該測試者。優(yōu)先化和指派管理器130可以訪問包含每個測試者的技能集合的數(shù)據(jù)庫,并且基于測試者的技能集合和測試腳本所需的技能集合來將下一最高優(yōu)先級測試腳本指派給該測試者,從而優(yōu)化系統(tǒng)和測試人員整體的生產(chǎn)率。一旦測試者接收到測試腳本,他或者她將運行測試腳本。優(yōu)先化和指派管理器130還可以提供針對新因子的可插拔框架。新決策因子可以通過定義新的因子類來添加。該因子可以通過用戶界面呈現(xiàn),并且可以在決策邏輯中加權(quán)。這可以用來支持高級的“應(yīng)用統(tǒng)計學(xué)”決策模型。測試執(zhí)行工具欄140是在測試者的計算機(jī)屏幕上可見的工具欄,并且其提供對測試者可用的每個主要工具,以及測試者可能或者必須調(diào)用的每個主要測試的指示。其向測試者便利地顯示,以增加效率。測試執(zhí)行工具欄140可以提供線上(in-line)測試執(zhí)行。測試執(zhí)行工具欄140允許測試者加載測試、執(zhí)行測試以及記錄來自工具欄的狀態(tài)??梢灾苯釉诠ぞ邫趦?nèi)打開測試腳本,這節(jié)省測試者的臺式機(jī)上的空間,并且避免在屏幕間的某些擊鍵(諸如ALT-Tab)。缺陷發(fā)生和屏幕捕獲可以是該過程的一部分。測試執(zhí)行工具欄140還可以提供嵌入的認(rèn)可列表。所有模塊/腳本認(rèn)可可以在工具欄中示出,并且認(rèn)可者可以快速打開相關(guān)的腳本/模塊以用于認(rèn)可。測試執(zhí)行工具欄140還允許快速訪問所有NGT工具。可以提供快速啟動欄,以支持測試者快速訪問所有的NGT工具。工具欄還可以處理NGT的登錄管理。用戶簡檔部分可用以改變用戶信息。測試執(zhí)行工具欄140還可以停駐在自動隱藏功能中。測試執(zhí)行工具欄140可以停駐在屏幕的左側(cè),并且其可以被選擇成可見或者自動隱藏??蓴U(kuò)展框架允許向工具欄添加附加的面板。測試執(zhí)行工具欄140可以與優(yōu)先化和指派管理器130集成,以允許測試者請求應(yīng)當(dāng)運行的緊接其后的測試。自動化控制器150是可以在虛擬機(jī)上運行的應(yīng)用,諸如在服務(wù)器群或者“云”環(huán)境 中的計算機(jī)器中。自動化控制器150可以與優(yōu)先化和指派管理器130通信,以請求測試隊列中的緊接其后的測試腳本,并且促進(jìn)使用以上描述的諸如HP Quick Test Pro之類的基本測試工具來打開測試腳本。自動化控制器150可以使用基本測試工具來執(zhí)行測試腳本,并且將結(jié)果記錄回到基本測試工具中。繼而,請求緊接其后的測試腳本,并且重復(fù)該過程。自動化控制器150還提供模塊化設(shè)計和部分自動化。自動化腳本可以被開發(fā)為模塊,并且每個自動化模塊可以具有向其映射的一個或多個手動模塊。部分自動化支持對腳本的自動化部分的快速執(zhí)行。基本上,在可行時使用自動化控制150以對測試腳本的執(zhí)行進(jìn)行自動化。自動化控制器150的附加特征嘗試使與自動地運行的每個測試腳本相關(guān)聯(lián)的“投資回報”(或者“R0I”)最大化。自動化控制器150選擇共同提供最大ROI的測試腳本來自動化。是否使用自動化控制器150來對特定測試腳本進(jìn)行自動化的選擇可以基于與測試腳本相關(guān)聯(lián)的R0I。例如,特定測試腳本可以是處理由用戶進(jìn)行的初始登錄的測試腳本。由于處理由用戶進(jìn)行的初始登錄的測試腳本可以由上百個不同的測試腳本使用而沒有變化,所以該測試腳本提供較高的R0I,由此該測試腳本可以是用于自動化的良好候選。ROI基本上是通過測試腳本的自動化實現(xiàn)的對增加的效率的測量。圖6是示出了下一代測試系統(tǒng)100可以在其中操作的機(jī)器環(huán)境以及各種硬件和軟件部件之間的互連的高層框圖。每個測試個體可以具有專用PC或者其他計算機(jī),稱為統(tǒng)一臺式機(jī)630。統(tǒng)一臺式機(jī)630包含下一代測試系統(tǒng)100的各種模塊,諸如測試規(guī)劃工具110、模塊化腳本設(shè)計器120、執(zhí)行工具欄140、以及缺陷管理工具180,其作為“.Net”客戶端運行。優(yōu)先化和指派管理器130、測試數(shù)據(jù)供應(yīng)鏈160及其相關(guān)聯(lián)的控制器可以與被配置成調(diào)度和處理各種任務(wù)的執(zhí)行的工作流系統(tǒng)一起駐留在服務(wù)器632或者中央服務(wù)器上。然而,還可以使用多個服務(wù)器。工作流系統(tǒng)可以由Microsoft Windows WorkflowFoundation提供,其還可以在服務(wù)器的一個或者多個服務(wù)器上執(zhí)行。集成層634提供統(tǒng)一臺式機(jī)630、數(shù)據(jù)庫636、優(yōu)先化和指派管理器130以及測試數(shù)據(jù)供應(yīng)鏈160之間的通信和功能。數(shù)據(jù)庫636存儲所有的測試腳本和其他所需數(shù)據(jù)。集成層634可以是駐留在服務(wù)器632上和在客戶端機(jī)器(諸如統(tǒng)一臺式機(jī)630)上的“dll”文件,并且可以用作共同API接口。集成層634借助于可插拔架構(gòu)從下游基本測試工具638(諸如 HP Quality Center 工具 644 或者 IBM RationalQuality Manager 646)解 f禹合。優(yōu)先化和指派管理器130和測試數(shù)據(jù)供應(yīng)鏈160及其相關(guān)聯(lián)的控制器在工作流系統(tǒng)下執(zhí)行,其駐留在服務(wù)器632上。自動化控制器150優(yōu)選地駐留在分離且獨立的服務(wù)器或者服務(wù)器集合650上。運行自動化控制器150的服務(wù)器可以與運行統(tǒng)一臺式機(jī)630的計算機(jī)類似,這是因為自動化控制器150在執(zhí)行測試腳本時主要仿真統(tǒng)一臺式機(jī)。自動化控制器150從優(yōu)先化和指派管理器130接收優(yōu)先化的測試腳本,并且訪問多個虛擬機(jī)640以執(zhí)行其測試。虛擬機(jī)640可以是“基于云”的機(jī)器。每個虛擬機(jī)640包括功能測試自動化工具,諸如HP Quick Test Pro (稱為QTP),其從優(yōu)先化和指派管理器130接收測試腳本,并且繼而執(zhí)行該實際的測試腳本。來自測試的結(jié)果通過集成層634報告回來。
測試數(shù)據(jù)供應(yīng)鏈160監(jiān)控每個測試腳本所需的測試數(shù)據(jù)的量和類型,并且還監(jiān)控可用的這種數(shù)據(jù)的當(dāng)前可用量。如果可用數(shù)據(jù)的庫存即將用盡,則測試數(shù)據(jù)供應(yīng)鏈160請求附加的測試數(shù)據(jù)。測試數(shù)據(jù)供應(yīng)鏈160創(chuàng)建測試腳本與該測試腳本所需的數(shù)據(jù)的類型和量之間的映射,以便正確且高效地執(zhí)行。測試數(shù)據(jù)供應(yīng)鏈160促進(jìn)需求管理的自動化以及向測試腳本供應(yīng)所需測試數(shù)據(jù)。數(shù)據(jù)庫636包括數(shù)據(jù)目錄,其存儲對應(yīng)于各種測試腳本而建模和存儲的各種類型的數(shù)據(jù)的列表和/或定義。這可以增加生產(chǎn)率和效率,因為測試個體或者設(shè)計者可以查閱數(shù)據(jù)目錄,并且如果可行,則選擇對應(yīng)于新創(chuàng)建的測試腳本的數(shù)據(jù)輸入和/或預(yù)期輸出的“定型的(canned)”集合,而不是具體地設(shè)計和存檔針對每一個測試腳本的數(shù)據(jù)輸入。數(shù)據(jù)庫636還可以包括倉庫,其存儲可用的數(shù)據(jù)類型的實例,或者數(shù)據(jù)的庫存。當(dāng)使用模塊化腳本設(shè)計器120來創(chuàng)建測試腳本時,腳本創(chuàng)建者指定測試腳本所需的數(shù)據(jù)的類型,并且可以還指定由于運行該測試腳本而生成的輸出數(shù)據(jù)的預(yù)期類型。例如,如圖5中所示,創(chuàng)建者可以指定腳本模塊包括測試步驟I (528),其要求輸入電話號碼,以及步驟2 (530),在該步驟中點擊搜索按鈕的預(yù)期結(jié)果520是顯示顧客細(xì)節(jié)。繼而,測試所需的測試數(shù)據(jù)的類型包括電話號碼和顧客細(xì)節(jié)。這本質(zhì)上對測試腳本的輸入和輸出參數(shù)進(jìn)行量化。由于向待由優(yōu)先化和指派管理器130處理并且此后執(zhí)行的測試腳本隊列添加了不同的測試腳本,所以測試數(shù)據(jù)供應(yīng)鏈160以有效的方式組織針對測試腳本的對應(yīng)數(shù)據(jù),以優(yōu)化對應(yīng)的測試腳本所需的輸入數(shù)據(jù)的管理。如果在測試腳本的開發(fā)和創(chuàng)建期間,測試個體確定特定的測試腳本可以利用存儲在數(shù)據(jù)目錄中的特定的數(shù)據(jù)模型,則測試數(shù)據(jù)供應(yīng)鏈160自動將來自數(shù)據(jù)目錄的所需數(shù)據(jù)輸入直接映射到測試腳本,以避免手動干預(yù)。備選地,測試個體可以輸入部分?jǐn)?shù)據(jù)請求,并且測試數(shù)據(jù)供應(yīng)鏈160可以基于部分?jǐn)?shù)據(jù)請求確定存儲在數(shù)據(jù)目錄中的特定數(shù)據(jù)模型是否包括測試腳本的所需數(shù)據(jù)。部分?jǐn)?shù)據(jù)請求可以是來自測試個體的輸入,諸如是對針對測試腳本可能所需的一個或者多個具體實體或者屬性的選擇。響應(yīng)于部分?jǐn)?shù)據(jù)請求,測試數(shù)據(jù)供應(yīng)鏈160可以通過針對包括由測試個體錄入的一個或者多個具體實體或者屬性的數(shù)據(jù)類型搜索數(shù)據(jù)目錄而找到并且自動將數(shù)據(jù)類型映射到測試腳本。因此,當(dāng)執(zhí)行測試腳本時,測試數(shù)據(jù)供應(yīng)鏈160在適當(dāng)時間自動提供所需數(shù)據(jù)。此外,可以指定支持基本數(shù)據(jù)挖掘能力的規(guī)則。例如,如果50個具體測試腳本要求輸入數(shù)據(jù)類型“A”并且27個具體測試腳本要求輸入數(shù)據(jù)類型“B”,則測試數(shù)據(jù)供應(yīng)鏈160可以組織針對每個腳本的所需數(shù)據(jù)類型,并且以“恰好夠用(just-in-time) ”方式向測試腳本提供相應(yīng)的輸入數(shù)據(jù)類型“A”或者“B”數(shù)據(jù),以避免冗余、增加效率并且減少復(fù)雜度。附加地,貫穿測試過程的生命周期,這種測試數(shù)據(jù)可以基于特定測試腳本的結(jié)果改變。因此,測試數(shù)據(jù)供應(yīng)鏈160追蹤所需改變,并且更新對應(yīng)的測試腳本所需的數(shù)據(jù)集合,從而使得當(dāng)測試腳本被執(zhí)行時,隨著測試腳本的執(zhí)行,最新的測試數(shù)據(jù)可用。如上所述,測試數(shù)據(jù)供應(yīng)鏈160在適當(dāng)?shù)臅r間向測試腳本提供適當(dāng)?shù)臄?shù)據(jù)。某些測試腳本可以要求數(shù)據(jù)的順序供應(yīng),這可以隨著測試腳本的執(zhí)行而改變。因此,測試數(shù)據(jù)供應(yīng)鏈160監(jiān)控對這種數(shù)據(jù)的需求相比于所有類型的數(shù)據(jù)的容量。隨著數(shù)據(jù)由測試腳本消耗,測試數(shù)據(jù)供應(yīng)鏈160監(jiān)控并且更新來自數(shù)據(jù)目錄的可用數(shù)據(jù)的水平。測試數(shù)據(jù)供應(yīng)鏈160還可以通過指派更大量存儲的數(shù)據(jù)類型來管理可用數(shù)據(jù)類·型的庫存水平。當(dāng)測試數(shù)據(jù)供應(yīng)鏈160接收部分?jǐn)?shù)據(jù)請求時,測試數(shù)據(jù)供應(yīng)鏈160可以確定數(shù)據(jù)目錄中的哪個數(shù)據(jù)類型包括所需實體或者屬性。繼而,測試數(shù)據(jù)供應(yīng)鏈160可以確定哪個包括所需實體或者屬性的數(shù)據(jù)類型具有最高水平的可用庫存,并且將該數(shù)據(jù)類型指派或者映射給測試腳本。例如,數(shù)據(jù)類型“A”可以包括顧客賬戶信息,諸如顧客標(biāo)識符、賬單地址、電話號碼、生日以及針對多個顧客的信用評級。數(shù)據(jù)類型“B”還可以包括顧客賬戶信息,但是僅包括顧客名稱、賬單地址和電話號碼。如果測試腳本僅要求電話號碼,則數(shù)據(jù)類型“A”和“B”這兩者均為適當(dāng)?shù)臄?shù)據(jù)類型。測試數(shù)據(jù)供應(yīng)鏈160可以基于每個數(shù)據(jù)類型的需求和庫存水平確定指派這兩種數(shù)據(jù)類型中的哪種。測試數(shù)據(jù)供應(yīng)鏈160與優(yōu)先化和指派管理器130通信,以避免執(zhí)行不具有可用的所需輸入數(shù)據(jù)類型的測試腳本,或者這種輸入數(shù)據(jù)的庫存水平較低的測試腳本。如果測試腳本要求附加的測試數(shù)據(jù)而這種測試數(shù)據(jù)當(dāng)前不可用,則測試數(shù)據(jù)供應(yīng)鏈160請求優(yōu)先化和指派管理器130發(fā)布任務(wù)請求給測試個體,從而使得具有所需技能水平的測試個體可以為請求這種測試數(shù)據(jù)的測試腳本準(zhǔn)備附加的測試數(shù)據(jù)。備選地,在測試數(shù)據(jù)準(zhǔn)備完全自動化的情形中,這種請求將對自動化控制器150而不是對優(yōu)先化和指派管理器130提出。測試數(shù)據(jù)供應(yīng)鏈160還可以提供以下功能預(yù)測每個數(shù)據(jù)類型的需求、標(biāo)識何時針對數(shù)據(jù)類型的庫存水平下降到針對該數(shù)據(jù)類型的預(yù)測需求之下、基于先前發(fā)布確定數(shù)據(jù)的所需偶然性(contingency)、觸發(fā)自動化的數(shù)據(jù)提供、以及接受來自自動化的提供過程的新數(shù)據(jù)項、基于測試步驟和參數(shù)在數(shù)據(jù)項被返回到倉庫時確定數(shù)據(jù)項的狀態(tài)。測試數(shù)據(jù)供應(yīng)鏈160的用戶可以包括測試者或者測試個體,以及測試數(shù)據(jù)團(tuán)隊成員。以下表格示出了測試數(shù)據(jù)供應(yīng)鏈160可以向用戶提供的功能。測試數(shù)據(jù)供應(yīng)鏈160的其他實現(xiàn)方式可以包括更少的、附加的或者其他功能和用戶。測試數(shù)據(jù)供應(yīng)鏈功能表
權(quán)利要求
1.一種在集成測試平臺中為測試腳本供應(yīng)測試數(shù)據(jù)的方法,所述測試平臺具有被配置成將測試腳本轉(zhuǎn)發(fā)給選定的測試個體的優(yōu)先化和指派管理器,所述方法包括 如果對應(yīng)的輸入數(shù)據(jù)集合可用,則將輸入數(shù)據(jù)集合映射到每個測試腳本; 監(jiān)控向所述優(yōu)先化和指派管理器提出的對測試腳本的請求; 如果待響應(yīng)于所述請求供應(yīng)的所述測試腳本具有映射的輸入數(shù)據(jù)集合,則從數(shù)據(jù)庫獲取所述對應(yīng)的輸入數(shù)據(jù)集合;以及 在執(zhí)行所述測試腳本之前,向所述測試腳本提供所獲取的輸入數(shù)據(jù)集合。
2.根據(jù)權(quán)利要求I所述的方法,其中如果待響應(yīng)于所述請求供應(yīng)的所述測試腳本不具有對應(yīng)的輸入數(shù)據(jù)集合,則請求所述優(yōu)先化和指派管理器發(fā)布用于生成所述輸入數(shù)據(jù)集合的任務(wù)。
3.根據(jù)權(quán)利要求2所述的方法,其中用于生成所述輸入數(shù)據(jù)集合的所述任務(wù)被轉(zhuǎn)發(fā)給測試個體,所述測試個體具有與對應(yīng)于所述輸入數(shù)據(jù)集合針對其生成的測試腳本的技能集合匹配的技能集合。
4.根據(jù)權(quán)利要求I所述的方法,其中所述數(shù)據(jù)庫包括分別與多個測試腳本對應(yīng)的多個輸入數(shù)據(jù)集合。
5.根據(jù)權(quán)利要求I所述的方法,其中所述優(yōu)先化和指派管理器為針對其輸入數(shù)據(jù)集合不可用的測試腳本設(shè)置低優(yōu)先級。
6.一種用于在集成測試平臺中為測試腳本供應(yīng)測試數(shù)據(jù)的系統(tǒng),所述測試平臺具有被配置成將測試腳本轉(zhuǎn)發(fā)給選定的測試個體的優(yōu)先化和指派管理器,所述系統(tǒng)包括 計算機(jī)處理器,其與存儲器、網(wǎng)絡(luò)接口以及測試數(shù)據(jù)供應(yīng)鏈部件耦合,其中所述測試數(shù)據(jù)供應(yīng)鏈部件可操作以執(zhí)行以下操作 從所述存儲器獲取多個測試腳本和輸入數(shù)據(jù)集合; 如果對應(yīng)的輸入數(shù)據(jù)集合從所述存儲器可用,則將所述輸入數(shù)據(jù)集合映射到每個測試腳本; 在所述計算機(jī)處理器上,監(jiān)控向所述優(yōu)先化和指派管理器提出的對測試腳本的請求; 如果待響應(yīng)于所述請求供應(yīng)的所述測試腳本具有映射的輸入數(shù)據(jù)集合,則從存儲在所述存儲器上的數(shù)據(jù)庫獲取所述對應(yīng)的輸入數(shù)據(jù)集合;以及 在所述網(wǎng)絡(luò)接口處,在由所述計算機(jī)處理器執(zhí)行所述測試腳本之前,向所述測試腳本提供所獲取的輸入數(shù)據(jù)集合。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其中如果待響應(yīng)于所述請求供應(yīng)的所述測試腳本不具有對應(yīng)的輸入數(shù)據(jù)集合,則請求所述優(yōu)先化和指派管理器發(fā)布用于生成所述輸入數(shù)據(jù)集合的任務(wù)。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中用于生成所述輸入數(shù)據(jù)集合的所述任務(wù)被轉(zhuǎn)發(fā)給測試個體,所述測試個體具有與對應(yīng)于所述輸入數(shù)據(jù)集合針對其生成的測試腳本的技能集合匹配的技能集合。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其中所述數(shù)據(jù)庫包括分別與多個測試腳本對應(yīng)的多個輸入數(shù)據(jù)集合。
10.根據(jù)權(quán)利要求6所述的系統(tǒng),其中所述優(yōu)先化和指派管理器為針對其輸入數(shù)據(jù)集合不可用的測試腳本設(shè)置低優(yōu)先級。
11.一種在集成測試平臺中為測試腳本供應(yīng)測試數(shù)據(jù)的方法,所述測試平臺具有被配置成將測試腳本轉(zhuǎn)發(fā)給選定的測試個體的優(yōu)先化和指派管理器,所述方法包括 確定輸入數(shù)據(jù)集合的供應(yīng),其中所述輸入數(shù)據(jù)集合包括輸入數(shù)據(jù)類型和輸入數(shù)據(jù)量; 監(jiān)控向所述優(yōu)先化和指派管理器提出的對測試腳本的請求; 如果響應(yīng)于針對測試腳本的所述請求而供應(yīng)所供應(yīng)的測試腳本,則對于所述所供應(yīng)的測試腳本,確定所需的測試數(shù)據(jù)集合,其中所述所需的測試數(shù)據(jù)集合包括測試數(shù)據(jù)類型和測試數(shù)據(jù)量; 如果所述輸入數(shù)據(jù)類型與所述測試數(shù)據(jù)類型匹配,并且如果所述輸入數(shù)據(jù)量與所述測試數(shù)據(jù)量匹配,則從數(shù)據(jù)庫獲取所述輸入數(shù)據(jù)集合,并且將所述輸入數(shù)據(jù)集合映射到所請求的測試腳本;以及 在執(zhí)行所述測試腳本之前,向所述測試腳本提供所獲取的輸入數(shù)據(jù)集合。
12.根據(jù)權(quán)利要求11所述的方法,其中如果所述輸入數(shù)據(jù)類型與所述測試數(shù)據(jù)類型不匹配,或者如果所述輸入數(shù)據(jù)量與所述測試數(shù)據(jù)量不匹配,則請求所述優(yōu)先化和指派管理器發(fā)布用于生成新的輸入數(shù)據(jù)集合的任務(wù),其中所述新的輸入數(shù)據(jù)集合包括與所述測試數(shù)據(jù)類型匹配的新的輸入數(shù)據(jù)類型。
13.根據(jù)權(quán)利要求12所述的方法,其中用于生成所述新的輸入數(shù)據(jù)集合的所述任務(wù)被轉(zhuǎn)發(fā)給測試個體,所述測試個體具有與對應(yīng)于所述新的輸入數(shù)據(jù)集合針對其生成的所述所供應(yīng)的測試腳本的技能集合匹配的技能集合。
14.根據(jù)權(quán)利要求11所述的方法,其中所述數(shù)據(jù)庫包括分別與多個測試腳本對應(yīng)的多個輸入數(shù)據(jù)集合。
15.根據(jù)權(quán)利要求11所述的方法,其中所述優(yōu)先化和指派管理器為針對其輸入數(shù)據(jù)集合不可用的測試腳本的執(zhí)行設(shè)置低優(yōu)先級。
16.一種用于在集成測試平臺中為測試腳本供應(yīng)測試數(shù)據(jù)的方法,所述測試平臺具有被配置成將測試腳本轉(zhuǎn)發(fā)給選定的測試個體的優(yōu)先化和指派管理器,所述方法包括 確定輸入數(shù)據(jù)集合的供應(yīng),其中所述輸入數(shù)據(jù)集合包括輸入數(shù)據(jù)類型和輸入數(shù)據(jù)量; 監(jiān)控向所述優(yōu)先化和指派管理器提出的對測試腳本的請求; 如果響應(yīng)于針對所述測試腳本的所述請求而供應(yīng)所供應(yīng)的測試腳本,則對于所述所供應(yīng)的測試腳本,確定所需的測試數(shù)據(jù)集合,其中所述所需的測試數(shù)據(jù)集合包括測試數(shù)據(jù)類型和測試數(shù)據(jù)量; 如果所述輸入數(shù)據(jù)類型與所述測試數(shù)據(jù)類型匹配,并且如果所述輸入數(shù)據(jù)量與所述測試數(shù)據(jù)量匹配,則從數(shù)據(jù)庫獲取所述輸入數(shù)據(jù)集合,并且將所述輸入數(shù)據(jù)集合映射到所請求的測試腳本;以及 在執(zhí)行所述測試腳本之前,向所述測試腳本提供所獲取的輸入數(shù)據(jù)集合。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中如果所述輸入數(shù)據(jù)類型與所述測試數(shù)據(jù)類型不匹配,或者如果所述輸入數(shù)據(jù)量與所述測試數(shù)據(jù)量不匹配,則請求所述優(yōu)先化和指派管理器發(fā)布用于生成新的輸入數(shù)據(jù)集合的任務(wù),其中所述新的輸入數(shù)據(jù)集合包括與所述測試數(shù)據(jù)類型匹配的新的輸入數(shù)據(jù)類型。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中用于生成所述新的輸入數(shù)據(jù)集合的所述任務(wù)被轉(zhuǎn)發(fā)給測試個體,所述測試個體具有與對應(yīng)于所述新的輸入數(shù)據(jù)集合針對其生成的所述所供應(yīng)的測試腳本的技能集合匹配的技能集合。
19.根據(jù)權(quán)利要求16所述的系統(tǒng),其中所述數(shù)據(jù)庫包括分別與多個測試腳本對應(yīng)的多個輸入數(shù)據(jù)集合。
20.根據(jù)權(quán)利要求16所述的系統(tǒng),其中所述優(yōu)先化和指派管理器為針對其輸入數(shù)據(jù)集合不可用的測試腳本的執(zhí)行設(shè)置低優(yōu)先級。
全文摘要
本發(fā)明涉及用于集成測試平臺的測試數(shù)據(jù)供應(yīng)鏈管理器。提供了一種在集成測試平臺中為測試腳本供應(yīng)測試數(shù)據(jù)的方法,其中所述測試平臺包括被配置成將測試腳本轉(zhuǎn)發(fā)給選定的測試個體的優(yōu)先化和指派管理器。如果對應(yīng)的輸入數(shù)據(jù)集合可用,則將每個測試腳本映射到輸入數(shù)據(jù)集合。監(jiān)控向所述優(yōu)先化和指派管理器提出的對測試腳本的請求,并且如果待響應(yīng)于所述請求供應(yīng)的所述測試腳本具有對應(yīng)的映射的輸入數(shù)據(jù)集合,則從數(shù)據(jù)庫獲取所述對應(yīng)的輸入數(shù)據(jù)集合,以及在執(zhí)行所述測試腳本之前,向所述測試腳本提供所述輸入數(shù)據(jù)集合。
文檔編號G06F11/36GK102880543SQ201210127009
公開日2013年1月16日 申請日期2012年4月18日 優(yōu)先權(quán)日2011年4月18日
發(fā)明者J·M·布朗, P·J·史密斯, J·A·斯蒂爾, S·M·威廉姆斯 申請人:埃森哲環(huán)球服務(wù)有限公司