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

程序測試系統(tǒng)及方法

文檔序號:6479566閱讀:341來源:國知局
專利名稱:程序測試系統(tǒng)及方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種程序測試系統(tǒng)及方法,特別涉及一種依據(jù)目前狀態(tài)(Current State)以及狀態(tài)變遷表(State Transition Table),產(chǎn)生一有效待測事件的程序測試系統(tǒng)及方法。
背景技術(shù)
隨著信息科技的進步,人類的生活迅速邁入信息化、E化的時代,時至今日,在日常生活中已不能一日無信息科技。而推動及支撐信息科技發(fā)展的助力及基礎(chǔ)主要有二一為信息基礎(chǔ)建設(shè)的普及及硬件效能的提升,另一則為軟件技術(shù)的發(fā)展。信息基礎(chǔ)建設(shè)的普及及硬件效能的提升使信息科技的適用范圍及層面更加擴大,并使復雜且硬件需求日益龐大的應用成為可能;而軟件技術(shù)的發(fā)展則奠基于其上,并且還進一步實現(xiàn)了每一個信息科技使用者的希冀及理想。
軟件開發(fā)的過程主要有系統(tǒng)分析、系統(tǒng)設(shè)計、程序撰寫,測試除錯、后續(xù)維護更新等,每一個環(huán)節(jié)缺一不可。而其中測試除錯還為軟件開發(fā)過程后段中重要的工作,一個程序是否能夠正常的執(zhí)行及其效能良好與否,除了程序撰寫時的投入之外,端賴是否能夠以一快速且周延的測試方法,有效針對程序的每一個狀態(tài)及其個別事件進行測試,以驗收程序是否如分析設(shè)計的初的規(guī)劃,正確的處理使用者的操作。
現(xiàn)有的測試方法,大部分采用「暴力測試法」,而所謂的「暴力測試法」便是隨機選取一事件,并利用隨機數(shù)產(chǎn)生器產(chǎn)生畫面上的任一坐標后,將事件及坐標一并送入待測程序,以考驗待測程序的處理能力,其所憑借的是效能較佳的硬件,希望能通過大規(guī)模的測試,找出程序設(shè)計撰寫時疏漏的地方。此種測試方法的缺點為硬件需求較為嚴格,且所需的測試時間較長,此外,由于事件是由隨機數(shù)所產(chǎn)生,因此前后產(chǎn)生的事件種類之間并不具關(guān)連性,往往無法測試到某些狀況,此種情形在測試人機接口程序時尤為明顯,因此造成測試并無法達到預期的效果,而經(jīng)測試的程序仍隱藏許多未知的錯誤。
因此,如上所述,如何在一般效能的硬件下,快速且系統(tǒng)化地測試待測程序,且完整覆蓋所有可能發(fā)生的情形,以有效完成測試的工作,實是當前亟待解決的課題。

