本公開涉及一種用于自動化的測試用例增廣(augmentation)的方法。
背景技術(shù):
:可用的基于模型的開發(fā)工具能夠顯示某些模型元素的不可達(dá)性。一些工具能夠生成測試輸入,其滿足準(zhǔn)則(criteria)覆蓋目標(biāo)以及用戶定義的測試目標(biāo)和要求。這些測試輸入也能夠與使用測量的數(shù)據(jù)所定義的測試相組合,使得模擬相對于模型覆蓋、要求和現(xiàn)實(shí)世界情形進(jìn)行測試。但是,一些重要覆蓋準(zhǔn)則(例如掩蔽修改的條件/判定覆蓋(mc/dc))沒有受到可用的基于模型的開發(fā)工具所支持,以及生成冗余測試用例以滿足某些覆蓋準(zhǔn)則。此外,一些常規(guī)開發(fā)工具沒有提供增廣測試用例以滿足覆蓋準(zhǔn)則的能力。軟件認(rèn)證準(zhǔn)則(例如do-178c)要求安全關(guān)鍵軟件(例如航空軟件)采用嚴(yán)格測試覆蓋(包括mc/dc)來測試。這些準(zhǔn)則能夠要求測試可能單獨(dú)影響判定的各條件。人工檢查模型/代碼以識別將內(nèi)部變量驅(qū)動到特定值的輸入序列是困難并且費(fèi)時的,特別是當(dāng)航空軟件系統(tǒng)較大和復(fù)雜時。本發(fā)明提供了如下技術(shù)方案:提供了技術(shù)方案1:一種用于自動化的測試用例增廣的方法,所述方法包括:在自動化的測試增廣系統(tǒng)從基于模型的開發(fā)工具來接收設(shè)計(jì)模型和模型覆蓋間隙信息;將所述模型覆蓋間隙信息轉(zhuǎn)化為機(jī)器可讀數(shù)學(xué)測試目標(biāo)表達(dá)式;通過轉(zhuǎn)化所述機(jī)器可讀數(shù)學(xué)測試目標(biāo)表達(dá)式來開發(fā)一組測試目標(biāo)算子;定位所述設(shè)計(jì)模型內(nèi)的所述所識別的覆蓋間隙的對象算子;將所述測試目標(biāo)算子附連到所述設(shè)計(jì)模型的對象算子,以創(chuàng)建測試模型;通過將在所述對象算子的測試目標(biāo)傳播到所述設(shè)計(jì)模型的測試節(jié)點(diǎn)算子來增廣所述測試模型;以及由測試生成器來運(yùn)行所述增廣測試模型以得到所述測試用例來覆蓋所述覆蓋間隙和所述模型覆蓋間隙的原因。提供了技術(shù)方案2:如技術(shù)方案1所述的方法,所述覆蓋準(zhǔn)則轉(zhuǎn)化包括使用準(zhǔn)則轉(zhuǎn)換表。提供了技術(shù)方案3:如技術(shù)方案2所述的方法,包括從所述基于模型的開發(fā)工具來得到所述準(zhǔn)則轉(zhuǎn)換表。提供了技術(shù)方案4:如技術(shù)方案1所述的方法,包括分類以及識別所述覆蓋準(zhǔn)則至少之一。提供了技術(shù)方案5:如技術(shù)方案4所述的方法,包括生成所述覆蓋準(zhǔn)則的一個或多個轉(zhuǎn)換規(guī)則。提供了技術(shù)方案6:如技術(shù)方案1所述的方法,包括生成更新的設(shè)計(jì)模型參數(shù),所述設(shè)計(jì)模型參數(shù)使關(guān)聯(lián)的覆蓋間隙由測試用例可達(dá)。提供了技術(shù)方案7:一種非暫時計(jì)算機(jī)可讀介質(zhì),具有指令存儲在其上,所述指令在由控制處理器運(yùn)行時使所述控制處理器執(zhí)行用于自動化的測試用例增廣的方法,所述方法包括:在自動化的測試增廣系統(tǒng)從基于模型的開發(fā)工具來接收設(shè)計(jì)模型和模型覆蓋間隙信息;將所述覆蓋間隙轉(zhuǎn)化為機(jī)器可讀數(shù)學(xué)測試目標(biāo)表達(dá)式;通過轉(zhuǎn)化所述機(jī)器可讀數(shù)學(xué)測試目標(biāo)表達(dá)式來開發(fā)一組測試目標(biāo)算子;定位所述設(shè)計(jì)模型內(nèi)的所述所識別的覆蓋間隙的對象算子;將所述測試目標(biāo)算子附連到所述設(shè)計(jì)模型的對象算子,以創(chuàng)建測試模型;通過將在所述對象算子的測試目標(biāo)傳播到所述設(shè)計(jì)模型的測試節(jié)點(diǎn)算子來增廣所述測試模型;以及測試生成器運(yùn)行所述增廣的測試模型以得到所述測試用例來覆蓋所述覆蓋間隙和所述模型覆蓋間隙的所述原因。提供了技術(shù)方案8:如技術(shù)方案7所述的非暫時計(jì)算機(jī)可讀介質(zhì),所述指令還使所述控制處理器通過包括使用準(zhǔn)則轉(zhuǎn)換表來執(zhí)行所述覆蓋準(zhǔn)則轉(zhuǎn)化。提供了技術(shù)方案9:如技術(shù)方案8所述的非暫時計(jì)算機(jī)可讀介質(zhì),所述指令還使所述控制處理器從所述基于模型的開發(fā)工具來得到所述準(zhǔn)則轉(zhuǎn)換表。提供了技術(shù)方案10:如技術(shù)方案7所述的非暫時計(jì)算機(jī)可讀介質(zhì),所述指令還使所述控制處理器執(zhí)行分類以及識別所述覆蓋準(zhǔn)則至少之一。提供了技術(shù)方案11:如技術(shù)方案10所述的非暫時計(jì)算機(jī)可讀介質(zhì),所述指令還使所述控制處理器生成用于所述覆蓋準(zhǔn)則的一個或多個轉(zhuǎn)換規(guī)則。提供了技術(shù)方案12:一種用于自動化的測試用例增廣的系統(tǒng),所述系統(tǒng)包括:包括控制處理器的計(jì)算機(jī),所述控制處理器配置成運(yùn)行程序指令;鏈接到所述控制處理器的間隙轉(zhuǎn)換器單元,所述間隙轉(zhuǎn)換器單元配置成將設(shè)計(jì)模型的一個或多個模型覆蓋間隙轉(zhuǎn)換成數(shù)學(xué)測試目標(biāo)表達(dá)式;鏈接到所述控制處理器的測試生成器單元,所述測試生成器單元配置成從測試模型內(nèi)的所述測試目標(biāo)來開發(fā)一組測試用例;間隙轉(zhuǎn)換器單元還配置成將所述數(shù)學(xué)測試目標(biāo)表達(dá)式轉(zhuǎn)化成測試目標(biāo)算子,并且通過將所述測試目標(biāo)算子附連到所述設(shè)計(jì)模型中的對應(yīng)算子來創(chuàng)建測試模型;提供了技術(shù)方案13:如技術(shù)方案12所述的系統(tǒng),配置成從基于模型的開發(fā)工具來接收所述模型覆蓋間隙。提供了技術(shù)方案14:如技術(shù)方案12所述的系統(tǒng),所述測試目標(biāo)定義一個或多個測試目的。提供了技術(shù)方案15:如技術(shù)方案12所述的系統(tǒng),所述測試目標(biāo)算子是能夠附連到所述設(shè)計(jì)模型的測試目標(biāo)算子。提供了技術(shù)方案16:如技術(shù)方案12所述的系統(tǒng),包括用于存儲測試目標(biāo)、測試模型和覆蓋間隙轉(zhuǎn)換規(guī)則的數(shù)據(jù)存儲。提供了技術(shù)方案17:如技術(shù)方案12所述的系統(tǒng),所述控制處理器還配置成運(yùn)行使所述控制處理器執(zhí)行下列操作的程序指令:通過將在所述對象算子的測試目標(biāo)傳播到所述設(shè)計(jì)模型的所述測試節(jié)點(diǎn)算子來增廣所述測試模型;以及對所述增廣的測試模型來運(yùn)行所述測試生成器以得到所述測試用例來覆蓋所述覆蓋間隙和所述模型覆蓋間隙的所述原因。提供了技術(shù)方案18:如技術(shù)方案17所述的系統(tǒng),所述控制處理器還配置成運(yùn)行程序指令,所述程序指令使所述控制處理器通過使用準(zhǔn)則轉(zhuǎn)換表來轉(zhuǎn)化覆蓋準(zhǔn)則轉(zhuǎn)化。提供了技術(shù)方案19:如技術(shù)方案18所述的系統(tǒng),所述控制處理器還配置成運(yùn)行程序指令,所述程序指令使所述控制處理器從所述基于模型的開發(fā)工具來得到所述準(zhǔn)則轉(zhuǎn)換表。提供了技術(shù)方案20:如技術(shù)方案17所述的系統(tǒng),所述控制處理器還配置成運(yùn)行使所述控制處理器執(zhí)行下列操作的程序指令:分類或者識別所述覆蓋準(zhǔn)則至少之一;以及生成用于所述覆蓋準(zhǔn)則的一個或多個轉(zhuǎn)換規(guī)則。附圖說明圖1描繪按照實(shí)施例的自動化的測試用例增廣系統(tǒng);圖2描繪按照實(shí)施例的自動化的設(shè)計(jì)模型測試用例增廣的過程流程圖;圖3描繪按照實(shí)施例的基于模型覆蓋間隙的測試模型創(chuàng)建的過程流程圖;圖4描繪按照實(shí)施例的圖1的系統(tǒng)的用戶界面;以及圖5描繪按照實(shí)施例的設(shè)計(jì)模型和覆蓋分析報(bào)告。具體實(shí)施方式按照實(shí)施例,系統(tǒng)和方法提供對基于模型的開發(fā)環(huán)境中的安全關(guān)鍵軟件的開發(fā)的支持。模型測試覆蓋間隙能夠在針對設(shè)計(jì)模型運(yùn)行基于高級要求的測試用例之后通過基于模型的開發(fā)環(huán)境的模型覆蓋分析工具來識別。覆蓋間隙指示尚未通過基于高級要求的測試用例來運(yùn)用的測試準(zhǔn)則。實(shí)施系統(tǒng)和方法能夠自動增廣測試用例以覆蓋所述覆蓋間隙。實(shí)施系統(tǒng)和方法將覆蓋間隙信息轉(zhuǎn)化成機(jī)器可讀數(shù)學(xué)測試目標(biāo),使得覆蓋間隙信息能夠附連到用于自動化的測試用例增廣的設(shè)計(jì)模型,其中(一個或多個)設(shè)計(jì)模型以基于模型的開發(fā)語言來編寫。實(shí)施系統(tǒng)和方法采用測試生成器,其能夠?qū)哂兴竭B測試目標(biāo)的(一個或多個)設(shè)計(jì)模型來執(zhí)行模型校驗(yàn)、約束求解和/或可達(dá)性解析(resolution)技術(shù),以自動識別和填充安全關(guān)鍵軟件的(一個或多個)設(shè)計(jì)模型的測試覆蓋間隙。另外,實(shí)施系統(tǒng)和方法還能夠識別模型缺陷—例如無用代碼、非預(yù)計(jì)功能、停用功能等。實(shí)施系統(tǒng)和方法能夠?qū)崿F(xiàn)覆蓋間隙轉(zhuǎn)換規(guī)則,其能夠?qū)⒏采w間隙轉(zhuǎn)換成測試目標(biāo)。如果輸入序列能夠激活測試目標(biāo),則輸入序列能夠填充覆蓋間隙。在測試生成器中分析測試目標(biāo)連同設(shè)計(jì)模型,以生成測試用例。識別若干覆蓋間隙模式,并且定義其轉(zhuǎn)換規(guī)則。能夠填充各種常規(guī)的基于模型的開發(fā)工具中開發(fā)的設(shè)計(jì)模型的模型測試覆蓋間隙。安全關(guān)鍵軟件(例如航空軟件)被軟件認(rèn)證準(zhǔn)則(例如do-178c)要求采用嚴(yán)格測試覆蓋來測試(例如修改的條件/判定覆蓋(mc/dc)),其要求各條件單獨(dú)影響判定。人工檢查模型/代碼以識別將內(nèi)部變量驅(qū)動到特定值的輸入序列是困難并且費(fèi)時的,特別是當(dāng)航空軟件大小比較大并且復(fù)雜度增長時。支持不同的覆蓋準(zhǔn)則(例如語句覆蓋、判定覆蓋、mc/dc、掩蔽mc/dc、狀態(tài)覆蓋、轉(zhuǎn)變(transition)覆蓋等),其中一個或多個轉(zhuǎn)換規(guī)則被實(shí)現(xiàn)以適應(yīng)不同準(zhǔn)則從覆蓋間隙信息到機(jī)器可讀數(shù)學(xué)測試目標(biāo)的轉(zhuǎn)化。實(shí)施系統(tǒng)和方法能夠識別準(zhǔn)則,查找對象(target)設(shè)計(jì)/代碼的位置,執(zhí)行測試目標(biāo)轉(zhuǎn)化和附連,經(jīng)過設(shè)計(jì)架構(gòu)來傳播測試目標(biāo),并且基于測試目標(biāo)來生成測試用例。圖1描繪按照實(shí)施例的設(shè)計(jì)模型的自動化的測試用例增廣系統(tǒng)100。系統(tǒng)100包括控制處理器110,其運(yùn)行計(jì)算機(jī)指令以控制系統(tǒng)及其組件的操作??刂铺幚砥?10能夠位于計(jì)算機(jī)或服務(wù)器中,并且經(jīng)由通信鏈路120來互連到各種組件。通信鏈路可以是內(nèi)部總線、電子通信網(wǎng)絡(luò)等。系統(tǒng)100能夠基于安全關(guān)鍵軟件的所接收設(shè)計(jì)模型130連同所接收模型覆蓋間隙135來生成增廣的測試用例以滿足模型覆蓋。設(shè)計(jì)模型能夠以常規(guī)的基于模型的開發(fā)語言(例如simulink/stateflow、scade等)來編寫。間隙轉(zhuǎn)換器單元140構(gòu)造成基于覆蓋間隙轉(zhuǎn)換規(guī)則158(其能夠存儲在數(shù)據(jù)存儲150中)將模型覆蓋間隙轉(zhuǎn)換成測試目標(biāo)152。測試目標(biāo)定義和/或設(shè)置測試生成器單元160的目的。測試目標(biāo)則附連到設(shè)計(jì)模型中的對應(yīng)算子(operator),以創(chuàng)建測試模型156。測試生成器應(yīng)用測試模型作為輸入,從所述測試模型中,所述測試生成器開發(fā)完成測試目標(biāo)的一組測試用例154。圖2描繪按照實(shí)施例的自動化的設(shè)計(jì)模型測試用例增廣的過程200。模型覆蓋間隙能夠從對基于模型的開發(fā)工具的模型覆蓋間隙分析器單元180的調(diào)用來得到(步驟210)?;谠O(shè)計(jì)模型130和模型覆蓋間隙135來創(chuàng)建測試模型(步驟220)。對驅(qū)動輸入以覆蓋模型覆蓋間隙的測試模型運(yùn)行測試生成器(步驟230)?;跍y試生成器執(zhí)行的結(jié)果,確定模型覆蓋間隙的潛在原因(步驟240)。圖3描繪按照實(shí)施例的用于基于模型覆蓋間隙(圖2的步驟220)的測試模型創(chuàng)建的過程300。測試模型基于設(shè)計(jì)模型130和模型覆蓋間隙135來創(chuàng)建。覆蓋間隙分析器單元180識別設(shè)計(jì)模型中的覆蓋間隙(步驟305)。覆蓋間隙被分類,并且基于分類來轉(zhuǎn)化為機(jī)器可讀數(shù)學(xué)測試目標(biāo)表達(dá)式(步驟310)。按照實(shí)現(xiàn),轉(zhuǎn)換能夠使用準(zhǔn)則轉(zhuǎn)換表(其對每種類型的覆蓋準(zhǔn)則預(yù)先創(chuàng)建)來完成。表i是按照實(shí)施例的從覆蓋間隙到測試目標(biāo)表達(dá)式的轉(zhuǎn)換的示例。表i準(zhǔn)則轉(zhuǎn)換表分類覆蓋準(zhǔn)則模式,并且定義每個準(zhǔn)則模式的測試目標(biāo)。覆蓋準(zhǔn)則轉(zhuǎn)換能夠支持不同覆蓋準(zhǔn)則,例如語句覆蓋、判定覆蓋、修改的條件/判定覆蓋(mc/dc)、掩蔽mc/dc、狀態(tài)覆蓋、轉(zhuǎn)變覆蓋等。轉(zhuǎn)化數(shù)學(xué)測試目標(biāo)表達(dá)式然后轉(zhuǎn)化為能夠附連到設(shè)計(jì)模型一組測試目標(biāo)算子(步驟315)。(一個或多個)測試目標(biāo)算子附連到設(shè)計(jì)模型中的(一個或多個)對象算子。(一個或多個)對象算子基于設(shè)計(jì)模型內(nèi)的所識別的覆蓋間隙來定位(步驟320)。按照實(shí)現(xiàn),為了完成定位,能夠解析覆蓋間隙信息,以得到覆蓋間隙對象算子。覆蓋間隙信息能夠包括間隙發(fā)生在哪里以及不滿足什么準(zhǔn)則。此外,附連測試目標(biāo)算子以連接與(一個或多個)對象算子中的信號對應(yīng)的測試目標(biāo)來創(chuàng)建測試模型(步驟325)。測試目標(biāo)還一路傳播到可以在模型分級結(jié)構(gòu)中的更高等級的測試節(jié)點(diǎn)算子,使得測試目標(biāo)在測試節(jié)點(diǎn)算子等級能夠是可見的(步驟330)。測試生成器識別測試模型的測試目標(biāo),并且找到在測試節(jié)點(diǎn)算子等級輸入序列,以激活測試目標(biāo),并且覆蓋對應(yīng)模型覆蓋間隙。實(shí)施系統(tǒng)和過程能夠基于測試生成器結(jié)果來確定覆蓋間隙的潛在原因。能夠?qū)ο铝袟l件連同某種設(shè)計(jì)信息來進(jìn)行確定:1)如果測試目標(biāo)識別為可達(dá)(即,能夠找到輸入序列以激活測試目標(biāo)),并且對應(yīng)覆蓋間隙的源沒有追溯到高級要求或者所推導(dǎo)要求,則對應(yīng)覆蓋間隙通過不充分的高級或所推導(dǎo)要求來引起;2)如果測試目標(biāo)是可達(dá)的,并且它上溯到高級要求,則對應(yīng)覆蓋因不充分的基于高級要求的測試而缺失;3)如果測試目標(biāo)是可達(dá)的,并且它上溯到軟件設(shè)計(jì)人員所指定的所推導(dǎo)要求,則對應(yīng)覆蓋因所推導(dǎo)要求而缺失;4)如果測試目標(biāo)不可達(dá)(即,數(shù)學(xué)證明不能找到可能的輸入序列以激活測試目標(biāo)),則測試生成器能夠通過包括作為對設(shè)計(jì)模型的輸入的設(shè)計(jì)模型參數(shù)而再次運(yùn)行。在這種情況下,測試生成器能夠生成更新的設(shè)計(jì)模型參數(shù),其包括閉合(close)與輸入設(shè)計(jì)模型參數(shù)關(guān)聯(lián)的覆蓋間隙的變化。4a)如果測試目標(biāo)仍然識別為不可達(dá),則覆蓋間隙是非預(yù)計(jì)功能或無用代碼;4b)如果覆蓋間隙識別為可達(dá),則覆蓋間隙是停用功能。能夠生成設(shè)計(jì)模型參數(shù)值,其使覆蓋間隙是可達(dá)的。圖4描繪按照實(shí)施例的系統(tǒng)100的用戶界面400。用戶界面能夠是具有多個窗格的交互式圖形界面。用戶能夠通過點(diǎn)擊“openmtcreport”按鈕來選擇包括模型覆蓋間隙的報(bào)告。缺失項(xiàng)窗格410顯示所選報(bào)告中的設(shè)計(jì)模型覆蓋間隙的列表。用戶能夠選擇覆蓋間隙的子集以生成測試用例。測試用例窗格420顯示作為系統(tǒng)100的結(jié)果的生成的測試用例,以覆蓋窗格410中的所選覆蓋間隙。如果對應(yīng)的覆蓋間隙是可達(dá)的,則顯示生成的測試用例的目錄。如果對應(yīng)的覆蓋間隙不可達(dá),則顯示“unreachable”。狀態(tài)窗格430在其執(zhí)行自動化的設(shè)計(jì)模型測試用例增廣過程時顯示來自系統(tǒng)100的狀態(tài)報(bào)告。實(shí)施系統(tǒng)和方法從基于模型的開發(fā)工具來接收覆蓋間隙分析器單元報(bào)告,并且將報(bào)告中的所識別的模型測試覆蓋間隙轉(zhuǎn)換成機(jī)器可讀測試目標(biāo)表達(dá)式。這些測試目標(biāo)表達(dá)式則自動轉(zhuǎn)換為測試目標(biāo)算子,所述測試目標(biāo)算子附連到設(shè)計(jì)模型本身中的適當(dāng)位置,以創(chuàng)建測試模型。對測試模型應(yīng)用測試生成器,以生成測試用例來覆蓋所述覆蓋間隙,并且識別設(shè)計(jì)缺陷。圖5描繪按照實(shí)施例的設(shè)計(jì)模型和覆蓋分析報(bào)告500的示例。包含在分析報(bào)告中的是設(shè)計(jì)模型的邏輯流程圖。邏輯流程圖由自動化的測試用例增廣系統(tǒng)100來注釋,以指示測試覆蓋間隙位置510、520、530,在所述測試覆蓋間隙位置沒有對所指示邏輯流程測試真或假值。分析報(bào)告也作為測試用例增廣系統(tǒng)操作的結(jié)果來注釋,以指示沒有測試邏輯流程的條件分支—例如“否則”框540指示為未測試。按照實(shí)施例,覆蓋分析報(bào)告能夠采取如表ii所示的表格形式:缺失覆蓋算子準(zhǔn)則1pwlinear::counter/$ifthenelse1真2rollcommandvalidity::rollcommandvalidity/$ifthenelse10假3rollcommandvalidity::rollcommandvalidity/$ifthenelse8真4rollcommandvalidity::rollcommandvalidity/ifblock1:else:else:else:激活表ii按照實(shí)施例,在掩蔽mc/dc中,當(dāng)準(zhǔn)則是從算子開始并且在經(jīng)過算子序列的算子結(jié)束的路徑時,能夠遵循規(guī)則。例如,局部變量能夠連接從一個路徑的結(jié)束到另一個路徑的開始的路徑;以及輸出變量能夠通過使用文本表達(dá)式來連接從一個路徑的結(jié)束到另一個路徑的開始的路徑。按照實(shí)施例,測試生成器160能夠接收自陷條件(測試目標(biāo)的否定),并且嘗試找到自陷條件的反例。如果找到反例,則該反例是滿足測試目標(biāo)的測試用例。如果沒有找到反例,則測試目標(biāo)不可達(dá),意味著沒有測試用例能夠覆蓋對應(yīng)的覆蓋間隙。在這種情況下,覆蓋準(zhǔn)則能夠轉(zhuǎn)換為測試目標(biāo)表達(dá)式,其轉(zhuǎn)化為模型中附連的自陷條件塊。按照一些實(shí)施例,非易失性存儲器、計(jì)算機(jī)可讀介質(zhì)(例如寄存器存儲器、處理器高速緩存、ram、rom、硬盤驅(qū)動器、閃速存儲器、cdrom、磁媒體等)和/或存儲器155中存儲的計(jì)算機(jī)程序應(yīng)用可包括代碼或者可執(zhí)行指令,其在運(yùn)行時可指令和/或使控制器或處理器執(zhí)行本文所論述的方法,例如用于如上所描述的基于模型的開發(fā)環(huán)境中的安全關(guān)鍵軟件的開發(fā)的方法。計(jì)算機(jī)可讀介質(zhì)可以是非暫時計(jì)算機(jī)可讀媒體,包括除了暫時的傳播信號之外的所有形式和類型的存儲器和計(jì)算機(jī)可讀媒體。在一個實(shí)現(xiàn)中,非易失性存儲器或計(jì)算機(jī)可讀介質(zhì)可以是外部存儲器。雖然本文已經(jīng)描述了特定硬件和方法,但是要注意,任何數(shù)量的其他配置可按照本發(fā)明的實(shí)施例來提供。因此,雖然已經(jīng)示出、描述和指出有本發(fā)明的基本的新穎特征,但是將會理解,可由本領(lǐng)域的技術(shù)人員進(jìn)行所示實(shí)施例的形式和細(xì)節(jié)方面及其操作方面的各種省略、置換和變更,而沒有背離本發(fā)明的精神和范圍。還全面預(yù)計(jì)和預(yù)期從一個實(shí)施例到另一個實(shí)施例的元件的置換。本發(fā)明僅針對所隨附到其的權(quán)利要求書以及其中引述的等效物來限定。配件表:當(dāng)前第1頁12