鬼佬大哥大
  • / 22
  • 下載費用:30 金幣  

基于關鍵字驅動的城軌傳動控制單元自動化測試方法.pdf

摘要
申請專利號:

CN201510470965.1

申請日:

2015.08.04

公開號:

CN105068927A

公開日:

2015.11.18

當前法律狀態:

駁回

有效性:

無權

法律詳情: 發明專利申請公布后的駁回IPC(主分類):G06F 11/36申請公布日:20151118|||實質審查的生效IPC(主分類):G06F 11/36申請日:20150804|||公開
IPC分類號: G06F11/36 主分類號: G06F11/36
申請人: 株洲南車時代電氣股份有限公司
發明人: 蔣明睿; 費巧玲; 李寧; 劉鵬翔; 賀曉梅; 陳明奎; 段靜
地址: 412001湖南省株洲市石峰區時代路169號
優先權:
專利代理機構: 湖南兆弘專利事務所43008 代理人: 周長清; 譚武藝
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510470965.1

授權公告號:

||||||

法律狀態公告日:

2019.01.18|||2015.12.16|||2015.11.18

法律狀態類型:

發明專利申請公布后的駁回|||實質審查的生效|||公開

摘要

本發明公開了一種基于關鍵字驅動的城軌傳動控制單元自動化測試方法,步驟包括:確定被測對象的關鍵字集;根據關鍵字集編寫測試腳本;建立基于關鍵字驅動的自動化測試框架,為自動化測試框架構造頂層測試數據表、中層測試數據表、底層測試數據表以及關鍵字支持庫;將測試腳本輸入自動化測試框架,針對測試腳本中的每一個對象關鍵字,基于自動化測試框架的測試驅動引擎依次調用各層驅動器查詢各層測試數據表中的內容,并調用關鍵字支持庫的底層函數輸出腳本底層執行序列文件并與被測對象直接交互執行測試。本發明具有對測試人員技能要求降低,測試腳本復用性高、可維護性和可移植性好,能夠降低測試腳本開發及維護的時間和成本的優點。

權利要求書

