專利名稱:程序測試裝置以及程序的制作方法
技術領域:
本發(fā)明主要涉及對控制半導體制造裝置等的硬件的程序進行測試的程序測試裝置等。
背景技術:
在以往的程序測試裝置中,有自動地反復執(zhí)行程序的測試的程序開發(fā)裝置(例如 參考專利文獻1)。本裝置進行以下動作,即向自動測試裝置輸入想要進行測試的命令,自 動測試裝置向狀態(tài)監(jiān)視裝置詢問仿真裝置能否接收來自自動測試裝置的命令。如果能夠接 收命令,則將命令發(fā)送給仿真裝置。仿真裝置按照所接收的命令來執(zhí)行測試程序,并將執(zhí)行 結(jié)果發(fā)送給自動測試裝置。自動測試裝置保存執(zhí)行結(jié)果,并通過對所有的命令反復執(zhí)行來 進行測試程序的測試。專利文獻1 日本專利文獻特開2003-22199號公報(第1頁、圖1等)。
發(fā)明內(nèi)容
然而,在以往的程序測試裝置中,在進行正常響應以外的異常響應或動作不良等 的測試時,通常通過手動操作來改變模擬器側(cè)的動作來實施測試。因此,在異常響應或動作 不良的情況的測試中存在手動操作,測試繁瑣并會產(chǎn)生錯誤。本發(fā)明的第一方面的程序測試裝置,包括測試對象程序存儲部,其存儲作為測試 對象的程序的測試對象程序;模擬器程序存儲部,其存儲模擬器程序,所述模擬器程序是模 擬硬件的動作的程序,并且是進行與作為從測試對象程序傳遞的信息的程序信息和動作模 式對應的動作的程序;測試信息接收部,其接收作為為了對所述測試對象程序進行測試而 提供給該測試對象程序的信息的、具有輸入信息和動作模式的測試信息;測試控制部,獲取 所述測試信息所具有的動作模式并傳遞給所述模擬器程序;以及執(zhí)行部,將所述測試信息 具有的輸入信息提供給測試對象程序并執(zhí)行該測試對象程序,并且使用作為該測試對象程 序的執(zhí)行結(jié)果的程序信息和所述測試控制部傳遞給所述模擬器程序的動作模式來執(zhí)行所 述模擬器程序。通過該結(jié)構,能夠自動地切換模擬器程序的動作模式來進行測試。因此,特別是能 夠自動地容易進行硬件錯誤時的測試對象程序的測試。另外,與本發(fā)明的第一方面相對,本發(fā)明的第二方面的程序測試裝置,還包括測 試信息存儲部,存儲有兩個以上的測試信息;以及自動測試部,依次從所述測試信息存儲部 讀出兩個以上的測試信息,并傳遞給所述測試信息接收部。通過該結(jié)構,能夠?qū)蓚€以上的測試項目自動地進行測試。另外,與本發(fā)明的第二方面相對,本發(fā)明的第三方面的程序測試裝置,其中所述 測試信息還具有作為測試對象程序的正常的動作結(jié)果的正解信息,所述程序測試裝置還包 括測試結(jié)果判斷部,所述測試結(jié)果判斷部獲取所述執(zhí)行部的所述測試對象程序的動作結(jié) 果,并使用該動作結(jié)果和所述測試信息具有的正解信息判斷測試為正?;虍惓?,輸出該判斷結(jié)果。通過該結(jié)構,能夠進行測試結(jié)果的正常或異常的自動判斷。另外,與本發(fā)明的第一至第三中任一方面相對,本發(fā)明的第四方面的程序測試裝 置,其中所述測試信息還具有所述模擬器程序進行動作所使用的IO值,所述測試控制部 獲取所述測試信息所具有的動作模式和IO值并傳遞給所述模擬器程序,所述執(zhí)行部將所 述測試信息所具有的輸入信息提供給測試對象程序并執(zhí)行該測試對象程序,并且使用作為 該測試對象程序的執(zhí)行結(jié)果的程序信息以及所述測試控制部傳遞給所述模擬器程序的動 作模式和IO值來執(zhí)行所述模擬器程序。根據(jù)該結(jié)構,能夠進行以下測試自動地進行模擬器程序的動作模式并且自動地 改變模擬器程序所使用的IO值。因此,特別是能夠自動地容易進行硬件錯誤是的測試對象 程序的測試。另外,與本發(fā)明的第一至第三中任一方面相對,本發(fā)明的第五方面的程序測試裝 置,其中所述測試控制部還進行獲取作為所述模擬器程序的動作結(jié)果的IO值并輸出的處理。通過該結(jié)構,能夠正確把握并且判斷測試對象程序的動作結(jié)果。另外,與本發(fā)明的第一至第五中任一方面相對,本發(fā)明的第六方面的程序測試裝 置,其中所述動作模式至少具有正常模式和異常模式。通過該結(jié)構,至少能夠自動地進行正常模式和異常模式這兩者的測試。另外,本發(fā)明的第七方面的的程序測試裝置,包括測試對象程序存儲部,其存儲 測試對象程序,所述測試對象程序是測試對象的程序,并且是作為進行硬件的控制的程序; 模擬器程序存儲部,其存儲作為模擬硬件錯誤的動作的程序的模擬器程序;測試信息接收 部,其接收作為為了對所述測試對象程序進行測試而提供給該測試對象程序的信息的、具 有輸入信息和動作模式的測試信息;測試控制部,其獲取所述測試信息所具有的動作模式; 執(zhí)行部,其將所述測試信息具有的輸入信息提供給測試對象程序并執(zhí)行該測試對象程序, 并且如果所述測試控制部獲取的動作模式是正常模式則將作為所述測試對象程序的執(zhí)行 結(jié)果的程序信息傳遞給硬件使硬件動作,如果所述測試控制部獲取的動作模式不是正常模 式,則使用作為該測試對象程序的執(zhí)行結(jié)果的程序信息來執(zhí)行所述模擬器程序。通過該結(jié)構,即使是在難以發(fā)生錯誤狀態(tài)的硬件上進行動作的測試對象程序也針 對正常時和異常時兩者進行測試。另外,該第八發(fā)明的程序測試裝置相對于第七發(fā)明是以下程序測試裝置,還包括 測試信息存儲部,存儲有兩個以上的測試信息;以及自動測試部,依次從所述測試信息存儲 部讀出兩個以上的測試信息,并傳遞給所述測試信息接收部。通過該結(jié)構,對兩個以上的測試項目自動地進行測試。另外,本發(fā)明的第九發(fā)明的程序測試裝置相對于第八發(fā)明是以下程序測試裝置, 所述測試信息還具有作為測試對象程序的正常的動作結(jié)果的正解信息,所述程序測試裝置 還包括測試結(jié)果判斷部,其獲取所述執(zhí)行部的所述測試對象程序的動作結(jié)果,并使用該動 作結(jié)果和所述測試信息具有的正解信息判斷測試正常還是異常,并輸出該判斷結(jié)果。通過該結(jié)構,能夠進行測試結(jié)果的正常、異常的自動判斷。發(fā)明的效果
5
根據(jù)本發(fā)明的程序測試裝置,測試對象程序能夠容易地進行硬件發(fā)生錯誤的情況 下的測試。
圖1是實施方式1中的程序測試裝置的框圖2是對該程序測試裝置的動作進行說明的流程圖
圖3是表示該測試信息管理表的圖4是表示該測試信息管理表的圖5是該以往的程序測試裝置的概念圖6是由該實施方式說明的程序測試裝置的概念圖
圖7是實施方式2的程序測試裝置的框圖8是對該程序測試裝置的動作進行說明的流程圖
圖9是對該測試執(zhí)行處理的動作進行說明的流程圖
圖10是該計算機系統(tǒng)的概略圖11是該計算機系統(tǒng)的框圖。
具體實施例方式下面參考附圖對程序測試裝置等的實施方式進行說明。由于在實施方式中標注相 同標號的結(jié)構要件執(zhí)行同樣的動作,因此有時省略再次說明。(實施方式1)在本實施方式中,對在硬件上工作的軟件進行測試的程序測試裝置進行說明。圖1是本實施方式中的程序測試裝置的框圖。程序測試裝置1包括接收部11、測試對象程序存儲部12、模擬器程序存儲部13、測 試信息存儲部14、自動測試部15、測試信息接收部16、測試控制部17、執(zhí)行部18、以及測試 結(jié)果判斷部19。接收部11接收來自用戶的輸入。接收部11接收的輸入例如是指示測試開始的測 試開始指示等的各種指示或?qū)y試所需要的信息(動作模式或IO值等信息)的輸入等。各 種指示等的輸入單元可以是基于數(shù)字鍵、鍵盤、鼠標或者菜單畫面的單元等的任何一種輸 入單元。接收部11能夠通過數(shù)字鍵或鍵盤等輸入單元的設備驅(qū)動器和菜單畫面的控制軟 件等來實現(xiàn)。測試對象程序存儲部12存儲有作為測試對象的程序的測試對象程序。測試對象 程序通常是硬件的控制程序。另外,測試對象程序例如是半導體制造裝置或FPD制造裝置 等硬件的控制程序。測試對象程序存儲部12優(yōu)選是非易失性的記錄介質(zhì),但是即使易失性 的記錄介質(zhì)也能夠?qū)崿F(xiàn)。不考慮在測試對象程序存儲部12存儲測試對象程序的過程。例 如,可以是經(jīng)由記錄介質(zhì)在測試對象程序存儲部12存儲測試對象程序,也可以是在測試對 象程序存儲部12存儲經(jīng)由通信線路等發(fā)送而來的測試對象程序,或者是在測試對象程序 存儲部12存儲經(jīng)由輸入設備輸入的測試對象程序。模擬器程序存儲部13存儲有模擬器程序。模擬器程序是對硬件的動作進行模擬 的程序。模擬器程序通常是執(zhí)行與作為由測試對象程序傳遞的信息的程序信息和動作模式
6相應的動作的程序。程序信息是指測試對象程序傳遞給控制對象的硬件的數(shù)據(jù)(信息)。 動作模式是指硬件的動作的模式,至少具有表示為正常的模式的正常模式以及表示為異常 的模式的異常模式。另外,異常模式可以存在非響應模式、報警模式以及中途正常模式等兩 種以上模式,所述非響應模式是沒有響應的模式,所述報警模式是產(chǎn)生報警的模式,所述中 途正常模式直至中途的處理為止正常而在之后變?yōu)楫惓?。另外,模擬器程序例如是被稱為 所謂測試樁的軟件,其是被使用于測試的軟件。模擬器程序可以執(zhí)行寫入作為該模擬器程 序的動作結(jié)果的IO值的處理。模擬器程序例如可具有包括相同函數(shù)名或者類函數(shù)名等的 多個程序。多個程序例如是指進行與正常模式對應的動作的程序、以及進行與異常模式對 應的動作的程序。IO值是指硬件所保持,并通過測試對象的程序的動作來進行變更或讀出 的、存儲在某個區(qū)域的信息(數(shù)據(jù))。模擬器程序存儲部13優(yōu)選是非易失性的記錄介質(zhì),但 是即使是易失性的記錄介質(zhì)也能夠?qū)崿F(xiàn)。不考慮在模擬器程序存儲部13存儲模擬器程序 的過程。例如,可以經(jīng)由記錄介質(zhì)在模擬器程序存儲部13存儲模擬器程序,也可以在模擬 器程序存儲部13存儲經(jīng)由通信線路等發(fā)送而來的模擬器程序,或者可以在模擬器程序存 儲部13存儲經(jīng)由輸入設備輸入的模擬器程序。測試信息存儲部14存儲兩個以上的測試信息。測試信息是與一個測試項目對應 的信息。測試信息通常具有輸入信息和動作模式。輸入信息是指為了對測試對象程序進行 測試而賦予給該測試對象程序的信息。輸入信息例如是指賦予程序的參數(shù)。當在測試信息 中不具有動作模式的情況下,動作模式是默認值(例如正常模式)。測試信息也可以具有作 為測試對象程序的正常的動作結(jié)果的正解信息。正解信息可以是測試對象程序的返回值, 也可以是作為測試對象程序的執(zhí)行結(jié)果而存儲在硬件的存儲區(qū)域的值(10值等)。測試信 息可以具有模擬器程序用于動作的IO值。測試信息存儲部14優(yōu)選是非易失性的記錄介質(zhì), 但是即使是易失性的記錄介質(zhì)也能夠?qū)崿F(xiàn)。不考慮在測試信息存儲部14存儲測試信息的 過程。例如,可以經(jīng)由記錄介質(zhì)在測試信息存儲部14存儲測試信息,也可以在測試信息存 儲部14存儲經(jīng)由通信線路等發(fā)送而來的測試信息,或者可以在測試信息存儲部14存儲經(jīng) 由輸入設備輸入的測試信息。自動測試部15從測試信息存儲部14依次讀出兩個以上測試信息,并依次將測試 信息傳遞給測試信息接收部16。自動測試部15通常在接收部11接收到測試開始指示的情 況下從測試信息存儲部14依次讀出兩個以上的測試信息并傳遞給測試信息接收部16。自 動測試部15反復執(zhí)行與多個測試信息對應的測試項目,來實現(xiàn)自動測試的功能。自動測試 部15通常能夠通過MPU或存儲器等實現(xiàn)。自動測試部15的處理步驟通常由軟件實現(xiàn),該 軟件記錄在ROM等記錄介質(zhì)。但也可以通過硬件(專用電路)實現(xiàn)。測試信息接收部16接收測試信息。測試信息如上所述通常具有作為為了對測試 對象程序進行測試而賦予該測試對象程序的信息的輸入信息和動作模式。測試信息接收部 16可以從自動測試部15接收測試信息,也可以通過用戶的手動輸入來接收測試信息。測試 信息接收部16能夠通過MPU或存儲器等實現(xiàn)。測試信息接收部16的處理步驟通常由軟件 實現(xiàn),該軟件記錄在ROM等記錄介質(zhì)中。但也可以通過硬件(專用電路)實現(xiàn)。另外,測試 信息接收部16可以由鍵盤等輸入單元的設備驅(qū)動器或菜單畫面的控制軟件等實現(xiàn)。測試控制部17獲取測試信息接收部16接收的測試信息具有的動作模式,并傳遞 給模擬器程序。在動作模式是默認值的情況下,測試控制部17可以不將動作模式傳遞給模擬器程序。另外,測試控制部17可以獲取測試信息具有的動作模式和IO值,并傳遞給模擬 器程序。并且,測試控制部17可以執(zhí)行獲取模擬器程序?qū)懭氲腎O值并輸出的處理。測試 控制部17例如可以通過動作模式改寫模擬器程序或模擬器程序所使用的數(shù)據(jù)。假設該改 寫處理是與將動作模式傳遞給模擬器程序的處理相同含義。另外,測試控制部17例如可以 將IO值寫入到預先確定的文件或變量。該處理也是將IO值傳遞給模擬器程序的處理。測 試控制部17通常能夠通過MPU或存儲器等實現(xiàn)。測試控制器17的處理步驟通常由軟件實 現(xiàn),該軟件被記錄在ROM等記錄介質(zhì)。但也可以由硬件(專用電路)實現(xiàn)。執(zhí)行部18將測試信息具有的輸入信息賦予測試對象程序并執(zhí)行該測試對象程 序,并且使用作為該測試對象程序的執(zhí)行結(jié)果的程序信息和測試控制部17傳遞給模擬器 程序的動作模式來執(zhí)行模擬器程序。即,例如通過由執(zhí)行部18執(zhí)行模擬器程序,來根據(jù)動 作模式而被啟動的模擬器程序的類函數(shù)(或者函數(shù)等)不同。例如如果動作模式不同,則 雖然具有相同的類函數(shù)名但執(zhí)行不同的類函數(shù)。也有賦予測試對象程序的輸入信息是NULL的情況。另外,執(zhí)行部18可以將測試 信息具有的輸入信息賦予測試對象程序并執(zhí)行該測試對象程序,并且使用作為該測試對象 程序的執(zhí)行結(jié)果的程序信息和測試控制部17傳遞給模擬器程序的動作模式和IO值來執(zhí)行 模擬器程序。執(zhí)行部18通常能夠通過MPU或存儲器等實現(xiàn)。執(zhí)行部18的處理步驟通常由 軟件實現(xiàn),該軟件記錄在ROM等記錄介質(zhì)。但也可以由硬件(專用電路)實現(xiàn)。測試結(jié)果判斷部19獲取執(zhí)行部18中的測試對象程序的動作結(jié)果,并使用該動作 結(jié)果和測試信息所具有的正解信息來判斷測試為正?;虍惓#敵鲈撆袛嘟Y(jié)果。測試結(jié)果 判斷部19可以讀出IO值并判斷是否與預想的IO值(測試信息所具有的正解信息)一致, 并輸出該判斷結(jié)果。正解信息是指測試的結(jié)果的信息,其是測試對象程序的返回值、作為測 試對象程序的動作的結(jié)果的IO值、或其他存儲介質(zhì)內(nèi)的信息等。測試結(jié)果判斷部19通常 能夠通過MPU或存儲器等實現(xiàn)。測試結(jié)果判斷部19的處理步驟通常由軟件實現(xiàn),該軟件記 錄在ROM等記錄介質(zhì)。但也可以由硬件(專用電路)實現(xiàn)。接著,使用圖2的流程圖對程序測試裝置的動作進行說明。(步驟S201)接收部11判斷是否接收到測試開始指示。如果接收到測試開始指示 則進入到步驟S202,如果沒有接收到測試開始指示則返回到步驟S201。(步驟S202)自動測試部15將1代入到計數(shù)器i。(步驟S203)自動測試部15判斷在測試信息存儲部14中是否存在第i個測試信 息。如果存在第i個測試信息則進入到步驟S204,如果不存在第i個測試信息則結(jié)束處理。(步驟S204)測試控制部17獲取第i個測試信息具有的動作模式。(步驟S205)測試控制部17將在步驟S204中獲取的動作模式傳遞給模擬器程序。 這里,測試控制部17可以在模擬器程序所使用的動作模式的存儲區(qū)域(文件或存儲器等區(qū) 域)寫入在步驟S204中獲取的動作模式。該處理也是將動作模式傳遞給模擬器程序的處 理。(步驟S206)測試控制部17獲取第i個測試信息具有的IO值。(步驟S207)測試控制部17將在步驟S206中獲取的IO值傳遞給模擬器程序。這 里,測試控制部17可以在IO值的存儲區(qū)域(文件或存儲器等區(qū)域)寫入在步驟S206中獲 取的IO值。該處理也是將IO值傳遞給模擬器程序的處理。
(步驟S208)執(zhí)行部18獲取第i個測試信息具有的輸入信息。(步驟S209)執(zhí)行部18將測試信息具有的輸入信息賦予測試對象程序,并執(zhí)行該 測試對象程序。通常,通過執(zhí)行測試對象程序,測試對象程序和模擬器程序進行數(shù)據(jù)的交 換,模擬器程序也將被執(zhí)行。在執(zhí)行模擬器程序時,模擬器程序使用在步驟S205中傳遞的 動作模式以及在步驟S207中傳遞的IO值進行動作。另外,在測試信息不具有輸入信息的 情況下,執(zhí)行部18不向測試對象程序賦予輸入信息。(步驟S210)測試控制部17判斷是否進行讀入IO值的處理。測試控制部17例 如在輸入信息包含指示IO值的讀入的命令的情況下,判斷為進行讀入IO值的處理。在進 行讀入IO值的處理的情況下進入步驟S211,在不進行讀入IO值的處理的情況下進入步驟 S212。(步驟S211)測試控制部17讀入IO值。(步驟S212)測試結(jié)果判斷部19獲取執(zhí)行部18中的測試對象程序的動作結(jié)果,并 使用該動作結(jié)果和測試信息具有的正解信息判斷測試為正?;虍惓?。(步驟S213)測試結(jié)果判斷部19輸出步驟S212中的判斷結(jié)果。(步驟S214)自動測試部15使計數(shù)器i加1。返回到步驟S203。在圖2的流程圖中,通過切斷電源或結(jié)束處理的插入來結(jié)束處理。下面使用兩個具體示例對本實施方式的程序測試裝置的具體動作進行說明。(具體示例1)當前,圖3所示的測試信息管理表存儲在測試信息存儲部14中。測試信息管理表 是對一個以上的測試信息進行管理的表。測試信息管理表保持有一個以上的具有“ID”和 “測試信息”的記錄?!癐D”是識別記錄的屬性,其存在用于進行表的管理。屬性“測試信息” 中的測試信息這里以程序的形式描述。在測試信息中,以“#,,開始的行(圖3的⑴等)表示注釋行。另外,圖3的⑵ 和(3)的行是設定用于模擬器程序進行動作的IO值的類函數(shù)。圖3的(2)表示將“D0_ FullOpen,,的IO值設定為稱為“CONTROL,,的常數(shù)值。圖3的(3)表示將“D0_FullCloSe” 的IO值設定為稱為“FULL_CL0SE”的常數(shù)值。另外,圖3的(4)表示啟動(測試)存 儲在測試對象程序存儲部12的測試對象程序的“InternalFullOpenO”。這里,可以說 “InternalFullOpenO”是賦予測試對象程序的輸入信息的例子。另外,圖3的(4)中的 "Common_0K"是測試信息所具有的正解信息的例子。即,如果作為“InternalFullOpenO,, 的執(zhí)行的結(jié)果的返回值是“CommonJM”,則判斷為在該時刻的測試結(jié)果是正常的。與 “CommonJM”對應的值(例如“0”或者“ 1”等)是預先確定的。另外,圖3的(5)和(6)是用于獲取作為模擬器程序的動作結(jié)果的10值并判斷是 否與假定的結(jié)果(正解信息)一致的描述。在圖3的(5)中示出了獲取“D0_Full0pen”的 10值并判斷是否為稱為“FULL_0PEN”的常數(shù)值?!癋ULL_0PEN”是測試信息具有的正解信息。 另外在圖3的(6)中,表示獲取“D0_FullCloSe”的10值并判斷是否成為稱為“CONTROL”的 常數(shù)值?!癈ONTROL”是測試信息具有的正解信息。另外,圖3的測試信息不具有動作模式。 即,動作模式是默認的正常模式。在該狀況下,假設用戶輸入了測試開始指示。于是,接收部11接收測試開始指示。接著,自動測試部15從圖3的測試信息管理表讀出第一個測試信息(“ID = 1”的記錄)。并且,測試控制部17依次分析并執(zhí)行圖3的“ID = 1”的記錄。即,測試控制部 17忽略第一行測試信息所具有的注釋行(圖3的(1))。接著,測試控制部17獲取第一個 的測試信息所具有的“D0_Full0pen”的IO值“CONTROL”并配置在存儲器上。并且,測試 控制部17為了模擬器程序能夠使用所獲取的“D0_Full0pen”的IO值“CONTROL”,而將值 “CONTROL”寫入到“D0_Full0pen”的區(qū)域(圖3的(2))。另外,測試控制部17獲取第一個 測試信息所具有的“D0_FullCloSe”的10值“FULL_CL0SE”并配置在存儲器上。并且,測試 控制部17為了模擬器程序能夠使用所取得的“D0_FullCloSe”的10值“FULL_CL0SE”,而將 值“FULL_CL0SE,,寫入到 “D0_FullClose,,的區(qū)域(圖 3 的⑶)。接著,執(zhí)行部18獲取第一測試信息所具有的輸入信息“InternalFullOpenO “。 并且,執(zhí)行部18起動測試對象程序并執(zhí)行“ InternalFullOpen () ”。并且,通過執(zhí)行 "InternalFulIOpenO ”通常10值被適當?shù)馗膶?圖3的⑷)。接著,測試結(jié)果判斷部19獲取在執(zhí)行部18中的測試對象程序的動作結(jié)果(作為 "InternalFulIOpenO,,的執(zhí)行結(jié)果的返回值)。并且,對該返回值和測試信息所具有的正 解信息“CommonJM”進行比較。并且。如果兩者一致則判斷為測試正常,如果兩者不一致 則判斷為測試異常。這里,例如假設作為“InternalFullOpenO”的執(zhí)行結(jié)果的返回值是 “CommonJM”。然后,由于返回值和正解信息“CommonJM”一致,因此測試結(jié)果判斷部19判 斷為在該階段的測試是正常的(圖3的(4))。接著,測試控制部17通過圖3的(5)和(6)的解析的執(zhí)行來讀入“D0_Full0pen” 的10值。并且,測試結(jié)果判斷部19判斷作為測試對象程序的動作結(jié)果的“D0_Full0pen” 的10值和測試信息所具有的正解信息“Full_0pen”是否一致。并且,如果兩者一致則判斷 為測試正常,如果兩者不一致則判斷為測試異常。接著,同樣地,測試結(jié)果判斷部19獲取作 為測試對象程序的動作結(jié)果的“D0_FullCloSe”的10值,并判斷是否與測試信息所具有的 正解信息“FULL_CL0SE” 一致。并且,如果兩者一致則判斷為測試正常,如果兩者不一致則 判斷為測試異常。并且,測試結(jié)果判斷部19輸出判斷結(jié)果(例如“正常”)。這里,輸出可 以是指顯示到顯示器,也可以是指存儲到記錄介質(zhì)。另外,在輸出時,測試結(jié)果判斷部19將 測試信息的識別號碼(ID)和判斷結(jié)果對應起來并輸出。根據(jù)以上處理結(jié)束“ID = 1”的測試信息的處理。在上述的測試結(jié)果判斷部19中 的正常、異常的判斷過程中,在判斷為不一致等的情況下,測試結(jié)果判斷部19例如輸出表 示“異常”的判斷結(jié)果。接著,自動測試部15依次從圖3的測試信息管理表讀出第二個之后的測試信息 ("ID = 2”的記錄以后的記錄),并與第一個測試信息一樣地依次解析執(zhí)行并輸出判斷結(jié)果。由于對圖3的(1)到(6)等的測試信息的解析執(zhí)行的處理是公知技術,因此省略 詳細的說明。(具體示例2)現(xiàn)在,圖4所示的測試信息管理表存儲在測試信息存儲部14。在圖4中,“ID = 1” 的測試信息是用于進行DRP(干燥真空泵)的正常動作的測試的信息。另外“ID = 2”的測 試信息是用于進行DRP的超時(異常動作)測試的信息。另外,在圖4中,“TagRawWrite”表示設定IO值的函數(shù)(類函數(shù))。即,(1)表示在IO值“D0_RUN”中設定值“STOP”。(2)表 示在IO值“DI_RUN”中設定值“STOP”。(3)表示在IO值“DI_ALARM”中設定值“NORMAL”。 另外“TagRead”表示獲取IO值并確認是否正常的函數(shù)。S卩,(4)表示確認在IO值“D0_RUN” 中設定值“STOP”。(5)表示確認在IO值“DI_RUN”中設定值“STOP”。(6)表示確認在10 值“DI_ALARM”中設定值“NORMAL”?!癝etPatarn”表示設定動作模式的函數(shù)。S卩,(7)表示 將D0_RUN的動作模式設定在“NORMAL”。(9)表示確認在10值“D0_RUN”中設定值“RUN”。在該狀況下,假設用戶輸入了測試開始指示。于是接收部11接收測試開始指示。接著,自動測試部15從圖4的測試信息管理表讀出第一個測試信息(“ID = 1” 的記錄)。并且,測試控制部17依次解析并執(zhí)行圖4的“ID = 1”的記錄中的信息(函數(shù))。 即,根據(jù)圖4的(1),測試控制部17獲取第一個測試信息所具有的“D0_RUN”的10值“STOP” 并配置在存儲器上。并且,測試控制部17為了使模擬器程序能夠使用所獲取的“D0_RUN” 的10值“STOP”而將其寫入到“D0_RUN”的區(qū)域。另外,根據(jù)圖4的(2),測試控制部17獲 取第一個測試信息所具有的“DI_RUN”的10值“STOP”并配置在存儲器上。并且,測試控制 部17為了使模擬器程序能夠使用所獲取的“DI_RUN”的10值“STOP”而將其寫入到“DI_ RUN”的區(qū)域中。另外,根據(jù)圖4的(3),測試控制部17獲取第一個測試信息所具有的“DI_ ARARM”的10值“NORMAL”并配置在存儲器上。并且,測試控制部17為了使模擬器程序能夠 使用所獲取的“DI_ARARM”的10值“NORMAL”而將值“NORMAL”寫入到“DI_ARARM”的區(qū)域。接著,根據(jù)圖4的(4),測試控制部17獲取“D0_RUN”的10值。并且,測試結(jié)果判 斷部19判斷“D0_RUN”的10值是否是“STOP”。另外,根據(jù)圖4的(5),測試控制部17獲取 “DI_RUN”的10值。并且,測試結(jié)果判斷部19判斷“DI_RUN”的10值是否是“STOP,,。并 且,根據(jù)圖4的(6),測試控制部17獲取“DI_ARARM”。并且,測試結(jié)果判斷部19判斷“DI_ ARARM"的 10 值是否是 “NORMAL”。接著,根據(jù)圖4的(7),測試控制部17獲取第一個測試信息所具有的動作模式 “D0_RUN、NORMAL”。動作模式 “D0_RUN、NORMAL” 是所說的 “D0_RUN” 的動作為 “NORMAL” 的 動作模式。并且,測試控制部17將“D0_RUN、NORMAL"傳遞給模擬器程序。即“D0_RUN”的 動作被設定為“NORMAL”。接著,根據(jù)圖4的(8),執(zhí)行部18獲取第一個測試信息所具有的輸入信息“DRP. Run0"o并且,執(zhí)行部18啟動測試對象程序并執(zhí)行“DRP. RimO ”。并且,通過執(zhí)行“DRP. RimO ” DRP進行動作,通常10值被適當?shù)馗膶憽=又?,測試結(jié)果判斷部19獲取執(zhí)行部18中的測試對象程序的動作結(jié)果(作為 "DRP. Run () ”的執(zhí)行結(jié)果的返回值)。并且,對該返回值和測試信息所具有的正解信息進行 比較。并且,如果兩者一致則判斷為測試正常,如果兩者不一致則判斷為測試異常。接著,根據(jù)圖4的(9),測試控制部17獲取第一個測試信息所具有的輸入信息 "TagRead(DI_RUN,RUN) ”。并且,測試控制部 17 通過“TagRead(DI_RUN,RUN) ”的解析執(zhí)行, 來讀入“DI_RUN”的10值。并且,測試結(jié)果判斷部19判斷作為測試對象程序的動作結(jié)果的 “DI_RUN”的10值和測試信息所具有的正解信息“RUN”是否一致。并且,如果兩者一致則測 試結(jié)果判斷部19判斷為測試正常,如果兩者不一致則測試結(jié)果判斷部19判斷為測試異常。 并且,測試結(jié)果判斷部19輸出判斷結(jié)果(例如“正?!?。這里,輸出可以是指顯示到顯示
11器,也可以是指存儲到記錄介質(zhì)。另外,在輸出時,測試結(jié)果判斷部19將測試信息的識別號 碼(ID)和判斷結(jié)果對應起來并輸出。根據(jù)以上處理,“ID = 1”的測試信息的處理結(jié)束。當在上述的測試結(jié)果判斷部19 中的正常、異常的判斷過程中判斷為不一致等的情況下,測試結(jié)果判斷部19例如輸出表示 “異?!钡呐袛嘟Y(jié)果。接著,自動測試部15從圖4的測試信息管理表讀出第二個測試信息(“ID = 2” 的記錄)。并且,測試控制部17依次解析圖4的“ID = 2”的記錄中的函數(shù)并執(zhí)行。S卩,測試 控制部17對圖4的“ID = 2”的記錄中的(10)到(15)進行與(1)到(6) 一樣的處理。接著,測試控制部17從第二個測試信息(16)獲取動作模式“D0_RUN,TIMEOUT”。 動作模式“D0_RUN,TIMEOUT”是所說的“D0_RUN”的動作為“TIMEOUT”這樣的動作模式。并 且,測試控制部17將“D0_RUN,TIMEOUT”傳遞給模擬器程序。即“D0_RUN”的動作被設定為 “TIMEOUT”。接著,執(zhí)行部18從第二個測試信息(17)獲取輸入信息“DRP. Run () ”。并且,執(zhí)行 部18啟動測試對象程序并執(zhí)行“DRP. Run () ”。并且,通過執(zhí)行“DRP. Run () ”而使DRP動作, 通常10值被適當?shù)馗膶?。接著,測試結(jié)果判斷部19獲取執(zhí)行部18中的測試對象程序的動作結(jié)果(作為 "DRP. Run () ”的執(zhí)行結(jié)果的返回值)。并且,對該返回值和測試信息所具有的正解信息進行 比較。并且,如果兩者一致則判斷為測試正常,如果兩者不一致則判斷為測試異常。接著,測試控制部17獲取第二個測試信息所具有的輸入信息“TagRead(DI_RUN, STOP)。并且,測試控制部17通過“TagRead(DI_RUN,ST0P)的解析執(zhí)行來讀入“DI_RUN”的 10值。并且,測試結(jié)果判斷部19判斷作為測試對象程序的動作結(jié)果的“DI_RUN”的10值與 測試信息所具有的正解信息“STOP”是否一致。并且,如果兩者一致則測試控制部17判斷 為測試正常,如果兩者不一致則測試控制部17判斷為測試異常。并且,測試結(jié)果判斷部19 輸出判斷結(jié)果(例如“正?!?。這里輸出可以是指顯示到顯示器,也可以是指存儲到記錄 介質(zhì)。另外,在輸出時,測試結(jié)果判斷部19將測試信息的識別號碼(ID)和判斷結(jié)果對應起 來并輸出。根據(jù)以上處理,“ID = 2”的測試信息的處理結(jié)束。在上述的測試結(jié)果判斷部19的 正常、異常的判斷過程中,在判斷為不一致等的情況下,測試結(jié)果判斷部19例如輸出表示 “異?!钡呐袛嘟Y(jié)果。接著,自動測試部15依次從圖4的測試信息管理表讀出第三個以后的測試信息 ("ID = 3”的記錄以后的記錄),并與第一個、第二個測試信息同樣地依次進行解析并執(zhí)行, 輸出判斷結(jié)果。接著,對本程序測試裝置的概念進行說明。圖5示出了以往的程序測試裝置的概 念圖。即,以往的程序測試裝置具有自動測試程序51、測試對象程序52以及模擬器程序53。 并且,自動測試程序51自動地執(zhí)行一個以上的測試項目。測試對象程序52是與測試對象 程序存儲部12的測試對象程序一樣的,其是成為測試的對象的程序。模擬器程序53是與 模擬器程序存儲部13的模擬器程序一樣的,其是模擬設備的響應的程序。模擬器程序針對 一個函數(shù)(測試樁)具有正常模式的函數(shù)(測試樁)和異常模式的函數(shù)(測試樁)。圖5中的“通信”可以是指數(shù)據(jù)通信、可以是指數(shù)據(jù)的收發(fā)、也可以是指函數(shù)的調(diào)出等。即,所謂 “通信”只要是指測試對象程序52和模擬器程序53協(xié)調(diào)地進行動作即可。在這樣的程序測試裝置中,作為測試對象程序的測試不只是正常地進行動作,也 需要測試由設備產(chǎn)生報警或者產(chǎn)生啟動超時等的異常情況。即,在程序測試裝置中,需要對 正常模式和異常模式進行測試,在異常模式中也需要對作為不進行響應的模式的非響應模 式、作為發(fā)生報警的模式的報警模式、在中途的處理為正常而在之后變?yōu)楫惓5闹型菊?模式等兩個以上的動作模式進行測試。但是,在以往的程序測試裝置中,預先在模擬器程序 側(cè)設定動作模式,對測試對象程序進行測試。即,在對多個動作模式進行測試的情況下,通 過手動操作進行改寫多個動作模式并且在切換使其動作的函數(shù)等的狀態(tài)下進行測試,無法 匯總多個動作模式來自動地進行測試。另一方面,在上述實施方式中說明的程序測試裝置的概念圖為圖6。該程序測試 裝置具有自動測試程序61、測試對象程序62、模擬器程序63以及自動控制用程序64。自 動控制用程序64主要與上述的測試控制部17相對應。S卩,自動控制用程序64向模擬器程 序63提供通過NUnit等自動測試程序61進行動作模式的切換的接口,由此能夠自動地連 續(xù)對多個動作模式進行測試。另外,在本程序測試裝置中,還提供了通過自動控制用程序64 改寫IO的狀態(tài)(10值)的功能,設備的異常動作等也能夠從測試對象程序62側(cè)進行模擬。 在該程序測試裝置中,通過上述的結(jié)構,能夠通過一個測試程序?qū)φG闆r、異常情況進行 測試。另外,由于能夠改寫、讀取IO的狀態(tài)(10值),從而不僅能夠確認控制指示的執(zhí)行結(jié) 果,還能夠確認實際在模擬器程序? 3側(cè)的值發(fā)生了變化的情況,因此能夠進行測試對象 程序? 2的輸入部(輸入處理)和輸出部(輸出處理)的測試。對于NUnit在http://WWW. divakk. co. jp/aoyagi/csharp_tips_nunit. html 具明。以上,根據(jù)本實施方式,關于測試對象程序,也能夠容易地進行硬件錯誤時的測試 對象程序的測試。更具體地說,能夠自動地連續(xù)對多個動作模式進行測試。另外,根據(jù)本實 施方式,也提供了通過自動控制用程序64改寫IO的狀態(tài)(10值)的功能,設備的異常動作 等也能夠從測試對象程序62側(cè)進行高精度的模擬。并且,根據(jù)本實施方式,由于將IO值設 為可讀取,不僅是控制指示的執(zhí)行結(jié)果,還能夠確認實際在模擬器程序側(cè)的值發(fā)生了變化 的情況,因此能夠進行測試對象程序的輸入部和輸出部的測試。在本實施方式中,當然是不必考慮測試信息的內(nèi)容的。另外,本實施方式的處理可以由軟件實現(xiàn)。并且,可以通過軟件下載等來發(fā)布該軟 件。另外,可以將該軟件記錄在CD-ROM等的記錄介質(zhì)中來進行傳播。該方式也適合本說明 書中的其他實施方式。實現(xiàn)本實施方式中的程序測試裝置的軟件是以下程序。也即是說, 該程序是用于使計算機作為以下各部發(fā)揮功能的程序,即測試信息接收部,接收為了對測 試對象程序進行測試而賦予該測試對象程序的信息的、具有輸入信息和動作模式的測試信 息;測試控制部,獲取所述測試信息所具有的動作模式,并傳遞給模擬硬件動作的模擬器程 序;以及執(zhí)行部,將所述測試信息所具有的輸入信息賦予測試對象程序并執(zhí)行該測試對象 程序,并且使用作為該測試對象程序的執(zhí)行結(jié)果的程序信息和所述測試控制部傳遞給所述 模擬器程序的動作模式來執(zhí)行所述模擬器程序。另外,在上述程序中,優(yōu)選的是使計算機發(fā)揮以下功能的程序所述測試信息還具 有所述模擬器程序動作所使用的IO值,所述測試控制部獲取所述測試信息具有的動作模
13式和IO值并傳遞給所述模擬器程序,所述執(zhí)行部將所述測試信息所具有的輸入信息賦予 測試對象程序并執(zhí)行該測試對象程序,并且使用作為該測試對象程序的執(zhí)行結(jié)果的程序信 息和所述測試控制部傳遞給所述模擬器程序的動作模式和IO值來執(zhí)行所述模擬器程序。另外,在上述程序中優(yōu)選的是使計算機發(fā)揮以下功能的程序使所述測試控制部 進行獲取作為所述模擬器程序的動作結(jié)果的IO值并輸出的處理。(實施方式2)在本實施方式中,對將正常系統(tǒng)的測試信息賦予硬件并將異常系統(tǒng)的測試信息賦 予模擬器程序的程序測試裝置進行說明。本實施方式中的程序測試裝置是如下述的裝置, 即所說的在正常模式的情況下使用硬件進一步提高精度來進行測試,在異常模式的情況 下使用模擬器程序來進行測試。通過該處理,能夠僅通過軟件來進行難以由硬件生成其狀 態(tài)(通常為異常模式)的測試情況。圖7是本實施方式中的程序測試裝置2的框圖。程序測試裝置2具有接收部11、 測試對象程序存儲部12、模擬器程序存儲部23、測試信息存儲部14、自動測試部25、測試信 息接收部16、測試控制部27、執(zhí)行部28以及測試結(jié)果判斷部29。模擬器程序存儲部23存儲作為模擬硬件的錯誤動作的程序的模擬器程序。所謂 模擬器程序通常進行與從測試對象程序傳遞的程序信息對應的動作。不過也可以是僅返回 錯誤代碼等的統(tǒng)一的處理。模擬器程序存儲部23優(yōu)選的是為非易失性的記錄介質(zhì),但是即 使易失性的記錄介質(zhì)也能夠?qū)崿F(xiàn)。不考慮在模擬器程序存儲部23存儲模擬器程序的過程。 例如可以經(jīng)由記錄介質(zhì)在模擬器程序存儲部23中存儲模擬器程序,可以在模擬器程序存 儲器23中存儲經(jīng)由通信線路等發(fā)送而來的模擬器程序、或者可以在模擬器程序存儲部23 中存儲經(jīng)由輸入設備輸入的模擬器程序。測試控制部27獲取測試信息接收部16接收的測試信息所具有的動作模式。測試 控制部27通常由MPU或存儲器等實現(xiàn)。測試控制部27的處理步驟通常由軟件實現(xiàn),該軟 件被記錄在ROM等的記錄介質(zhì)中。但也可以通過硬件(專用電路)實現(xiàn)。執(zhí)行部28將測試信息所具有的輸入信息賦予測試對象程序并執(zhí)行該測試對象程 序。另外,執(zhí)行部28判斷測試控制部27獲取的動作模式是否是正常模式。并且,如果動作 模式是正常模式,則將作為測試對象程序的執(zhí)行結(jié)果的程序信息傳遞給硬件,并使硬件進 行動作。另外,如果動作模式不是正常模式,則執(zhí)行部28使用作為該測試對象程序的執(zhí)行 結(jié)果的程序信息來執(zhí)行模擬器程序。不是正常模式的情況是指異常模式的情況以及作為異 常模式被細分而得的模式的非響應模式、報警模式、中途正常模式等情況。程序信息也可以 說是從測試對象程序傳遞給硬件的信息。執(zhí)行部28通常由MPU或存儲器等實現(xiàn)。執(zhí)行部 28的處理步驟通常由軟件實現(xiàn),該軟件記錄在ROM等記錄介質(zhì)。但也可以通過硬件(專用 電路)實現(xiàn)。接著,使用圖8的流程圖對程序測試裝置的動作進行說明。在圖8的流程圖中,對 于與圖2的流程圖重復的步驟省略說明。(步驟S901)執(zhí)行部28執(zhí)行測試。使用圖8的流程圖對于測試執(zhí)行處理進行詳細 的說明。在圖8的流程圖中通過切斷電源或處理結(jié)束的插入來結(jié)束處理。接著,使用圖9的流程圖對測試執(zhí)行處理進行說明。在圖9的流程圖中,對于與圖2的流程圖重復的步驟省略說明。(步驟S901)測試控制部27判斷在步驟S204中獲取的動作模式是否是正常模式。 如果是正常模式則進入到步驟S902,如果不是正常模式則進入到步驟S217。(步驟S902)測試控制部27將在步驟S206獲取的IO值作為硬件的IO值寫入硬 件。寫入硬件的處理可以為傳遞給硬件的處理。(步驟S903)執(zhí)行部28執(zhí)行測試對象程序。(步驟S904)測試控制部27獲取作為在步驟S903中的執(zhí)行結(jié)果的程序信息。(步驟S905)測試控制部17判斷在步驟S204中獲取的動作模式是否是正常模式。 如果是正常模式則進入到步驟S906,如果不是正常模式則進入到步驟S207。(步驟S906)執(zhí)行部28將在步驟S904獲取的程序信息傳遞給硬件并使硬件進行動作。(步驟S907)執(zhí)行部28使用在步驟S904中獲取的程序信息來執(zhí)行模擬器程序。(步驟S908)測試控制部27判斷是否接收步驟S906或步驟S907中的執(zhí)行結(jié)果。 如果接收執(zhí)行結(jié)果則進入到步驟S909,如果沒有接收執(zhí)行結(jié)果則返回到步驟S908。(步驟S909)測試控制部27判斷第i個測試信息的測試是否結(jié)束。在判斷為測試 結(jié)束的情況下進入到步驟S910,在判斷為測試沒有結(jié)束的情況下返回到步驟S903。(步驟S910)測試結(jié)果判斷部29從硬件或者模擬器程序?qū)懭氲男畔@取IO值。 進入到步驟S212。當然,圖9的流程圖中的處理流程為一個示例。下面對本實施方式的程序測試裝置的具體動作進行說明。現(xiàn)在假設圖4所示的測試信息管理表存儲在測試信息存儲部14中。在該狀況下,假設用戶輸入測試開始指示。于是,接收部11接收測試開始指示。接著,自動測試部25從圖4的測試信息管理表讀出第一個測試信息(“ID = 1” 的記錄)。并且,測試控制部27依次解析并執(zhí)行圖4的“ID = 1”的記錄中的函數(shù)。S卩,測試 控制部27獲取第一個測試信息所具有的“D0_RUN”的IO值“STOP”并配置在存儲器上。并 且,測試控制部27將獲取的“D0_RUN”的IO值“STOP”傳遞給硬件,硬件向“D0_RUN”的區(qū) 域?qū)懭隝O值“STOP”。另外,測試控制部27獲取第一個測試信息所具有的“DI_RUN”的IO 值“STOP”并配置在存儲器上。并且,測試控制部27將獲取的“DI_RUN”的IO值“STOP”傳 遞給硬件,硬件將10值“STOP”寫入到“DI_RUN”的區(qū)域。另外,測試控制部27獲取第一個 測試信息具有的“DI_ARARM”的10值“NORMAL”并配置在存儲器上。并且,測試控制部27 將獲取的“DI_ARARM”的10值“NORMAL”傳遞給硬件,硬件將10值“NORMAL”寫入到“DI_ ARARM"的區(qū)域。接著,測試控制部27從硬件讀出“D0_RUN”的10值。并且,測試結(jié)果判斷部29判 斷“D0_RUN”的10值是否是“STOP”。另外,測試控制部27從硬件讀出“DI_RUN”的10值。 并且,測試結(jié)果判斷部29判斷“DI_RUN”的10值是否是“STOP”。并且,測試控制部27從 硬件讀出“DI_ARARM”的10值。并且,測試結(jié)果判斷部29判斷“DI_ARARM”的10值是否是 “NORMAL”。接著,測試控制部27獲取第一個測試信息所具有的動作模式“D0_RUN,NORMAL”。動作模式“D0_RUN,NORMAL"是所說的“D0_RUN”的動作為“NORMAL”的動作模式。接著,執(zhí)行部28獲取第一個測試信息所具有的輸入信息“DRP. RunO ”。并且,執(zhí)行 部28啟動測試對象程序并執(zhí)行“DRP. Run() ”。并且,執(zhí)行部28獲取“DRP. Run() ”的執(zhí)行結(jié)^ ο接著,執(zhí)行部28根據(jù)測試控制部27獲取的動作模式“D0_RUN,NORMAL”識別動作 模式為正常模式。執(zhí)行部28預先將表示“NORMAL”和“正常模式”的信息成對地保持。并且,執(zhí)行部28將作為測試對象程序的執(zhí)行結(jié)果(“DRP. RunO ”的執(zhí)行結(jié)果)的 程序信息傳遞給硬件,并使硬件進行動作。接著,執(zhí)行部28得到硬件的執(zhí)行結(jié)果。通過執(zhí)行“DRP. RunO ”,通常硬件中的IO 值被適當?shù)馗膶憽2⑶覉?zhí)行部28將硬件的執(zhí)行結(jié)果傳遞給測試對象程序。接著,測試結(jié)果判斷部29獲取執(zhí)行部28中的測試對象程序的動作結(jié)果(作為 "DRP. RunO,,的執(zhí)行結(jié)果的返回值)。并且,比較該返回值和測試信息所具有的正解信息。 并且,如果兩者一致則判斷為測試正常,如果兩者不一致則判斷為測試異常。接著,測試控制部27獲取第一個測試信息所具有的輸入信息“TagRead(DI_RUN, RUN) ”。并且,測試控制部27通過“TagRead (DI_RUN, RUN) ”的解析執(zhí)行,從硬件讀入“DI_ RUN”的IO值。并且,測試結(jié)果判斷部29判斷作為測試對象程序的動作結(jié)果的“DI_RUN” 的IO值與測試信息所具有的正解信息“RUN”是否一致。并且,如果兩者一致則測試結(jié)果判 斷部29判斷為測試正常,如果兩者不一致則測試結(jié)果判斷部29判斷為測試異常。并且,測 試結(jié)果判斷部29輸出判斷結(jié)果(例如“正?!?。這里,輸出可以是指顯示到顯示器,也可 以是指存儲到記錄介質(zhì)。另外,在輸出時,測試結(jié)果判斷部29將測試信息的識別號碼(ID) 和判斷結(jié)果對應起來進行輸出。根據(jù)以上處理“ID = 1”的測試信息的處理結(jié)束。在上述測試結(jié)果判斷部29的正 常、異常的判斷過程中,在判斷為不一致等的情況下,測試結(jié)果判斷部29例如輸出表示“異 常”的判斷結(jié)果。接著,自動測試部25從圖4的測試信息管理表讀出第二個測試信息(“ID = 2” 的記錄)。并且,測試控制部27依次解析圖4的“ID = 2”的記錄并執(zhí)行。S卩,測試控制部27 對于圖4的“ID = 2”的記錄中的(10)到(15)進行與從(1)到(6)同樣的處理。(1)到 (6)的處理在本實施方式中是上述的處理。接著,測試控制部27從第二個測試信息的(16)獲取動作模式“D0_RUN,TIMEOUT”。接著,執(zhí)行部28獲取第一個測試信息所具有的輸入信息“DRP. Run () ”。并且,執(zhí)行 部28啟動測試對象程序并執(zhí)行“DRP. Run() ”。并且,執(zhí)行部28獲取“DRP. Run() ”的執(zhí)行結(jié)^ ο接著,執(zhí)行部28根據(jù)測試控制部27獲取的動作模式“D0_RUN,TIMEOUT”判斷為動 作模式不是正常模式。執(zhí)行部28預先保持不是正常模式的一個以上的動作模式的信息,如 果測試控制部27獲取的動作模式與所保持的不是正常模式的動作模式中的某一個信息一 致,則可以判斷為測試控制部27獲取的動作模式為不是正常模式的動作模式。另外,執(zhí)行 部28預先保持正常模式的動作模式的信息,如果測試控制部27獲取的動作模式與所保持 的正常模式的信息不一致,則可以判斷為測試控制部27所獲取的動作模式為不是正常模式的動作模式。并且,執(zhí)行部28使用作為測試對象程序的執(zhí)行結(jié)果(“DRP. Run (),,的執(zhí)行結(jié)果) 的程序信息來執(zhí)行模擬器程序。該模擬器程序是異常模式情況下的模擬器程序(測試樁 等)。并且,執(zhí)行部28將模擬器程序的執(zhí)行結(jié)果傳遞給測試對象程序。接著,測試結(jié)果判斷部29獲取執(zhí)行部28中的測試對象程序的動作結(jié)果(作為 "DRP. Run () ”的執(zhí)行結(jié)果的返回值)。并且,對該返回值和測試信息所具有的正解信息進行 比較。并且,如果兩者一致則判斷為測試正常,如果兩者不一致則判斷為測試異常。接著,測試控制部27獲取第一個測試信息所具有的輸入信息“TagRead(DI_RUN, STOP) ”。并且,測試控制部27通過“TagRead(DI_RUN,STOP) ”的解析執(zhí)行,從硬件讀入“DI_ RUN”的IO值。并且,測試結(jié)果判斷部29判斷作為測試對象程序的動作結(jié)果的“DI_RUN”的 IO值與測試信息所具有的正解信息“STOP”是否一致。并且,如果兩者一致則測試結(jié)果判斷 部29判斷為測試正常,如果兩者不一致則測試結(jié)果判斷部29判斷為測試異常。并且,測試 結(jié)果判斷部29輸出判斷結(jié)果(例如“正?!?。這里,輸出可以是指顯示到顯示器,也可以 是指存儲到記錄介質(zhì)。另外,在輸出時,測試結(jié)果判斷部29將測試信息的識別號碼(ID)和 判斷結(jié)果對應起來并輸出。根據(jù)以上處理,“ID = 2”的測試信息的處理結(jié)束。在上述測試結(jié)果判斷部29的正 常、異常的判斷過程中,在判斷為不一致等的情況下,測試結(jié)果判斷部29例如輸出表示“異 常”的判斷結(jié)果。以上根據(jù)本實施方式提供了一種將正常系統(tǒng)的測試信息賦予硬件并將異常系統(tǒng) 的測試信息賦予模擬器程序的程序測試裝置。通過該程序測試裝置,在正常模式的情況下 能夠使用硬件進一步提高精度地進行測試,在異常模式的情況下,能夠使用模擬器程序進 行測試。通過該處理,能夠由軟件模擬地進行難以由硬件難以生成其狀態(tài)(通常為異常模 式)的測試情況,并且對于能夠容易地生成狀態(tài)(通常為正常模式)的測試情況,則使用實 際上運用的硬件來高精度地進行測試。在本實施方式的具體示例中,執(zhí)行部28與硬件的信息的交換僅為一次,但是,當 然可以在兩者之間進行連續(xù)的數(shù)據(jù)的交換。另外,同樣地,執(zhí)行部28和模擬器程序的信息 的交換僅為一次,但是,當然可以在兩者之間進行連續(xù)的數(shù)據(jù)的交換。并且,實現(xiàn)本實施方式中的程序測試裝置的軟件為如下程序。即,該程序是用于使 計算機作為以下各部發(fā)揮功能的程序,即測試信息接收部,接收為了對測試對象程序進行 測試而作為賦予該測試對象程序的信息的、具有輸入信息和動作模式的測試信息;測試控 制部,獲取所述測試信息所具有的動作模式;以及執(zhí)行部,將所述測試信息所具有的輸入信 息賦予測試對象程序并執(zhí)行該測試對象程序,并且如果所述測試控制部獲取的動作模式是 正常模式,則將作為所述測試對象程序的執(zhí)行結(jié)果的程序信息傳遞給硬件,并使硬件動作, 如果所述測試控制部所獲取的動作模式不是正常模式,則使用作為該測試對象程序的執(zhí)行 結(jié)果的程序信息執(zhí)行模擬器程序。另外,圖10示出了執(zhí)行在本說明書中敘述的程序以實現(xiàn)上述實施方式的程序測 試裝置的計算機的外觀。上述實施方式能夠由計算機硬件以及在其上執(zhí)行的計算機程序?qū)?現(xiàn)。圖10是該計算機系統(tǒng)340的概略圖,圖11是計算機系統(tǒng)340的框圖。在圖10中,計算機系統(tǒng)340具有包含F(xiàn)D(Flexible disk,軟盤)驅(qū)動器和CD-ROM (Compact Disk Read Only Memory,致密光盤只讀存儲器)驅(qū)動器的計算機341、鍵 盤342、鼠標343、以及監(jiān)視器344。在圖11中,計算機341除了 FD驅(qū)動器3411和⑶-ROM驅(qū)動器3412之外,還包括 CPU (Central Processing Unit,中央處理器)3413 ;與 CPU3413、CD-ROM 驅(qū)動器 3412 以及 FD驅(qū)動器3411連接的總線3414 ;用于存儲啟動程序等程序的ROM(Read-C)nIy Memory,只 讀存儲器)3415;與CPU 3414連接,用于暫時存儲應用程序的命令并提供暫時存儲空間的 RAM (Random Access Memory,隨機存取存儲器)3416 ;用于存儲應用程序、系統(tǒng)程序以及數(shù) 據(jù)的硬盤3417。這里沒有圖示,但是計算機341還可以包含提供LAN上的連接的網(wǎng)卡。在計算機系統(tǒng)340中,執(zhí)行上述實施方式的程序測試裝置的功能的程序被存儲在 ⑶-ROM 3501、或者FD 3502中,通過插入到⑶-ROM驅(qū)動器3412或FD驅(qū)動器3411中,并還 可以傳送給硬盤3417。取而代之,程序可以經(jīng)由未圖示的網(wǎng)絡被發(fā)送給計算機341并存儲 在硬盤3417中。程序在執(zhí)行時被加載到RAM 3416中。程序可以從⑶-ROM 350UFD 3502 或網(wǎng)絡直接加載。程序可以不必是一定包含使計算機341執(zhí)行上述實施方式的程序測試裝置的功 能的操作系統(tǒng)(OS)或者第三方程序等。程序可以僅包含命令的部分,以在被控制的方式下 調(diào)出適當?shù)墓δ?模塊)來得到希望的結(jié)果。計算機系統(tǒng)340怎樣進行動作是周知的,因 而省略詳細的說明。另外,執(zhí)行上述程序的計算機可以是一個,也可以是多個。即,可以進行集中處理、 或者可以進行分散處理。另外,在上述各實施方式中,各處理(各功能)可以通過由單一裝置(系統(tǒng))集中 處理來實現(xiàn),或者可以通過多個裝置分散處理來實現(xiàn)。本發(fā)明并不限于上述實施方式,能夠進行各種改變,當然它們也包含在本發(fā)明的 范圍中。產(chǎn)業(yè)上的實用性如上所述,本發(fā)明的程序測試裝置具有能夠在硬件錯誤的情況下自動容易地進行 測試對象程序的測試的效果,可以有效地作為程序測試裝置等使用。
18
權利要求
一種程序測試裝置,包括測試對象程序存儲部,其存儲作為測試對象的程序的測試對象程序;模擬器程序存儲部,其存儲模擬器程序,所述模擬器程序是模擬硬件的動作的程序,并且是進行與作為從測試對象程序傳遞的信息的程序信息和動作模式對應的動作的程序;測試信息接收部,其接收作為為了對所述測試對象程序進行測試而提供給該測試對象程序的信息的、具有輸入信息和動作模式的測試信息;測試控制部,獲取所述測試信息所具有的動作模式并傳遞給所述模擬器程序;以及執(zhí)行部,將所述測試信息具有的輸入信息提供給測試對象程序并執(zhí)行該測試對象程序,并且使用作為該測試對象程序的執(zhí)行結(jié)果的程序信息和所述測試控制部傳遞給所述模擬器程序的動作模式來執(zhí)行所述模擬器程序。
2.如權利要求1所述的程序測試裝置,還包括 測試信息存儲部,存儲有兩個以上的測試信息;以及自動測試部,依次從所述測試信息存儲部讀出兩個以上的測試信息,并傳遞給所述測 試信息接收部。
3.如權利要求2所述的程序測試裝置,其中,所述測試信息還具有作為測試對象程序的正常的動作結(jié)果的正解信息, 所述程序測試裝置還包括測試結(jié)果判斷部,所述測試結(jié)果判斷部獲取所述執(zhí)行部的所 述測試對象程序的動作結(jié)果,并使用該動作結(jié)果和所述測試信息具有的正解信息判斷測試 為正常或異常,輸出該判斷結(jié)果。
4.如權利要求1所述的程序測試裝置,其中,所述測試信息還具有所述模擬器程序進行動作所使用的IO值,所述測試控制部獲取所述測試信息所具有的動作模式和IO值并傳遞給所述模擬器程序,所述執(zhí)行部將所述測試信息所具有的輸入信息提供給測試對象程序并執(zhí)行該測試對 象程序,并且使用作為該測試對象程序的執(zhí)行結(jié)果的程序信息以及所述測試控制部傳遞給 所述模擬器程序的動作模式和IO值來執(zhí)行所述模擬器程序。
5.如權利要求1所述的程序測試裝置,其中,所述測試控制部還進行獲取作為所述模擬器程序的動作結(jié)果的IO值并輸出的處理。
6.如權利要求1所述的程序測試裝置,其中, 所述動作模式至少具有正常模式和異常模式。
7.一種程序測試裝置,包括測試對象程序存儲部,其存儲測試對象程序,所述測試對象程序是測試對象的程序,并 且是作為進行硬件的控制的程序;模擬器程序存儲部,其存儲作為模擬硬件錯誤的動作的程序的模擬器程序; 測試信息接收部,其接收作為為了對所述測試對象程序進行測試而提供給該測試對象 程序的信息的、具有輸入信息和動作模式的測試信息; 測試控制部,其獲取所述測試信息所具有的動作模式;執(zhí)行部,其將所述測試信息具有的輸入信息提供給測試對象程序并執(zhí)行該測試對象程 序,并且如果所述測試控制部獲取的動作模式是正常模式則將作為所述測試對象程序的執(zhí)行結(jié)果的程序信息傳遞給硬件使硬件動作,如果所述測試控制部獲取的動作模式不是正常 模式,則使用作為該測試對象程序的執(zhí)行結(jié)果的程序信息來執(zhí)行所述模擬器程序。
8.如權利要求7所述的程序測試裝置,還包括測試信息存儲部,存儲有兩個以上的測試信息;以及自動測試部,依次從所述測試信息存儲部讀出兩個以上的測試信息,并傳遞給所述測 試信息接收部。
9.如權利要求8所述的程序測試裝置,其中,所述測試信息還具有作為測試對象程序的正常的動作結(jié)果的正解信息,所述程序測試裝置還包括測試結(jié)果判斷部,所述測試結(jié)果判斷部獲取所述執(zhí)行部的所 述測試對象程序的動作結(jié)果,并使用該動作結(jié)果和所述測試信息具有的正解信息判斷測試 為正?;虍惓#敵鲈撆袛嘟Y(jié)果。
10.一種程序,用于使計算機作為以下各部發(fā)揮功能測試信息接收部,其接收作為為了對所述測試對象程序進行測試而提供給該測試對象 程序的信息的、具有輸入信息和動作模式的測試信息;測試控制部,獲取所述測試信息所具有的動作模式并傳遞給模擬硬件的動作的所述模 擬器程序;以及執(zhí)行部,將所述測試信息具有的輸入信息提供給測試對象程序并執(zhí)行該測試對象程 序,并且使用作為該測試對象程序的執(zhí)行結(jié)果的程序信息和所述測試控制部傳遞給所述模 擬器程序的動作模式來執(zhí)行所述模擬器程序。
11.如權利要求10所述的程序,用于使計算機如下所述發(fā)揮功能所述測試信息還具有所述模擬器程序進行動作所使用的IO值,所述測試控制部獲取所述測試信息所具有的動作模式和IO值并傳遞給所述模擬器程序,所述執(zhí)行部將所述測試信息所具有的輸入信息提供給測試對象程序并執(zhí)行該測試對 象程序,并且使用作為該測試對象程序的執(zhí)行結(jié)果的程序信息以及所述測試控制部傳遞給 所述模擬器程序的動作模式和IO值來執(zhí)行所述模擬器程序。
12.如權利要求10所述的程序,用于使計算機發(fā)揮以下功能所述測試控制部還進行獲取作為所述模擬器程序的動作結(jié)果的IO值并輸出的處理。
13.一種程序,用于使計算機作為以下各部發(fā)揮功能測試信息接收部,其接收作為為了對所述測試對象程序進行測試而提供給該測試對象 程序的信息的、具有輸入信息和動作模式的測試信息;測試控制部,其獲取所述測試信息所具有的動作模式;執(zhí)行部,其將所述測試信息具有的輸入信息提供給測試對象程序并執(zhí)行該測試對象程 序,并且如果所述測試控制部獲取的動作模式是正常模式則將作為所述測試對象程序的執(zhí) 行結(jié)果的程序信息傳遞給硬件,并使硬件動作,如果所述測試控制部獲取的動作模式不是 正常模式,則使用作為該測試對象程序的執(zhí)行結(jié)果的程序信息來執(zhí)行所述模擬器程序。
全文摘要
在以往的群管理系統(tǒng)中,存在無法容易地知道處理參數(shù)的改變能夠影響的一個以上的方案的問題。通過本發(fā)明的處理信息管理裝置能夠容易地知道處理參數(shù)的改變能夠影響的一個以上的方案,所述處理信息管理裝置包括方案存儲部,將作為與兩個以上的控制裝置所保持的處理有關的信息的兩個以上的方案分別與所述兩個以上的控制裝置對應起來進行存儲;接收部,對作為關于包含在方案中的處理參數(shù)的信息的處理參數(shù)信息進行接收;方案信息獲取部,使用所述處理參數(shù)信息從所述方案存儲部檢索方法,并獲取作為關于該檢索到的方案的信息的方法信息;以及輸出部,輸出所述方案信息獲取部獲取的方案信息。
文檔編號G06F11/28GK101925883SQ200980103790
公開日2010年12月22日 申請日期2009年1月23日 優(yōu)先權日2008年1月28日
發(fā)明者西村優(yōu) 申請人:東京毅力科創(chuàng)株式會社