專利名稱:軟件系統(tǒng)多用戶特性測試方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及移動通信領域系統(tǒng)測試技術,特別涉及一種嵌入式系統(tǒng)軟件子系統(tǒng)多用戶特性的測試方法和系統(tǒng)。
背景技術:
嵌入式系統(tǒng)開發(fā)過程的早期階段,技術人員采用系統(tǒng)工程方法將待開發(fā)系統(tǒng)分解為軟件子系統(tǒng)和硬件子系統(tǒng)、將系統(tǒng)功能特性分割為相應的硬件功能特性和軟件功能特性。后續(xù)的開發(fā)活動劃分成硬件和軟件子系統(tǒng)分別實施,最后階段再將硬件和軟件子系統(tǒng)集成為一個完整的嵌入式系統(tǒng)。
軟件系統(tǒng)測試是嵌入式設備研制過程中非常重要的環(huán)節(jié)之一。驗證研制中軟件系統(tǒng)的功能與預期的要求是否一致則是軟件系統(tǒng)測試的一項重要內容。驗證被測系統(tǒng)對多個用戶的管理特性是功能驗證測試設計的重要內容。
現(xiàn)有軟件測試過程通常沿用下述步驟進行測試設計、實施,實現(xiàn)對軟件系統(tǒng)的多用戶特性的驗證(1)以單一用戶為測試方,采用成熟的測試用例設計方法,設計滿足預期覆蓋指標的測試用例。設計方法包括(1.1)基本路徑方法測試用例設計者基于對軟件設計細節(jié)的了解導出某個功能/過程的邏輯復雜性測度,并使用該測度作為指南來定義執(zhí)行路徑的基本集,再從該基本集導出的測試用例保證對程序中的每一條執(zhí)行語句至少執(zhí)行一次;(1.2)對等區(qū)間劃分法測試用例設計者將被測軟件的輸入輸出劃分成一些區(qū)間,使得被測軟件對一個特定區(qū)間的任何值都是等價的。形成測試區(qū)間的數(shù)據(jù)包括函數(shù)/過程的參數(shù)、軟件可訪問的全局變量,系統(tǒng)資源(這些變量或資源可以是以時間形式存在的數(shù)據(jù),或以狀態(tài)形式存在的輸入輸出序列)等。測試用例設計者在每個區(qū)間的選擇一個代表值為其設計一個測試用例;(1.3)邊界值分析法測試用例設計者采用(1.2)的分析方法,并假定錯誤最有可能出現(xiàn)在區(qū)間之間的邊界。測試用例設計者再對邊界值的兩邊值安排設計特定的測試用例。
(2)依照(1)描述的方法標識測試用例后,基于測試配置和測試工具將測試用例轉換成測試系統(tǒng)可以執(zhí)行的測試腳本;(3)對不同的用戶,重復步驟(1)-(2);(4)測試運行時,以單個用戶為執(zhí)行單位,依次運行步驟(2)-(3)生成的測試腳本。
如果將上述方法組織、運行測試用例一對一轉化測試腳本單元,則測試腳本的開發(fā)和測試執(zhí)行、評估的工作將耗費相當多的人力資源。
發(fā)明內容
因此,本發(fā)明的目的在于提供一種軟件系統(tǒng)多用戶特性的測試方法和系統(tǒng),通過在運行時配置虛擬測試單元(Virtual Tester)接收、發(fā)送消息參數(shù)實現(xiàn)對被測系統(tǒng)多用戶特性的測試,以解決現(xiàn)有技術中腳本的開發(fā)和測試執(zhí)行/評估階段中工作量和工作強度較高的問題。
為達到上述目的,本發(fā)明提供的軟件系統(tǒng)多用戶特性的測試方法,包括將消息流程與消息參數(shù)值分開,將測試流程的運行實例導入每個虛擬測試單元;確定測試用例消息中不同用戶的消息參數(shù),并生成包含消息參數(shù)值的參數(shù)表;虛擬測試單元從參數(shù)表中獲得與用戶、測試用例、消息參數(shù)對應的參數(shù)值;虛擬測試單元運行所述腳本程序執(zhí)行用戶測試流程。
根據(jù)測試要求設置測試運行時的參數(shù)和虛擬測試單元的數(shù)量,通過修改虛擬測試單元消息參數(shù)值調整測試單元行為,所述測試用例中使用的消息參數(shù)值與測試用例Id,消息Id,參數(shù)Id,虛擬測試單元Id共同存放。
所述腳本程序包括對表示消息交互順序和消息細節(jié)的測試腳本進行單獨編譯生成的測試組件。
所述虛擬測試單元調用API函數(shù)或數(shù)據(jù)庫讀取函數(shù)從參數(shù)表中動態(tài)獲得消息參數(shù)值。
所述API函數(shù)或數(shù)據(jù)庫讀取函數(shù)以測試用例Id,消息Id,參數(shù)Id,運行態(tài)虛擬測試單元Id作為參數(shù)。
所述測試用例Id唯一標識一個測試用例,取值與測試設計者事先規(guī)劃測試用例時使用的Id保持一一對應。
所述消息Id在測試用例范圍內唯一標識一個消息,且由測試設計人員在測試用例設計階段規(guī)劃和定義、在測試腳本設計和消息參數(shù)編輯階段引用。
所述虛擬測試單元Id在測試用例設計階段確定用于標識虛擬測試單元,在測試運行時由虛擬測試單元從測試環(huán)境中獲得。
相應地,本發(fā)明提供的軟件系統(tǒng)多用戶特性的測試系統(tǒng),包括虛擬測試單元,用于模擬被測軟件系統(tǒng)的各種用戶類型;控制單元,用于控制虛擬測試單元的執(zhí)行和終止;測試監(jiān)控單元,用于監(jiān)控多個控制單元和虛擬測試單元的測試進程。
所述控制單元將測試流程與消息流程分開,將測試流程的腳本程序導入每個虛擬測試單元;所述測試監(jiān)控單元確定不同用戶測試用例中消息流程的消息參數(shù),并生成包含消息參數(shù)的參數(shù)表;所述虛擬測試單元從參數(shù)表中獲得與用戶消息流程對應的參數(shù)值;并運行所述腳本程序執(zhí)行用戶測試流程。
與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點本發(fā)明的軟件系統(tǒng)多用戶特性的測試方法和系統(tǒng)基于少量的消息定義和運行時動態(tài)設置參數(shù)值實現(xiàn)對被測系統(tǒng)多用戶特性的測試;測試實施時將表示不同用戶的消息交互順序的測試流程和表示消息內容的消息參數(shù)分開組織、存儲;表示消息交互順序和消息細節(jié)的測試腳本單獨編譯、連接生成可執(zhí)行的測試組件;由測試程序演化而成的虛擬測試單元在執(zhí)行測試腳本程序的過程中調用API獲得特定用戶、消息、參數(shù)的參數(shù)值,從而能夠靈活地模擬該用戶與被測軟件系統(tǒng)之間的消息流程(例如輸入輸出關系)。當利用多個虛擬測試單元模擬多個用戶的消息流程時,多個用戶的測試程序能夠同時進行,大大降低了腳本的開發(fā)和測試執(zhí)行/評估階段的工作量和工作強度。
圖1為本發(fā)明軟件系統(tǒng)多用戶特性測試方法的流程圖;圖2為本發(fā)明軟件系統(tǒng)多用戶特性測試系統(tǒng)方框圖;圖3為具體說明本發(fā)明軟件系統(tǒng)多用戶特性測試方法的流程圖;圖4為本發(fā)明軟件系統(tǒng)多用戶特性測試系統(tǒng)的實施例的方框圖。
具體實施例方式
軟件子系統(tǒng)測試活動通常包括測試規(guī)劃、測試用例設計、測試用例開發(fā)、測試運行、結果評估等幾個階段。測試用例對軟件特性覆蓋程度越高,測試運行中發(fā)現(xiàn)的系統(tǒng)潛在缺陷可能性就越高,經(jīng)過測試后系統(tǒng)隱藏的缺陷便越少。本發(fā)明的測試方法和系統(tǒng)將測試用例涉及的消息交互過程與消息參數(shù)分離,在測試設計階段對測試用例包含的消息流程進行單獨分析,設計開發(fā)與消息內容獨立的虛擬測試儀(Virtual Tester)消息發(fā)送/接收流程,以流程的差異區(qū)分測試腳本,不同的測試流程形應不同的虛擬測試儀行為,單獨定義和建構。這里的虛擬測試單元可以定義為測試程序腳本在執(zhí)行時所完成的任務系列的集合。
圖1為本發(fā)明軟件系統(tǒng)多用戶特性測試方法的流程圖。如圖1所示,本發(fā)明的軟件系統(tǒng)多用戶特性的測試方法將消息流程與消息參數(shù)值分開,將測試流程的運行實例導入每個虛擬測試單元(S101);確定測試用例消息中不同用戶的消息參數(shù),并生成包含消息參數(shù)值的參數(shù)表(S102);虛擬測試單元從參數(shù)表中獲得與用戶、測試用例、消息參數(shù)對應的參數(shù)值(S103);虛擬測試單元運行所述腳本程序執(zhí)行用戶測試流程(S104)。本發(fā)明的測試方法在測試設計階段對測試用例包含的消息流程進行單獨分析,設計開發(fā)與消息內容獨立的虛擬測試儀消息發(fā)送/接收流程,以流程的差異區(qū)分測試腳本,不同的測試流程對應不同的虛擬測試儀行為。測試時將表示消息交互順序的測試流程和表示消息內容的消息參數(shù)分開。虛擬測試儀在運行時從參數(shù)表或數(shù)據(jù)庫中獲得消息參數(shù)值,由消息流程運行時實例與被測系統(tǒng)之間的消息交互,實現(xiàn)消息發(fā)送、接收/檢測操作。
圖3為具體說明本發(fā)明軟件系統(tǒng)多用戶特性測試方法的流程圖。如圖3所示,測試執(zhí)行前,測試人員根據(jù)多用戶要求設置測試運行時參與測試的虛擬測試儀數(shù)目,依據(jù)基本路徑法、對等區(qū)間劃分法和邊界值分析法原理通過編輯修改參數(shù)值表或數(shù)據(jù)庫中的參數(shù)表修改單個虛擬測試儀的行為。對于測試用例1,虛擬測試儀0或1的行為定義中涉及的消息參數(shù)均采用形式化參數(shù)(變量)表示,例如消息1和消息2,參數(shù)0、1、2和3。測試用例中使用的參數(shù)值獨立于測試腳本單獨存放,參數(shù)值采用二維矩陣結構方式存儲。將表示消息交互順序和消息細節(jié)(部分參數(shù)為形式化參數(shù)、實際值待運行階段確定)的測試腳本單獨編譯、連接生成可執(zhí)行的測試用例。虛擬測試儀Id在測試運行時由虛擬測試儀從測試環(huán)境中獲得,并從測試腳本指定的信息獲得測試用例Id、消息Id和參數(shù)Id。測試用例Id用于唯一標識一個測試用例,取值與測試設計者事先規(guī)劃測試用例時使用的Id保持一一對應;消息Id用于在測試用例范圍內唯一標識一個消息,由測試設計人員在測試用例設計階段規(guī)劃和定義、在測試腳本設計和消息參數(shù)編輯階段引用。虛擬測試儀在測試用例中使用的消息參數(shù)值與測試用例Id、消息Id、參數(shù)Id、虛擬測試儀Id等同時存放在外部的數(shù)據(jù)文件或數(shù)據(jù)庫中。在測試設計階段同時規(guī)劃一組測試腳本運行時可以調用的參數(shù)獲取API函數(shù)或數(shù)據(jù)庫讀取函數(shù),虛擬測試儀在運行階段調用這些API函數(shù)或數(shù)據(jù)庫讀取函數(shù)動態(tài)獲取消息參數(shù)。通過調用參數(shù)表或數(shù)據(jù)庫中的消息參數(shù)值,虛擬測試儀模擬與消息參數(shù)值對應的用戶實體,向被測系統(tǒng)發(fā)送消息,并從被測系統(tǒng)接收消息,對被測系統(tǒng)的多用戶特性進行檢測。
圖2為本發(fā)明軟件系統(tǒng)多用戶特性測試系統(tǒng)方框圖。如圖2所示,本發(fā)明軟件系統(tǒng)多用戶特性的測試系統(tǒng)包括用于模擬被測軟件系統(tǒng)的各種用戶類型的虛擬測試單元;用于控制虛擬測試單元的執(zhí)行和終止的控制單元;用于監(jiān)控多個控制單元和虛擬測試單元的測試進程的測試監(jiān)控單元??刂茊卧獙y試流程與消息流程分開,將測試流程的腳本程序導入每個虛擬測試單元;測試監(jiān)控單元確定不同用戶測試用例中消息流程的消息參數(shù),并生成包含消息參數(shù)的參數(shù)表;虛擬測試單元從參數(shù)表中獲得與用戶消息流程對應的參數(shù)值;并運行所述腳本程序執(zhí)行用戶測試流程。被測系統(tǒng)與模擬軟件外部環(huán)境的虛擬測試儀基于通信服務連接;多個控制單元和虛擬測試單元之間的協(xié)作活動由監(jiān)控單元管理。控制單元將虛擬測試單元運行時紀錄的狀態(tài)/日志上傳給監(jiān)控單元,其他運行組件進行運行后結果處理,生成結構良好、規(guī)范的測試報告。
圖4為本發(fā)明軟件系統(tǒng)多用戶特性測試系統(tǒng)的實施例的方框圖。在進行RNC(第三代移動通信網(wǎng)絡的無線網(wǎng)絡控制器)無線信令處理單元的多用戶(手機、移動通信終端)管理特性測試時,測試環(huán)境包括下列組成部分測試引擎(Rational Test RealTime Supervisor+Rational Test RealTime Agent)、模擬無線信令處理單元環(huán)境的多個VT實例(包含UE_Simulator、CN_Simulator、NodeB_Simulator等)消息/數(shù)據(jù)傳輸服務和測試數(shù)據(jù)管理服務等。如圖4所示,RNC無線信令處理單元的多用戶管理特性測試配置的過程中,測試工程依據(jù)測試腳本、測試專用通信服務代碼、數(shù)據(jù)訪問服務代碼組織;測試工程在RTRT(Rational Tester RealTime)測試工具環(huán)境內編輯、維護、保存;測試腳本中規(guī)劃CN_Sim(模擬CN)、NodeB_Sim(模擬NodeB)以及UE_Sim(模擬手機)等模擬RNC無線信令處理單元的外部環(huán)境部件。測試腳本中指定測試用例號以及消息和參數(shù)標識;配置測試運行方式時,指定CN_Sim、NodeB_Sim和UE_Sim均支持多個實例;運行時由模擬外部環(huán)境部件的虛擬測試儀從RTRT_Supervisor、RTRT-Agent組成的運行環(huán)境處獲取虛擬測試儀實例號,結合測試腳本中的用例、消息、參數(shù)號由預先確定的參數(shù)表中獲得參數(shù),完成發(fā)送/接收消息的初始化;虛擬測試儀實例根據(jù)測試腳本的邏輯與被測系統(tǒng)進行消息的交互。典型的多用戶測試腳本如下INSTANCE NB_SimCOMMENT NB_Sim wait and receive RL Reconfigure Req from SUTDEF_MESSAGE svar_IubC_SAAL_N_DATA_REQ_STRUCT,EV={& uiMsgId=>IUBC_SAAL_N_DATA_REQ&}WAITTIL(MATCHING(svar_IubC_SAAL_N_DATA_REQ_STRUCT,ccss),TIME>1000)--for Trch id/*2005-11-1*/@GetParamfrmTable(ATL_CCID,122_VoiceCallI,IubC_DATA,svar_trchid);COMMENT NB_Sim Send RadioLinkReconfigurationReady message to SUT......
VAR svar_DCH_InformationResponse,INIT={& next=>NIL,& value=>{& bit_mask=>0x80,& dCH_ID=>svar_trchid
,/*2005-10-11 modify*/......
END INSTANCE--NB_Sim編寫測試用例時,將需要因虛擬測試儀實例變化的參數(shù)以變量表示,變量的初始化通過調用測試數(shù)據(jù)管理服務模塊提供的API函數(shù)完成。
獲取參數(shù)值得API函數(shù)則以測試用例Id,消息Id,參數(shù)Id,運行態(tài)虛擬測試儀Id(即測試引擎提供的UE_Simulator實例編號ATL_OCCID)作為參數(shù)。測試數(shù)據(jù)管理服務模塊將API函數(shù)的信息轉換成對多用戶測試參數(shù)分配表的查詢訪問。多用戶測試用參數(shù)表根據(jù)測試用例統(tǒng)一規(guī)劃,在測試腳本編寫時同時完成。典型的多用戶測試用參數(shù)表片斷如下用例ID 消息ID 參數(shù)ID VT運行時實例Id參數(shù)值122k_Voice_Call RB_SetupDCH_ID
0 20122k_Voice_Call RB_SetupDCH_ID[1] 0 21122k_Voice_Call RL_SetupBinding_Id 0 26664K_Stream_Call RB_SetupDCH_ID
1 1664K_Stream_Call RB_SetupDCH_ID[1] 1 18.......
測試實施前,配置Rational Test RealTime工具支持多個虛擬測試儀實例。測試虛擬測試儀初始化時從Rational Test RealTime Supervisor獲取ATL_OCCID作為運行時標識。
雖然通過實施例描繪了本發(fā)明,本領域普通技術人員知道,本發(fā)明有許多變形和變化而不脫離本發(fā)明的精神,希望所附的權利要求包括這些變形和變化而不脫離本發(fā)明的精神。
權利要求
1.一種軟件系統(tǒng)多用戶特性的測試方法,包括a.將消息流程與消息參數(shù)值分開,將測試流程的運行實例導入每個虛擬測試單元;b.確定測試用例消息中不同用戶的消息參數(shù),并生成包含消息參數(shù)值的參數(shù)表;c.虛擬測試單元從參數(shù)表中獲得與用戶、測試用例、消息參數(shù)對應的參數(shù)值;d.虛擬測試單元運行所述腳本程序執(zhí)行用戶測試流程。
2.如權利要求1所述的測試方法,其特征在于根據(jù)測試要求設置測試運行時的參數(shù)和虛擬測試單元的數(shù)量,通過修改虛擬測試單元消息參數(shù)值調整測試單元行為,所述測試用例中使用的消息參數(shù)值與測試用例Id,消息Id,參數(shù)Id,虛擬測試單元Id共同存放。
3.如權利要求1所述的測試方法,其特征在于所述腳本程序包括對表示消息交互順序和消息細節(jié)的測試腳本進行單獨編譯生成的測試組件。
4.如權利要求1所述的測試方法,其特征在于所述虛擬測試單元調用API函數(shù)或數(shù)據(jù)庫讀取函數(shù)從參數(shù)表中動態(tài)獲得消息參數(shù)值。
5.如權利要求4所述的測試方法,其特征在于所述API函數(shù)或數(shù)據(jù)庫讀取函數(shù)以測試用例Id,消息Id,參數(shù)Id,運行態(tài)虛擬測試單元Id作為參數(shù)。
6.如權利要求2所述的測試方法,其特征在于所述測試用例Id唯一標識一個測試用例,取值與測試設計者事先規(guī)劃測試用例時使用的Id保持一一對應。
7.如權利要求2所述的測試方法,其特征在于所述消息Id在測試用例范圍內唯一標識一個消息,且由測試設計人員在測試用例設計階段規(guī)劃和定義、在測試腳本設計和消息參數(shù)編輯階段引用。
8.如權利要求2所述的測試方法,其特征在于所述虛擬測試單元Id在測試用例設計階段確定用于標識虛擬測試單元,在測試運行時由虛擬測試單元從測試環(huán)境中獲得。
9.一種軟件系統(tǒng)多用戶特性的測試系統(tǒng),包括虛擬測試單元,用于模擬被測軟件系統(tǒng)的各種用戶類型;控制單元,用于控制虛擬測試單元的執(zhí)行和終止;測試監(jiān)控單元,用于監(jiān)控多個控制單元和虛擬測試單元的測試進程。
10.如權利要求9所述的測試系統(tǒng),其特征在于所述控制單元將測試流程與消息流程分開,將測試流程的腳本程序導入每個虛擬測試單元;所述測試監(jiān)控單元確定不同用戶測試用例中消息流程的消息參數(shù),并生成包含消息參數(shù)的參數(shù)表;所述虛擬測試單元從參數(shù)表中獲得與用戶消息流程對應的參數(shù)值;并運行所述腳本程序執(zhí)行用戶測試流程。
全文摘要
本發(fā)明公開了一種軟件系統(tǒng)多用戶特性的測試方法,包括將消息流程與消息參數(shù)值分開,將測試流程的運行實例導入每個虛擬測試單元;確定測試用例消息中不同用戶的消息參數(shù),并生成包含消息參數(shù)值的參數(shù)表;虛擬測試單元從參數(shù)表中獲得與用戶、測試用例、消息參數(shù)對應的參數(shù)值;虛擬測試單元運行所述腳本程序執(zhí)行用戶測試流程。相應地,本發(fā)明的軟件系統(tǒng)多用戶特性的測試系統(tǒng)包括虛擬測試單元、控制單元和測試監(jiān)控單元。本發(fā)明能夠靈活地模擬用戶與被測軟件系統(tǒng)之間的消息流程,降低了軟件系統(tǒng)的開發(fā)和測試執(zhí)行/評估階段的工作量和工作強度。
文檔編號H04Q7/34GK101034370SQ20061005819
公開日2007年9月12日 申請日期2006年3月10日 優(yōu)先權日2006年3月10日
發(fā)明者張勵虎 申請人:大唐移動通信設備有限公司