1.一種基于關鍵字驅動的城軌傳動控制單元自動化測試方法,其特征在于步驟包括:
1)確定被測對象的自動化測試范圍及包含對象關鍵字和動作關鍵字的關鍵字集;
2)根據關鍵字集中定義的關鍵字按照指定的腳本格式編寫測試腳本;
3)建立基于關鍵字驅動的自動化測試框架,所述基于關鍵字驅動的自動化測試框架中包
括用于依次解析測試腳本的測試驅動引擎,所述測試驅動引擎中包括用于根據頂層測試數據
表解析測試腳本的頂層驅動器、用于根據中層測試數據表解析測試腳本的中層驅動器以及用
于根據底層測試數據表解析測試腳本的底層驅動器;確定對象關鍵字對應對象所有相關聯的
IO信號,為所述基于關鍵字驅動的自動化測試框架構造頂層測試數據表、中層測試數據表、
底層測試數據表以及用于提供底層函數調用以寫入腳本底層執行序列文件的關鍵字支持庫,
所述頂層測試數據表包含所有對象關鍵字及其關聯的中層測試數據表索引的映射關系,所述
中層測試數據表包含對象關鍵字對應對象所有動作邏輯實現及其關聯的底層測試數據表索引
的映射關系,所述底層測試數據表提供了參數和關鍵字支持庫中底層函數之間的映射關系,
所述參數是為對象所有相關聯的IO信號的抽象表述;所述關鍵字支持庫封裝有與城軌傳動控
制單元中被測對象直接關聯的所有IO信號的底層函數和延時函數;
4)將測試腳本輸入基于關鍵字驅動的自動化測試框架,針對測試腳本中的每一個對象關
鍵字,基于關鍵字驅動的自動化測試框架的測試驅動引擎依次調用頂層驅動器查詢頂層測試
數據表中的內容、調用中層驅動器查詢中層測試數據表中的內容、調用底層驅動器查詢底層
測試數據表中的內容,調用關鍵字支持庫的底層函數輸出腳本底層執行序列文件并與被測對
象直接交互執行測試。
2.根據權利要求1所述的基于關鍵字驅動的城軌傳動控制單元自動化測試方法,其特征
在于,所述步驟1)的詳細步驟包括:
1.1)確定被測對象的自動化測試范圍,從自動化測試范圍中選擇一個待測需求點作為當
前待測需求點;
1.2)確定當前待測需求點的關鍵詞提取規則集;
1.3)根據關鍵詞提取規則集提取當前待測需求點的對象關鍵字和動作關鍵字,所述對象
關鍵字是從被測對象中抽象出的、涵蓋軟件需求中多個相關需求項點的邏輯描述,所述動作
關鍵字是對應特定對象所提供的動作描述,且動作的定義需要涵蓋對象所有能涉及到的可測
試點或測試類型;
1.4)將當前待測需求點的所有對象關鍵字和動作關鍵字進行優化合并,且將優化合并后
的結果添加至被測對象的關鍵字集;
1.5)判斷被測對象的關鍵字集是否已經覆蓋自動化測試范圍的所有待測需求點,如果已
經覆蓋自動化測試范圍的所有待測需求點,則跳轉執行步驟2);否則,從自動化測試范圍中
選擇下一個待測需求點作為當前待測需求點,并跳轉執行步驟1.2)。
3.根據權利要求2所述的基于關鍵字驅動的城軌傳動控制單元自動化測試方法,其特征
在于,所述步驟2)中按照指定的腳本格式編寫測試腳本時,測試腳本的每一行對應傳統測
試用例中的一個測試步驟,且每一行的格式中包含關鍵字集中定義的對象關鍵字、關鍵字集
中定義的動作關鍵字、以及用于作為對象所有相關聯的IO信號的抽象表述的可變參數。
4.根據權利要求3所述的基于關鍵字驅動的城軌傳動控制單元自動化測試方法,其特征
在于,所述步驟3)的關鍵字支持庫中,底層函數中包含與具體被測對象相關聯IO信號的讀
操作或者寫操作。
5.根據權利要求1~4中任意一項所述的基于關鍵字驅動的城軌傳動控制單元自動化測
試方法,其特征在于,所述步驟4)的詳細步驟包括:
4.1A)將測試腳本輸入基于關鍵字驅動的自動化測試框架,通過基于關鍵字驅動的自動
化測試框架初始化測試腳本的底層執行序列文件;
4.2A)通過基于關鍵字驅動的自動化測試框架的測試驅動引擎加載測試腳本,開始逐行
解析測試腳本,將測試腳本的第一行作為當前行,跳轉執行下一步;
4.3A)根據當前行的對象關鍵字查找頂層測試數據表,獲得指向包含動作關鍵詞的中層
測試數據表的索引;
4.4A)根據當前行的動作關鍵字查找中層測試數據表,定位測試業務邏輯的實現代碼段,
開始逐行解析子動作信息,將第一行子動作信息作為當前行子動作信息;
4.5A)獲得指向當前行子動作信息的各個參數的底層測試數據表的索引;
4.6A)查找底層測試數據表,根據中層測試數據表的參數和當前行子動作信息進行索引,
調用自動化測試框架的關鍵字支持庫中各IO信號底層函數的讀操作或者寫操作,將調用命令
寫入測試腳本的腳本底層執行序列文件;
4.7A)底層測試數據表搜索結束后,判斷是否仍有未解析完畢的子動作信息行,如果仍
有未解析完畢的子動作信息行,則選擇下一行子動作信息作為當前行子動作信息,并跳轉執
行步驟4.5A);否則跳轉執行下一步;
4.8A)判斷測試腳本是否仍有尚未解析的對象行,如果仍有尚未解析的對象行,則選擇
測試腳本的下一行作為當前行,跳轉執行步驟4.3A);否則跳轉執行下一步;
4.9A)輸出腳本底層執行序列文件與被測對象直接交互執行測試。
6.根據權利要求1~4中任意一項所述的基于關鍵字驅動的城軌傳動控制單元自動化測
試方法,其特征在于,所述步驟4)的詳細步驟包括:
4.1B)將測試腳本輸入基于關鍵字驅動的自動化測試框架,通過基于關鍵字驅動的自動
化測試框架初始化測試腳本的底層執行序列文件;
4.2B)通過基于關鍵字驅動的自動化測試框架的測試驅動引擎加載測試腳本,開始逐行
解析測試腳本,將測試腳本的第一行作為當前行,跳轉執行下一步;
4.3B)根據當前行的對象關鍵字查找頂層測試數據表,獲得指向包含動作關鍵詞的中層
測試數據表的索引;
4.4B)根據當前行的動作關鍵字查找中層測試數據表,定位測試業務邏輯的實現代碼段,
開始逐行解析子動作信息,將第一行子動作信息作為當前行子動作信息;
4.5B)獲得指向當前行子動作信息的各個參數的底層測試數據表的索引;
4.6B)查找底層測試數據表,根據中層測試數據表的參數和當前行子動作信息進行索引,
調用自動化測試框架的關鍵字支持庫中各IO信號底層函數的讀操作或者寫操作,將調用命令
寫入測試腳本的增量腳本底層執行序列文件,并輸出增量腳本底層執行序列文件與被測對象
直接交互執行測試;
4.7B)底層測試數據表搜索結束后,判斷是否仍有未解析完畢的子動作信息行,如果仍
有未解析完畢的子動作信息行,則選擇下一行子動作信息作為當前行子動作信息,并跳轉執
行步驟4.5B);否則跳轉執行下一步;
4.8B)判斷測試腳本是否仍有尚未解析的對象行,如果仍有尚未解析的對象行,則選擇
測試腳本的下一行作為當前行,跳轉執行步驟4.3B);否則結束并退出。

說明書

基于關鍵字驅動的城軌傳動控制單元自動化測試方法

技術領域

本發明涉及城軌的傳動控制單元(DriveControlUnit,簡稱DCU,一種運用于軌道交通
領域的牽引變流器上的控制器)軟件測試技術,具體涉及一種基于關鍵字驅動的城軌傳動控
制單元自動化測試方法。

背景技術

傳動控制單元(DCU)作為城軌車輛的關鍵設備之一,有著城軌車輛的“心臟”之稱。對
牽引變流器實施精準的控制時,DCU的邏輯控制功能相當重要,承擔著牽引系統管理和通訊
的重要功能,直接影響牽引變流器的功能、安全及效率。因此,對DCU的邏輯控制軟件進行
軟件測試也成為了保證軟件質量、提高DCU可靠性的重要手段。

隨著城軌領域市場擴張迅速、項目數量快速增長、開發進度日趨緊張,客戶對于牽引系
統產品質量、可靠性也提出了更加嚴苛的要求。目前采用人工測試的方式進行DCU測試越來
越面臨挑戰,由于其存在下述缺點:人工測試效率低下、回歸測試效率低下、測試用例編寫
工作量大、測試周期長以致測試不充分。這些問題的出現,迫使我們尋求更高效率的自動化
測試,期望減少重復工作、提升效率、降低成本。自動化測試是提高測試效率、降低重復勞
動的有效方式,目前正被廣泛應用。它能夠完成許多人工測試無法實現或難以實現的測試,
正確、合理的實施自動化測試,能夠快速、準確的對軟件進行測試,從而提高軟件質量,節
約開發成本,縮短產品發布周期。