發(fā)明內(nèi)容
針對上述問題,本發(fā)明的目的是提供一種程序測試系統(tǒng)及方法,其可依據(jù)目前狀態(tài)(Current State)以及狀態(tài)變遷表(State TransitionTable),產(chǎn)生一有效待測事件,以測試待測程序。
為達上述目的,本發(fā)明的程序測試系統(tǒng)主要包括一事件表(EventList)、一隨機選取器以及一狀態(tài)機器(State Machine)。事件表記錄了待測程序能夠處理的事件,隨機選取器則隨機自事件表選取一待測事件。狀態(tài)機器依據(jù)待測程序的目前狀態(tài)以及狀態(tài)變遷表內(nèi)容,判斷待測事件相對于目前狀態(tài)是否為有效。當狀態(tài)機器判斷待測事件相對于目前狀態(tài)為有效時,程序測試系統(tǒng)即依判斷結(jié)果,以一有效待測事件測試待測程序。
狀態(tài)變遷表記錄了各狀態(tài)及各事件的對應關(guān)系。在本發(fā)明的一實施例中,當待測事件相對于目前狀態(tài)為有效時,坐標產(chǎn)生器即依據(jù)目前狀態(tài)相對應的使用者介面,輸出產(chǎn)生有效待測事件所需的坐標,使一事件產(chǎn)生器能夠依此坐標產(chǎn)生出有效待測事件。
狀態(tài)變遷表可還記錄各個狀態(tài)的下一狀態(tài)。如此,狀態(tài)機器即可依據(jù)狀態(tài)變遷表,在待測程序處理有效待測事件完畢后,將下一狀態(tài)設(shè)定為目前狀態(tài)。此外,狀態(tài)機器亦可依據(jù)待測程序執(zhí)行有效待測事件的結(jié)果來更新目前狀態(tài)。
本發(fā)明還提供一種程序測試方法,其測試一待測程序,該待測程序包含多個狀態(tài),且能夠處理多個事件,該程序測試方法包含自一記錄該事件的事件表中隨機選取該待測事件;依據(jù)該待測程序的一目前狀態(tài)以及一狀態(tài)變遷表,判斷一待測事件相對于該目前狀態(tài)是否為有效,其中該狀態(tài)變遷表記錄該狀態(tài)及該事件之一對應關(guān)系;以及依據(jù)該狀態(tài)機器的判斷結(jié)果以一有效待測事件測試該待測程序。
由于依本發(fā)明的程序測試系統(tǒng)及方法是依據(jù)目前狀態(tài)及狀態(tài)變遷表,判斷所選取的待測事件是否為有效待測事件,故在測試過程中所實際執(zhí)行測試的事件皆為有效事件,大幅減少測試無效事件的次數(shù)及所需的時間。又,由于其應用了狀態(tài)變遷表,故前后產(chǎn)生的有效待測事件之間皆具關(guān)連性,因此可以快速且系統(tǒng)化地測試待測程序,并完整覆蓋所有可能發(fā)生的情形,有效地完成測試工作。


