歡迎您訪問鄭州興邦電子股份有限公司官方網站!
    阿里巴巴誠信通企業
    全國咨詢熱線:40000-63966
    興邦電子,中國水控機第一品牌

    聯系興邦電子

    全國咨詢熱線:40000-63966

    售后:0371-55132951/55132952

    工廠:河南省 鄭州市 高新區蓮花街電子電器產業園

    日志分析法在一卡通系統測試中的應用

    文章出處:http://www.xujuanpiju.com 作者: 人氣: 發表時間:2011年09月10日

    [文章內容簡介]:本文針對一卡通系統的特點,提出了支持層次化狀態機的擴展日志分析法,增加了執行自定義函數的功能,使之更適用于一卡通系統的測試,并基于該方法實現了測試系統,在一卡通系統測試中取得了良好的效果。

        摘要:針對一卡通系統測試中因輸出結果數量大、系統關聯復雜、測試準則構造困難等因素而導致的難以判斷輸出結果正確性的問題, 提出了擴展日志分析法。介紹了實現該方法的系統結構和所使用的測試狀態機, 引入了一種自行開發的支持層次化狀態機、具有執行自定義函數功能的狀態機定義語言, 增強了擴展日志分析法測試復雜大型系統的能力。該方法在一卡通系統測試中得到了應用。
        關鍵詞:軟件測試;日志分析法;狀態機;狀態機定義語言

        市政交通一卡通系統OCMS( One Card Multi-service System,以下簡稱“一卡通系統”) 是一套與人們日常生活關系密切的電子交易系統。該系統要求較高的安全性和可靠性, 需要進行嚴格的測試。測試中遇到了輸出結果數據量大、系統關聯復雜、測試準則( Test Oracle) 構造困難等問題, 難以判斷輸出結果的正確性。手工測試方法效率低、易出錯; 使用基于測試準則的方法如回歸測試法[ 1] 、斷言測試法[ 2 ] 等也具有一定的困難。日志分析法( Log File Analysis, LFA) [ 3] 使用狀態機分析被測系統的日志實現軟件測試, 具有構造簡單、描述能力強等特點, 較適合應用于關聯復雜的系統測試中。本文針對一卡通系統的特點, 提出了支持層次化狀態機的擴展日志分析法, 增加了執行自定義函數的功能, 使之更適用于一卡通系統的測試, 并基于該方法實現了測試系統, 在一卡通系統測試中取得了良好的效果。

        1 研究背景

        1. 1 一卡通系統

        一卡通系統是一個小金額電子交易系統, 由消費IC 卡、消費機具( 出租車計價器、公交刷卡機等) 、客戶端( 出租客戶端,公交客戶端等) 、各級分中心、總中心以及數據傳輸網絡等組成。消費者在進行交易時, 消費機具對消費IC 卡進行讀寫, 產生交易數據。交易數據定期從消費機具中采集到客戶端中, 通過計算機網絡逐級上傳, 最終匯總到總中心, 進行結算劃賬。

        一卡通系統內部關聯復雜, 對可靠性和安全性的要求較高, 中間輸出和最終輸出與前期的運行情況關系緊密、變化大。這些特點要求系統在開發、試運行以及升級維護時, 都需要進行大量的測試, 要求使用的測試方法效率高, 能適應復雜系統和輸出結果與前期關系緊密的情況。

        1. 2 日志分析法

        日志分析法是文獻[ 3] 中提出的一種用狀態機對被測系統的日志進行分析實現軟件測試的方法。該方法要求被測系統產生文本日志, 記錄測試過程中的輸入、輸出、函數調用以及返回值等重要事件。日志被輸入狀態機進行分析, 實現測試。狀態機由測試人員根據被測系統的需求轉換生成。當狀態機在日志的驅動下終止于終態時, 說明日志符合狀態機的要求,即被測系統符合需求; 否則, 不符合要求。

        日志分析法與回歸測試法、斷言測試法等相比, 具有效率高、構造簡單、依據狀態機判斷測試輸出的正確性等特點。但文獻[ 3] 中定義狀態機的LFAL 語言描述能力受限: 對狀態機不能進行層次化的設計, 不宜描述大型系統; 沒有執行自定義函數等功能, 對復雜系統描述困難。

        2 基于日志分析法的一卡通測試系統

        2. 1 總體結構

        基于日志分析法并針對一卡通系統的特點而提出了擴展日志分析法, 同時實現了基于該方法的一卡通日志分析測試系統———OLFTS( OCMS Log File Testing System) 。系統總體結構如圖1 所示。

     OLFTS 總體結構

    圖 1 OLFTS 總體結構

        首先, 將一卡通系統的一個或一組相近的需求轉換為由函數調用、消息發送等描述的執行過程, 并確定函數調用等發生的條件以及返回值等。然后, 用狀態機定義語言TSML( TestingState Machine Language) 定義一個描述該過程的狀態機( . tsm文件) , 并輸入狀態機編譯器, 將其編譯為某種語言源代碼( 以Java語言為例) , 作為中間結果。調用相應語言的編譯器將中間結果編譯為可執行文件, 最終得到可執行的狀態機。測試時, 先將狀態機可執行文件輸入狀態機容器中, 再將被測系統的日志文件輸入狀態機容器。狀態機容器負責讀取日志、創建狀態機, 廣播日志, 收集狀態機輸出和產生測試報告等工作。狀態機在日志驅動下進行狀態轉移, 并向容器輸出信息。

        2. 2 日志

        測試需要的日志由被測系統產生。每一個日志行表示一個事件的發生, 例如函數調用、消息發送等。日志行由行單元組成, 行單元之間用空格分隔。每個日志行開頭的行單元稱為關鍵行單元, 必須是一個字符串, 通常是被調用函數的名稱、消息名等。緊挨關鍵行單元之后的行單元一般是被調用函數的返回值或消息參數等, 再后面是一些表示其他信息的行單元。狀態機通過日志行的關鍵行單元來判斷是否對其敏感。對敏感日志行, 通過判斷函數的返回值或消息參數以及其他信息決定如何進行狀態轉移。出租客戶端數據采集過程的日志片斷如下:

        2. 3 測試狀態機與狀態機定義語言

        有限狀態機FSM( Finite State Machine, 以下簡稱狀態機) [ 4]被廣泛應用于諸多領域, 如電路設計[ 5] 、通信協議測試[ 6] 等。普通的狀態機所提供的描述能力有限, 用來描述軟件的執行過程能力尚顯不足。結合文獻[ 3] 中所使用的狀態機和文獻[ 7]中提出的PSM( Protocol State Machine) , OLFTS 中定義了一種新的狀態機———測試狀態機TSM( Testing State Machine) 。

        定義1 TSM。一個TSM為一個11 元組:

        與普通狀態機相比, TSM增加了謂詞集和動作集, 采用了更嚴格的轉移函數, 描述能力更強, 比普通狀態機更適合描述軟件的執行過程、應用于軟件測試。

        雖然可采用普通的計算機語言實現TSM, 但為了方便TSM的設計, OLFTS 中開發了一種支持層次化設計和自定義函數的狀態機定義語言TSML。其EBNF[ 8] 描述如下所示:

    第1頁第2頁

    本文關鍵詞:日志分析法,一卡通系統,一卡通測試,測試狀態機
    回到頂部