目前常用的自動化測試方法大致分為三種:(1)第一種方法是采用測試工具的錄制-回放
功能,自動生成測試腳本。該方法實現簡單,但劣勢明顯:不具有邏輯判斷能力,可維護性
差,效率低下,代碼量大,兼容性差;其可維護性和可重用性都得不到保證。(2)第二種方
法是采用數據驅動測試技術(DataDrivenTesting,通過數據來驅動測試業務流的一種技術)
進行自動化測試。數據驅動技術的核心思想是將可變部分(數據)和不變部分(腳本)分離
以降低維護工作量。數據驅動腳本將測試輸入數據存儲在獨立的數據文件中,而不是綁定在
腳本中。這種方法最大的好處是可以用同一個腳本允許不同的數據進行測試;即使對數據進
行修改,也不必修改執行的腳本。該方法劣勢在于:初始建立的開銷較大,雖然實現了數據
與腳本的分離,但測試邏輯仍與腳本捆綁在一起,導致用戶無法自定義測試過程。(3)第三
種方法是采用關鍵字驅動測試技術(KeywordDrivenTesting,使用關鍵字來驅動測試業務流
的一種技術)進行自動化測試。關鍵字驅動方式的出現是對數據驅動方式的邏輯擴展,是通
過關鍵字“驅動”測試業務流的過程。該方式實現了測試腳本、測試數據、測試業務邏輯的分
離,解決了測試數據難以被修改和定制、測試腳本的可重用性、可維護性差的問題。它實現
了一種通用腳本就能驅動多種測試工具執行,弱化測試人員對特定測試工具語言開發腳本的
要求。關鍵字一邊可分為三類:被操作對象(Object)、動作(Action)和值(Value),用面
向對象形式可將其表現為Object.Action(Value)。測試腳本通過關鍵字集合的形式體現(測試
人員編寫腳本的過程就是使用各種關鍵字描述測試內容的過程),測試業務邏輯被封裝到關鍵
字中,形成數據文件,測試工具只要能夠解釋這些關鍵字即可對其應用自動化。關鍵字驅動
測試技術作為一種成熟的自動化測試方法,已經被業界廣泛的應用于Web等領域的GUI(圖
形用戶接口)測試中,隨之也出現了以QTP(即QuickTestProfessional軟件,一種具有關鍵
字驅動特色的功能測試工具,可應用于Web領域的GUI測試)為代表的功能測試工具。基于
關鍵字驅動的通用測試框架參見圖1。

如圖1所示,現有技術的關鍵字驅動的自動化測試方法的一般流程是通過將數據和關鍵
字集成在不同的數據表格中來決定測試業務流程,包含關鍵字的數據表格(上層測試數據表、
中層測試數據表、下層測試數據表)中關聯了測試業務邏輯和相應的測試數據,在腳本驅動
引擎的控制下,讀取數據文件,解析關鍵字并調用相應的關鍵字支持腳本,同時傳遞對象和
數據,通過關鍵字支持腳本的執行,實現與被測對象之間的數據交互,對比實際輸出和預期
輸出,將測試結果寫入測試報告。因此,數據文件中包含測試的業務邏輯,指定需要執行的
測試內容、測試步驟,而關鍵字支持腳本內包含與具體被測對象交互的底層邏輯,實現了腳
本、數據、業務的真正分離。

目前,城軌DCU的軟件測試以人工測試為主,自動化測試為輔。人工測試方式即由測試
人員編寫測試用例,利用配套開發的測試環境手動執行測試用例完成測試過程,存在人工測
試效率低下、回歸測試環節效率低下、測試用例編寫工作量大的缺點。自動化測試主要包括
應用NI公司的TestStand軟件(NI公司的一款自動化測試工具軟件,可配合labVIEW軟件開
發自動化測試系統)的自動化測試,該技術方案是配置TestStand測試工具和測試環境的接口,
集成公司自主研發的DCU純軟或者半實物仿真測試臺(即測試環境)軟件,并由測試人員利
用TestStand自帶的腳本開發環境開發并執行測試腳本,完成測試。但是,該技術方案在腳本
開發、維護方面存在劣勢:首先,測試人員開發腳本只能使用測試工具自帶的腳本開發環境,
需要測試人員具有一定的編程技能才能完成腳本開發,開發出來的測試腳本中沒有對測試數
據和測試業務邏輯進行分離,導致一旦需要變更測試就需要變更測試腳本,腳本維護工作量
大,可維護差;其次,測試腳本與被測對象之間耦合度高,測試腳本復用性差,同類項目之
間的測試腳本無法直接借用或維護使用,維護改造的難度和重新開發一套測試腳本的難度相
當,可維護性差。

發明內容

本發明要解決的技術問題是:針對現有技術的上述問題,提供一種適用于城軌傳動控制
單元的自動化測試,對測試人員開發腳本的技能要求降低,腳本易于維護修改,能夠適應不
同的測試環境或工具,達到自動化測試腳本復用性高、可維護性和可移植性好,能夠降低測
試腳本開發及維護的時間和成本的基于關鍵字驅動的城軌傳動控制單元自動化測試方法。

為了解決上述技術問題,本發明采用的技術方案為:

一種基于關鍵字驅動的城軌傳動控制單元自動化測試方法,步驟包括:

1)確定被測對象的自動化測試范圍及包含對象關鍵字和動作關鍵字的關鍵字集;

2)根據關鍵字集中定義的關鍵字按照指定的腳本格式編寫測試腳本;

3)建立基于關鍵字驅動的自動化測試框架,所述基于關鍵字驅動的自動化測試框架中包
括用于依次解析測試腳本的測試驅動引擎,所述測試驅動引擎中包括用于根據頂層測試數據
表解析測試腳本的頂層驅動器、用于根據中層測試數據表解析測試腳本的中層驅動器以及用
于根據底層測試數據表解析測試腳本的底層驅動器;確定對象關鍵字對應對象所有相關聯的
IO信號,為所述基于關鍵字驅動的自動化測試框架構造頂層測試數據表、中層測試數據表、
底層測試數據表以及用于提供底層函數調用以寫入腳本底層執行序列文件的關鍵字支持庫,
所述頂層測試數據表包含所有對象關鍵字及其關聯的中層測試數據表索引的映射關系,所述
中層測試數據表包含對象關鍵字對應對象所有動作邏輯實現及其關聯的底層測試數據表索引
的映射關系,所述底層測試數據表提供了參數和關鍵字支持庫中底層函數之間的映射關系,
所述參數是為對象所有相關聯的IO信號的抽象表述;所述關鍵字支持庫封裝有與城軌傳動控
制單元中被測對象直接關聯的所有IO信號的底層函數和延時函數;

