張 鵬 電子科學研究院
?
基于消息轉(zhuǎn)發(fā)軟件的自動化測試研究
張 鵬 電子科學研究院
【文章摘要】
【關鍵詞】
軟件自動化測試;測試用例生成;測試用例設計;測試策略
消息轉(zhuǎn)發(fā)軟件的測試內(nèi)容大部分具有重復性的特點,如果單純靠人工測試,不僅耗費較多的人力和財力去設計和執(zhí)行測試用例,而且不能保證消息接口各個字段值內(nèi)容的正確性。實現(xiàn)消息轉(zhuǎn)發(fā)軟件的自動化測試能夠極大的減少測試的隨機性和盲目性,減弱人為因素對測試過程的影響,極大的較少重復性的工作量,降低測試過程中出錯的頻率,因此消息轉(zhuǎn)發(fā)軟件的自動化測試體現(xiàn)了它的有效性和實用性。
消息轉(zhuǎn)發(fā)軟件自動化測試是整個軍用系統(tǒng)自動化測試的一個縮影,作為一個軍用軟件系統(tǒng)的一個消息轉(zhuǎn)發(fā)軟件,對消息轉(zhuǎn)發(fā)軟件的正確性及測試充分性提出了很高的要求。眾所周之,軍事電子信息系統(tǒng)具有體系復雜、處理數(shù)據(jù)量大、人機交互頻繁、評估結果直觀等特點。所以為了滿足要求,必須對消息轉(zhuǎn)發(fā)軟件進行詳細而全面的測試。
消息轉(zhuǎn)發(fā)自動化測試主要為了實現(xiàn)以下幾方面的優(yōu)點:提高消息轉(zhuǎn)發(fā)軟件測試工作率;較少消息轉(zhuǎn)發(fā)軟件測試的研發(fā)成本;完成消息轉(zhuǎn)發(fā)軟件手工測試難以完成的測試;消息轉(zhuǎn)發(fā)軟件的質(zhì)量可信度極大增強;軟件自動化測試可以多次進行重復性的測試?;谙⑥D(zhuǎn)發(fā)軟件的自動化測試及測試用例生成系統(tǒng)能夠很好的實現(xiàn)上述的幾個方面優(yōu)點。
消息轉(zhuǎn)發(fā)軟件實現(xiàn)的主要實現(xiàn)以下功能。
(a)頭文件轉(zhuǎn)換XML文件
頭文件轉(zhuǎn)化XML的過程分為單個文件轉(zhuǎn)XML文件及多個頭文件批量轉(zhuǎn)換XML文件。能夠?qū)Y構體或聯(lián)合體的頭文件按照ENUM值進行拆分轉(zhuǎn)換為XML文件。
(b)解析XML文件以及輸入消息參數(shù)
自動化測試軟件可以解析XML文件,并且將解析結果存入MySql數(shù)據(jù)庫,測試人員在界面輸入各個字段的合法值范圍,軟件自動根據(jù)設置的參數(shù)值范圍及字段類型進行測試用例的腳本生成。關聯(lián)應答消息,輸入應答消息字段的合格判據(jù)。
(c)解析比對消息內(nèi)容
自動化測試軟件向消息轉(zhuǎn)發(fā)軟件發(fā)送激勵消息,同時自動化測試軟件記錄應答時間,隨時捕獲收到的消息轉(zhuǎn)發(fā)軟件的應答消息,并對捕獲到的應答消息進行解析,比對應答消息和發(fā)送消息的各個字段的參數(shù)值是否滿足合格判據(jù)。
(d)自動化生成測試用例
根據(jù)測試人員設計的測試腳本,按照測試人員制定的測試策略,自動生成測試用例。同時,軟件跟蹤記錄實際測試結果,隨時寫入數(shù)據(jù)庫中,按照測試人員實際需求,可隨時導出軟件測試用例記錄及自動生成每一輪次的軟件問題報告單。
自動化測試軟件通過中間件軟件與消息轉(zhuǎn)發(fā)軟件進行消息的交互,主要調(diào)用中間件的send()函數(shù)和get()函數(shù),交互的消息主要包括發(fā)送消息和捕獲消息兩類。自動化測試軟件搭建MySql數(shù)據(jù)庫,用于存儲解析頭文件產(chǎn)生的XML內(nèi)容。每一個數(shù)據(jù)表中將消息ΙD號作為外鍵。數(shù)據(jù)庫按照頭文件字段屬性進行內(nèi)容的存儲,一個XML文件生成一個數(shù)據(jù)表。軟件能夠?qū)崿F(xiàn)自動填充消息字段值的功能,測試執(zhí)行者設計的測試策略為:按照邊界值法進行測試用例的設計,同時測試人員可以通過鼠標選擇測試用例腳本的執(zhí)行場景,軟件根據(jù)場景的內(nèi)容進行測試用例的執(zhí)行。自動化軟件將場景中的測試腳本自動生成測試用例,可支持生成Word版本和Excel版本。同時Word版和Excel版的測試用例能夠被導入到自動化軟件中,自動生成測試腳本。自動化測試軟件可進行測試記錄的增加、刪除、修改和查看操作。測試人員按照用戶需求和接口需求等需求文檔,逐一輸入各個發(fā)送消息字段值的范圍,同時,設置被測軟件應答該消息的間隔時間,激勵消息發(fā)出后,軟件設置一個時間戳,當接到應答消息后,獲取間隔時間參數(shù),獲取的間隔時間與需求文檔提出的間隔時間參數(shù)做比較。
收到的應答消息后,首先確認消息ΙD,按照消息ΙD尋找數(shù)據(jù)表,按照數(shù)據(jù)表各列的字段大小進行內(nèi)容解析,解析完成后,將解析結果與判斷準則比對,與判斷準則不一致的地方做不一致記錄,并隨時寫入數(shù)據(jù)表中,然后進行下一個測試用例腳本的執(zhí)行,重復上述執(zhí)行步驟。執(zhí)行完成后可自行導出測試用例記錄,生成軟件問題報告單。自動化測試軟件提供測試用例記錄、軟件問題報告單模板的定制功能,測試人員也可以將模板導入到自動化測試工具中。
自動化測試軟件可以實現(xiàn)測試人員的管理功能,測試人員選取自己的賬戶去登錄,選擇測試場景,將需要執(zhí)行的測試腳本拖拽到場景中,執(zhí)行過程中,軟件根據(jù)場景的要求進行測試腳本的執(zhí)行。
本自動化測試軟件基于B/S模式實現(xiàn)的,能夠兼容ΙE6.0及以上版本,F(xiàn)ireFox 3.0及以上版本。將自動化測試軟件布置在測試服務器上,測試人員可以在任意一臺計算機上訪問測試服務,只需配置被測軟件的ΙPV4地址和端口號,便可進行網(wǎng)路層的連接。
測試人員在編寫腳本過程中,一定要編歷到消息的每一個字段值,在保存字段值的時候,自動化測試軟件會自動判斷每一個字段值范圍有無輸入正確,若測試人員輸入不正確或未輸入,軟件自動給出錯誤提示,測試人員根據(jù)錯誤提示進行字段值范圍的輸入,重復上述步驟,直至消息的各個字段值輸入正確。
利用自動化測試軟件能夠很快的完成測試執(zhí)行工作,保證了測試節(jié)點,提高了測試的效率。本款自動化測試軟件的優(yōu)點是:當某些字段值未輸入范圍時,可以根據(jù)消息字段的類型自動輸入一個正常值和一個越界值,同時提示測試人員字段范圍異常。經(jīng)過長時間的對消息轉(zhuǎn)發(fā)軟件的測試,發(fā)現(xiàn)自動化測試只能減輕人工測試的負擔,但并不能完全的替代人工測試,本軟件暫不能解決激勵消息發(fā)送后無應答和激勵消息發(fā)送后多條應答的情況,需要測試人員自己去分析判斷。
【參考文獻】
[1] 王鵬.軍用電子信息系統(tǒng)測試評估工具的研究和實踐.中國電子科學研究院學報,2007,2(1):73-79.
[2] 季淑引.軟件自動化測試工具的應用研究[J] 科技向?qū)?2012.20: 59.
消息轉(zhuǎn)發(fā)軟件是整個系統(tǒng)軟件中的一個配置項軟件,其涉及到的消息交互很多,而且消息中包含的字段值比較復雜,人工測試很難對消息中各個字段值的正確性與否進行全面準確的測試,以及人工設計測試用例的工作量也非常大,研發(fā)一款基于消息轉(zhuǎn)發(fā)軟件自動化測試及生成工具顯得很有必要。