專利名稱:動作檢驗裝置、動作檢驗方法及動作檢驗程序的制作方法
技術領域:
本發(fā)明涉及用于測試產(chǎn)品的動作的技術。
背景技術:
在保證產(chǎn)品質(zhì)量方面,產(chǎn)品出廠前的動作測試不可缺少。一般來說,多是通過測試工程師手動操作產(chǎn)品并確認該操作的結果來執(zhí)行動作測試的。但是,對于操作變化(Variation)較豐富的多功能產(chǎn)品,手動的動作測試就難以滿足要求了。因此,多是通過用測試程序自動執(zhí)行動作測試來謀求動作測試的省力化。例如,HP(Hewlett-Packard)公司提供的自動功能測試工具 “QTP (Quick Test Professional)” 就是通過執(zhí)行用戶自制的測試程序來實現(xiàn)動作測試的自動化的?!苍谙燃夹g文獻〕〔專利文獻〕〔專利文獻I〕日本特開2004- 227396號公報
發(fā)明內(nèi)容
〔發(fā)明所要解決的課題〕
網(wǎng)頁的動作測試一般是通過對顯示該網(wǎng)頁的網(wǎng)頁瀏覽器進行輸入操作,確認操作結果來實施的。如今有很多商家提供了各種各樣種類的網(wǎng)頁瀏覽器,有時需要針對多種網(wǎng)頁瀏覽器實施網(wǎng)頁的動作測試。本發(fā)明人認識到,在各種網(wǎng)頁瀏覽器中實施網(wǎng)頁的動作測試時使該動作測試自動化的動作檢驗裝置所應采用的具體的設計思想,到目前為止還未被充分提出。本發(fā)明是基于本發(fā)明人的上述課題認識而完成的發(fā)明,其主要目的在于提供一種用于輔助基于各種網(wǎng)頁瀏覽器的網(wǎng)頁動作測試的技術?!灿糜诮鉀Q課題的手段〕為解決上述課題,本發(fā)明一個方案的動作檢驗裝置包括ID分配部,在設定有對網(wǎng)頁的操作內(nèi)容的測試程序中,分配用于識別顯示網(wǎng)頁的窗口的、與用戶的指示相應的第IID ;代理處理部,包括取得網(wǎng)頁的程序代碼,并將用于操作網(wǎng)頁的新代碼追加到該程序代碼中后,使網(wǎng)頁瀏覽器顯示網(wǎng)頁的單元,和發(fā)出用于識別顯示網(wǎng)頁的窗口的ID的單元,以及根據(jù)指定有該ID的操作指示而調(diào)用網(wǎng)頁的新代碼的單元;ID取得部,取得在代理處理部中發(fā)出的ID作為第2ID ;ID保持部,保存在ID分配部中分配的第IID與在ID取得部中取得的第2ID的對應關系;測試執(zhí)行部,取得關于在測試程序中成為操作對象的網(wǎng)頁的第1ID,基于對應關系而確定與第IID對應的第2ID,并將指定有該第2ID的操作指示通知給代理處理部,由此,使代理處理部識別成為操作對象的網(wǎng)頁,調(diào)用被追加于該頁的新代碼。本發(fā)明的另一方案是一種動作檢驗方法。該方法使計算機執(zhí)行以下步驟ID分配部在設定有對網(wǎng)頁的操作內(nèi)容的測試程序中分配用于識別顯示網(wǎng)頁的窗口的、與用戶的指示相應的第IID的步驟;代理處理部取得網(wǎng)頁的程序代碼,將用于操作網(wǎng)頁的新代碼追加到該程序代碼中后,使網(wǎng)頁瀏覽器顯示網(wǎng)頁,并發(fā)出用于識別顯示網(wǎng)頁的窗口的ID的步驟;ID取得部取得在代理處理部中發(fā)出的ID作為第2ID的步驟;ID保持部保存在ID分配部中分配的第IID與在ID取得部中取得的第2ID的對應關系的步驟;測試執(zhí)行部取得關于在測試程序中成為操作對象的網(wǎng)頁的第1ID,基于對應關系確定與第IID對應的第2ID,并將指定有該第2ID的操作指示通知給代理處理部的步驟;代理處理部根據(jù)操作指示所指定的第2ID來識別成為操作對象的網(wǎng)頁,并調(diào)用被追加于該頁的新代碼的步驟。當然,將以上構成要素的任意組合、本發(fā)明的表現(xiàn)形式在裝置、方法、系統(tǒng)、程序、存儲有程序的記錄介質(zhì)等之間變換后的實施方式,作為本發(fā)明的方案也是有效的?!舶l(fā)明效果〕通過本發(fā)明,能對基于各種網(wǎng)頁瀏覽器的網(wǎng)頁動作測試進行輔助。
圖I的(a)是入口站點第一畫面的畫面圖。圖I的(b)是入口站點第二畫面的畫面圖。圖2是表示執(zhí)行詞典測試時的日志的圖。圖3是表示用于執(zhí)行詞典測試的程序的圖。圖4是動作檢驗裝置的功能框圖。圖5是至取得日志并執(zhí)行動作測試的示意圖。圖6是日志畫面的畫面圖。圖7是函數(shù)設定畫面的畫面圖。圖8是程序畫面的畫面圖。圖9是輸入設定畫面的畫面圖。圖10是事例設定畫面的畫面圖。圖11是表示參考技術I的動作檢驗裝置與參考技術2的動作檢驗裝置各自的構成的概要的圖。圖12是表示參考技術I的動作檢驗裝置與參考技術2的動作檢驗裝置各自的動作的概要的圖。圖13是表示參考技術2的動作檢驗裝置的功能構成的框圖。圖14是在參考技術2中、至檢測到用戶的數(shù)據(jù)輸入操作而執(zhí)行動作測試的概要圖。圖15是參考技術2中的函數(shù)設定畫面的畫面圖。圖16是參考技術2中的函數(shù)設定畫面的畫面圖。圖17是參考技術2中的輸入設定畫面的畫面圖。圖18是參考技術2中的事例設定畫面的畫面圖。圖19是表示針對網(wǎng)頁瀏覽器的兩種操作方式的特征的圖。圖20是示意性地表示在針對網(wǎng)頁瀏覽器的兩個操作方式下、功能間的調(diào)用關系的圖。圖21是表示參考技術3的動作檢驗裝置的功能構成的框圖。圖22是表示圖21的程序執(zhí)行部的詳細情況的框圖。
圖23是表示參考技術3的動作檢驗裝置的動作的流程圖。圖24是示意性地表示網(wǎng)頁的動作測試中的功能間調(diào)用關系的圖。圖25是表示Selenium窗口管理器中所存儲的數(shù)據(jù)例子的圖。圖26是表示針對圖24的FF對話框的操作的方式的圖。圖27是表示針對圖24的Safari對話框的操作的方式的圖。圖28是表示實施方式的動作檢驗裝置的功能構成的框圖。圖29是表示圖28的程序執(zhí)行部的詳細情況的框圖。圖30是表示實施方式的動作檢驗裝置的動作的流程圖。 圖31是詳細表示圖30的S402的測試程序讀入處理的流程圖。圖32是詳細表示圖30的S419的網(wǎng)頁瀏覽器起動處理的流程圖。圖33是詳細表示圖30的S426的網(wǎng)頁操作處理的流程圖。圖34是詳細表示圖33的S452的Mac用操作處理的流程圖。圖35是詳細表示圖33的S458的IE用操作處理的流程圖。圖36是詳細表示圖33的S462的FF用操作處理的流程圖。
具體實施例方式在說明本實施方式的動作檢驗系統(tǒng)前,先說明作為其前提的動作檢驗裝置的相關參考技術I、參考技術2、及參考技術3。(參考技術I)圖I的(a)是入口站點第一畫面300的畫面圖。在參考技術I中,說明以入口站點“XYZ ! ”為對象的動作測試。入口站點第一畫面300包含編輯框302和檢索鏈接304。檢索鏈接304包括“網(wǎng)頁”、“博客”、“圖像”、“詞典”這四個鏈接。用戶在編輯框302中輸入字符串并鼠標點擊檢索鏈接304中的某一個后,就開始輸入字符串的檢索了。例如在編輯框302中輸入字符串“液晶”,并鼠標點擊鏈接“網(wǎng)頁”時,包含字符串“液晶”的網(wǎng)站就成為檢索對象。而如果在編輯框302中輸入字符串“液晶”并鼠標點擊鏈接“博客”,則該入口站點內(nèi)所開設的博客(Weblog)中包含字符串“液晶”的博客頁就成為檢索對象。在此,假定在編輯框302中輸入了字符串“測試”,并且鼠標點擊了鏈接“詞典”。圖I的(b)是入口站點第二畫面310的畫面圖。在入口站點第一畫面300中輸入“測試”并鼠標點擊“詞典”后,圖I的(b)所表示的入口站點第二畫面310就被顯示出來。通過該入口站點所提供的“詞典”服務,與該字符串“測試”相關聯(lián)的對象被羅列在檢索結果欄306中。這里,假定鼠標點擊了檢索結果欄306的最上面的鏈接“測試(test)”。在上述過程中,以下所示的三個操作被進行。Al.在入口站點第一畫面300的編輯框302中輸入字符串“測試”的操作。A2.鼠標點擊入口站點第一畫面300的檢索鏈接304中的鏈接“詞典”的操作。A3.鼠標點擊入口站點第二畫面310的檢索結果欄306中的鏈接“測試(test)”的操作。以下,將通過上述Al A3的操作而實現(xiàn)的動作過程稱為“詞典測試”。
圖2是表不執(zhí)行了詞典測試時的日志320的圖。在操作被導入了 HP公司的QTP的客戶端終端來訪問上述入口站點,并執(zhí)行了Al A3的操作的情況下,QTP生成圖2所示的日志320。操作Al A3被作為預定格式的碼文記錄在日志320中。例如,操作Al被表達為Browser ("XYZ ! " ) Page ("XYZ ! " ) . WebEdit ("p") Set"測試"這樣的碼文。其意思是對“XYZ! ”網(wǎng)站、名稱為“XYZ! ”的網(wǎng)頁、名稱為“p”的編輯框(相當于圖I的(a)、圖I的(b)中所示的編輯框302)輸入了字符串“測試”。同樣,操作A2被顯示為 Browser ("XYZ ! " ) . Page ("XYZ! ") Link ("詞典") Click操作A3被顯示為Browser ("XYZ!") . Page ("XYZ! -所有詞典-測試〃) Link (〃 測試(test)") Click這樣的碼文。在參考技術I中,是基于QTP的語法進行說明的,但碼文的格式并不限于此。QTP能夠一邊解釋日志320的碼文一邊再現(xiàn)執(zhí)行碼文所表達的操作。因此,一旦生成了日志320,就能任意次地重復執(zhí)行同一內(nèi)容的詞典測試。另外,只要改寫日志320的一部分,就能以不同于手動操作時的內(nèi)容來執(zhí)行詞典測試。例如,將Browser ("XYZ!") Page ("XYZ ! " ) . WebEdit ("p") Set"測試"中所包含的字符串“測試”變更成其它字符串“測一試”,改寫成Browser ("XYZ!") Page ("XYZ ! " ) . WebEdit ("p") Set"測一試"而輸入到QTP中,則能夠自動執(zhí)行僅改變了編輯框302的輸入字符串的同內(nèi)容的詞典測試。 但是,要改寫日志320地執(zhí)行動作測試,需要針對日志320的語法擁有某種程度的知識。另外,在改寫日志320時有可能會發(fā)生人為性的錯誤。圖3是表示用于執(zhí)行詞典測試的程序330的圖。也可以不通過日志320執(zhí)行動作測試,而是通過用VB (Visual Basic)腳本等記述與日志320同等的內(nèi)容來執(zhí)行測試程序。圖3所示的程序330是參照圖2的日志320而編制成的測試程序。例如,操作Al被表達為WebEditSet (Browser ("XYZ!") Page ("XYZ!") WebEdit ("p " ),DataTable("pl,dtGlobalSheet")這樣的VB函數(shù)。WebEditSet函數(shù)的具體邏輯如該圖中部所記述的那樣。在程序330不包含字符串“測試”這樣的輸入數(shù)據(jù)這一點上,程序330不同于日志320。作為替代手段,WebEditSet函數(shù)是從被表達為dtGlobalSheet的文件(下稱“輸入數(shù)據(jù)文件”)接受輸入數(shù)據(jù)的。即,邏輯與輸入數(shù)據(jù)是分離的。通過輸入數(shù)據(jù)文件的改寫或替換,能夠基于各種各樣的輸入數(shù)據(jù)執(zhí)行同一邏輯的詞典測試。與基于手動的動作測試或基于日志320的動作測試相比,基于程序330的動作測試具有易于增加輸入數(shù)據(jù)的變化這樣的優(yōu)點。
但是,基于程序330的動作測試中存在以下問題。Dl.需要新花費編程的功夫。D2.根據(jù)程序編制者不同,程序的內(nèi)容會變化。例如,程序員Pl針對操作Al編制的WebEditSet函數(shù)和程序員P2針對操作Al編制的WebEditSet函數(shù),即使函數(shù)名相同,邏輯也未必相同。另外,程序本身也有可能混入了漏洞(bug)。因此,就需要用于確保程序330自身的可靠性的措施。此外,程序330中還需要例外處理等與動作測試沒有直接關系的邏輯,但未必所有程序員都會編入考慮到例外處理的邏輯。例如在圖3所示的WebEditSet函數(shù)的情況下,編入了能應對輸入數(shù)據(jù)為空字符的情況的邏輯,但其他程序員在編制WebEditSet函數(shù)時可能會漏掉這樣的考慮。結果,動作測試的內(nèi)容結果容易受到程序員的水平的影響。圖4是動作檢驗裝置100的功能框圖。 對于本說明書的框圖所示的各功能塊,硬件上可以用計算機的CPU等元件或機械裝置來實現(xiàn),軟件上可以通過計算機程序等來實現(xiàn),在此,描述通過它們的結合來實現(xiàn)的功能塊。因此,本領域技術人員當理解這些功能塊可以通過硬件、軟件的組合以各種各樣的形式來實現(xiàn)。例如,各功能塊可以作為計算機程序存儲在記錄介質(zhì)中,通過安裝到信息處理裝置的硬盤中,并適時地被讀入到主存儲器而被處理器執(zhí)行。動作檢驗裝置100可以被形成為專用硬件,也可以被形成為網(wǎng)頁瀏覽器等與用戶接口協(xié)作的軟件模塊。作為參考技術I的動作檢驗裝置100,說明其被形成為QTP的附加組件(add-on)的軟件模塊的情況。動作檢驗裝置100包括IF (接口)部110、數(shù)據(jù)處理部130以及數(shù)據(jù)保持部140。IF部110負責與用戶、QTP的接口。數(shù)據(jù)處理部130基于從IF部110、數(shù)據(jù)保持部140取得的數(shù)據(jù)執(zhí)行各種數(shù)據(jù)處理。數(shù)據(jù)處理部130還發(fā)揮IF部110與數(shù)據(jù)保持部140間的接口的作用。數(shù)據(jù)保持部140是用于保持各種數(shù)據(jù)的存儲區(qū)域。IF 部 110:IF部110包括輸入部112和輸出部118。輸入部112負責來自用戶和QTP的輸入處理,輸出部118負責向用戶和QTP的輸出處理。輸入部112包括日志取得部114和輸入數(shù)據(jù)取得部116。日志取得部114從QTP取得日志。輸入數(shù)據(jù)取得部116取得輸入數(shù)據(jù)文件,并從輸入數(shù)據(jù)文件取得要提供給程序的輸入數(shù)據(jù)。關于輸入數(shù)據(jù)文件的詳細情況,將結合圖5和圖9詳細敘述。輸出部118包括函數(shù)設定畫面顯示部120、輸入設定畫面顯示部122、程序畫面顯示部124以及事例設定畫面顯示部126。函數(shù)設定畫面顯示部120使得圖7所示的函數(shù)設定畫面210顯示出來。輸入設定畫面顯示部122使得圖9所示的輸入設定畫面230顯示出來。程序畫面顯示部124使得圖8所示的程序畫面220顯示出來。事例設定畫面顯示部126使得圖10所示的事例設定畫面240顯示出來。數(shù)據(jù)處理部130:數(shù)據(jù)處理部130包括程序生成部132、程序執(zhí)行部134以及測試事例登錄部136。程序生成部132自動生成動作測試用的程序。程序執(zhí)行部134使所被生成的程序執(zhí)行。在參考技術I中,是使QTP執(zhí)行程序。測試事例登錄部136將執(zhí)行集(set)登錄在事例文件中。關于執(zhí)行集和事例文件,將結合圖10進行詳細敘述。數(shù)據(jù)保持部140 數(shù)據(jù)保持部140包括日志保持部142、程序保持部144、輸入數(shù)據(jù)文件保持部146、事例文件保持部148、函數(shù)保持部150以及結果保持部152 (以下也稱“測試結果保持部152”)。日志保持部142保持日志。程序保持部144保持程序。輸入數(shù)據(jù)文件保持部146保持輸入數(shù)據(jù)文件。事例文件保持部148保持事例文件。函數(shù)保持部150保持可被登錄到動作測試用的程序中的函數(shù)的函數(shù)庫。結果保持部152保持動作測試的結果。圖5是在參考技術I中至取得日志并執(zhí)行動作測試為止的示意圖。首先,手動操作動作測試的對象機器。在參考技術I中,操作客戶端終端的網(wǎng)頁瀏覽器,訪問入口站點“XYZ ! ”。QTP生成日志,日志取得部114從QTP取得日志。各種碼文 預先與函數(shù)建立有對應關系。函數(shù)設定畫面顯示部120讀取函數(shù)保持部150的函數(shù)庫,并使與日志中所包含的各碼文對應的函數(shù)一覽顯示(SI)。在函數(shù)設定畫面顯示部120中,用戶能夠根據(jù)需要追加、變更、刪除函數(shù)。這樣,應被包含在程序中的函數(shù)就被確定了。關于SI,將與圖7相結合地在后面詳述。接下來,設定應提供給該程序的輸入數(shù)據(jù)(S2 )。設定內(nèi)容以輸入數(shù)據(jù)文件的形式被登錄。關于S2,將結合圖9在后面詳述。基于在SI中設定的函數(shù)群自動生成程序(S3)。關于S3,將結合圖8在后面詳述。接下來,基于多種程序以及多種輸入數(shù)據(jù)文件,將程序與輸入數(shù)據(jù)文件的組合作為“執(zhí)行集”登錄。也可以登錄多個執(zhí)行集(S4)。設定內(nèi)容被以事例文件的形式登錄。例如,當想要使得在基于輸入數(shù)據(jù)文件F2執(zhí)行程序Pl后再基于輸入數(shù)據(jù)文件F6執(zhí)行程序P2的情況下,被以執(zhí)行集I :程序Pl +輸入數(shù)據(jù)文件F2執(zhí)行集2 :程序P2十輸入數(shù)據(jù)文件F6的形式登錄到事例文件中。關于S4,將結合圖10詳述。最后,按照事例文件執(zhí)行程序(S5)。在上述例子的情況下,程序執(zhí)行部134使執(zhí)行集I和執(zhí)行集2連續(xù)執(zhí)行。程序執(zhí)行部134將程序的執(zhí)行結果、換言之是將測試結果登錄到結果保持部152中。圖6是日志畫面200的畫面圖。在日志取得部114取得日志后,輸出部118使日志畫面顯示在日志畫面200中的日志顯示區(qū)域202。用戶也可以將QTP的日志復制并粘貼到日志顯示區(qū)域202中?;蛘?,也可以是輸出部118在日志畫面200顯示時取得QTP所生成的日志(文件),并使之畫面顯示在日志顯示區(qū)域202中。用戶鼠標點擊執(zhí)行按鈕204后,接下來的圖7所示的函數(shù)設定畫面210被顯示出來。圖7是函數(shù)設定畫面210的畫面圖。程序生成部132針對日志所包含的碼文確定函數(shù),并使確定的函數(shù)一覽顯示在函數(shù)設定畫面210的函數(shù)欄214中。編號欄212表示執(zhí)行順序,說明欄216表示函數(shù)的概要說明,對象欄218表示操作對象的對象(object),變量欄219表示變量名,輸入值欄217表示輸入數(shù)據(jù)。對于前述的表示操作Al的碼文
Browser ("XYZ ! " ) Page ("XYZ ! " ) . WebEdit ("p") Set"測試",WebEditSet函數(shù)在函數(shù)庫中預先與其建立有對應關系。程序生成部132讀出日志320的第一個碼文后,參照函數(shù)保持部150的函數(shù)庫,確定WebEditSet函數(shù)。因為操作Al中被作為操作對象的對象是“Browser ("XYZ ! " ) . Page ("XYZ !")”頁,所以對象欄218 中被設定為“Browser ("XYZ ! " ) Page ("XYZ ! " )”。WebEditSet 函數(shù)是以設定在編輯框P (編輯框302)中的輸入數(shù)據(jù)為自變量的函數(shù)。雖然也可以在輸入值欄217中設定應設定到編輯框P中的輸入數(shù)據(jù),但這里假定在函數(shù)設定畫面210中沒有登錄輸入數(shù)據(jù)的情況來進行說明。應設定到編輯框P中的輸入數(shù)據(jù)在將結合圖9詳述的輸入設定畫面230中被設定。由于日志320中對應于操作Al A3地包含有三個碼文,所以程序生成部132確定三個函數(shù)。用戶也可以在函數(shù)設定畫面210中追加、刪除、變更函數(shù)。圖7中的第四個TextCheck函數(shù)與第五個WebScreenCapture函數(shù)是用戶追加選擇的函數(shù)。TextCheck函數(shù)是判定正在顯示的網(wǎng)頁中是否包含被賦值為變量q的字符串的函 數(shù)。WebScreenCapture函數(shù)是對正在顯示的網(wǎng)頁進行畫面抓圖的函數(shù)。在對動作測試的結果進行證跡管理方面,WebScreenCapture函數(shù)是非常方便的函數(shù)。這樣,函數(shù)庫中不僅備有WebEditSet函數(shù)那樣的與用戶的操作相對應的函數(shù),還備有TestCheck函數(shù)這樣的用于輔助支持動作測試的函數(shù)。用戶只要從函數(shù)庫中選擇所希望的函數(shù),就能設定想要包含在動作測試中的邏輯。測試事例設定按鈕215被點擊時,圖10的事例設定畫面240被顯示出來。輸入數(shù)據(jù)文件生成按鈕213被點擊時,圖9的輸入設定畫面230被顯示出來。程序生成按鈕211被點擊時,圖8的程序畫面220被顯示出來。參考技術I的動作檢驗裝置100具有如下優(yōu)點。ml.僅基于⑶I (Graphical User Interface :圖形用戶接口)選擇函數(shù),就能選擇想要包含在程序中的邏輯。幾乎不需要花費用于編制程序的功夫。m2.被包含在程序中的函數(shù)是已被登錄在函數(shù)庫中的函數(shù),所以很難因編制者不同而出現(xiàn)程序質(zhì)量的偏差。例外處理等必要的邏輯也被預先編入了各函數(shù)中。圖8是程序畫面220的畫面圖。在函數(shù)設定畫面210中,若程序生成按鈕211被鼠標點擊,則程序生成部132生成程序,程序畫面顯示部124使其源代碼顯示在程序畫面220中的程序顯示區(qū)域222內(nèi)。程序被保持在程序保持部144中。圖9是輸入設定畫面230的畫面圖。在函數(shù)設定畫面210中,若輸入數(shù)據(jù)文件生成按鈕213被鼠標點擊,則輸入設定畫面顯示部122使輸入設定畫面230顯示出來。在函數(shù)設定畫面210中,變量p和q被定義了。編號欄232表示輸入順序,變量欄234表示對變量p的輸入數(shù)據(jù),變量欄236表示對變量q的輸入數(shù)據(jù)。在輸入設定畫面230中,設定要賦值給該變量p和q的輸入數(shù)據(jù)。各輸入數(shù)據(jù)被作為輸入數(shù)據(jù)文件保持在輸入數(shù)據(jù)文件保持部146中。例如若給與程序330圖9所示的格式的輸入數(shù)據(jù)文件,則如I.將字符串“測試”輸入到編輯框302中檢索詞典,并判定表示執(zhí)行結果的畫面中是否包含有字符串“試驗”的測試
2.將字符串“test”輸入到編輯框302中檢索詞典,并判定表示執(zhí)行結果的畫面中是否包含有字符串“試驗”的測試3.將字符串“測試事例”輸入到編輯框302中檢索詞典,并判定表示執(zhí)行結果的畫面中是否包含有字符串“試驗”的測試這樣,連續(xù)執(zhí)行基于不同的輸入數(shù)據(jù)的多個詞典測試。圖10是事例設定畫面240的畫面圖。在函數(shù)設定畫面210中,若測試事例設定按鈕215被鼠標點擊,則事例設定畫面顯示部126使事例設定畫面240顯示出來。編號欄244表示執(zhí)行順序,執(zhí)行集欄245表示執(zhí)行集的概要,程序欄246表示成為執(zhí)行對象的程序,輸入數(shù)據(jù)文件欄247表示成為輸入數(shù)據(jù)的提取對象的輸入數(shù)據(jù)文件。這里,以網(wǎng)絡證券的網(wǎng)站為動作測試對象進行說明。 在該圖中,I.登入(login)、2.查看新聞、3.賣出股票、4.賣出債券、5.住所變更、6.退出(logout)這六個執(zhí)行集被登錄了。首先,QTP基于程序“l(fā)ogin, vbs”生成“l(fā)ogin”項目。這里所謂“項目”,是包含QTP的執(zhí)行格式文件群的目錄。QTP以“l(fā)ogin”項目為輸入來執(zhí)行l(wèi)ogin, vbs和login, xls中預定義的處理。若用戶鼠標點擊執(zhí)行按鈕248,則先是執(zhí)行集“登入”的“l(fā)ogin”項目被執(zhí)行。第一個執(zhí)行集“登入”完成后,作為執(zhí)行集“查看新聞”,“ncheck”項目被執(zhí)行。這樣,在執(zhí)行按鈕248被鼠標點擊后,I.登入(login)、2.查看新聞、3.賣出股票、4.賣出債券、5.住所變更、6.退出(logout)這六個執(zhí)行集被連續(xù)執(zhí)行。由此,能夠?qū)⒒凇跋鹊侨?,在查看新聞后指示賣出所持股票和所持債券,再在變更住所后退出”這樣一個測試劇本(scenario)的動作測試自動化。用戶能夠在事例設定畫面240中自由制作測試劇本。例如可以登錄執(zhí)行集“買入股票”來取代執(zhí)行集“賣出股票”,另外,作為執(zhí)行集“賣出股票”的輸入數(shù)據(jù)文件,也可以不登錄“stockl. xls”而是登錄其它輸入數(shù)據(jù)文件。在事例設定畫面240中所登錄的測試劇本被作為事例文件記錄,并被保持在事例文件保持部148中。通過一點點地改變測試劇本的構成或輸入數(shù)據(jù)文件等,易于擴展動作測試的變化。以上說明了參考技術I的動作檢驗裝置100。通過動作檢驗裝置100,能夠分離程序與輸入數(shù)據(jù),即能夠使處理與變量相分離。并且,能夠基于GUI界面的設定自動生成其所要使用的程序。由此,能夠既確保包含在程序中的邏輯的多樣性,又能簡單地生成質(zhì)量穩(wěn)定的程序。另外,由于僅改變輸入數(shù)據(jù)文件的內(nèi)容就能變更動作測試的內(nèi)容,所以易于擴展動作測試的變化。進而,通過將執(zhí)行集登錄在事例文件中制作測試劇本,能夠組合既有程序地實現(xiàn)各種各樣狀況下的動作測試。另外,由于不僅備有WebEditSet函數(shù)這樣的用于操作測試對象機器的函數(shù),還備有WebScreenCapture函數(shù)這樣的用于輔助動作測試的函數(shù),所以易于進一步提高動作測試的效率和可靠性。(參考技術2)在參考技術2中,提出一種對上述參考技術I改良后的動作檢驗裝置100。首先,比較參考技術I中的動作檢驗裝置100和參考技術2的動作檢驗裝置100來說明參考技術2的動作檢驗裝置100的概要。圖11表示參考技術I的動作檢驗裝置100和參考技術2的動作檢驗裝置100各自中的構成的概要。如圖11的(a)所示,參考技術I的動作檢驗裝置100具有作為動作測試的執(zhí)行引擎的QTP模塊102和用于使利用了 QTP模塊102的網(wǎng)頁服務器400的動作測試高效化的包裝器(Wrapper)模塊104。該包裝器模塊104包含圖4所示的各功能塊。在圖11的(a)中,用戶通過QTP模塊102操作作為動作確認的對象裝置的網(wǎng)頁服務器400 (SlOO)0包裝器模塊104從QTP模塊102取得記錄有其操作內(nèi)容的日志,將函數(shù)設定畫面210提供給用戶(S102)。用戶在動作測試執(zhí)行時,使得在包裝器模塊104中生成QTP模塊可讀的動作測試用程序,并使QTP模塊102執(zhí)行該程序(S104)。與此不同,圖11的(b)所示的參考技術2的動作檢驗裝置100具有統(tǒng)合了動作測試的執(zhí)行引擎的功能和包裝器模塊104的功能的統(tǒng)合檢驗模塊106。用戶通過統(tǒng)合檢驗模塊106操作網(wǎng)頁服務器400時(S200),統(tǒng)合檢驗模塊106逐次檢測出其操作內(nèi)容,設定函數(shù) 時候,使得在統(tǒng)合檢驗模塊106中生成并執(zhí)行動作測試用程序(S204)。圖12表示參考技術I的動作檢驗裝置100和參考技術2的動作檢驗裝置100各自中的動作的概要。圖12的(a)表示出參考技術I的動作檢驗裝置100中的動作的概要。用戶執(zhí)行對網(wǎng)頁服務器400的數(shù)據(jù)輸入操作(S110),QTP模塊102輸出記錄了其操作內(nèi)容的日志(S112)。用戶將該日志的數(shù)據(jù)復制到QTP模塊102的預定的輸入?yún)^(qū)域(S114)。包裝器模塊104基于被設定在預定的輸入?yún)^(qū)域中的日志的數(shù)據(jù),設定函數(shù)設定畫面并使之顯示(S116),用戶通過該函數(shù)設定畫面設定應追加、變更的函數(shù)輸入數(shù)據(jù)(S118)。包裝器模塊104基于函數(shù)設定畫面的數(shù)據(jù)生成用于動作測試的QTP用程序(S120)。用戶將QTP用程序復制到QTP模塊102的預定的輸入?yún)^(qū)域(S122)。用戶在事例設定畫面中設定以QTP用程序和輸入數(shù)據(jù)文件為集(set)而指定的動作測試的劇本(S124)。包裝器模塊104基于該劇本,將QTP用程序和輸入數(shù)據(jù)文件的集交給QTP模塊102,按每個集來使動作測試執(zhí)行(S126 )。圖12的(b)表示出參考技術2的動作檢驗裝置100中的動作的概要。用戶執(zhí)行對網(wǎng)頁服務器400的數(shù)據(jù)輸入操作(S210)。統(tǒng)合檢驗模塊106逐次檢測出其數(shù)據(jù)輸入操作,將與數(shù)據(jù)輸入操作對應的函數(shù)記錄到操作內(nèi)容文件中,并在函數(shù)設定畫面中顯示該操作內(nèi)容文件的記錄數(shù)據(jù)(S212)。用戶通過該函數(shù)設定畫面將應追加、變更的函數(shù)和輸入數(shù)據(jù)設定在操作內(nèi)容文件中(S214)。然后,用戶在事例設定畫面中設定以操作內(nèi)容文件和輸入數(shù)據(jù)文件為集而指定的動作測試的劇本(S216)。統(tǒng)合檢驗模塊106基于該劇本生成集約了劇本內(nèi)的一個以上集的動作測試用程序并執(zhí)行(S218 )。這樣,在參考技術I的動作檢驗裝置100中,QTP模塊102和包裝器模塊104是分離的。因此,為使兩模塊聯(lián)系起來,需要用戶自己來執(zhí)行中介作業(yè)。另外,包裝器模塊104需要針對劇本內(nèi)的每個集來調(diào)用QTP模塊102,需要按每個集來使測試用程序執(zhí)行。與此不同,在參考技術2的動作檢驗裝置100中,動作測試的執(zhí)行引擎和實現(xiàn)其高效利用的包裝器并不相分離,而是被無縫地統(tǒng)合在一起。因此,與參考技術I的動作檢驗裝置100相比,原本為使相分離的模塊聯(lián)系起來而所需的用戶作業(yè)變得不再需要,用于動作測試的用戶的作業(yè)量降低了。另外,由于是生成將劇本內(nèi)的多個集集約起來的動作測試用程序,并通過該程序的執(zhí)行而執(zhí)行一連串劇本,所以能實現(xiàn)迅速的動作測試。圖13是表示參考技術2的動作檢驗裝置100的功能構成的框圖。該圖的功能塊被包含在圖11的(b)所示的統(tǒng)合檢驗模塊106中。參考技術2的功能塊中與參考技術I的功能塊對應的功能塊被標注了相同的標號。關于賦予了與參考技術I的功能塊相同標號的功能塊,僅在其功能不同于參考技術I中已述的內(nèi)容時進行說明,對于同樣的功能省略其說明。數(shù)據(jù)保持部140具有操作內(nèi)容文件保持部143、程序保持部144、輸入數(shù)據(jù)文件保持部146、事例文件保持部148、函數(shù)保持部150。操作內(nèi)容文件保持部143用于存儲記錄有應設定在動作測試用程序中的函數(shù)的操作內(nèi)容文件。程序保持部144存儲按操作內(nèi)容文件而生成的動作測試用程序。IF部110的輸入部112具有操作檢測部115和用戶設定受理部117。操作檢測部115逐次檢測出用戶對網(wǎng)頁服務器400的數(shù)據(jù)輸入操作。用戶設定受理部117檢測用戶對函數(shù)設定畫面210、輸入設定畫面230、事例設定畫面240的設定信息。 IF部110的輸出部118具有函數(shù)設定畫面顯示部120、輸入設定畫面顯示部122、事例設定畫面顯示部126。函數(shù)設定畫面顯示部120使函數(shù)設定畫面210顯示在預定的顯示裝置中,該函數(shù)設定畫面210用于顯示被記錄在操作內(nèi)容文件保持部143中的操作內(nèi)容文件的內(nèi)容。數(shù)據(jù)處理部130具有程序生成部132、程序執(zhí)行部134、測試事例登錄部136、操作記錄部137、輸入數(shù)據(jù)記錄部138。操作記錄部137參照函數(shù)保持部150來確定與在操作檢測部115中被檢測出的數(shù)據(jù)輸入操作對應的函數(shù),將該函數(shù)記錄在操作內(nèi)容文件中。另外,操作記錄部137將用戶對函數(shù)設定畫面210的設定信息記錄在操作內(nèi)容文件中。輸入數(shù)據(jù)記錄部138將用戶通過輸入設定畫面230輸入的輸入數(shù)據(jù)記錄在輸入數(shù)據(jù)文件中。程序生成部132根據(jù)被記錄在操作內(nèi)容文件中的函數(shù)而生成動作測試用程序。程序執(zhí)行部134作為動作測試的執(zhí)行引擎而執(zhí)行動作測試用程序,并將其結果記錄到結果保持部152中。圖14是參考技術2中至檢測出用戶的數(shù)據(jù)輸入操作并執(zhí)行動作測試為止的示意圖。首先,用戶操作客戶端終端的網(wǎng)頁瀏覽器訪問網(wǎng)頁服務器400,執(zhí)行對網(wǎng)頁服務器400的各種操作,典型的是執(zhí)行對網(wǎng)頁服務器400所提供的網(wǎng)頁的數(shù)據(jù)輸入操作。操作檢測部115逐次檢測用戶的數(shù)據(jù)輸入操作,操作記錄部137讀取函數(shù)保持部150的函數(shù)庫,將與該數(shù)據(jù)輸入操作對應的函數(shù)逐次記錄到操作內(nèi)容文件中(S220)。接下來,函數(shù)設定畫面顯示部120讀取操作內(nèi)容文件保持部143的操作內(nèi)容文件,使一覽顯示與用戶的操作對應的函數(shù)的函數(shù)設定畫面顯示出來。在函數(shù)設定畫面中,用戶能夠根據(jù)需要追加、變更、刪除函數(shù),并且能夠設定應靜態(tài)地設定在動作測試用程序中的輸入數(shù)據(jù)。這樣,應包含在動作測試用程序中的函數(shù)就被確定了。關于函數(shù)設定畫面,將結合圖15和圖16在后面敘述。接下來,輸入設定畫面顯示部122使輸入設定畫面230顯示出來。用戶通過輸入設定畫面230設定應在動作測試執(zhí)行時動態(tài)地提供給動作測試用程序的輸入數(shù)據(jù)。用戶所設定的輸入數(shù)據(jù)被記錄在輸入數(shù)據(jù)文件中(S222)。關于輸入設定畫面230,將結合圖17在后面敘述。接下來,事例設定畫面顯示部126使事例設定畫面240顯示出來。用戶基于多種操作內(nèi)容文件以及多種輸入數(shù)據(jù)文件,將操作內(nèi)容文件和輸入數(shù)據(jù)文件的組合登錄為執(zhí)行集。測試事例登錄部136將一個以上的執(zhí)行集記錄在事例文件中(S224)。例如,在測試事例I中,若要在基于輸入數(shù)據(jù)文件F12使操作內(nèi)容文件FOl的設定內(nèi)容執(zhí)行后,再基于輸入數(shù)據(jù)文件F16使操作內(nèi)容文件H)2的設定內(nèi)容執(zhí)行,則以測試事例I :執(zhí)行集I :操作內(nèi)容文件H)1 +輸入數(shù)據(jù)文件F12執(zhí)行集2 :操作內(nèi)容文件R)2 +輸入數(shù)據(jù)文件F16的形式登錄到事例文件中。關于事例設定畫面240,將結合圖18在后面敘述。接下來,程序生成部132基于事例文件和操作內(nèi)容文件生成動作測試用程序(S226)。具體來說,可以將被依次記錄在執(zhí)行集所設定的操作內(nèi)容文件中的函數(shù),依次設定 為動作測試用程序的程序代碼。另外,在一個測試事例中設定有多個執(zhí)行集時,程序生成部132將被記錄在各執(zhí)行集的操作內(nèi)容文件中的函數(shù)集約設定成一個動作測試用程序。另外,在針對操作內(nèi)容文件的函數(shù)設定有輸入數(shù)據(jù)本身的情況下,程序生成部132將該輸入數(shù)據(jù)靜態(tài)地設定到動作測試用程序中。例如,在生成動作測試用程序時,預先設定輸入數(shù)據(jù)作為該程序代碼中的函數(shù)的自變量。另外,在針對操作內(nèi)容文件的函數(shù)指定有輸入數(shù)據(jù)文件的情況下,進行設定使得在程序執(zhí)行時讀入該輸入數(shù)據(jù)文件的數(shù)據(jù)。最后,程序執(zhí)行部134執(zhí)行動作測試用程序,再現(xiàn)用戶對網(wǎng)頁服務器400執(zhí)行的一連串操作(S228)。對于需要輸入數(shù)據(jù)文件的數(shù)據(jù)的函數(shù),將動作測試用程序執(zhí)行時所讀入的輸入數(shù)據(jù)文件的數(shù)據(jù)作為自變量傳遞給它。即,基于從輸入數(shù)據(jù)文件動態(tài)地取得的輸入數(shù)據(jù)來執(zhí)行函數(shù)。圖15是函數(shù)設定畫面210的畫面圖。該圖表示了顯示將在后面的圖18中敘述的“檢索記入.xls”的函數(shù)設定畫面210。數(shù)據(jù)文件列名(column name)欄250是用于指定輸入數(shù)據(jù)文件的列名的區(qū)域,該輸入數(shù)據(jù)文件記錄有要設定給變量的輸入數(shù)據(jù)。用戶可以在輸入值欄217中記述輸入數(shù)據(jù)本身,也可以不這樣,而是在數(shù)據(jù)文件列名欄250中指定輸入數(shù)據(jù)文件的列名。當數(shù)據(jù)文件列名欄250內(nèi)有輸入數(shù)據(jù)文件的列名被指定時,在動作測試用程序執(zhí)行時,被設定在該輸入數(shù)據(jù)文件的列中的一個以上的輸入數(shù)據(jù)會被讀取并傳遞給函數(shù)。圖16是參考技術2中的函數(shù)設定畫面210的畫面圖。在該圖的“檢索部署名”變量的輸入值欄217中,輸入數(shù)據(jù)的候選被用下拉列表252 —覽顯不。下拉列表252中所顯示的輸入數(shù)據(jù)候選,是在用戶對網(wǎng)頁進行數(shù)據(jù)輸入時被顯示在該網(wǎng)頁的下拉列表中的輸入數(shù)據(jù)候選。用戶可以從下拉列表252中選擇輸入數(shù)據(jù),能減輕用戶在設定輸入數(shù)據(jù)過程中的負擔。為設定下拉列表252,操作檢測部115取得在用戶對網(wǎng)頁進行數(shù)據(jù)輸入操作時顯示在該網(wǎng)頁的下拉列表中的輸入數(shù)據(jù)的候選。例如,基于從網(wǎng)頁服務器400取得的網(wǎng)頁的數(shù)據(jù)、例如HTML數(shù)據(jù),取得下拉列表中的輸入數(shù)據(jù)候選。操作記錄部137將該輸入數(shù)據(jù)候選記錄在操作內(nèi)容文件的輸入值欄217中。函數(shù)設定畫面顯示部120在輸入值欄217有輸入時,使被記錄在操作內(nèi)容文件中的輸入數(shù)據(jù)候選以下拉列表的形式一覽顯示出來。圖17是參考技術2中的輸入設定畫面230的畫面圖。圖17的(a)表示了輸入設定畫面230,該輸入設定畫面230顯示在圖15和圖16的函數(shù)設定畫面210中被指定了列名的輸入數(shù)據(jù)文件“檢索記入數(shù)據(jù).Xls”。在圖15和圖16中,圖17的(a)的“姓名漢字”列和“姓名讀音”列被指定了。圖17的(b)表示了顯示另一輸入數(shù)據(jù)文件“登入數(shù)據(jù)2. xls”的輸入設定畫面230。關于該圖的輸入數(shù)據(jù)文件,將結合圖18在后面敘述。圖18是參考技術2中的事例設定畫面240的畫面圖。執(zhí)行編號欄253中被設定各執(zhí)行集的基本的執(zhí)行順序,測試事例ID欄254中被設定測試事例的識別信息。組(group)ID欄256中被設定表示執(zhí)行集的重復處理的組的識別信息,行編號欄258中被設定動作測試中的輸入數(shù)據(jù)文件的參照范圍。操作內(nèi)容文件欄260被設定各執(zhí)行集中的操作內(nèi)容文件,輸入數(shù)據(jù)文件欄262被設定各執(zhí)行集的輸入數(shù)據(jù)文件。事例設定畫面240中的設定內(nèi)容被作為事例文件存儲在事例文件保持部148中。在事例設定畫面240中測試執(zhí)行按鈕264被按下時,程序生成部132按照事例文件和操作內(nèi)容文件生成動作測試用程序。具體來說,基于在事例文件中被設定相同測試事例ID的一個以上的操作內(nèi)容文件,生成各操作內(nèi)容文件所記錄的函數(shù)被設定為程序代碼后的一個動作測試用程序。例如,程序生成部132按照記錄有圖18的事例設定畫面240的 內(nèi)容的事例文件,生成用于執(zhí)行登錄事例的一個動作測試用程序和用于執(zhí)行檢索事例的一個動作測試用程序。所謂“一個動作測試用程序”,意思是被作為一個執(zhí)行單位來執(zhí)行的程序,換言之是在一次執(zhí)行機會中被執(zhí)行的程序,與其物理上的程序數(shù)量無關。程序執(zhí)行部134在執(zhí)行各操作內(nèi)容文件內(nèi)所記錄的一個函數(shù)時,將與該操作內(nèi)容文件相對應的輸入數(shù)據(jù)文件的數(shù)據(jù)中、在操作內(nèi)容文件中與該函數(shù)相對應的列的數(shù)據(jù)傳遞給該函數(shù)。另外,程序執(zhí)行部134將在同一測試事例中被賦予相同組ID的多個執(zhí)行集作為應執(zhí)行相同重復處理的相同組來處理。具體來說,重復進行被賦予相同組ID的多個執(zhí)行集的執(zhí)行,在每次重復執(zhí)行時,向被記錄在各執(zhí)行集的操作內(nèi)容文件中的函數(shù)傳遞被記錄在輸入數(shù)據(jù)文件中的預定數(shù)量的記錄(record)。在參考技術2中,假定每次重復時將被記錄在輸入數(shù)據(jù)文件中的一個記錄(record)傳遞給函數(shù)。另外,也可以在程序生成部132中生成已將用于執(zhí)行上述處理的重復命令設定在程序代碼中的動作測試用程序。另外,針對被指定了行編號的執(zhí)行集,程序執(zhí)行部134將在輸入數(shù)據(jù)文件中以該行編號所確定的輸入數(shù)據(jù)傳遞給該操作內(nèi)容文件中所記錄的函數(shù)。因此,在被指定了基于組ID的重復處理,并進一步被指定了行編號的情況下,就重復執(zhí)行行編號所指定的次數(shù)。例如,在圖18的登錄事例中,沒有設定跨執(zhí)行集的組,在各執(zhí)行集中被執(zhí)行一個輸入數(shù)據(jù)量的處理。與此不同,在圖18的檢索事例中,各執(zhí)行集中的一個輸入數(shù)據(jù)量的處理被重復執(zhí)行三次。具體來說,在第一次的重復中,登入數(shù)據(jù)2. xls的第35行的數(shù)據(jù)“t_yamada”被傳遞給登入2. xls中所記錄的函數(shù)。并且,檢索記入數(shù)據(jù).xls的第I行姓名漢字的數(shù)據(jù)“山田太郎”被傳遞給檢索記入.xls中所記錄的函數(shù)、具體來說是圖15的Nol的函數(shù)。此外,檢索記入數(shù)據(jù).xls的第I行姓名讀音的數(shù)據(jù)“ W夕'夕口々”被傳遞給圖15的No2的函數(shù)。在第二次的重復中,登入數(shù)據(jù)2. xls的第36行的數(shù)據(jù)“h_yamada”被傳遞給登入2. xls中所記錄的函數(shù)。并且,檢索記入數(shù)據(jù).xls的第2行姓名漢字的數(shù)據(jù)“山田花子”被傳遞給檢索記入.xls中所記錄的圖15的Nol的函數(shù)。此外,檢索記入數(shù)據(jù).xls的第2行姓名讀音的數(shù)據(jù)“ W夕' ^ f - ”被傳遞給圖15的No2的函數(shù)。在第三次的重復中也是一樣,遞增后的行編號中的輸入數(shù)據(jù)被傳遞給各函數(shù)。在參考技術2的動作檢驗裝置100中,也能發(fā)揮在參考技術I中說明過的效果。具體來說,由于實現(xiàn)了處理與變量的分離以及基于GUI的設定,所以能夠既確保包含在動作測試用程序中的邏輯的多樣性,又能簡單地生成質(zhì)量穩(wěn)定的程序。此外,通過輸入數(shù)據(jù)文件的設定,容易擴展動作測試的變化。此外,通過事例文件的設定,能實現(xiàn)各種各樣的劇本下的動作測試。在參考技術2的動作檢驗裝置100中,執(zhí)行動作測試用程序的執(zhí)行引擎功能和實現(xiàn)執(zhí)行引擎的高效利用的包裝器功能無縫地、不需要用戶中介地聯(lián)系在一起。由此,能夠減輕用于執(zhí)行動作測試的用戶的負擔。此外,與參考技術I的動作檢驗裝置100時不同,用戶無需熟悉QTP的項目等用于程序執(zhí)行的環(huán)境。即,只要設定用戶容易理解操作的形式的操作內(nèi)容文件和輸入數(shù)據(jù)文件即可。由此,用戶能夠容易地實施動作測試。
在參考技術2的動作檢驗裝置100中,是生成一個集約了同一測試事例的多個執(zhí)行集的動作測試用程序,并執(zhí)行該一個動作測試用程序的。與參考技術I的動作檢驗裝置100中的按執(zhí)行集、即按照基于執(zhí)行集生成的每個QTP項目進行執(zhí)行的情況相比,能夠降低在執(zhí)行一個測試事例中的一連串動作測試時的系統(tǒng)開銷(overhead),能實現(xiàn)迅速的動作測試。在參考技術2的動作檢驗裝置100中,還能夠設定跨多個執(zhí)行集重復的組。由此,能夠靈活分割執(zhí)行集,能夠靈活設定動作測試的劇本。此外,還能夠設定輸入數(shù)據(jù)文件的參照范圍。由此,即使輸入數(shù)據(jù)文件相同,也能夠根據(jù)劇本靈活地變更參照范圍,能夠容易地實現(xiàn)各種各樣變化的動作測試。在上述的參考技術2中,作為對函數(shù)設定畫面210中的值設定進行輔助的例子,表示出了下拉列表252。在變形例中,網(wǎng)頁中的單選按鈕、復選框、列表框等以可選方式顯示的輸入數(shù)據(jù)候選也可以被以下拉列表252或其它形式可選地顯示在函數(shù)設定畫面210中。即,在對動作確認對象機器進行數(shù)據(jù)輸入操作時以各種各樣的可選形式顯示給用戶的輸入數(shù)據(jù)候選,也可以在函數(shù)設定畫面210中的值設定時被可選地顯示出來。在上述的參考技術I中,QTP受理用戶對網(wǎng)頁服務器400的操作,動作檢驗裝置100以生成了日志為條件生成動作測試用程序。另外,在上述參考技術2中,動作檢驗裝置100檢測用戶對網(wǎng)頁服務器400的操作,來生成動作測試用程序。作為變形例,在動作檢驗裝置100中也可以在從網(wǎng)頁服務器400取得了 HTML文件的時點生成動作測試用程序。在該情況下,動作檢驗裝置100檢索被包含在HTML文件中的表單(form)標簽,確定HTML文件中包含有什么樣的輸入接口。然后,只要選擇用于將數(shù)據(jù)輸入到各輸入接口的函數(shù)并將這些函數(shù)按各種順序排列,即使沒有用戶明示的網(wǎng)頁操作,也能生成測試用的程序。(參考技術3)首先,說明參考技術3的概要。目前公開有非常多的網(wǎng)頁瀏覽器,用戶的PC中也有多種網(wǎng)頁瀏覽器被使用。因此,作為動作檢驗裝置,希望能夠支持針對多種網(wǎng)頁瀏覽器的網(wǎng)頁的動作測試。此時,動作檢驗裝置需要根據(jù)網(wǎng)頁瀏覽器的規(guī)格操作網(wǎng)頁瀏覽器,其方法大致可分為以下兩種。以下也將成為動作測試對象的網(wǎng)頁稱為“測試對象頁”。
方式I.來自外部的操作通過調(diào)用網(wǎng)頁瀏覽器對外公開的API、即接受對正顯示在網(wǎng)頁瀏覽器中的測試對象頁的輸入操作的接口(以下也稱“操作IF”),來從外部操作網(wǎng)頁瀏覽器。本參考技術3的操作IF具體來說是用于對測試對象頁輸入數(shù)據(jù)、執(zhí)行測試對象頁的表單(form)、以及對網(wǎng)頁服務器的GET請求(Request)和POST請求(Request)的函數(shù)。方式2.來自內(nèi)部的操作向測試對象頁的程序代碼(即HTML文件)追記接受對測試對象頁的輸入操作,并使網(wǎng)頁瀏覽器執(zhí)行該輸入操作的腳本文件(以下也稱“控制代碼”)。然后,通過調(diào)用該控制代碼來從內(nèi)部操作網(wǎng)頁瀏覽器。換言之,通過被預先編入網(wǎng)頁瀏覽器所表示的網(wǎng)頁中的腳本文件來操作該網(wǎng)頁瀏覽器。本參考技術3的控制代碼是記述了包含接受外部對測試對象頁的輸入操作的接口功能的函數(shù)的程序代碼。并且還是記述了包含通過操作測試對象頁的DOM樹來更新測試 對象頁的顯示內(nèi)容的功能、發(fā)送對網(wǎng)頁服務器的GET請求和POST請求的功能的函數(shù)的程序代碼。控制代碼也可以用預定的腳本語言(例如JAVA腳本(“JAVA”是注冊商標))來記述。圖19表示對網(wǎng)頁瀏覽器的兩種操作方式的特征。該圖是來自外部的操作方式與來自內(nèi)部的操作方式的比較圖。在被認為最重要的動作測試本身的可靠性方面,由于來自內(nèi)部的操作方式是改寫測試對象頁的操作,所以可以說來自外部的操作方式更佳。而在適合性和通用性方面,由于來自外部的操作方式是依賴于網(wǎng)頁瀏覽器中的操作IF的操作,所以可以說來自內(nèi)部的操作方式更佳。因此,在本參考技術3中,提出一種如果動作測試所使用的網(wǎng)頁瀏覽器的操作IF是公開的,則從外部操作網(wǎng)頁瀏覽器,而如果操作IF是非公開的,則從內(nèi)部操作網(wǎng)頁瀏覽器的動作檢驗裝置。由此,能夠在盡可能地確保動作測試的可靠性的同時,支持基于各種各樣的網(wǎng)頁瀏覽器的動作測試。圖20針對對網(wǎng)頁瀏覽器的兩種操作方式,示意性地示出了功能間的調(diào)用關系。網(wǎng)頁服務器400是提供測試對象頁的信息處理裝置。以瀏覽器402為總稱的瀏覽器A402a、瀏覽器B402b、瀏覽器C402c、瀏覽器D402d是作為HTTP用戶代理而發(fā)揮功能的網(wǎng)頁瀏覽器,執(zhí)行測試對象頁的顯示處理、操作處理等。另外,假定該圖的瀏覽器A402a和瀏覽器B402b將其操作IF對外公開,而瀏覽器C402c和瀏覽器D402d不公開其操作IF。以個別瀏覽器用引擎404為總稱的瀏覽器A用引擎404a和瀏覽器B用引擎404b分別是調(diào)用瀏覽器A402a和瀏覽器B402b各自的操作IF的程序代碼。通用IF406是用于調(diào)用多種瀏覽器402各自的操作IF的接口,是具有不依賴于多種瀏覽器402各自不同的操作IF的通用格式的接口的程序代碼。以個別瀏覽器用引擎驅(qū)動器408為總稱的瀏覽器A用弓I擎驅(qū)動器408a、瀏覽器B用引擎驅(qū)動器408b通過將不依賴于瀏覽器402的種類的通用IF406格式的數(shù)據(jù)變換成按各瀏覽器402而不同的操作IF格式的數(shù)據(jù),來橋接動作測試用程序和個別瀏覽器用引擎404。代理(proxy)服務器410作為瀏覽器402的代理,發(fā)揮從網(wǎng)頁服務器取得測試對象頁的反向代理的功能。代理服務器410在向測試對象頁追加控制代碼后,將該測試對象頁提供給瀏覽器C402c和瀏覽器D402d。內(nèi)部操作引擎412介由代理服務器410調(diào)用被附加在測試對象頁中的控制代碼。內(nèi)部操作引擎驅(qū)動器414通過將通用IF406格式的數(shù)據(jù)變換成用于調(diào)用控制代碼的預定格式的數(shù)據(jù),來橋接動作測試用程序和內(nèi)部操作引擎412。下面說明圖20的動作。當顯示測試對象頁的網(wǎng)頁瀏覽器是瀏覽器A402a或瀏覽器B402b時,動作測試用程序調(diào)用通用IF406。伴隨于此,網(wǎng)頁瀏覽器的操作IF被介由個別瀏覽器用引擎驅(qū)動器408和個別瀏覽器用引擎404而調(diào)用,由此,網(wǎng)頁瀏覽器被操作,對測試對象頁的輸入操作被實現(xiàn)。另一方面,當顯示測試對象頁的網(wǎng)頁瀏覽器是瀏覽器C402c或瀏覽器D402d時,代理服務器410向測試對象頁追加控制代碼,并使該測試對象頁顯示在網(wǎng)頁瀏覽器中。此時,動作測試用程序也是調(diào)用通用IF406,被附加在測試對象頁中的控制代碼被介由內(nèi)部操作引擎驅(qū)動器414、內(nèi)部操作引擎412、代理服務器410地調(diào)用。由此,網(wǎng)頁瀏覽器被不介由網(wǎng)頁瀏覽器的操作IF地操作,對測試對象頁的輸入操作被實現(xiàn)。通過圖20的結構,網(wǎng)頁瀏覽器的接口的差異被個別瀏覽器用引擎驅(qū)動器408和內(nèi)部操作引擎驅(qū)動器414所吸收。由此,動作測試用程序能夠不依賴于網(wǎng)頁的動作測試中所使用的網(wǎng)頁瀏覽器(以下也稱“測試執(zhí)行瀏覽器”)的種類,總是通過調(diào)用通用IF406來操作 測試執(zhí)行瀏覽器。換言之,通過同一個動作測試用程序就能使基于多種網(wǎng)頁瀏覽器的動作測試自動執(zhí)行。圖21是表示參考技術3的動作檢驗裝置的功能構成的框圖。對該圖的功能塊中的與參考技術I和2所示的動作檢驗裝置100的功能塊對應的功能塊標注相同的標號。關于標注了相同標號的功能塊,僅在其功能不同于參考技術I和2中已述的內(nèi)容時再進行說明,對于同樣的功能,由于已經(jīng)說明過了,故適當省略其說明。動作檢驗裝置100除圖13所示的功能塊外還具有瀏覽器處理部160。瀏覽器處理部160對應于圖20的瀏覽器402,作為網(wǎng)頁瀏覽器而發(fā)揮功能。當然,也可以是一個動作檢驗裝置100具有多種瀏覽器處理部160。程序執(zhí)行部134在動作測試用程序的執(zhí)行時,根據(jù)測試執(zhí)行瀏覽器的種類、換言之根據(jù)瀏覽器處理部160的形態(tài)來選擇來自外部的操作方式或來自內(nèi)部的操作方式而操作瀏覽器處理部160。圖22是表示圖21的程序執(zhí)行部134的詳細情況的框圖。程序執(zhí)行部134包括測試主體選擇部162、外部操作執(zhí)行部164、代理處理部166、內(nèi)部操作執(zhí)行部168、佐證物設定部170。測試主體選擇部162從預定的設定文件或動作測試用程序取得表示測試執(zhí)行瀏覽器的種類的信息、換言之取得表示瀏覽器處理部160中的操作IF的公開狀況的信息,按照該信息決定動作測試的執(zhí)行主體。例如,可以參照將各種網(wǎng)頁瀏覽器與各自的操作IF的公開狀況建立起對應關系的表,來確定測試執(zhí)行瀏覽器中的操作IF的公開狀況。當瀏覽器處理部160是對外公開操作IF的時,測試主體選擇部162選擇在后文中敘述的外部操作執(zhí)行部164作為動作測試的執(zhí)行主體。另一方面,當瀏覽器處理部160不對外公開操作IF時,選擇在后文中敘述的代理處理部166和內(nèi)部操作執(zhí)行部168作為動作測試的執(zhí)行主體。外部操作執(zhí)行部164對應于圖20的個別瀏覽器用引擎404,在動作測試用程序的執(zhí)行時檢測動作測試用程序?qū)νㄓ肐F406的調(diào)用。然后,通過調(diào)用瀏覽器處理部160所公開的操作IF,來操作瀏覽器處理部160,執(zhí)行對測試對象頁的輸入操作。代理處理部166對應于圖20的代理服務器410,從網(wǎng)頁服務器400代理取得瀏覽器處理部160所要求的測試對象頁,在測試對象頁的HTML代碼內(nèi)插入控制代碼。然后,將改變后的測試對象頁的HTML代碼發(fā)送給瀏覽器處理部160使之顯示。此外,代理處理部166從后文敘述的內(nèi)部操作執(zhí)行部168接受控制代碼的調(diào)用,調(diào)用已追加到測試對象頁中的控制代碼。代理處理部166與測試對象頁的通信可以采用基于XMLHttpRequest的非同步通f目。內(nèi)部操作執(zhí)行部168對應于圖20的內(nèi)部操作引擎412,在動作測試用程序的執(zhí)行時,檢測動作測試用程序?qū)νㄓ肐F406的調(diào)用。然后,通過介由代理處理部166地調(diào)用被追加在測試對象頁中的控制代碼,來操作瀏覽器處理部160,執(zhí)行對測試對象頁的輸入操作。代理處理部166和內(nèi)部操作執(zhí)行部168可以采用被作為測試自動化工具而公開的Selenium(http://seleniumhq. org/)的庫。佐證物設定部170根據(jù)來自外部操作執(zhí)行部164或內(nèi)部操作執(zhí)行部168的要求,設定證明動作測試的結果的數(shù)據(jù)(以下也稱“佐證物”),將該佐證物保存到結果保持部152 中。作為佐證物,可以取得通過瀏覽器處理部160而顯示在顯示器中的測試對象頁的畫面快照,也可以取得在與網(wǎng)頁服務器400的HTTP通信中所收發(fā)的數(shù)據(jù)。此外,畫面快照的取得功能可以由動作檢驗裝置100的操作系統(tǒng)(以下也稱“OS”)提供,HTTP通信數(shù)據(jù)的取得功能可以由被安裝在動作檢驗裝置100中的抓包軟件提供。下面說明以上結構的動作。圖23是表示動作檢驗裝置100的動作的流程圖。該圖表示在動作檢驗裝置100中動作測試用程序被執(zhí)行時的動作。例如,是表示圖12中的S218的詳細情況的圖,也是表示圖14中的S228的詳細情況的圖。在測試對象頁的動作測試開始時,測試主體選擇部162根據(jù)瀏覽器處理部160中的操作IF的公開狀況選擇動作測試的執(zhí)行引擎(S300)。瀏覽器處理部160要求網(wǎng)頁服務器400提供測試對象頁(S302)。當在瀏覽器處理部160中操作IF是非公開的時(S304為N),代理處理部166代理取得測試對象頁,在向其HTML代碼追加控制代碼后,將測試對象頁發(fā)送給瀏覽器處理部160 (S306)。如果操作IF沒有被公開(S304為Y),則S306被跳過。瀏覽器處理部160使測試對象頁顯示在預定的顯示器中(S308)。佐證物設定部170通過取得測試對象頁的畫面快照等來設定動作測試的佐證物,并保存到結果保持部152中(S310)。如果應在動作測試中執(zhí)行的所有操作都已執(zhí)行完(S312為Y),則結束本圖的流程。如果還有未執(zhí)行的操作(S312為N),當瀏覽器處理部160中操作IF是公開的時(S314為Y),外部操作執(zhí)行部164通過調(diào)用該操作IF來執(zhí)行動作測試用程序?qū)y試對象頁的輸入操作(S316)。如果操作IF非公開(S314為N),則內(nèi)部操作執(zhí)行部168通過調(diào)用被追加在測試對象頁中的控制代碼來執(zhí)行動作測試用程序?qū)y試對象頁的輸入操作(S318)。當基于對測試對象頁的操作而被要求提供新的網(wǎng)頁時、例如發(fā)生基于GET請求或POST請求等的畫面轉(zhuǎn)移時(S320為Y),回到S304。如果沒有被要求提供新的網(wǎng)頁(S320為N),則回到S310。參考技術3的動作檢驗裝置100以參考技術I和參考技術2中所記載的動作檢驗裝置100的結構為前提,追加了用于支持多種網(wǎng)頁瀏覽器中的網(wǎng)頁的動作測試的結構。因此,本參考技術3的動作檢驗裝置100的構成不僅具有參考技術I和參考技術2所記載的效果,還具有以下效果。在動作檢驗裝置100中,作為網(wǎng)頁瀏覽器的操作方式,配置有來自內(nèi)部的操作方式,從而能夠不論網(wǎng)頁瀏覽器中的操作IF公開與否,都能執(zhí)行多種網(wǎng)頁瀏覽器中的網(wǎng)頁的動作測試。另外,在動作檢驗裝置100中,作為網(wǎng)頁瀏覽器的操作方式,還配置有來自外部的操作方式,在網(wǎng)頁瀏覽器公開操作IF的情況下,通過以來自外部的操作方式進行動作測試,容易確保動作測試的可靠性。以上說明了參考技術3的動作檢驗裝置100。在參考技術3中,與代理服務器410對應的代理處理部166是被內(nèi)置在動作檢驗裝置100中的。在變形例中,代理處理部166也可以是被包含在動作檢驗裝置100之外的其它信息處理裝置中。如前面所說明的,既可以是單一的動作檢驗裝置100中安裝有多種網(wǎng)頁瀏覽器,也可以是動作檢驗裝置100具有與多種網(wǎng)頁瀏覽器對應的多個瀏覽器處理部160。此時,程序執(zhí)行部134可以在各個網(wǎng)頁瀏覽器中執(zhí)行測試對象頁的動作測試。S卩,可以針對各網(wǎng)頁瀏覽器并行執(zhí)行圖23所示的處理。由于能夠在單一的動作檢驗裝置100中實施多種網(wǎng)頁瀏覽器中的動作測試,所以能實現(xiàn)高效率且低成本的動作測試。 在參考技術3中,是按照網(wǎng)頁瀏覽器的種類而選擇來自內(nèi)部的操作方式或來自外部的操作方式的。在變形例中,也可以在單一網(wǎng)頁瀏覽器的動作測試中組合兩種方式。例如,對于針對測試對象頁的操作中的、能利用已公開的操作IF來執(zhí)行的操作,適用來自外部的操作方式,即外部操作執(zhí)行部164調(diào)用操作IF。而對于不能利用公開的操作IF來執(zhí)行的操作,適用來自內(nèi)部的操作方式,即內(nèi)部操作執(zhí)行部168調(diào)用控制代碼。由于網(wǎng)頁內(nèi)所記述的腳本代碼一般是被允許廣泛的操作的,所以能夠通過來自內(nèi)部的操作方式來補足依賴于操作IF的規(guī)格而造成的來自外部的操作方式下的制約。(實施方式)在本發(fā)明的實施方式中提出一種與上述參考技術3相關聯(lián)、支持基于各種網(wǎng)頁瀏覽器的網(wǎng)頁動作測試的動作檢驗裝置100。以下說明中的“Windows'“Internet Explorer(IE)”、“Firefox (火狐)”、“1^”、“1^05”、“5&€&1^”、“從¥4”等名稱是各公司的商標或注冊商標。圖24示意性地表示網(wǎng)頁的動作測試中的功能間的調(diào)用關系。該圖的動作檢驗引擎500表示了動作檢驗裝置100中的用于網(wǎng)頁動作測試的核心功能。Windows環(huán)境540表示W(wǎng)indowsOS中的環(huán)境,Mac環(huán)境560表示了 MacOS中的環(huán)境。當然,OS被裝有Windows的動作檢驗裝置100也可以由動作檢驗引擎500和Windows環(huán)境540的組合來構成。此外,OS被裝有MacOS的動作檢驗裝置100也可以由動作檢驗引擎500和Mac環(huán)境560的組合來構成。圖24的IE瀏覽器542公開了能從外部的應用調(diào)用的操作IF,即C0M550。因此,對于IE瀏覽器542中所顯示的網(wǎng)頁的操作,采用參考技術3中的來自外部的操作方式。另一方面,F(xiàn)F (火狐)瀏覽器546和Safari瀏覽器562沒有公開能從外部應用調(diào)用的操作IF。因此,針對這些瀏覽器上所顯示的網(wǎng)頁的操作就采用參考技術3中的來自內(nèi)部的操作方式。在圖24中,表示了用于來自內(nèi)部的操作方式的Selenium模塊530。Selenium模塊530對應于圖20的內(nèi)部操作引擎412和代理服務器410,是作為測試自動化工具而被公開的Selenium (http: //seleniumhq. org/)的服務器程序。Selenium模塊530對顯示網(wǎng)頁的網(wǎng)頁瀏覽器的窗口(以下也稱作“瀏覽器窗口”)分配獨自的標識符。然后,當客戶指定該標識符時,就唯一識別應作為操作對象的瀏覽器窗口(換言之是網(wǎng)頁)。共通IF406對應于圖20的共通IF406。IE驅(qū)動器502對應于圖20的個別瀏覽器用引擎驅(qū)動器408。IE驅(qū)動器502在使用IE瀏覽器542的網(wǎng)頁動作測試中作為動作測試用程序(以下也稱作“測試程序”)與IE瀏覽器542的橋梁來發(fā)揮功能。IE驅(qū)動器502包含IE窗口管理器504、IE瀏覽器操作部506、IE對話框操作部508。IE窗口管理器504管理針對顯示網(wǎng)頁的瀏覽器窗口,由用戶在測試程序中分配的標識符(以下也稱作“用戶分配ID”)與OS所分配的標識符(以下稱作“OS分配ID”)的對應關系。IE瀏覽器操作部506針對應進行網(wǎng)頁操作的瀏覽器窗口(以下也稱“操作對象窗口”),確定與在測試程序中所指定的用戶分配ID對應的OS分配ID。此外,還確定與在測試 程序中所指定的操作內(nèi)容對應的C0M550的函數(shù)。然后,通過指定OS分配ID并調(diào)用C0M550的函數(shù),來從外部操作IE瀏覽器542,使IE瀏覽器542執(zhí)行操作對象窗口中的網(wǎng)頁操作。根據(jù)網(wǎng)頁的操作不同,IE瀏覽器542有時直接使用WindowsOS的資源來顯示對話框。以下將該對話框也稱作“OS對話框”。IE對話框操作部508操作IE瀏覽器542所顯示的OS對話框544。具體來說,通過在檢測到OS對話框544被顯示時調(diào)用與測試程序中所指定的對話框操作對應的Win32API552的函數(shù),來執(zhí)行針對OS對話框544的操作。作為針對OS對話框544的典型的操作內(nèi)容,可以舉出字符串的輸入、顯示項目的選擇、按鈕的按下等。針對后述的FF對話框548及Safari對話框564的操作內(nèi)容也是一樣。FF驅(qū)動器510對應于圖20的內(nèi)部操作引擎驅(qū)動器414,在使用FF瀏覽器546的網(wǎng)頁動作測試中,作為測試程序與FF瀏覽器546的橋梁來發(fā)揮功能。FF驅(qū)動器510包含F(xiàn)F窗口管理器512、FF瀏覽器操作部514、FF對話框操作部516。FF窗口管理器512管理由Selenium模塊530分配給顯示網(wǎng)頁的瀏覽器窗口的標識符(以下也稱作“Selenium分配ID”)與針對該窗口的用戶分配ID及OS分配ID的對應關系。FF瀏覽器操作部514針對操作對象窗口,確定與在測試程序中所指定的用戶分配ID對應的Se I en ium分配ID。此夕卜,還確定與測試程序中所指定的操作內(nèi)容對應的Se I en ium模塊530的函數(shù)。然后,指定Selenium分配ID,調(diào)用Selenium模塊530的函數(shù)。據(jù)此,Selenium模塊530基于Selenium分配ID確定操作對象窗口,調(diào)用與該操作對象窗口所顯示的網(wǎng)頁的控制代碼中的、與被調(diào)用的函數(shù)對應的控制代碼。由此,在操作對象的網(wǎng)頁中,特定的JAVA腳本動作,從內(nèi)部操作FF瀏覽器546,從而實現(xiàn)測試程序所指定的網(wǎng)頁操作。在測試程序指定了應不介由Selenium模塊530地操作的預定操作、典型的是瀏覽器窗口的關閉處理時,F(xiàn)F瀏覽器操作部514抑制Selenium模塊530的調(diào)用。取而代之,同IE對話框操作部508 —樣,通過調(diào)用Win32API552來執(zhí)行該操作。根據(jù)網(wǎng)頁的操作,F(xiàn)F瀏覽器546有時使OS對話框544顯示,或者使利用FF瀏覽器546獨自的資源的對話框(以下也稱“FF對話框”)顯示。典型的是,在與文件的保存等OS協(xié)作時使OS對話框544顯示,而作為基于JAVA腳本的警告對話框,則使FF對話框548顯不。
FF對話框操作部516操作OS對話框544和FF對話框548。具體來說,檢測到OS對話框544的顯示時,調(diào)用與測試程序所指定的對話框操作對應的Win32API552的函數(shù),由此執(zhí)行對該OS對話框544的操作。另外,在檢測到FF對話框548的顯示時,調(diào)用預設在FF瀏覽器546中的作為擴展功能的FF插件554來指示對話框操作,由此執(zhí)行針對FF對話框548的操作。該詳細情況將與圖26相關聯(lián)地在后面敘述。Safari驅(qū)動器520對應于圖20的內(nèi)部操作引擎驅(qū)動器414,在使用Safari瀏覽器562的網(wǎng)頁的動作測試中,作為測試程序與Safari瀏覽器562的橋梁而發(fā)揮功能。Safari驅(qū)動器520包含Safari窗口管理器522、Safari瀏覽器操作部524、Safari對話框操作部526。Safari窗口管理器522管理針對網(wǎng)頁所被顯示的窗口的用戶分配ID、OS分配ID及Selenium分配ID的對應關系。在MacOS中,對瀏覽器窗口分配ID的是Safari瀏覽器562,但為了說明的方便,將其名稱統(tǒng)一為OS分配ID。Safari瀏覽器操作部524針對操作對象的窗口,確定與測試程序所指定的用戶分配ID對應的Selenium分配ID。此外,還確定與測試程序所指定的操作內(nèi)容對應的 Selenium模塊530的函數(shù)。然后,指定Selenium分配ID,調(diào)用Selenium模塊530的函數(shù)。由此,同F(xiàn)F瀏覽器操作部514—樣,介由Selenium模塊530執(zhí)行針對操作對象的網(wǎng)頁的操作。在測試程序指定了應不介由Selenium模塊530地操作的預定操作、典型的是窗口的關閉處理時,Safari瀏覽器操作部524抑制Selenium模塊530的調(diào)用。取而代之地,通過調(diào)用MacOS提供的API來執(zhí)行該操作。具體來說,調(diào)用為用于殘障者的應用的使用而準備的API群、即可訪問性(ACCeSsibility)API566。該詳細情況將與圖27相關聯(lián)地在后面敘述。根據(jù)網(wǎng)頁的操作,Safari瀏覽器562有時使對話框(以下也稱“Safari對話框”)。Safari對話框操作部526在檢測到Safari對話框564的顯示時,調(diào)用與測試程序所指定的對話框操作對應的MacOS的API,由此執(zhí)行針對Safari對話框564的操作。此時也調(diào)用上述的可訪問性API566。該詳細情況將與圖27相關聯(lián)地在后面敘述。上述的FF窗口管理器512和Safari窗口管理器522被統(tǒng)稱為Selenium窗口管理器532。圖25表示Selenium窗口管理器532所存儲的數(shù)據(jù)例子。如該圖所示,Selenium窗口管理器532將在網(wǎng)頁的動作測試中對各瀏覽器窗口分配的用戶分配ID、SeleniUm分配ID及OS分配ID相對應地保存。用戶分配ID是用戶對各窗口所任意分配的ID,可以是用戶喜歡的(例如易認的、易記的)名稱。當然,IE瀏覽器542的操作并不介由Selenium模塊530。因此,IE窗口管理器504僅將用戶分配ID與OS分配ID相對應地保存。此外,上述的FF瀏覽器操作部514和Safari瀏覽器操作部524被統(tǒng)稱為介由Selenium模塊530操作網(wǎng)頁瀏覽器的Selenium瀏覽器操作部534。圖26表示針對圖24的FF對話框548的操作的方式。在Selenium模塊530中,F(xiàn)F瀏覽器546起動時,JAVA腳本所配裝的窗口句柄(window handler) 572被預先設定在FF瀏覽器546所讀入的FF歸檔(profile) 570中。FF瀏覽器546在打開新的瀏覽器窗口時,將窗口句柄572讀入FF插件554的存儲區(qū)域,由此,被追加裝入窗口句柄572的功能。窗口句柄572被作為FF插件554裝入時,將檢測FF瀏覽器546的窗口生成的監(jiān)聽對象(listener object)介由 XPConnect578 和 XPC0M580 登錄到窗口查看器(Windowffatcher)582中。窗口句柄572介由所登錄的監(jiān)聽對象而檢測到FF對話框548被生成時,與FF對話框操作部516的套接字(socket)服務器574進行套接字通信,通知其FF對話框548已被生成。該通知信息中包含表示FF對話框548中的顯示字符串、按鈕等顯示對象的顯示樣式信息。FF對話框操作部516被通知FF對話框548已生成后,將與測試程序所指定的對話框操作對應的函數(shù)、即XPC0M580的函數(shù)的識別信息通知給窗口句柄572。窗口句柄572通過調(diào)用由FF對話框操作部516指定的XPC0M580的函數(shù)來操作FF對話框548。當然,F(xiàn)F對話框操作部516也可以根據(jù)FF對話框548的顯示樣式而適當調(diào)整對FF對話框548的操作內(nèi)容。例如,可以對測試程序所指定的按鈕按下操作追加按下對象的按鈕的ID后,將該操作指示通知給窗口句柄572。如前所述,作為JAVA腳本的警告對話框,F(xiàn)F瀏覽器546是使FF對話框548顯示的。該FF對話框548是利用FF瀏覽器546獨自的資源而被顯示的,故不能從OS側判別對話框的內(nèi)容。例如,不能判別FF對話框548中的顯示字符串、按鈕等顯示對象。因此,如對OS對話框544的操作那樣,不能進行介由Win32API552的操作。例如,不能進行對FF對話 框548上所顯示的按鈕的按下操作。因此,在本實施方式中,通過將FF瀏覽器546中的FF對話框548顯示的監(jiān)視功能作為插件追加,能夠取得FF對話框548的顯示內(nèi)容,并實現(xiàn)對FF對話框548的操作。此外,F(xiàn)F瀏覽器操作部514由于是介由Selenium模塊530操作FF瀏覽器546,故能對網(wǎng)頁的程序代碼設定用于對話框操作的函數(shù)(例如與窗口句柄572 —樣的程序代碼)。但是,若FF對話框548是模式對話框(modal dialog,應用模式對話框或系統(tǒng)模式對話框),則不能從其顯示源的網(wǎng)頁的代碼來操作對話框。另一方面,被作為FF插件554而裝入的窗口句柄572能夠繼續(xù)進行對模式對話框的操作。基于該觀點,可以說希望窗口句柄572被設定為FF瀏覽器546的擴展功能。圖27表示對圖24的Safari對話框564的操作的方式。該圖的Apple腳本584是調(diào)用MacOS中的作為應用間通信技術的Apple事件的腳本。系統(tǒng)事件586是MacOS提供的應用,以Apple腳本584和可訪問性API566為中介地實現(xiàn)基于Apple腳本584的可訪問性API566的調(diào)用。圖27以四階層表示了 MacOS,上位的階層提供比下位的階層抽象度高的API、換言之提供高級別的API。如該圖所示,可訪問性API566屬于最上位的階層“用戶體驗”。如已述的那樣,可訪問性API566是用于確保面向殘障者的可用性的關于n自動化功能的API群。被自動化的操作內(nèi)容包括打開窗口、按下按鈕等各種用戶接口(畫面)操作。Safari對話框操作部526確定與測試程序所指定的對話框操作對應的可訪問性API566的函數(shù),將指定該函數(shù)的Apple腳本584發(fā)送給系統(tǒng)事件586。由此,介由系統(tǒng)事件586,調(diào)用被作為可訪問性API566而準備的對話框操作的函數(shù)。當然,對Safari對話框564的操作可以用MacOS中的更低級別的API群來實現(xiàn)。例如,Safari對話框操作部526通過調(diào)用圖形與多媒體階層的“Quartz” API,也能執(zhí)行對Safari對話框564的操作。但是,由于可訪問性API566提供與用戶所進行的UI操作對應的高級別的函數(shù),故通過利用可訪問性API566,能減少Safari對話框操作部526的代碼量,并能提高其可維護性。
此外,在圖27中未圖示的是,對于針對網(wǎng)頁的操作中的、應不介由Selenium模塊530地進行的預定操作,Safari瀏覽器操作部524同Safari對話框操作部526 —樣調(diào)用可訪問性API566。由此,使MacOS或Safari瀏覽器562執(zhí)行該操作。圖28是表示實施方式的動作檢驗裝置100的功能構成的框圖。該圖的功能塊中的與參考技術I至3所示的動作檢驗裝置100的功能塊相同或?qū)墓δ軌K被賦予相同標號。關于賦予了相同標號的功能塊,僅在其功能與在參考技術I至3中已述的內(nèi)容不同時進行記載,對于同樣的功能,適當省略其記載。動作檢驗裝置100還具有窗口 ID保持部154和ID取得部139。窗口 ID保持部154和ID取得部139對應于圖24的窗口管理器504和Selenium窗口管理器532。即,窗口 ID保持部154保存對顯示網(wǎng)頁的瀏覽器窗口所分配的用戶分配ID、SeleniUm分配ID、及OS分配ID的對應關系。ID取得部139從OS (WindowsOS或MacOS)取得針對瀏覽器窗口的OS分配ID。 在WindowsOS的情況下,ID取得部139取得通過調(diào)用Win32API而得到的窗口句柄(windowhandle)。例如,以long型整數(shù)的方式取得函數(shù)“FindWindow”返回的HWND值,存儲到窗口ID保持部154的OS分配ID字段中。關于函數(shù)“FindWindow”返回的多種HWND值中的未存儲于窗口 ID保持部154的值,也可以作為窗口 ID保持部154的新的記錄來追加。此外,在MacOS的情況下,ID取得部139取得通過Apple腳本而從Safari瀏覽器562得到的long值,存儲到窗口 ID保持部154的OS分配ID字段中。例如,執(zhí)行以下腳本tell application,,Safari,,return id of windowsend tell來取得Safari瀏覽器562對各個瀏覽器窗口分配的long值一覽。此外,ID取得部139取得Selenium模塊530 (Selenium 一 CORE)對各瀏覽器窗口分配的窗口屬性值“seleniumWindowName”。然后,將該窗口屬性值作為Selenium分配ID保存到窗口 ID保持部154的Selenium分配ID字段中。例如,通過調(diào)用Selenium模塊530 的函數(shù)“getAttributeFromAllwindow ( ”seleniumwindowName”)”,來取得 Selenium 模塊530所管理的窗口屬性值一覽。另外,ID取得部139取得后述的ID分配部174和ID分配部180對瀏覽器窗口分配的用戶分配ID,保存到窗口 ID保持部154的用戶分配ID字段中。當然,ID取得部139也可以將用戶分配ID、Selenium分配ID、OS分配ID分別按時間軸上的分配順序(ID取得部139中的取得順序)依次保存到窗口 ID保持部154中。由此,時間軸上先被分配的ID (例如Selenium分配ID)就與同樣在時間軸上先被分配的其它ID (例如用戶分配ID)相對應了。圖29是表示圖28的程序執(zhí)行部134的詳細情況的框圖。程序執(zhí)行部134具有測試環(huán)境判定部171、外部操作執(zhí)行部164、代理處理部166、內(nèi)部操作執(zhí)行部168、佐證物設定部170。對于該圖的功能塊中的與參考技術3所示的程序執(zhí)行部134的功能塊相同或?qū)墓δ軌K賦予了相同標號。對于賦予了相同標號的功能塊,僅在其功能與參考技術3中已述的內(nèi)容不同時進行記載,對于同樣的功能,適當省略其記載。測試環(huán)境判定部171對應于參考技術3 (圖21)中的測試主體選擇部162,基于用于網(wǎng)頁的動作測試的環(huán)境、具體來說基于OS與網(wǎng)頁瀏覽器的組合,決定網(wǎng)頁的動作測試的方式。例如,決定網(wǎng)頁瀏覽器的操作方式和對話框的操作方式。外部操作執(zhí)行部164對應于圖24中的IE瀏覽器操作部506。外部操作執(zhí)行部164包含ID分配部174和對話框操作部176。ID分配部174在測試程序執(zhí)行時檢測到在測試程序中生成新的瀏覽器窗口的函數(shù)(指令)被指定時,將被指定為該指令的變量的ID決定為用戶分配ID。若ID未指定,則采用在外部操作執(zhí)行部164和內(nèi)部操作執(zhí)行部168中唯一的新的ID作為用戶分配ID。對話框操作部176對應于圖24的IE對話框操作部508,定期監(jiān)視IE瀏覽器542對對話框的設定。例如,可以定期地調(diào)用Win32API552的上述FindWindow函數(shù),來檢測對話框窗口被生成。對話框操作部176介由Win32API552操作在IE瀏覽器542中所顯示的OS對話框544。此外,外部操作執(zhí)行部164保存存儲有測試程序所能指定的網(wǎng)頁操作用的函數(shù)與被作為網(wǎng)頁瀏覽器的操作IF而規(guī)定的函數(shù)的對應關系的表,在實施方式中是與C0M550及 Win32API552所規(guī)定的函數(shù)的對應關系的表。外部操作執(zhí)行部164參照該表來調(diào)用與測試程序所指定的函數(shù)對應的C0M550或Win32API552的函數(shù)。代理處理部166對應于圖24中的Selenium模塊530。如在參考技術3中所述的那樣,代理處理部166代理取得操作對象的網(wǎng)頁。然后,在該網(wǎng)頁的程序代碼中追加JAVA腳本所配裝的程序代碼、即為執(zhí)行對網(wǎng)頁的各種操作而預先準備的函數(shù)群(參考技術3中的“控制代碼”)。然后,使瀏覽器處理部160顯示控制代碼追加后的網(wǎng)頁。另外,根據(jù)來自內(nèi)部操作執(zhí)行部168的操作指示而調(diào)用與該操作指示對應的控制代碼的函數(shù),由此,中介執(zhí)行網(wǎng)頁的操作。代理處理部166包含ID發(fā)出部178和附加組件(add-on)設定部179。ID發(fā)出部178在使瀏覽器處理部160顯示控制代碼追加后的網(wǎng)頁時,發(fā)出用于在代理處理部166中唯一識別該瀏覽器窗口的識別信息。該識別信息由ID取得部139作為Selenium分配ID而取得。附加組件設定部179在為使瀏覽器處理部160顯示控制代碼追加后的網(wǎng)頁而應起動FF瀏覽器546時,指定包含圖26的窗口句柄572的FF歸檔570,起動FF瀏覽器546。由此,將窗口句柄572作為FF瀏覽器546的擴展功能而裝入。內(nèi)部操作執(zhí)行部168對應于圖24中的Selenium瀏覽器操作部534。內(nèi)部操作執(zhí)行部168包含ID分配部180和對話框操作部182。ID分配部180是與外部操作執(zhí)行部164的ID分配部174同樣的構成。另外,內(nèi)部操作執(zhí)行部168保存存儲有測試程序所能指定的網(wǎng)頁操作用的函數(shù)與在Selenium模塊530中規(guī)定的網(wǎng)頁操作用的函數(shù)的對應關系的表。外部操作執(zhí)行部164參照該表,調(diào)用與測試程序所指定的函數(shù)對應的Selenium模塊530的函數(shù)來作為對Selenium模塊530的操作指示。對話框操作部182對應于圖24的FF對話框操作部516和Safari對話框操作部526。若測試環(huán)境為WindowsOS和FF瀏覽器546,則對話框操作部182定期地監(jiān)視FF瀏覽器546所進行的對話框的設定。例如,可以定期地調(diào)用Win32API552的上述FindWindow函數(shù),來檢測對話框窗口被生成。對話框操作部182介由Win32API552操作在FF瀏覽器546中所顯示的OS對話框544。另外,對話框操作部182介由FF插件554檢測由FF瀏覽器546所顯示的FF對話框548,并介由FF插件554來進行操作。
另外,若測試環(huán)境為MacOS和Safari瀏覽器562,則對話框操作部182定期地監(jiān)視Safari瀏覽器562所進行的對話框的設定。例如,可以定期地執(zhí)行上述Apple腳本,檢測Safari瀏覽器562中的對話框窗口的設定。對話框操作部182介由可訪問性API566操作在Safari瀏覽器562中所顯示的Safari對話框564。下面說明以上結構的動作。圖30是表示動作檢驗裝置100的動作的流程圖。該圖表示在動作檢驗裝置100中執(zhí)行動作測試用程序時的動作。例如,既是表示圖12中的S218的詳細情況的圖,也是表示圖14中的S228的詳細情況的圖。即,如圖14所示的那樣,動作檢驗裝置100通過再現(xiàn)事前用戶對網(wǎng)頁實施的一連串輸入操作,來輔助網(wǎng)頁的動作確認。圖30可以說是使圖23的流程圖更詳細化的圖。從用戶收到網(wǎng)頁的動作測試的開始指示后,測試環(huán)境判定部171判定成為動作測試的執(zhí)行環(huán)境的OS及網(wǎng)頁瀏覽器的種類。然后,根據(jù)該判定結果,選擇外部操作執(zhí)行部164或內(nèi)部操作執(zhí)行部168作為網(wǎng)頁的操作主體(S400)。程序執(zhí)行部134、換言之被選為操作 主體的外部操作執(zhí)行部164或內(nèi)部操作執(zhí)行部168執(zhí)行后述的測試程序讀入處理(S402)。當記述在測試程序中的對網(wǎng)頁的全部操作(動作測試的全部項目)都完成了時(S404的Y),結束本圖的流程。作為測試程序的一例,在此假定記錄有以下操作I 操作10的操作指令測試程序。(操作I)打開瀏覽器窗口A (指定ID = I)(操作2)打開瀏覽器窗口B (指定ID = 2)(操作3)選擇瀏覽器窗口A (指定ID = I)(操作4)對瀏覽器窗口A所顯示的網(wǎng)頁的操作(操作5)對瀏覽器窗口A所顯示的網(wǎng)頁的操作(操作6)對通過操作5而被顯示的對話框的操作(操作7)選擇瀏覽器窗口B (指定ID = 2)(操作8)對瀏覽器窗口B所顯示的網(wǎng)頁的操作(操作9)關閉瀏覽器窗口A (指定ID = I)(操作10)關閉瀏覽器窗口B (指定ID = 2)該測試程序是在圖14所示的一系列處理中所設定的動作測試用程序。此時的操作內(nèi)容文件中,作為指定操作I和操作2的函數(shù),被指定“waitForNewWindow”,作為其變量,被設定網(wǎng)頁的URL和用戶指定的ID。此外,作為指定操作3和操作7的函數(shù),被指定“selectWindow”,作為其變量,被設定用戶指定的ID。此外,作為指定操作4、操作5及操作8的函數(shù),被指定WebEditSet、WebElementClick等各種操作用的函數(shù)。另外,作為指定操作6的函數(shù),被指定對話框操作用的預定函數(shù)。在測試程序的執(zhí)行中,測試程序所記述的操作指令被依次執(zhí)行。若測試程序中尚有未執(zhí)行的操作指令(S404的N),并且在測試程序中被要求顯示新的網(wǎng)頁,即應執(zhí)行上述的操作I和操作2 (S406的Y),則被選為操作主體的外部操作執(zhí)行部164或內(nèi)部操作執(zhí)行部168的ID分配部將該操作指令所指定的ID作為用戶分配ID而分配。ID取得部139取得該用戶分配ID,存儲到窗口 ID保持部154中(S408)。
若網(wǎng)頁瀏覽器的操作IF是被公開的(S410的Y),則外部操作執(zhí)行部164通過調(diào)用該操作IF而使網(wǎng)頁瀏覽器取得操作對象的網(wǎng)頁的數(shù)據(jù)(S412)。然后,使顯示有操作對象的網(wǎng)頁的瀏覽器窗口顯示在顯示器上(S420)。在圖24中成為S410的Y的是網(wǎng)頁瀏覽器為IE瀏覽器542的情況,此時的操作IF對應C0M550。若網(wǎng)頁瀏覽器的操作IF是非公開的(S410的N),則內(nèi)部操作執(zhí)行部168對代理處理部166指示取得操作對象的網(wǎng)頁。代理處理部166的ID發(fā)出部178發(fā)出Selenium分配ID (S414)。代理處理部166取得操作對象的網(wǎng)頁的數(shù)據(jù)(S416),對該網(wǎng)頁的數(shù)據(jù)追加控制代碼(S418)。代理處理部166執(zhí)行后述的網(wǎng)頁瀏覽器起動處理后(S419),將追加了控制代碼的網(wǎng)頁的數(shù)據(jù)傳遞給網(wǎng)頁瀏覽器,使顯示操作對象網(wǎng)頁的瀏覽器窗口顯示在顯示器上(S420)。在圖24中成為S410的N的是網(wǎng)頁瀏覽器為FF瀏覽器546或Safari瀏覽器562的情況。ID取得部139調(diào)用OS所提供的API,取得OS分配給瀏覽器窗口的OS分配ID,存儲到窗口 ID保持部154中。此外,若網(wǎng)頁瀏覽器的操作IF是非公開的,則調(diào)用Selenium 模塊530所提供的API,取得Selenium模塊530分配給瀏覽器窗口的Selenium分配ID,存儲到窗口 ID保持部154中。由此,使瀏覽器窗口 A和瀏覽器窗口 B各自被分配的用戶分配ID、OS分配ID及Selenium分配ID建立對應(S422)。若在測試程序中沒有指定新網(wǎng)頁的顯示(S406的N),則S408 S422被跳過。若在測試程序中指定有網(wǎng)頁的操作,即應執(zhí)行上述操作3 操作10 (S424的Y),則程序執(zhí)行部134執(zhí)行后述的網(wǎng)頁操作處理(S426)。若測試程序中沒有指定網(wǎng)頁的操作(S424的N),則S426被跳過。在對網(wǎng)頁的操作之后,佐證物設定部170將畫面快照等佐證物的數(shù)據(jù)存儲到結果保持部152中(S428),并返回S404。優(yōu)選佐證物設定部170將作為佐證物的瀏覽器窗口的相關畫面快照等佐證物與該瀏覽器窗口所被分配的用戶分配ID相對應地記錄。由此,能使要確認網(wǎng)頁的動作測試結果的用戶確認與自己所指定的ID相對應的佐證物,能提高用戶確認佐證物時的便利性。圖31是詳細表示圖30的S402的測試程序讀入處理的流程圖。程序執(zhí)行部134讀入動作測試用程序(S430)。若該程序中被指定有表示對話框操作的預定函數(shù)(S432的Y),則程序執(zhí)行部134將該對話框操作的內(nèi)容(上述的操作6)保存在預定的對話框操作保持表中(S434)。如果沒有指定對話框操作(S432的N),則S434被跳過。圖32是詳細表示圖30的S419的網(wǎng)頁瀏覽器起動處理的流程圖。代理處理部166起動用于動作測試的網(wǎng)頁瀏覽器(S440)。若動作測試用的網(wǎng)頁瀏覽器是FF瀏覽器546(S442的Y),則附加組件設定部179將窗口句柄572作為FF瀏覽器546的擴展功能而附加(S444)。窗口句柄572將用于檢測FF對話框548的監(jiān)聽器登錄到FF瀏覽器546中(S446)。若動作測試用的網(wǎng)頁瀏覽器不是FF瀏覽器546 (S442的N),則S444和S446被跳過。圖33是詳細表示圖30的S426的網(wǎng)頁操作處理的流程圖。在測試環(huán)境判定部171的判定結果中,如果OS是MacOS(S450的Y),則內(nèi)部操作執(zhí)行部168執(zhí)行后述的Mac用操作處理(S452)。如果OS不是MacOS (S450的N),則S452被跳過。如果OS是Windows (S454的Y)、網(wǎng)頁瀏覽器是IE瀏覽器542(S456的Y),則外部操作執(zhí)行部164執(zhí)行后述的IE用操作處理(S458)。如果網(wǎng)頁瀏覽器不是瀏覽器542(S456的N),而是FF瀏覽器546(S460的Y),則內(nèi)部操作執(zhí)行部168執(zhí)行后述的FF用操作處理(S462)。如果網(wǎng)頁瀏覽器也不是FF瀏覽器546 (S460的N),則S462被跳過,如果OS也不是Windows (S454的N),則S456以后的步驟被跳過。圖34是詳細表示圖33的S452的Mac用操作處理的流程圖。如果在測試程序中被指定了窗口選擇操作(上述的操作3和7)(S470的Y),則內(nèi)部操作執(zhí)行部168的ID分配部180將用變量所收到的ID確定為用戶分配ID (S472)。如果沒有被指定窗口選擇操作(S470的N),而是被指定了應介由Safari瀏覽器562執(zhí)行的預定操作(上述的操作4、5、8,以下也稱作“瀏覽器操作”)(S474的Y),則內(nèi)部操作執(zhí)行部168確定與用戶分配ID建立了對應關系的Selenium分配ID (S476)。然后,通過將指定有該Selenium分配ID的操作指示通知給Selenium模塊530,來使Selenium模塊530調(diào)用被追加于網(wǎng)頁的控制代碼中的與操作指示對應的函數(shù)(S478)。如果沒有被指定瀏覽器操作(S474的N),而是被指定了應介由MacOS執(zhí)行的預定操作(上述的操作9和10,以下也稱“OS操作”)(S480的Y),則內(nèi)部操作執(zhí)行部168確定與用戶分配ID建立了對應的OS分配ID (S482)。然后,通過指定該OS分配ID,調(diào)用與操作內(nèi)容對應的可訪問性API566的函數(shù),來使MacOS執(zhí)行對瀏覽器窗口的OS操作(S484)。如 果也不是OS操作(S480的N),則S482和S484被跳過。內(nèi)部操作執(zhí)行部168的對話框操作部182檢測到Safari對話框564的顯示時(S486的Y),從對話框操作保持表取得針對該對話框的操作內(nèi)容(上述的操作6) (S488)。然后,通過調(diào)用與該操作內(nèi)容對應的可訪問性API566的函數(shù),來執(zhí)行對Safari對話框564的操作(S490)。如果未檢測到Safari對話框564的顯示(S486的N),則S488和S490被跳過。圖35是詳細表示圖33的S458的IE用操作處理的流程圖。如果在測試程序中被指定了窗口選擇操作(上述操作3和7) (S500的Y),則外部操作執(zhí)行部164的ID分配部174將用變量收到的ID確定為用戶分配ID (S502)。如果沒有被指定窗口選擇操作(S500的N),而是被指定了應介由IE瀏覽器542執(zhí)行的操作(上述操作4、5、8,以下也稱“瀏覽器操作”)(S504的Y),則外部操作執(zhí)行部164確定與用戶分配ID建立了對應的OS分配ID(S506)。然后,通過指定該OS分配ID地調(diào)用與瀏覽器操作的內(nèi)容對應的C0M550的函數(shù),來使IE瀏覽器542執(zhí)行該操作(S508)。如果沒有被指定瀏覽器操作(S504的N),而是被指定了應介由WindowsOS執(zhí)行的操作(上述操作9和10,以下也稱“OS操作”)(S510的Y),則外部操作執(zhí)行部164確定與用戶分配ID建立了對應的OS分配ID(S512)。然后,通過指定該OS分配ID地調(diào)用與操作內(nèi)容對應的Win32API552的函數(shù),來使WindowsOS執(zhí)行對瀏覽器窗口的OS操作(S514)。如果也不是OS操作(S510的N),則S512和S514被跳過。外部操作執(zhí)行部164的對話框操作部176檢測到OS對話框544的顯示時(S516的Y),從對話框操作保持表取得針對該對話框的操作內(nèi)容(上述操作6) (S518)。然后,通過調(diào)用與該操作內(nèi)容對應的Win32API552的函數(shù),來執(zhí)行對OS對話框544的操作(S520)。如果未檢測到OS對話框544的顯示(S516的N),則S518和S520被跳過。圖36是詳細表示圖33的S462的FF用操作處理的流程圖。如果在測試程序中被指定了窗口選擇操作(上述操作3和7) (S530的Y),則內(nèi)部操作執(zhí)行部168的ID分配部180將用變量收到的ID確定為用戶分配ID (S532)。如果沒有被指定窗口選擇操作(S530的N),而是被指定了應介由FF瀏覽器546執(zhí)行的預定操作(上述操作4、5、8,以下也稱“瀏覽器操作”)(S534的Y),則內(nèi)部操作執(zhí)行部168確定與用戶分配ID建立了對應的Selenium分配ID (S536)。然后,將指定有該Selenium分配ID的操作指示通知給Selenium模塊530,由此,使Selenium模塊530調(diào)用被追加于網(wǎng)頁的控制代碼中的與操作指示對應的函數(shù)(S538)。如果沒被指定瀏覽器操作(S534的N),而是被指定了應介由WindowsOS執(zhí)行的預定操作(上述操作9和10,以下也稱“OS操作”)(S540的Y),則內(nèi)部操作執(zhí)行部168確定與用戶分配ID建立了對應的OS分配ID (S542)。然后,通過指定該OS分配ID地調(diào)用與操作內(nèi)容對應的Win32API552的函數(shù),來使WindowsOS執(zhí)行對瀏覽器窗口的OS操作(S544)。如果也不是OS操作(S540的N),則S542和S544被跳過。在本段落中說明通過上述操作5而顯示的對話框是FF對話框548的情況。內(nèi)部操作執(zhí)行部168的對話框操作部182通過來自窗口句柄572的通知而檢測到FF對話框548的顯示時(S546的Y),則從對話框操作保持表取得對該對話框的操作內(nèi)容(上述操作6)(S548)。然后,通過將該操作內(nèi)容通知給窗口句柄572,來使窗口句柄572調(diào)用與該操作內(nèi) 容對應的FF瀏覽器546的函數(shù)(S550)。由此,執(zhí)行針對FF對話框548的、遵照測試程序的操作。如果未檢測到FF對話框548的顯示(S546的N),則S548和S550被跳過。在本段落中說明通過上述操作5而顯示的對話框是OS對話框544的情況。內(nèi)部操作執(zhí)行部168的對話框操作部182檢測到OS對話框544被顯示時(S552的Y),從對話框操作保持表取得針對該對話框的操作內(nèi)容(上述操作6) (S554)。然后,通過調(diào)用與該操作內(nèi)容對應的Win32API552的函數(shù),來執(zhí)行對OS對話框544的操作(S556)。如果未檢測到OS對話框544的顯示(S552的N),則S554和S556被跳過。根據(jù)本實施方式的動作檢驗裝置100,如在參考技術3中所述的那樣,通過使用Selenium模塊530,不論操作IF是否公開,都能進行各種各樣的網(wǎng)頁瀏覽器上的網(wǎng)頁的動作確認。另外,在測試程序、以及成為測試程序的生成源的操作內(nèi)容文件和函數(shù)設定畫面中,用戶能將任意的ID賦予瀏覽器窗口。即,用戶能根據(jù)測試的情況而適當設定瀏覽器窗口的ID,并且無需意識到Selenium模塊530識別瀏覽器窗口所需要的Selenium分配ID,能提高用戶的便利性。另外,通過動作檢驗裝置100,還能支持應不介由Selenium模塊530地進行的對瀏覽器窗口的操作。在該情況下,用戶也能根據(jù)測試的情況而任意設定瀏覽器窗口的ID,并且無需意識到OS或網(wǎng)頁瀏覽器分配給該瀏覽器窗口的ID,能提高用戶的便利性。此外,通過動作檢驗裝置100,將對話框檢測功能作為網(wǎng)頁瀏覽器(FF瀏覽器546)的擴展功能來附加。由此,網(wǎng)頁瀏覽器為使用獨自的資源顯示對話框,即使在OS的功能中無法取得對話框的內(nèi)容,也能介由所附加的對話框檢測功能而取得對話框的內(nèi)容,并操作該對話框。另外,在網(wǎng)頁瀏覽器能生成使用了獨自的資源的第I對話框和使用了 OS的本機(native)資源的第2對話框這兩者的情況下,通過適當切換對話框操作的方式,也能進行對任一對話框的操作。即,對于第I對話框,介由所附加的對話框檢測功能來操作,對于第2對話框,介由OS的本機功能來操作,由此,能支持并再現(xiàn)對網(wǎng)頁的一系列操作。此外,通過動作檢驗裝置100,在針對瀏覽器窗口的多數(shù)操作中利用Selenium模塊530,而在例外性的操作中直接調(diào)用OS的API,或者利用對話框操作用的模塊。這樣,通過適當組合本實施方式中所說明的技術,還能支持在本實施方式中未言及的各種各樣的測試環(huán)境(即OS與網(wǎng)頁瀏覽器的組合),能輔助網(wǎng)頁的動作測試。以上基于實施方式說明了本發(fā)明。該實施方式只是例示,本領域技術人員當理解可以對其各構成要素和各處理過程的組合進行各種變形,并且這樣的變形例也包含在本發(fā)明的范圍內(nèi)。上述參考技術、實施方式、變形例的任意組合作為本發(fā)明的實施方式也是有用的。通過組合而產(chǎn)生的新的實施方式將兼具所組合的參考技術、實施方式、變形例各自的效果。本領域技術人員當理解權利要求中記載的各構成要件所發(fā)揮的功能可以由參考技術、實施方式及變形例中所示的各構成要素單獨或其協(xié)作來實現(xiàn)?!矘颂栒f明〕100動作檢驗裝置,132程序生成部,134程序執(zhí)行部,137操作記錄部,139ID取得 部,154窗口 ID保持部,160瀏覽器處理部,164外部操作執(zhí)行部,166代理處理部,168內(nèi)部操作執(zhí)行部,174U80ID分配部,176、182對話框操作部,178ID發(fā)出部,179附加組件設定部?!补I(yè)可利用性〕本發(fā)明能適用于測試產(chǎn)品的動作的裝置。
權利要求
1.ー種動作檢驗裝置,其特征在于,包括 ID分配部,在設定有對網(wǎng)頁的操作內(nèi)容的測試程序中,分配用于識別顯示上述網(wǎng)頁的窗ロ的、與用戶的指示相應的第1ID, 代理處理部,包括取得上述網(wǎng)頁的程序代碼,并將用于操作上述網(wǎng)頁的新代碼追加到該程序代碼中后,使網(wǎng)頁瀏覽器顯示上述網(wǎng)頁的単元,和發(fā)出用于識別顯示上述網(wǎng)頁的窗ロ的ID的単元,以及根據(jù)指定有該ID的操作指示而調(diào)用上述網(wǎng)頁的新代碼的單元, ID取得部,取得在上述代理處理部中發(fā)出的ID作為第2ID, ID保持部,保存在上述ID分配部中分配的第IID與在上述ID取得部中取得的第2ID的對應關系,以及 測試執(zhí)行部,取得關于在上述測試程序中成為操作對象的網(wǎng)頁的第1ID,基于上述對應關系而確定與第IID對應的第2ID,并將指定有該第2ID的操作指示通知給上述代理處理部,由此,使上述代理處理部識別上述成為操作對象的網(wǎng)頁,調(diào)用被追加于該頁的新代碼。
2.如權利要求I所述的動作檢驗裝置,其特征在干, 上述ID取得部取得本裝置的操作系統(tǒng)或網(wǎng)頁瀏覽器分配給顯示上述網(wǎng)頁的窗ロ的ID作為第3ID ; 上述ID保持部保存關于顯示上述網(wǎng)頁的窗ロ的第1ID、第2ID及第3ID的對應關系; 當上述測試程序中被指定有針對上述網(wǎng)頁的、應介由上述代理處理部而執(zhí)行的預定操作時,上述測試執(zhí)行部將指定有與上述測試程序中的第IID對應的第2ID的操作指示通知給上述代理處理部, 而當上述測試程序中被指定有針對上述網(wǎng)頁的、應不介由上述代理處理部地執(zhí)行的預定操作時,上述測試執(zhí)行部指定與上述測試程序中的第IID對應的第3ID來調(diào)用操作系統(tǒng)或網(wǎng)頁瀏覽器的函數(shù)。
3.如權利要求I或2所述的動作檢驗裝置,其特征在于,還包括 操作記錄部,檢測用戶對上述網(wǎng)頁的輸入操作,將與上述輸入操作對應的函數(shù)記錄到操作內(nèi)容文件中,以及 程序生成部,根據(jù)上述操作內(nèi)容文件中所記錄的函數(shù)來設定指令,由此生成用于再現(xiàn)對上述網(wǎng)頁所執(zhí)行的一系列操作的程序而作為上述測試程序; 上述被追加于網(wǎng)頁的新代碼是包含與多種操作對應的多種操作函數(shù)的代碼; 上述測試執(zhí)行部取得關于上述網(wǎng)頁的第1ID,將指定有與該第IID對應的第2ID的、與上述測試程序中所設定的各指令對應的操作指示依次通知給上述代理處理部,由此,作為上述被追加于網(wǎng)頁的新代碼的調(diào)用,使上述代理處理部依次調(diào)用與對應于上述各指令的操作指示相應的操作函數(shù)。
4.如權利要求I至3的任ー項所述的動作檢驗裝置,其特征在干, 上述測試執(zhí)行部包括對話框操作部,不介由上述代理處理部地操作與上述網(wǎng)頁的操作相關聯(lián)地顯示出的對話框,并在提供為面向殘障者的應用的使用而準備的預定函數(shù)的操作系統(tǒng)中,通過調(diào)用該函數(shù)來操作在該操作系統(tǒng)上所顯示的對話框。
5.ー種動作檢驗方法,其特征在于,使計算機執(zhí)行以下步驟 ID分配部在設定有對網(wǎng)頁的操作內(nèi)容的測試程序中分配用于識別顯示上述網(wǎng)頁的窗ロ的、與用戶的指示相應的第IID的步驟,代理處理部取得上述網(wǎng)頁的程序代碼,將用于操作上述網(wǎng)頁的新代碼追加到該程序代碼中后,使網(wǎng)頁瀏覽器顯示上述網(wǎng)頁,并發(fā)出用于識別顯示上述網(wǎng)頁的窗ロ的ID的步驟, ID取得部取得在上述代理處理部中發(fā)出的ID作為第2ID的步驟, ID保持部保存在上述ID分配部中分配的第IID與在上述ID取得部中取得的第2ID的對應關系的步驟, 測試執(zhí)行部取得關于在上述測試程序中成為操作對象的網(wǎng)頁的第1ID,基于上述對應關系確定與第IID對應的第2ID,并將指定有該第2ID的操作指示通知給上述代理處理部的步驟,以及 上述代理處理部根據(jù)上述操作指示所指定的第2ID來識別上述成為操作對象的網(wǎng)頁,并調(diào)用被追加于該頁的新代碼的步驟。
6.一種動作檢驗程序,其特征在于,使計算機實現(xiàn)以下功能 ID分配功能,在設定有對網(wǎng)頁的操作內(nèi)容的測試程序中分配用于識別顯示上述網(wǎng)頁的窗ロ的、與用戶的指示相應的第1ID, 代理功能,包括取得上述網(wǎng)頁的程序代碼,并將用于操作上述網(wǎng)頁的新代碼追加到該程序代碼中后,使網(wǎng)頁瀏覽器顯示上述網(wǎng)頁的功能,和發(fā)出用于識別顯示上述網(wǎng)頁的窗ロ的ID的功能,以及根據(jù)指定有該ID的操作指示而調(diào)用上述網(wǎng)頁的新代碼的功能, ID取得功能,取得在上述代理功能中發(fā)出的ID作為第2ID, 將在上述ID分配功能中分配的第IID與在上述ID取得功能中取得的第2ID的對應關系保存在預定的存儲區(qū)域中的功能,以及 測試執(zhí)行功能,取得關于在上述測試程序中成為操作對象的網(wǎng)頁的第1ID,基于上述對應關系而確定與第IID對應的第2ID,并將指定有該第2ID的操作指示通知給上述代理功能,由此,使上述代理功能識別上述成為操作對象的網(wǎng)頁,調(diào)用被追加于該頁的新代碼。
全文摘要
本發(fā)明涉及一種動作檢驗裝置、動作檢驗方法及動作檢驗程序,其中,動作檢驗裝置(100)包括ID分配部,在設定有對網(wǎng)頁的操作內(nèi)容的測試程序中,分配用于識別操作對象窗口的、與用戶的指示相應的第1ID;代理處理部,在對操作對象網(wǎng)頁追加用于操作的控制代碼后,使窗口顯示該網(wǎng)頁,并向該窗口發(fā)出第2ID;窗口ID保持部(154),保存第1ID與第2ID的對應關系;程序執(zhí)行部(134),在測試程序執(zhí)行時,取得關于操作對象網(wǎng)頁的第1ID,將指定有與第1ID對應的第2ID的操作指示通知給代理處理部,由此,使代理處理部識別操作對象網(wǎng)頁,調(diào)用該控制代碼。
文檔編號G06F11/36GK102782657SQ201080043030
公開日2012年11月14日 申請日期2010年9月28日 優(yōu)先權日2010年9月28日
發(fā)明者伊藤俊廷, 溝口拓治, 石橋琢磨, 阪上紗里, 高畠勇人 申請人:株式會社野村綜合研究所