4)將測試腳本輸入基于關鍵字驅動的自動化測試框架,針對測試腳本中的每一個對象關
鍵字,基于關鍵字驅動的自動化測試框架的測試驅動引擎依次調用頂層驅動器查詢頂層測試
數據表中的內容、調用中層驅動器查詢中層測試數據表中的內容、調用底層驅動器查詢底層
測試數據表中的內容,調用關鍵字支持庫的底層函數輸出腳本底層執行序列文件并與被測對
象直接交互執行測試。

優選地,所述步驟1)的詳細步驟包括:

1.1)確定被測對象的自動化測試范圍,從自動化測試范圍中選擇一個待測需求點作為當
前待測需求點;

1.2)確定當前待測需求點的關鍵詞提取規則集;

1.3)根據關鍵詞提取規則集提取當前待測需求點的對象關鍵字和動作關鍵字,所述對象
關鍵字是從被測對象中抽象出的、涵蓋軟件需求中多個相關需求項點的邏輯描述,所述動作
關鍵字是對應特定對象所提供的動作描述,且動作的定義需要涵蓋對象所有能涉及到的可測
試點或測試類型;

1.4)將當前待測需求點的所有對象關鍵字和動作關鍵字進行優化合并,且將優化合并后
的結果添加至被測對象的關鍵字集;

1.5)判斷被測對象的關鍵字集是否已經覆蓋自動化測試范圍的所有待測需求點,如果已
經覆蓋自動化測試范圍的所有待測需求點,則跳轉執行步驟2);否則,從自動化測試范圍中
選擇下一個待測需求點作為當前待測需求點,并跳轉執行步驟1.2)。

優選地,所述步驟2)中按照指定的腳本格式編寫測試腳本時,測試腳本的每一行對應
傳統測試用例中的一個測試步驟,且每一行的格式中包含關鍵字集中定義的對象關鍵字、關
鍵字集中定義的動作關鍵字、以及用于作為對象所有相關聯的IO信號的抽象表述的可變參
數。

優選地,所述步驟3)的關鍵字支持庫中,底層函數中包含與具體被測對象相關聯的信
號的讀操作或者寫操作。

優選地,所述步驟4)的詳細步驟包括:

4.1A)將測試腳本輸入基于關鍵字驅動的自動化測試框架,通過基于關鍵字驅動的自動
化測試框架初始化測試腳本的底層執行序列文件;

4.2A)通過基于關鍵字驅動的自動化測試框架的測試驅動引擎加載測試腳本,開始逐行
解析測試腳本,將測試腳本的第一行作為當前行,跳轉執行下一步;

4.3A)根據當前行的對象關鍵字查找頂層測試數據表,獲得指向包含動作關鍵詞的中層
測試數據表的索引;

4.4A)根據當前行的動作關鍵字查找中層測試數據表,定位測試業務邏輯的實現代碼段,
開始逐行解析子動作信息,將第一行子動作信息作為當前行子動作信息;

4.5A)獲得指向當前行子動作信息的各個參數的底層測試數據表的索引;

4.6A)查找底層測試數據表,根據中層測試數據表的參數和當前行子動作信息進行索引,
調用自動化測試框架的關鍵字支持庫中各IO信號底層函數的讀操作或者寫操作,將調用命令
寫入測試腳本的腳本底層執行序列文件;

4.7A)底層測試數據表搜索結束后,判斷是否仍有未解析完畢的子動作信息行,如果仍
有未解析完畢的子動作信息行,則選擇下一行子動作信息作為當前行子動作信息,并跳轉執
行步驟4.5A);否則跳轉執行下一步;

4.8A)判斷測試腳本是否仍有尚未解析的對象行,如果仍有尚未解析的對象行,則選擇
測試腳本的下一行作為當前行,跳轉執行步驟4.3A);否則跳轉執行下一步;

4.9A)輸出腳本底層執行序列文件與被測對象直接交互執行測試。

或者優選地,所述步驟4)的詳細步驟包括:

4.1B)將測試腳本輸入基于關鍵字驅動的自動化測試框架,通過基于關鍵字驅動的自動
化測試框架初始化測試腳本的底層執行序列文件;

4.2B)通過基于關鍵字驅動的自動化測試框架的測試驅動引擎加載測試腳本,開始逐行
解析測試腳本,將測試腳本的第一行作為當前行,跳轉執行下一步;

4.3B)根據當前行的對象關鍵字查找頂層測試數據表,獲得指向包含動作關鍵詞的中層
測試數據表的索引;

4.4B)根據當前行的動作關鍵字查找中層測試數據表,定位測試業務邏輯的實現代碼段,
開始逐行解析子動作信息,將第一行子動作信息作為當前行子動作信息;

4.5B)獲得指向當前行子動作信息的各個參數的底層測試數據表的索引;

4.6B)查找底層測試數據表,根據中層測試數據表的參數和當前行子動作信息進行索引,
調用自動化測試框架的關鍵字支持庫中各IO信號底層函數的讀操作或者寫操作,將調用命令
寫入測試腳本的增量腳本底層執行序列文件,并輸出增量腳本底層執行序列文件與被測對象
直接交互執行測試;

4.7B)底層測試數據表搜索結束后,判斷是否仍有未解析完畢的子動作信息行,如果仍
有未解析完畢的子動作信息行,則選擇下一行子動作信息作為當前行子動作信息,并跳轉執
行步驟4.5B);否則跳轉執行下一步;

