具備自監(jiān)視功能的計算機、監(jiān)視程序的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及具備自監(jiān)視功能的計算機以及監(jiān)視程序。
【背景技術(shù)】
[0002]近年來,一般通過嵌入系統(tǒng)來控制機器的狀態(tài)。例如,搭載在汽車上的計算機被稱為ECU(電控單元),進行與行駛有關(guān)的各種控制。在工廠設(shè)備、制造生產(chǎn)線等汽車以外的領(lǐng)域中也廣泛使用這樣的利用嵌入系統(tǒng)的控制用計算機。
[0003]在以E⑶為首的控制用計算機中,需要保證程序依照規(guī)范正確地動作。其原因為,如果由于電路的故障、程序的缺陷而發(fā)生未預(yù)期的動作,則無法正常地控制車輛、生產(chǎn)線,威脅利用者的安全。
[0004]在控制用的計算機中,為了防止故障、缺陷所引起的事故,具備自診斷功能的情況較多。在汽車的情況下,自診斷功能被稱為“診斷(diagnosis) ”、“OBD(On-boarddiagnostics:車載自動診斷系統(tǒng))”(參照非專利文獻I)。自診斷功能能夠在計算機的內(nèi)部探測發(fā)生了未定義的信號等異常的狀態(tài),進行向利用者的警告、系統(tǒng)的停止、日志信息的記錄等。
[0005]非專利文獻1:"0DB_II On-Board Diagnostics"、[online]、B&B Electronics、[平成 24 年 7 月 23 日檢索]、因特網(wǎng)〈URL:http://www.0bdi1.com/〉
【發(fā)明內(nèi)容】
[0006]具有上述那樣的自診斷功能的計算機能夠檢測電路的故障、程序的缺陷所致的異常動作,并警告利用者。但是,自診斷功能雖然能夠探測系統(tǒng)成為異常的狀態(tài),但無法檢測系統(tǒng)達到異常動作之前的所謂“未驗證的狀態(tài)”。
[0007]詳細說明該問題。一般,在軟件的測試中,設(shè)想利用者進行的操作來生成測試腳本。但是,完全網(wǎng)羅所有情形并不容易,進行未設(shè)想的操作情況也不少。在進行了這樣的設(shè)想外的操作的情況下,軟件對未被驗證的腳本進行處理,所以無法保證可否正常地進行處理。即,有可能在該腳本中發(fā)生缺陷,系統(tǒng)變得不穩(wěn)定、或者引起異常動作。這樣的未驗證的狀態(tài)雖然并非危急的狀態(tài)但卻是在軟件的動作上存在風(fēng)險的狀態(tài),所以期望積極地檢測并進行通知。但是,以往的技術(shù)中無法檢測在計算機中動作過程中的程序是否沿著已驗證的腳本動作。
[0008]本發(fā)明是考慮上述問題而完成的,其目的在于提供一種能夠檢測利用者進行了測試腳本中不存在的操作的、具備自監(jiān)視功能的計算機以及監(jiān)視程序。
[0009]本發(fā)明的第一方式是具備自監(jiān)視功能的計算機。
[0010]本發(fā)明的第一方式的計算機,具有:輸入單元,取得輸入操作;第一程序執(zhí)行單元,執(zhí)行根據(jù)所述輸入單元所取得的輸入操作進行運算的運算程序;測試腳本存儲單元,存儲有針對所述運算程序的多個測試腳本;以及第二程序執(zhí)行單元,執(zhí)行判定所述輸入單元所取得的輸入操作是否為與所存儲的所述多個測試腳本中的某一個對應(yīng)的操作的監(jiān)視程序。
[0011]運算程序是指成為監(jiān)視的對象的程序,是根據(jù)通過計算機中具備的輸入單元所取得的輸入操作進行運算的程序。輸入單元是指鼠標、觸摸面板、鍵盤等人機交互界面設(shè)備,輸入操作是指通過該設(shè)備從利用者輸入的信息。具體而言,既可以是點擊、輕敲、鍵按下等與硬件直接關(guān)聯(lián)起來的事件,也可以是通過文本框、下拉列表、滑塊等⑶I (Graphical UserInterface:圖形用戶界面)組件輸入的值。
[0012]另外,監(jiān)視程序是指取得由利用者實施的輸入操作、判定該輸入操作是否已驗證的程序。通過對比所取得的輸入操作、和所存儲的多個測試腳本,判定輸入操作是否為已驗證。測試腳本是指,記錄了與運算程序的測試有關(guān)的操作的數(shù)據(jù),監(jiān)視程序通過確認所取得的輸入操作、和測試腳本中記錄了的操作的內(nèi)容是否一致,能夠判定該輸入操作是否為已驗證。
[0013]另外,其特征還可以在于各所述測試腳本分別包括多個輸入操作的內(nèi)容以及順序,其特征還可以在于所述監(jiān)視程序從所述輸入單元取得多個輸入操作,在所取得的所述多個輸入操作與包含在某一個測試腳本中的輸入操作的內(nèi)容以及順序一致的情況下,判定為所取得的所述輸入操作是與該測試腳本對應(yīng)的操作。
[0014]這樣,驗證的對象也可以是多個輸入操作。即,通過比較從輸入單元依次輸入的操作、和測試腳本中按照時間序列依次記錄的操作,驗證其內(nèi)容以及順序是否一致,從而能夠判定所輸入的操作是否為與測試腳本對應(yīng)的操作。
[0015]另外,其特征還可以在于所述監(jiān)視程序在所取得的所述輸入操作與所存儲的多個測試腳本中的哪一個都不對應(yīng)的情況下,對所述運算程序或者外部程序,通知系統(tǒng)為未驗證狀態(tài)的意思。
[0016]在利用者進行的操作與所存儲的多個測試腳本中的哪一個都不對應(yīng)的情況下,能夠判定為該操作是未驗證的操作。在該情況下,監(jiān)視程序?qū)\算程序、外部程序,通知動作未驗證的狀況。由此,例如,能夠進行向系統(tǒng)日志的輸出、向外部系統(tǒng)的通知、向安全模式的轉(zhuǎn)移等應(yīng)對異常發(fā)生的處理,能夠擔(dān)保系統(tǒng)的安全。
[0017]本發(fā)明的第二方式是監(jiān)視任意的程序的監(jiān)視程序。
[0018]本發(fā)明的第二方式的監(jiān)視程序,與進行運算的運算程序同時被執(zhí)行,監(jiān)視針對所述運算程序的輸入操作,包括:輸入取得步驟,取得針對所述運算程序的輸入操作;以及輸入判定步驟,判定所取得的所述輸入操作是否為與事先存儲的、針對所述運算程序的多個測試腳本中的某一個測試腳本對應(yīng)的操作。
[0019]另外,其特征還可以在于所存儲的各所述測試腳本分別包括多個輸入操作的內(nèi)容以及順序,其特征還可以在于所述輸入取得步驟、所述輸入判定步驟在所取得的所述多個輸入操作與包含在某一個測試腳本中的輸入操作的內(nèi)容以及順序一致的情況下,判定為所取得的所述輸入操作是與該測試腳本對應(yīng)的操作。
[0020]另外,其特征還可以在于在所述輸入判定步驟中,在所取得的所述輸入操作與所存儲的多個測試腳本中的哪一個都不對應(yīng)的情況下,執(zhí)行對所述運算程序或者外部程序通知系統(tǒng)是未驗證狀態(tài)的意思的步驟。
[0021 ] 這樣,本發(fā)明還能夠特定為監(jiān)視針對任意的程序的輸入操作的監(jiān)視程序。
[0022]本發(fā)明的第三方式是生成進行運算的運算程序、和監(jiān)視針對所述運算程序的輸入操作的監(jiān)視程序的軟件制作裝置。
[0023]本發(fā)明的第三方式的軟件制作裝置,具有:運算程序輸入單元,接受所述運算程序的代碼輸入;測試腳本輸入單元,接受通過建模語言描述的針對所述運算程序的多個測試腳本的輸入;運算程序生成單元,生成所述運算程序;監(jiān)視程序生成單元,生成監(jiān)視程序,該監(jiān)視程序包括所述多個測試腳本在內(nèi),判定針對所述運算程序的輸入操作是否為與所述多個測試腳本中的某一個測試腳本對應(yīng)的操作;以及程序?qū)懭雴卧?,將所述運算程序和監(jiān)視程序記錄到執(zhí)行用計算機,所述運算程序生成單元針對所述運算程序,追加將所述運算程序進行的規(guī)定的處理作為觸發(fā),將對所述運算程序進行的輸入操作通知到所述監(jiān)視程序的處理。
[0024]另外,其特征還可以在于所述各測試腳本分別包括多個輸入操作的內(nèi)容以及順序,其特征還可以在于所述監(jiān)視程序取得多個輸入操作,在所取得的所述多個輸入操作與包含于某一個測試腳本中的輸入操作的內(nèi)容以及順序一致的情況下,判定為所取得的所述輸入操作是與該測試腳本對應(yīng)的操作。
[0025]另外,其特征還可以在于所述監(jiān)視程序在所述輸入操作與多個測試腳本中的哪一個都不對應(yīng)的情況下,能夠?qū)λ鲞\算程序或者外部程序,通知系統(tǒng)是未驗證狀態(tài)的意思。
[0026]這樣,本發(fā)明還能夠特定為在本發(fā)明的第一方式的計算機中,記錄運算程序以及監(jiān)視程序的軟件制作裝置。另外,關(guān)于上述處理、單元,只要不產(chǎn)生技術(shù)上的矛盾,就能夠自由地組合來實施。
[0027]根據(jù)本發(fā)明,能夠提供能夠檢測利用者進行了不存在于測試腳本中的操作的、具備自監(jiān)視功能的計算機以及監(jiān)視程序。
【附圖說明】
[0028]圖1是說明觀測器代碼以及應(yīng)用代碼的制作方法的圖。
[0029]圖2是本發(fā)明中的軟件制作裝置的系統(tǒng)結(jié)構(gòu)圖。
[0030]圖3是示出本發(fā)明中的執(zhí)行程序的結(jié)構(gòu)的圖。
當(dāng)前第1頁
1 
2 
3 
4