下面結(jié)合附圖及實施例對本發(fā)明進行詳細說明圖1為一結(jié)構(gòu)圖,顯示依本發(fā)明較佳實施例的程序測試系統(tǒng)的結(jié)構(gòu);圖2a為一示意圖,顯示依本發(fā)明較佳實施例的例示的使用者介面(狀態(tài))及其對象;圖2b為一示意圖,顯示依本發(fā)明較佳實施例的事件表的例示欄位及其內(nèi)容;圖3為一示意圖,顯示依本發(fā)明較佳實施例的狀態(tài)變遷表的例示欄位及其內(nèi)容;圖4為一示意圖,顯示依本發(fā)明較佳實施例的例示的使用者介面中的對象坐標;圖5為一流程圖,顯示依本發(fā)明較佳實施例的程序測試方法的步驟。
圖中符號說明1 待測程序2 程序測試系統(tǒng)21事件表22隨機選取器23狀態(tài)機器231 狀態(tài)變遷表24事件產(chǎn)生器25坐標產(chǎn)生器S501~S507程序測試方法的步驟
具體實施例方式
以下將參照相關(guān)附圖,說明本發(fā)明較佳實施例的程序測試系統(tǒng)及方法,其中相同的元件將以相同的符號加以說明。
請參照圖1所示,本發(fā)明較佳實施例的程序測試系統(tǒng)2是測試一待測程序1,待測程序1包含多個狀態(tài),且能夠處理多個事件。程序測試系統(tǒng)2包含一事件表(Event List)21,其記錄待測程序1能夠處理的事件;一隨機選取器22,其隨機選取事件表21中的事件之一為一待測事件;一狀態(tài)機器(State Machine)23,其依據(jù)待測程序1的目前狀態(tài)(Current State)以及一狀態(tài)變遷表(State Transition Table)231,判斷待測事件相對于目前狀態(tài)是否為一有效待測事件;以及一事件產(chǎn)生器(Event Generator)24,其依據(jù)狀態(tài)機器23的判斷結(jié)果產(chǎn)生有效待測事件。此外,程序測試系統(tǒng)2尚包含一坐標產(chǎn)生器25,其依據(jù)目前狀態(tài)相對應的一使用者介面,輸出產(chǎn)生有效待測事件所需的坐標。
請參照圖2a所示,狀態(tài)一、狀態(tài)二及狀態(tài)三為待測程序1中的三個例示狀態(tài),使用者介面一、使用者介面二及使用者介面三分別為其相對應的顯示畫面。其中使用者介面一包含二對象(Object),分別為TextBox1及Button1,使用者介面二包含三對象,分別為Label1、Button2及Button3,同樣的,使用者介面三包含三對象,分別為ListBox1、Button4及Button5。
請同時參照圖2b所示,事件表21包含二欄位,分別為事件識別碼Event ID及事件Event,其中事件001為「State1_TextBox1_Change」,代表狀態(tài)一相對應的使用者介面一中的TextBox1的內(nèi)容改變,事件002為「State1_Button1_Click」,代表按壓狀態(tài)一相對應的使用者介面一中的Button1,同理,事件003「State2_Button2_Click」代表按壓狀態(tài)二相對應的使用者介面二中的Button2,事件004「State2_Button3_Click」代表按壓狀態(tài)二相對應的使用者介面二中的Button3,依此類推。
需注意的是,在本實施例中,相同種類而作用于不同對象的事件視為不相同。如上所述,同樣為按壓Button事件,分別作用于不同狀態(tài)之下的不同對象如Button1及Button2,視為不同的事件,具有不同的事件識別碼002及003;即便是作用于相同狀態(tài)底下的不同對象如Button2及Button3,亦視為不同的事件,具有不同的事件識別碼003及004。此外,圖2b的事件表21僅為一例示格式,能夠記錄待測程序1的事件的任何其它格式或數(shù)據(jù)結(jié)構(gòu)均可使用。
請參照圖3所示,狀態(tài)變遷表231是記錄各狀態(tài)及各事件的對應關(guān)系。以事件002為例,對應至狀態(tài)一時,將傳送TextBox1的資料,并改變目前狀態(tài)至狀態(tài)二;對應至狀態(tài)二及狀態(tài)三時,則為一NULL值,即為一無效事件。此外,各狀態(tài)及各事件的對應關(guān)系可僅為「改變目前狀態(tài)」,如事件004對應至狀態(tài)二,或僅為「執(zhí)行某動作」,如事件005對應至狀態(tài)三等。
需注意的是,如同前述的事件表21,狀態(tài)變遷表231僅為一例示格式,能夠記錄各狀態(tài)及各事件的一對應關(guān)系的任何其它格式或數(shù)據(jù)結(jié)構(gòu)均可使用。
請參照圖1所示,前述事件產(chǎn)生器24依據(jù)狀態(tài)機器23的判斷結(jié)果產(chǎn)生有效待測事件時,尚需接收坐標產(chǎn)生器25依據(jù)目前狀態(tài)所對應的使用者介面,所輸出的產(chǎn)生有效待測事件所需的坐標。請參照圖4所示,對應至狀態(tài)一的使用者介面一中的Button1,其四個頂點的坐標分別為(200,360)、(200,560)、(400,360)及(400,560),在目前狀態(tài)為狀態(tài)一時,欲產(chǎn)生一有效待測事件「按壓Button1」,即「State1_Button1_Click」時,坐標產(chǎn)生器25即依據(jù)使用者介面一,輸出一位于(200,360)、(200,560)、(400,360)及(400,560)中的坐標至事件產(chǎn)生器24,以產(chǎn)生有效待測事件。
為使本發(fā)明的內(nèi)容容易理解,以下將舉一實例,說明依本發(fā)明較佳實施例的程序測試方法的流程。
請參照圖5所示,本發(fā)明較佳實施例的程序測試方法的步驟包含自事件表21中隨機選取一待測事件(S501),接著狀態(tài)機器23依據(jù)待測程序1的目前狀態(tài)以及一狀態(tài)變遷表231,判斷待測事件相對于目前狀態(tài)是否為一有效待測事件(S502),如果否,則回到S501,重新隨機選取一待測事件再行判斷,如果是,則由坐標產(chǎn)生器25依據(jù)目前狀態(tài)所對應的使用者介面,輸出產(chǎn)生有效待測事件所需的坐標(S503),并傳送至事件產(chǎn)生器24以產(chǎn)生有效待測事件(S504),同時,如果狀態(tài)變遷表231所記錄的對應關(guān)系包含改變目前狀態(tài),則狀態(tài)機器23還依據(jù)記錄內(nèi)容,將目前狀態(tài)及有效待測事件所對應的下一狀態(tài)設(shè)定為目前狀態(tài)(S505),并在待測程序1執(zhí)行有效待測事件后,接收其反饋(S506),如果其中包含改變目前狀態(tài)的信息時,則依據(jù)反饋內(nèi)容更新目前狀態(tài),最后,再檢查測試程序是否結(jié)束(S507),如果否,則回到S501,依據(jù)上述步驟繼續(xù)測試,如果是,則結(jié)束測試。
綜上所述,本發(fā)明的程序測試系統(tǒng)及方法是依據(jù)目前狀態(tài)及狀態(tài)變遷表,判斷所選取的待測事件是否為有效待測事件。所以,在測試時所實際執(zhí)行測試的事件皆為有效事件,大幅減少了測試無效事件的次數(shù)及所需的時間。又,由于其應用狀態(tài)變遷表,故前后產(chǎn)生的有效待測事件之間皆具關(guān)連性,因此本發(fā)明的程序測試系統(tǒng)及方法可以快速且系統(tǒng)化地測試待測程序,并完整覆蓋所有可能發(fā)生的情形,有效地完成測試工作。
需注意的是,本領(lǐng)域技術(shù)人員可對其進行等效的修改與變更,而不超出本發(fā)明的精神與范疇。例如,事件表中可直接儲存各個狀態(tài)下有效事件的坐標,如此即不需參照目前狀態(tài)所對應的使用者介面,輸出產(chǎn)生有效待測事件所需的坐標以得到有效事件。然而,如此事件表的資料量將相對較為龐大。本領(lǐng)域技術(shù)人員可視情況與實際的需要,選擇所需的實施方式。
此外,在上述的實施例中,相同種類而作用于不同對象的事件視為不相同。然而,若視為相同,藉由等效地修改事件表與狀態(tài)變遷表中的資料內(nèi)容,并配合事件產(chǎn)生器,仍可產(chǎn)生出目前狀態(tài)下的有效待測事件。
因此,以上所述僅為舉例性,而非為限制性。任何未脫離本發(fā)明的精神與范疇,而對其進行的等效修改或變更,均應包含于本專利的保護范圍中。
權(quán)利要求
1.一種程序測試系統(tǒng),其測試一待測程序,該待測程序包含多個狀態(tài),且能夠處理多個事件,該程序測試系統(tǒng)包含一事件表,其記錄該待測程序能夠處理的事件;一隨機選取器,其隨機自該事件表選取一待測事件;以及一狀態(tài)機器,其依據(jù)該待測程序的目前狀態(tài)以及一狀態(tài)變遷表,判斷該待測事件相對于該目前狀態(tài)是否為有效,其中該狀態(tài)變遷表記錄該狀態(tài)及該事件的一對應關(guān)系,且當該狀態(tài)機器判斷待測事件相對于目前狀態(tài)為有效時,該程序測試系統(tǒng)即依判斷結(jié)果以一有效待測事件測試該待測程序。
2.根據(jù)權(quán)利要求1所述的程序測試系統(tǒng),其特征在于還包含一事件產(chǎn)生器,其依據(jù)該狀態(tài)機器的判斷結(jié)果產(chǎn)生該有效待測事件。
3.根據(jù)權(quán)利要求2所述的程序測試系統(tǒng),其特征在于還包含一坐標產(chǎn)生器,其依據(jù)該目前狀態(tài)相對應的一使用者介面,輸出該事件產(chǎn)生器產(chǎn)生該有效待測事件所需的一坐標。
4.根據(jù)權(quán)利要求1所述的程序測試系統(tǒng),其特征在于該對應關(guān)系還包含一下一狀態(tài),且該下一狀態(tài)為該狀態(tài)之一。
5.根據(jù)權(quán)利要求4所述的程序測試系統(tǒng),其特征在于該狀態(tài)機器還依據(jù)目前狀態(tài)及有效待測事件,將該狀態(tài)變遷表中相對應的下一狀態(tài)設(shè)定為目前狀態(tài)。
6.根據(jù)權(quán)利要求1所述的程序測試系統(tǒng),其特征在于該狀態(tài)機器還依據(jù)該待測程序執(zhí)行有效待測事件的結(jié)果,更新目前狀態(tài)。
7.一種程序測試方法,其測試一待測程序,該待測程序包含多個狀態(tài),且能夠處理多個事件,該程序測試方法包含自一記錄該事件的事件表中隨機選取待測事件;依據(jù)該待測程序的目前狀態(tài)以及一狀態(tài)變遷表,判斷一待測事件相對于目前狀態(tài)是否為有效,其中該狀態(tài)變遷表記錄該狀態(tài)及該事件的一對應關(guān)系;以及依據(jù)該狀態(tài)機器的判斷結(jié)果以一有效待測事件測試待測程序。
8.根據(jù)權(quán)利要求7所述的程序測試方法,其特征在于還包含產(chǎn)生該有效待測事件。
9.根據(jù)權(quán)利要求8所述的程序測試方法,其特征在于還包含依據(jù)該目前狀態(tài)相對應的使用者介面,輸出產(chǎn)生該有效待測事件所需的坐標。
10.根據(jù)權(quán)利要求7所述的程序測試方法,其特征在于該對應關(guān)系還包含一下一狀態(tài),且該下一狀態(tài)為該狀態(tài)之一。
11.根據(jù)權(quán)利要求10所述的程序測試方法,其特征在于還包含依據(jù)該目前狀態(tài)及該有效待測事件,將該狀態(tài)變遷表中相對應的下一狀態(tài)設(shè)定為目前狀態(tài)。
12.根據(jù)權(quán)利要求7所述的程序測試方法,其特征在于該狀態(tài)機器還依據(jù)待測程序執(zhí)行有效待測事件的結(jié)果,更新目前狀態(tài)。
13.一種計算機可讀取記錄媒體,其記錄了一計算機在加載后,能夠執(zhí)行下列程序的程序代碼自一記錄該事件的事件表中隨機選取待測事件;依據(jù)該待測程序的目前狀態(tài)以及一狀態(tài)變遷表,判斷一待測事件相對于目前狀態(tài)是否為有效,其中該狀態(tài)變遷表記錄該狀態(tài)及該事件的一對應關(guān)系;以及依據(jù)該狀態(tài)機器的判斷結(jié)果以一有效待測事件測試待測程序。
14.根據(jù)權(quán)利要求13所述的計算機可讀取記錄媒體,其特征在于該計算機在加載該程序代碼后,還執(zhí)行下列程序依據(jù)該目前狀態(tài)相對應的一使用者介面,輸出產(chǎn)生一有效待測事件所需的坐標,以產(chǎn)生該有效待測事件。
15.根據(jù)權(quán)利要求13所述的計算機可讀取記錄媒體,其特征在于該計算機在加載程序代碼后,還執(zhí)行下列程序依據(jù)該目前狀態(tài)及有效待測事件,將該狀態(tài)變遷表中目前狀態(tài)所對應的下一狀態(tài)設(shè)定為目前狀態(tài)。
16.根據(jù)權(quán)利要求13所述的計算機可讀取記錄媒體,其特征在于該計算機在加載程序代碼后,還執(zhí)行下列程序依據(jù)該待測程序執(zhí)行有效待測事件的結(jié)果,更新目前狀態(tài)。
全文摘要
一種程序測試系統(tǒng),其包括事件表、隨機選取器及狀態(tài)機器。事件表記錄了待測程序能夠處理的事件,隨機選取器隨機選取一待測事件。狀態(tài)機器依待測程序目前狀態(tài)及狀態(tài)變遷表內(nèi)容,判斷待測事件相對目前狀態(tài)是否為有效。狀態(tài)機器判斷待測事件有效時,程序測試系統(tǒng)即依判斷結(jié)果,以有效待測事件測試待測程序。本發(fā)明亦揭露了一種程序測試方法。本發(fā)明是依目前狀態(tài)及狀態(tài)變遷表,判斷選取的待測事件是否為有效待測事件,故測試過程中實際執(zhí)行測試的事件皆為有效事件,大幅減少測試的次數(shù)及時間。由于其應用了狀態(tài)變遷表,故產(chǎn)生的有效待測事件間具關(guān)連性,可以快速且系統(tǒng)化地測試待測程序,完整覆蓋所有可能發(fā)生的情形,有效完成測試工作。
文檔編號G06F11/36GK1431598SQ0210164
公開日2003年7月23日 申請日期2002年1月11日 優(yōu)先權(quán)日2002年1月11日
發(fā)明者林潤生 申請人:互慧科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1