4.8B)判斷測試腳本是否仍有尚未解析的對象行,如果仍有尚未解析的對象行,則選擇
測試腳本的下一行作為當前行,跳轉執行步驟4.3B);否則結束并退出。

本發明基于關鍵字驅動的城軌傳動控制單元自動化測試方法具有下述優點:

1、本發明通過建立基于關鍵字驅動的自動化測試框架,并為基于關鍵字驅動的自動化測
試框架構造頂層測試數據表、中層測試數據表、底層測試數據表以及用于提供底層函數調用
以寫入腳本底層執行序列文件的關鍵字支持庫,實現了測試腳本、測試數據、測試業務邏輯
的三者分離,達到關鍵字驅動設計的目標,提高測試腳本的復用性、可維護性。當不同項目
的測試業務邏輯存在變更時,只需要修改中層測試數據表中對應對象、對應動作的子動作序
列內容即可;當不同項目的數據通訊協議存在變更時,只需要修改底層測試數據表和關鍵字
支持庫中對應參數的函數調用地址映射關系即可。

2、本發明根據關鍵字集中定義的關鍵字按照指定的腳本格式編寫測試腳本,能夠降低測
試人員編寫測試腳本的技能要求,測試腳本采用類似表格的形式編寫,測試人員只需要熟悉
關鍵字的使用,即使沒有自動化測試經驗,也可以簡易快速地進行測試腳本開發。

3、本發明通過建立基于關鍵字驅動的自動化測試框架,能夠兼容不同的DCU程序測試
環境或測試工具,提高測試腳本的可移植性。當同一個項目需要在不同的測試環境上測試時,
采用同樣格式的測試腳本不需要做任何修改,只需要配合開發對應測試環境的關鍵字支持庫,
開發對應的底層函數實現代碼即可。

附圖說明

圖1為現有技術的關鍵詞驅動通用框架結構示意圖。

圖2為本發明實施例方法的基本流程示意圖。

圖3為本發明實施例方法步驟1)的流程示意圖。

圖4為本發明實施例方法中自動化測試框架的結構示意圖。

圖5為本發明實施例方法中步驟4)的流程示意圖。

圖6為本發明實施例方法中步驟4)的測試數據表解析流程示意圖。

圖7為本發明實施例方法中采用的腳本逐條執行的原理示意圖。

圖8為本發明實施例方法中可選用的腳本流水線執行的原理示意圖。

具體實施方式

如圖2所示,本實施例基于關鍵字驅動的城軌傳動控制單元自動化測試方法的步驟包括:

1)確定被測對象的自動化測試范圍及包含對象關鍵字和動作關鍵字的關鍵字集;

2)根據關鍵字集中定義的關鍵字按照指定的腳本格式編寫測試腳本;

3)建立基于關鍵字驅動的自動化測試框架,基于關鍵字驅動的自動化測試框架中包括用
于依次解析測試腳本的測試驅動引擎,測試驅動引擎中包括用于根據頂層測試數據表解析測
試腳本的頂層驅動器、用于根據中層測試數據表解析測試腳本的中層驅動器以及用于根據底
層測試數據表解析測試腳本的底層驅動器;確定對象關鍵字對應對象所有相關聯的IO信號,
為基于關鍵字驅動的自動化測試框架構造頂層測試數據表、中層測試數據表、底層測試數據
表以及用于提供底層函數調用以寫入腳本底層執行序列文件的關鍵字支持庫,頂層測試數據
表包含所有對象關鍵字及其關聯的中層測試數據表索引的映射關系,中層測試數據表包含對
象關鍵字對應對象所有動作邏輯實現及其關聯的底層測試數據表索引的映射關系,底層測試
數據表提供了參數和關鍵字支持庫中底層函數之間的映射關系,參數是為對象所有相關聯的
IO信號的抽象表述;關鍵字支持庫封裝有與城軌傳動控制單元中被測對象直接關聯的所有IO
信號的底層函數和延時函數;

4)將測試腳本輸入基于關鍵字驅動的自動化測試框架,針對測試腳本中的每一個對象關
鍵字,基于關鍵字驅動的自動化測試框架的測試驅動引擎依次調用頂層驅動器查詢頂層測試
數據表中的內容、調用中層驅動器查詢中層測試數據表中的內容、調用底層驅動器查詢底層
測試數據表中的內容,調用關鍵字支持庫的底層函數輸出腳本底層執行序列文件與被測對象
(城軌傳動控制單元DCU程序)直接交互執行測試。

目前城軌領域DCU軟件測試主要是對DCU邏輯控制軟件測試,而DCU邏輯控制軟件
作為DCU的系統管理和通訊控制的關鍵軟件,涉及的對外IO信號數量多,且邏輯復雜。關
鍵字分對象關鍵字和動作關鍵字兩類,對象關鍵字是從被測對象中抽象出的、涵蓋軟件需求
中多個相關需求項點的邏輯描述,動作關鍵字是對應特定對象所提供的動作來描述的,動作
的定義需要涵蓋對象所有能涉及到的可測試點或測試類型。

如圖3所示,步驟1)的詳細步驟包括:

1.1)確定被測對象的自動化測試范圍,從自動化測試范圍中選擇一個待測需求點作為當
前待測需求點;分析被測對象的需求分析說明書、相應的內部協議、通訊協議等資料,梳理、
確認被測對象所有的IO信號,明確自動化測試范圍。例如,需求中的故障診斷、主回路控制
部分是優先級高的關鍵功能,可列入自動化測試范圍。

1.2)確定當前待測需求點的關鍵詞提取規則集;關鍵字提取規則集根據每個項目的需求
的不同有所不同,但是都可以依據一個通用的規則來抽象提取,可以根據實際情況補充完善。
本實施例中使用的通用規則表如表1所示。

表1:通用規則表。


