專利名稱:一種面向復用的嵌入式軟件測試方法及其測試系統的制作方法
技術領域:
本發明涉及軟件測試領域,尤其涉及一種面向復用的嵌入式軟件測試方法及其測試系統。
背景技術:
軟件測試是提高軟件可靠性、保證軟件質量的重要手段,軟件測試活動已經融入軟件全生命周期的各個階段中,軟件測試采用的各類技術方法以及測試工具已經日趨成熟,相關的標準、體系也在不斷完善,軟件測試正在朝著規范化不斷發展。 目前隨著嵌入式系統的廣泛應用,嵌入式軟件的質量越來越受到業界的關注,而關于嵌入式軟件的測試方法也成為人們研究的重要方向。由于嵌入式軟件具有軟\硬件結合密切的特點,測試過程中往往采用仿真的方法進行測試,以提高測試充分性和有效性。然而仿真測試過程通常需要根據不同的被測試軟件建立大量的仿真模型以支持測試,測試過程費時費カ且效率不高,所以如何提高仿真測試過程的可復用性、可控性和規范性,進而提高測試的效率成為仿真測試領域的主要難題。
發明內容
本發明的目的在于提供一種可以通過復用提高測試效率的嵌入式軟件測試方法,本發明還提供ー種實現該方法的測試系統。為了實現上述目的,本發明采用的技術方案如下本發明的面向復用的嵌入式軟件測試方法,包含以下步驟在系統中設置模型庫,并在其中存儲以下各種測試模型被測軟件模型描述了被測軟件的各種測試需求;交聯環境模型描述了外部各種接ロ變量的變量名稱、變量描述、變量特性、有效取值范圍及其與所述的各種測試需求的對應關系,還描述了系統與環境之間信息交互的動態特性,包括時間特性以及順序關系;測試用例模型每ー個測試需求對應ー個測試用例模型,每個測試用例模型中描述了其對應的測試需求的測試場景、具體輸入取值及測試預期,所述的測試預期包括預期結果與評估準則;測試執行模型每ー個測試用例模型對應ー個測試執行模型,所述的測試執行模型中描述了其對應的測試用例模型的可執行狀態、執行的前置條件,還描述了各個測試用例模型的執行順序;測試結果模型描述了各測試用例模型的測試結論;測試時,系統根據操作者的指令從所述的模型庫中選取相應的被測軟件模型,并根據該被測軟件模型依次選取其對應的交聯環境模型、測試用例模型、測試執行模型,如果系統中沒有符合要求的相應模型,則根據操作者的指令建立各測試模型,并存入所述模型庫;測試執行模型是能夠直接在測試環境中執行的模型,執行后得到測試執行結果,將測試結果轉換成與所述預期結果相同的表達方式;并與預期結果進行比對,判斷是否符合評價準則如果一致,則結束流程;如果不一致,則做進一歩判斷如果測試用例錯誤,則修改用例,重新執行;
如果測試環境錯誤,則修改測試環境,重新執行;如果被測軟件錯誤,則記錄軟件失效,描述軟件問題;系統利用測試執行模型的執行結果作為測試結論輸出構建測試結果模型并顯示給操作者。優選的,所述的被測軟件模型通過如下方法構建S21 :分析軟件需求與設計相關文檔,得到軟件質量屬性列表;S22 :根據軟件質量屬性確定軟件測試類型;S23 :對測試類型進行分解,得到測試意圖,并確定測試方法;S24 :根據測試方法對測試意圖進行具體分析,得到測試需求。優選的,所述的被測軟件模型中還描述了所述的軟件質量屬性、軟件測試類型,所述的測試需求分別和所述的軟件質量屬性、軟件測試類型對應。優選的,所述的交聯環境模型通過如下方法構建S31 :分析軟件需求與設計相關文檔,得到軟件外部接ロ關系表,所述的軟件外部接ロ關系表中包括交聯設備和接ロ類型、接ロ變量;S32 :確定外部接ロ變量信息表,包括變量名稱、變量描述、變量特性、有效取值范圍;S33 :建立測試需求與接ロ變量的對應關系。優選的,所述的交聯環境模型中描述了所述的交聯設備和接ロ類型,所述的接ロ變量和所述的交聯設備和接ロ類型對應。優選的,所述的測試用例模型通過如下方法構建S41 :構建測試場景依據測試需求確定用例輸入序列;S42 :構建測試用例輸入取值確定測試輸入具體取值;S43 :確定預期包括預期結果與評估準則。優選的,所述的測試執行模型通過如下方式構建S51 :確定物理測試用例-確定用例的可執行狀態;S52 :建立初始化環境-確定用例執行的前置條件;S53 :定義測試規程-安排用例執行順序。優選的,所述的測試結果模型中還描述了測試異常分析和反饋信息,所述的預期測試結果和所述的測試異常分析和反饋信息對應,系統在獲得測試結果后調出其對應的測試異常分析和反饋信息顯示,當預期測試結果沒有對應的測試異常分析和反饋信息,系統根據操作者的指令補入測試異常分析和反饋信息,并更新測試結果模型,系統能夠根據操作者的指令更新所述的測試異常分析和反饋信息,并將所述的反饋信息返回給所述的測試用例建模組件用作下一次測試的依據。本發明還提供一種面向復用的嵌入式軟件測試系統,包括
模型庫,在所述的模型庫中存儲有以下各種模型被測軟件模型描述了被測軟件的各種測試需求;交聯環境模型描述了外部各種接ロ變量的變量名稱、變量描述、變量特性、有效取值范圍及其與所述的各種測試需求的對應關系,還描述了系統與環境之間信息交互動態特性,包括時間特性以及順序關系;測試用例模型每ー個測試需求對應ー個測試用例,每個測試用例中描述了其對應的測試需求的測試場景、具體輸入取值及測試預期,所述的測試預期包括預期結果與評估準則;測試執行模型每ー個測試用例模型對應ー個測試執行模型,所述的測試執行模 型中描述了其對應的測試用例模型的可執行狀態、執行的前置條件,還描述了各個測試用例模型的執行順序;測試結果模型描述了各測試用例模型的測試結論;還包括測試需求建模組件,用于根據用戶指令從所述的模型庫中調取所述的被測軟件模型、交聯環境模型作為一次測試所用的被測軟件模型、交聯環境模型;測試用例建模組件用于調取所述模型庫中的所述測試用例模型、并根據測試需要模型的輸入構建一次測試的測試用例模型;測試執行模型建模組件用于調取所述模型庫中的所述測試執行模型、井根據測試用例模型的輸入構建一次測試的測試執行模型;測試結果模型建模組件用于調取所述模型庫中的所述測試結果模型、井根據測試執行模塊的測試結構構建一次測試的測試結果模型,并將模型中的自帶反饋信息或者根據用戶指令生成的反饋信息返回給所述的測試用例建模組件用作下一次測試的依據;控制模塊用于根據用戶的指令控制各建模組件調取、構建各個模型,并對測試過程進行控制;測試執行模塊根據所述控制模塊的調用、按照所述測試執行模型執行各測試用例,得到測試結果,并對測試結果進行判斷如果一致,則結束流程;如果不一致,則做進一歩判斷如果測試用例錯誤,則修改用例,重新執行;如果測試環境錯誤,則修改測試環境,重新執行;如果被測軟件錯誤,則記錄軟件失效,描述軟件問題;將判斷結果輸出給所述的測試結果模型構建組件構建測試結果模型或者根據判斷結果啟動下一次測試。本發明的有益效果如下本發明的軟件測試方法是ー種針對嵌入式系統軟件的有效測試方法,在測試過程中可以產生可復用的測試產品,同時也可以直接使用模型庫中的可復用產品,在提高測試效率的同時也避免了許多人為錯誤與不確定因素的產生,保證了仿真測試過程的可控性和規范性。在對不同軟件進行測試時,測試模型成為測試過程中復用的有效組件,尤其對于產品線軟件,可以極大的減少測試過程中的重復性工作,最大限度的提高測試效率。
圖I為本發明的仿真測試方法的原理圖;圖2為被測軟件模型的構建過程;圖3為交聯環境模型的構建過程;圖4為測試設計模型的構建過程;圖5為測試執行模型的構建過程;圖6為測試結果模型的構建過程;圖7為本發明的測試系統的結構圖。
具體實施例方式參見附圖1,為本發明的測試方法的原理圖,本發明的方法的測試過程是在不同的測試模型間的轉換過程中實現的;本發明所說的測試模型是指將測試過程中的各類信息按照測試階段的不同進行組織,并利用某種形式進行描述得到的結果;在本發明中根據測試階段的不同,共設置四類測試模型測試需求模型、測試設計模型、測試執行模型和測試結果模型。測試需求模型主要描述一次軟件測試的目標以及內容,包括兩部分,即被測軟件模型,用來對被測試軟件的質量屬性與測試類型等信息進行描述;交聯環境模型,用來對被測試軟件的外部環境進行分析,為構建測試用例模型和測試環境奠定基礎。測試設計模型是根據測試需求模型而構建的ー類模型,又稱之為測試用例模型,主要對測試用例所包含的測試輸入條件、預期結果、測試結果判別條件等信息進行描述,通常采用表格的方式進行描述。測試執行模型是測試用例的執行過程信息描述,測試執行模型是根據測試環境信息對測試用例模型的進ー步演化,主要包括測試用例的最終可執行狀態和測試用例的執行順序等信息。測試結果模型是最后一個階段的模型,也是測試的最終結論,通常利用記錄表的形式將每ー個測試用例的執行過程進行詳細的記錄,包括測試結果與預期結果的一致性,測試異常的記錄、軟件缺陷的描述等信息。本發明的測試方法中設置各類模型,一方面極大地提高了軟件測試過程的規范性 和自動化程度,同時測試模型可以作為測試過程的產品,進入到測試模型庫中,有效地解決同類軟件測試過程中大量重復性工作帶來的測試效率低下問題,而且在一定程度上提高了測試的質量。本發明的關鍵步驟就在于如何構建各種測試模型,下面結合一個實施例對各模型的構建過程進ー步進行闡述,該實施例中以ー個慣性導航系統為被測軟件,慣性導航系統是飛機中的ー個重要系統。它記錄了飛機中的關鍵操作屬性,然后通過飛機中的其他子系統提供加速度,速度,方位,航向,姿態,以及實時信息。用于實現慣性導航系統的計算機是嵌入式系統的典型應用。將這樣的計算機與傳感器網絡相結合,并放置在一個盒子中作為ー個獨立的子系統。INS中的軟件是典型的實時嵌入式系統,它被存儲于一個靜態存儲器中。I、構建測試需求模型
測試需求模型包括兩類被測軟件模型和交聯環境模型,這兩種模型根據測試對象和測試目標建立。這兩類模型都是ー種平臺無關模型,即測試需求模型中的信息與測試執行所需要的測試環境是無關的。測試需求模型是對被測軟件的相關質量屬性建立的信息模型,是整個測試過程的初始模型,是驅動后續測試模型建立的原動カ。I)被測軟件模型(SUT模型)被測軟件模型(SUT模型)是根據測試目標以及被測軟件的信息在測試需求階段建立的與被測軟件同構的ー類測試對象信息模型。SUT模型是對作為測試客體的被測軟件的信息進行建摸。軟件具有多方面眾多類型的信息,SUT模型是根據測試目標對與本次測試相關的信息進行描述,而忽略其他方面的信息。對SUT進行建模的過程實際上就是對被測軟件進行分析,得到測試對象的細化信息的過程,需求階段建立的SUT模型是從測試角度出發對被測軟件某一方面屬性的重新描述。這種描述有利于測試分析的進行,并且保持了與被測軟件之間的同構關系。 如圖2所示,SUT模型的構建一般分為四個步驟I、分析軟件需求與設計等相關文檔,得到軟件質量屬性列表;2、根據軟件質量屬性確定軟件測試類型;3、對測試類型進行分解,得到測試意圖,并確定測試方法;4、根據測試方法對測試意圖進行具體分析,得到測試需求。在本發明的方法中,每ー個被測試的軟件都需要構造出ー個被測軟件模型。以慣性導航系統為例,其被測軟件模型如表I。表I被測軟件建模表
權利要求
1.一種面向復用的嵌入式軟件測試方法,其特征在于,包含以下步驟 在系統中設置模型庫,并在其中存儲以下各種測試模型 被測軟件模型描述了被測軟件的各種測試需求; 交聯環境模型描述了外部各種接ロ變量的變量名稱、變量描述、變量特性、有效取值范圍及其與所述的各種測試需求的對應關系,還描述了系統與環境之間信息交互的動態特性,包括時間特性以及順序關系; 測試用例模型每ー個測試需求對應ー個測試用例模型,每個測試用例模型中描述了其對應的測試需求的測試場景、具體輸入取值及測試預期,所述的測試預期包括預期結果與評估準則; 測試執行模型每ー個測試用例模型對應ー個測試執行模型,所述的測試執行模型中描述了其對應的測試用例模型的可執行狀態、執行的前置條件,還描述了各個測試用例模型的執行順序; 測試結果模型描述了各測試用例模型的測試結論; 測試時,系統根據操作者的指令從所述的模型庫中選取相應的被測軟件模型,并根據該被測軟件模型依次選取其對應的交聯環境模型、測試用例模型、測試執行模型,如果系統中沒有符合要求的相應模型,則根據操作者的指令建立各測試模型,并存入所述模型庫;測試執行模型是能夠直接在測試環境中執行的模型,執行后得到測試執行結果,將測試結果轉換成與所述預期結果相同的表達方式;并與預期結果進行比對,判斷是否符合評價準則 如果一致,則結束流程; 如果不一致,則做進一歩判斷 如果測試用例錯誤,則修改用例,重新執行; 如果測試環境錯誤,則修改測試環境,重新執行; 如果被測軟件錯誤,則記錄軟件失效,描述軟件問題; 系統利用測試執行模型的執行結果作為測試結論輸出構建測試結果模型并顯示給操作者。
2.根據權利要求I所述的嵌入式軟件測試方法,其特征在于,所述的被測軟件模型通過如下方法構建 521:分析軟件需求與設計相關文檔,得到軟件質量屬性列表; 522:根據軟件質量屬性確定軟件測試類型; 523:對測試類型進行分解,得到測試意圖,并確定測試方法; 524:根據測試方法對測試意圖進行具體分析,得到測試需求。
3.根據權利要求I所述的嵌入式軟件測試方法,其特征在于,所述的被測軟件模型中還描述了所述的軟件質量屬性、軟件測試類型,所述的測試需求分別和所述的軟件質量屬性、軟件測試類型對應。
4.根據權利要求I所述的嵌入式軟件測試方法,其特征在于,所述的交聯環境模型通過如下方法構建 S31:分析軟件需求與設計相關文檔,得到軟件外部接ロ關系表,所述的軟件外部接ロ關系表中包括交聯設備和接ロ類型、接ロ變量;.532:確定外部接ロ變量信息表,包括變量名稱、變量描述、變量特性、有效取值范圍; . 533:建立測試需求與接ロ變量的對應關系。
5.根據權利要求4所述的嵌入式軟件測試方法,其特征在于所述的交聯環境模型中描述了所述的交聯設備和接ロ類型,所述的接ロ變量和所述的交聯設備和接ロ類型對應。
6.根據權利要求I所述的嵌入式軟件測試方法,其特征在于,所述的測試用例模型通過如下方法構建 541:構建測試場景依據測試需求確定用例輸入序列; 542:構建測試用例輸入取值確定測試輸入具體取值; 543:確定預期包括預期結果與評估準則。
7.根據權利要求I所述的嵌入式軟件測試方法,其特征在于,所述的測試執行模型通過如下方式構建 551:確定物理測試用例-確定用例的可執行狀態; 552:建立初始化環境-確定用例執行的前置條件; 553:定義測試規程-安排用例執行順序。
8.根據權利要求I所述的嵌入式軟件測試方法,其特征在于,所述的測試結果模型中還描述了測試異常分析和反饋信息,所述的預期測試結果和所述的測試異常分析和反饋信息對應,系統在獲得測試結果后調出其對應的測試異常分析和反饋信息顯示,當預期測試結果沒有對應的測試異常分析和反饋信息,系統根據操作者的指令補入測試異常分析和反饋信息,并更新測試結果模型,系統能夠根據操作者的指令更新所述的測試異常分析和反饋信息,并將所述的反饋信息返回給所述的測試用例建模組件用作下一次測試的依據。
9.一種面向復用的嵌入式軟件測試系統,其特征在于包括 模型庫,在所述的模型庫中存儲有以下各種模型 被測軟件模型描述了被測軟件的各種測試需求; 交聯環境模型描述了外部各種接ロ變量的變量名稱、變量描述、變量特性、有效取值范圍及其與所述的各種測試需求的對應關系,還描述了系統與環境之間信息交互動態特性,包括時間特性以及順序關系; 測試用例模型每ー個測試需求對應ー個測試用例,每個測試用例中描述了其對應的測試需求的測試場景、具體輸入取值及測試預期,所述的測試預期包括預期結果與評估準則; 測試執行模型每ー個測試用例模型對應ー個測試執行模型,所述的測試執行模型中描述了其對應的測試用例模型的可執行狀態、執行的前置條件,還描述了各個測試用例模型的執行順序; 測試結果模型描述了各測試用例模型的測試結論; 還包括測試需求建模組件,用于根據用戶指令從所述的模型庫中調取所述的被測軟件模型、交聯環境模型作為一次測試所用的被測軟件模型、交聯環境模型; 測試用例建模組件用于調取所述模型庫中的所述測試用例模型、井根據測試需要模型的輸入構建一次測試的測試用例模型; 測試執行模型建模組件用于調取所述模型庫中的所述測試執行模型、井根據測試用例模型的輸入構建一次測試的測試執行模型;測試結果模型建模組件用于調取所述模型庫中的所述測試結果模型、并根據測試執行模塊的測試結構構建一次測試的測試結果模型,并將模型中的自帶反饋信息或者根據用戶指令生成的反饋信息返回給所述的測試用例建模組件用作下一次測試的依據; 控制模塊用于根據用戶的指令控制各建模組件調取、構建各個模型,并對測試過程進行控制; 測試執行模塊根據所述控制模塊的調用、按照所述測試執行模型執行各測試用例,得到測試結果,并對測試結果進行判斷 如果一致,則結束流程; 如果不一致,則做進一歩判斷 如果測試用例錯誤,則修改用例,重新執行; 如果測試環境錯誤,則修改測試環境,重新執行; 如果被測軟件錯誤,則記錄軟件失效,描述軟件問題; 將判斷結果輸出給所述的測試結果模型構建組件構建測試結果模型或者根據判斷結果啟動下一次測試。
全文摘要
本發明公開了一種面向復用的嵌入式軟件測試方法,該方法在測試系統中設置模型庫,并在其中存儲被測軟件模型、交聯環境模型、測試用例模型、測試執行模型、測試結果模型,該測試方法在各模型的轉換過程完成測試。本發明的軟件測試方法是一種針對嵌入式系統軟件的有效測試方法,在測試過程中可以產生可復用的測試產品,同時也可以直接使用模型庫中的可復用產品,在提高測試效率的同時也避免了許多人為錯誤與不確定因素的產生,保證了仿真測試過程的可控性和規范性。在對不同軟件進行測試時,測試模型成為測試過程中復用的有效組件,尤其對于產品線軟件,可以極大的減少測試過程中的重復性工作,最大限度的提高測試效率。
文檔編號G06F11/36GK102650966SQ20111004450
公開日2012年8月29日 申請日期2011年2月24日 優先權日2011年2月24日
發明者王軼辰 申請人:北京賽若科技有限公司, 王軼昆, 王軼辰