參見表1可知,本實施例使用的通用規則表包含RULE1~RULE5共5條規則。需要說
明的是,上述表1僅僅為本實施例中關鍵詞提取規則集的舉例說明,而本實施例的實施例并
不僅僅限制于表1中所列舉的關鍵詞提取規則。

1.3)根據關鍵詞提取規則集提取當前待測需求點的對象關鍵字和動作關鍵字,對象關鍵
字是從被測對象中抽象出的、涵蓋軟件需求中多個相關需求項點的邏輯描述,動作關鍵字是
對應特定對象所提供的動作描述,且動作的定義需要涵蓋對象所有能涉及到的可測試點或測
試類型。

1.4)將當前待測需求點的所有對象關鍵字和動作關鍵字進行優化合并,且將優化合并后
的結果添加至被測對象的關鍵字集;進行優化合并主要用于對目前產生的關鍵字集合進行分
析,看是否存在合并的可能性,參考依據例如,“某對象定義的兩個動作關鍵字,內在的邏輯
實現是相同的,區別只在于測試數據提供的不同,可以考慮將這兩個動作關鍵字合并”。

1.5)判斷被測對象的關鍵字集是否已經覆蓋自動化測試范圍的所有待測需求點,如果已
經覆蓋自動化測試范圍的所有待測需求點,則跳轉執行步驟2);否則,從自動化測試范圍中
選擇下一個待測需求點作為當前待測需求點,并跳轉執行步驟1.2)。

例如,故障診斷部分需求,提供了包括逆變過流、斬波過流故障在內的多個故障診斷邏
輯,因多個故障相互獨立,可將每個故障對應一個對象關鍵字,“逆變過流”“斬波過流”...,
對應故障的可測試類型無外乎功能測試、邊界測試、恢復性測試、安全性測試等,本質上都
是圍繞故障觸發、故障復位進行的,所以,動作關鍵字可以定義為“觸發”“復位”兩個。相
應的,主回路控制部分,需求中涉及斷路器閉合邏輯和斷開邏輯條件,可考慮涉及“閉合”
“斷開”的動作關鍵字,驗證閉合、斷開的邏輯條件,但因為斷開延時時間驗證這一個可測
試點無法合并至上述兩個邏輯條件中,所以單獨提取一個動作關鍵字。提取關鍵字后情況如
表2所示。

表2:提取得到的關鍵字集表。

對象關鍵字
動作關鍵字
逆變過流
觸發、復位
斬波過流
觸發、復位
斷路器
閉合、斷開、斷開延時時間驗證
...
....

測試人員確定完成關鍵字集后,需要按照特定的腳本格式,使用已定義的關鍵字編寫測
試腳本。腳本中需提供以下內容:用例描述:對應測試用例的用例描述,說明該測試腳本關
注的測試點是什么;對象:填入關鍵字集中的對象關鍵字;動作:填入關鍵字集中的動作關
鍵字;參數:參數表實際對應為測試腳本指定的測試數據,參數個數是可變的,但是根據項
目實際情況,參數不可能超過10個,可約定最大數量;本實施例中,步驟2)中按照指定的
腳本格式編寫測試腳本時,測試腳本的每一行對應傳統測試用例中的一個測試步驟,且每一
行的格式中包含關鍵字集中定義的對象關鍵字、關鍵字集中定義的動作關鍵字、以及用于作
為對象所有相關聯的IO信號的抽象表述的可變參數,本實施例測試腳本的期望格式如表3
所示,測試腳本的每一行具體為“對象+動作+可變參數表”形式,其中對象是指對象關鍵詞,
動作為動作關鍵字,可變參數表是指用于作為對象所有相關聯的IO信號的抽象表述的可變參
數,能夠對應傳統測試用例中的一個步驟,當測試用例包含多個測試步驟時,對應的測試腳
本中也會存在多行“對象+動作+可變參數表”與之對應。

表3:測試腳本的期望格式表。


參見表3,表頭的“用例描述”用于按照手動測試用例內容填寫,僅作描述;表頭的“對
象”用于填寫自動化測試框架中提取的對象關鍵字;表頭的“動作”用于填寫自動化測試框
架中提取的動作關鍵字,對應抽象對象能提供的動作,動作封裝了測試業務邏輯,配合參數
表描述測試執行內容;表頭的參數部分(參數1~參數n)是提供給某對象-某動作測試執行
時需要的測試數據,參數個數是可變的,當不需要提供參數時可缺省。以故障診斷部分的“繼
電器卡分故障”為例(以下簡稱卡分故障),該需求點的測試腳本共5條(TS-xxx表示第xxx
條測試腳本),對該需求點的可測試點進行了全覆蓋,測試腳本內容見表4。該故障邏輯描述
為:“繼電器啟動命令有效且繼電器狀態無效,維持超過1.5s則觸發故障,故障后,給出故障
顯示,斬波使能無效,電機轉矩降至0”“故障后,撤銷故障條件即可復位,手動復位無效”。

表4:繼電器卡分故障的測試腳本示例。


如圖4所示,本實施例基于關鍵字驅動的自動化測試框架中包括用于依次解析測試腳本
的測試驅動引擎,測試驅動引擎中包括用于根據頂層測試數據表解析測試腳本的頂層驅動器、
用于根據中層測試數據表解析測試腳本的中層驅動器以及用于根據底層測試數據表解析測試
腳本的底層驅動器;基于現有的關鍵字驅動測試技術,結合城軌領域DCU自動化測試的實際
需求,構建一套基于關鍵字驅動的自動化測試框架,定義功能明確、結構清晰、易于使用的
關鍵字集,設計包含三層結構的測試數據表和關鍵字底層支持庫,利用測試驅動引擎解析特
定格式的測試腳本,驅動測試業務流程的進行,從而達到自動化測試的目的。自動化測試框
架外部關聯對象有兩個:即作為輸入的特定格式的測試腳本和特定項目相關的被測對象DCU
程序。自動化測試框架內部對象可以分為四類,即包含關鍵字及其邏輯實現的三層測試數據
表(頂層、中層、底層測試數據表)、包含三層驅動器的腳本驅動引擎、測試相關的支持組件
(關鍵字支持庫、測試支持庫、腳本底層執行序列文件)以及測試數據文件。四類對象的主
要功能如下:(1)三層測試數據表作為腳本驅動引擎解析測試腳本的支持文件,是封裝了關
鍵字邏輯實現的核心文件。凡是在測試腳本中體現的對象或動作關鍵字,都能夠在三層測試
數據表中找到對應信息,測試業務邏輯被封裝在測試數據表中,實現了測試業務邏輯和測試
腳本的分離。(2)腳本驅動引擎提供了測試腳本的關鍵字解析功能。關鍵字解析的過程就是
根據腳本中的關鍵字調用三層驅動器查找對應三層測試數據表,生成可執行的腳本底層執行
序列文件的過程。(3)測試相關的支持組件是一組工具或服務,為測試腳本解析和執行過程
中提供需要的所有的資源,包括測試數據中參數信息的調用、腳本底層執行序列文件內容的
增量生成、關鍵字底層執行代碼實現、腳本底層執行序列文件的執行(即與實際的被測對象
交互,完成實際測試執行過程)、測試過程中日志記錄、報告生成等功能。(4)測試數據文件
提供對應測試腳本在解析和執行過程中需用到的參數信息,將測試腳本中的數據分離并存儲
于單獨數據文件中,單獨管理,實現了數據驅動測試的方式(即,保持測試腳本內容不變,
僅僅改變關鍵的測試數據文件內容,實現不同的測試效果)。因此,自動化測試框架實現自動
化測試的工作流程為:(1)讀入測試人員編寫好的測試腳本及其關聯的測試數據文件,并初
始化腳本底層執行序列文件,并準備解析;(2)測試驅動引擎逐行解析測試腳本中的關鍵字,
并調用三層驅動器采用類似“樹遍歷”方式搜索三層測試數據表,從測試數據文件中讀取相
應的參數信息,增量的生成可執行的腳本底層執行序列文件;(3)可執行的腳本底層執行序
列文件由測試支持庫負責測試執行及執行過程監控、數據記錄、報告生成等功能。在構建基
于關鍵字驅動的自動化測試框架的過程中,核心設計內容包括:關鍵字的設計方法、關鍵字
的解析策略、關鍵字支持庫構建。本實施例基于關鍵字驅動的城軌傳動控制單元自動化測試
方法的關鍵字設計主要包括三方面的內容:(1)關鍵字定義:根據城軌領域DCU的軟件需求
文檔、相關通訊協議資料,被測對象相關的所有IO信號(數字量、模擬量),抽象提取兩類
關鍵字,確定對象關鍵字和動作關鍵字集合。(2)期望腳本格式定義:在確定關鍵字集合的
基礎上,約定期望腳本格式,測試人員按照格式編寫測試腳本。(3)測試數據表構造:根據
一定格式構造頂層、中層、底層測試數據表,腳本驅動引擎調用測試數據表解析關鍵字。

頂層測試數據表提供了所有對象及其關聯的中層測試數據表索引的映射關系,在腳本解
析的過程中由頂層驅動器檢索該表內容,本實施例的頂層測試數據表定義參見表5。

表5:頂層測試數據表定義。


需要說明的是,頂層測試數據表中的中層表為中層測試數據表的簡稱。

中層測試數據表是包含某對象所有動作邏輯實現的表格,對應需求文檔中需求點的邏輯
描述,中層表都有對應對象的動作的測試邏輯實現(對應子動作序列序列:1、2、3...),中
層表還提供了參數的底層測試數據表的索引,在腳本解析的過程中由中層驅動器檢索該表內
容。本實施例的中層測試數據表定義參見表6。

表6:中層測試數據表定義。


需要說明的是,中層測試數據表的底層表為底層測試數據表的簡稱。

底層測試數據表提供了參數和關鍵字支持庫中的底層函數之間的映射關系。參數名是對
所有IO信號的抽象描述,不涉及具體實現,而關鍵字支持庫中的底層函數是具體操控所有IO
信號的,所以,底層測試數據表相當于建立了所有IO信號的抽象描述和具體實現的橋梁,隔
離了IO信號的具體實現對測試腳本、對測試業務的影響,提高了測試腳本的可移植性。本實
施例的底層測試數據表定義參見表7。

表7:底層測試數據表定義。


仍以“繼電器卡分故障”為例,構造出的頂層、中層、底層測試數據表如表8~表10所
示,索引地址仍以“&”符號示例。

表8:“繼電器卡分故障”的頂層測試數據表。


表9:“繼電器卡分故障”的中層測試數據表。


表10:“繼電器卡分故障”的底層測試數據表。


需要說明的是,本實施例中頂層測試數據表、中層測試數據表、底層測試數據表中需要
填入相應表格的索引地址、或者參數的索引地址,目前的方式是直接在表格中插入鏈接方式
建立映射關系。毫無疑問,也可以根據需要來單獨維護一個索引表、專門維護頂層測試數據
表、中層測試數據表、底層測試數據表之間的索引地址。

本實施例步驟3)的關鍵字支持庫中,底層函數中包含與具體被測對象相關聯的IO信號
的讀操作或者寫操作,且IO信號可以是城軌傳動控制單元被測對象的數字量IO信號或模擬
量IO信號。關鍵字支持庫是很多直接與被測對象交互的IO信號的底層實現函數構成的集合,
城軌領域DCU邏輯控制軟件涉及的IO信號只有數字量、模擬量兩種,IO信號可分為讀操作
或寫操作,分別對應函數Read()和Write()。關鍵字支持庫中除了提供所有IO信號的底層函
數實現外,還存在一些特殊的函數實現,這類特殊函數用于控制測試流程。例如控制信號延
時的延時函數,這類函數會直接影響實際測試執行中信號的時序關系,也被封裝為函數存儲
于關鍵字支持庫中。關鍵字支持庫封裝了與被測對象直接關聯的所有IO信號的底層函數,底
層函數中包含了與具體被測對象相關聯的代碼,這樣做的目的是當被測對象需要借助不同的
測試工具或環境進行測試時,只需要構建與不同測試工具或環境相適應的關鍵字支持庫,修
改底層函數代碼實現,就能使測試腳本適應不同的測試工具或測試環境,增強了測試腳本的
可移植性。

如圖5和圖6所示,步驟4)的詳細步驟包括:

4.1A)將測試腳本輸入基于關鍵字驅動的自動化測試框架,通過基于關鍵字驅動的自動
化測試框架初始化測試腳本的底層執行序列文件;

4.2A)通過基于關鍵字驅動的自動化測試框架的測試驅動引擎加載測試腳本,開始逐行
解析測試腳本,將測試腳本的第一行作為當前行,跳轉執行下一步;

4.3A)根據當前行的對象關鍵字查找頂層測試數據表,獲得指向包含動作關鍵詞的中層
測試數據表的索引;

4.4A)根據當前行的動作關鍵字查找中層測試數據表,定位測試業務邏輯的實現代碼段,
開始逐行解析子動作信息,當第一行子動作信息作為當前行子動作信息;

4.5A)獲得指向當前行子動作信息的各個參數的底層測試數據表的索引;

4.6A)查找底層測試數據表,根據中層測試數據表的參數和當前行子動作信息進行索引,
調用自動化測試框架的關鍵字支持庫中各IO信號底層函數的讀操作或者寫操作,將調用命令
寫入測試腳本的腳本底層執行序列文件;

4.7A)底層測試數據表搜索結束后,判斷是否仍有未解析完畢的子動作信息行,如果仍
有未解析完畢的子動作信息行,則選擇下一行子動作信息作為當前行子動作信息,并跳轉執
行步驟4.5A);否則跳轉執行下一步;

4.8A)判斷測試腳本是否仍有尚未解析的對象行,如果仍有尚未解析的對象行,則選擇
測試腳本的下一行作為當前行,跳轉執行步驟4.3A);否則跳轉執行下一步;

4.9A)輸出腳本底層執行序列文件與被測對象直接交互執行測試。

參見圖6,關鍵字解析的過程就是在三層測試數據表中索引對應關鍵字的過程,從關鍵
字到關鍵字的邏輯實現,再到關鍵字的底層實現,生成可執行的腳本底層執行序列文件。

實施例二:

本實施例與實施例一基本相同,其不同點為步驟4)的詳細步驟不同。

本實施例中,步驟4)的詳細步驟包括:

4.1B)將測試腳本輸入基于關鍵字驅動的自動化測試框架,通過基于關鍵字驅動的自動
化測試框架初始化測試腳本的底層執行序列文件;

4.2B)通過基于關鍵字驅動的自動化測試框架的測試驅動引擎加載測試腳本,開始逐行
解析測試腳本,將測試腳本的第一行作為當前行,跳轉執行下一步;

4.3B)根據當前行的對象關鍵字查找頂層測試數據表,獲得指向包含動作關鍵詞的中層
測試數據表的索引;

4.4B)根據當前行的動作關鍵字查找中層測試數據表,定位測試業務邏輯的實現代碼段,
開始逐行解析子動作信息,當第一行子動作信息作為當前行子動作信息;

4.5B)獲得指向當前行子動作信息的各個參數的底層測試數據表的索引;

4.6B)查找底層測試數據表,根據中層測試數據表的參數和當前行子動作信息進行索引,
調用自動化測試框架的關鍵字支持庫中各IO信號底層函數的讀操作或者寫操作,將調用命令
寫入測試腳本的增量腳本底層執行序列文件,并輸出增量腳本底層執行序列文件與被測對象
直接交互執行測試;

4.7B)底層測試數據表搜索結束后,判斷是否仍有未解析完畢的子動作信息行,如果仍
有未解析完畢的子動作信息行,則選擇下一行子動作信息作為當前行子動作信息,并跳轉執
行步驟4.5B);否則跳轉執行下一步;

4.8B)判斷測試腳本是否仍有尚未解析的對象行,如果仍有尚未解析的對象行,則選擇
測試腳本的下一行作為當前行,跳轉執行步驟4.3B);否則結束并退出。

本實施例通過增量生成部分腳本底層執行序列文件的同時進行測試執行,做到邊解析邊
執行的效果,使得測試效率相對實施例一更高。

需要說明的是,由于因腳本解析和腳本底層執行序列文件執行過程可以并行,因此上述
實施例既可以采用圖7所示的腳本逐條執行的方式,即先完成腳本1的解析和執行,再完成
腳步2的解析和執行,依次類推。此外,也可以采用圖8所示的腳本流水線執行的方式,即
腳本1的執行、腳本2的解析同時進行,從而可以使得測試效率更高。此外,上述實施例的
應用領域目前僅涉及城軌領域,毫無疑問,還可以進一步擴展應用到軌道交通領域的動車、
機車類別的軟件測試。

以上所述僅是本發明的優選實施方式,本發明的保護范圍并不僅局限于上述實施例,凡
屬于本發明思路下的技術方案均屬于本發明的保護范圍。應當指出,對于本技術領域的普通
技術人員來說,在不脫離本發明原理前提下的若干改進和潤飾,這些改進和潤飾也應視為本
發明的保護范圍。

關 鍵 詞:
基于 關鍵字 驅動 傳動 控制 單元 自動化 測試 方法
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:基于關鍵字驅動的城軌傳動控制單元自動化測試方法.pdf
鏈接地址:http://www.wwszu.club/p-6385916.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大