基于關(guān)鍵字驅(qū)動(dòng)的城軌傳動(dòng)控制單元自動(dòng)化測(cè)試方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及城軌的傳動(dòng)控制單元(Drive Control Unit,簡(jiǎn)稱D⑶,一種運(yùn)用于軌 道交通領(lǐng)域的牽引變流器上的控制器)軟件測(cè)試技術(shù),具體涉及一種基于關(guān)鍵字驅(qū)動(dòng)的城 軌傳動(dòng)控制單元自動(dòng)化測(cè)試方法。
【背景技術(shù)】
[0002] 傳動(dòng)控制單元(D⑶)作為城軌車輛的關(guān)鍵設(shè)備之一,有著城軌車輛的"心臟"之 稱。對(duì)牽引變流器實(shí)施精準(zhǔn)的控制時(shí),DCU的邏輯控制功能相當(dāng)重要,承擔(dān)著牽引系統(tǒng)管理 和通訊的重要功能,直接影響牽引變流器的功能、安全及效率。因此,對(duì)DCU的邏輯控制軟 件進(jìn)行軟件測(cè)試也成為了保證軟件質(zhì)量、提高DCU可靠性的重要手段。
[0003] 隨著城軌領(lǐng)域市場(chǎng)擴(kuò)張迅速、項(xiàng)目數(shù)量快速增長(zhǎng)、開發(fā)進(jìn)度日趨緊張,客戶對(duì)于牽 引系統(tǒng)產(chǎn)品質(zhì)量、可靠性也提出了更加嚴(yán)苛的要求。目前采用人工測(cè)試的方式進(jìn)行DCU測(cè) 試越來越面臨挑戰(zhàn),由于其存在下述缺點(diǎn):人工測(cè)試效率低下、回歸測(cè)試效率低下、測(cè)試用 例編寫工作量大、測(cè)試周期長(zhǎng)以致測(cè)試不充分。這些問題的出現(xiàn),迫使我們尋求更高效率的 自動(dòng)化測(cè)試,期望減少重復(fù)工作、提升效率、降低成本。自動(dòng)化測(cè)試是提高測(cè)試效率、降低 重復(fù)勞動(dòng)的有效方式,目前正被廣泛應(yīng)用。它能夠完成許多人工測(cè)試無法實(shí)現(xiàn)或難以實(shí)現(xiàn) 的測(cè)試,正確、合理的實(shí)施自動(dòng)化測(cè)試,能夠快速、準(zhǔn)確的對(duì)軟件進(jìn)行測(cè)試,從而提高軟件質(zhì) 量,節(jié)約開發(fā)成本,縮短產(chǎn)品發(fā)布周期。
[0004]目前常用的自動(dòng)化測(cè)試方法大致分為三種:(1)第一種方法是采用測(cè)試工具的錄 制-回放功能,自動(dòng)生成測(cè)試腳本。該方法實(shí)現(xiàn)簡(jiǎn)單,但劣勢(shì)明顯:不具有邏輯判斷能力, 可維護(hù)性差,效率低下,代碼量大,兼容性差;其可維護(hù)性和可重用性都得不到保證。(2)第 二種方法是采用數(shù)據(jù)驅(qū)動(dòng)測(cè)試技術(shù)(Data Driven Testing,通過數(shù)據(jù)來驅(qū)動(dòng)測(cè)試業(yè)務(wù)流的 一種技術(shù))進(jìn)行自動(dòng)化測(cè)試。數(shù)據(jù)驅(qū)動(dòng)技術(shù)的核心思想是將可變部分(數(shù)據(jù))和不變部 分(腳本)分離以降低維護(hù)工作量。數(shù)據(jù)驅(qū)動(dòng)腳本將測(cè)試輸入數(shù)據(jù)存儲(chǔ)在獨(dú)立的數(shù)據(jù)文件 中,而不是綁定在腳本中。這種方法最大的好處是可以用同一個(gè)腳本允許不同的數(shù)據(jù)進(jìn)行 測(cè)試;即使對(duì)數(shù)據(jù)進(jìn)行修改,也不必修改執(zhí)行的腳本。該方法劣勢(shì)在于:初始建立的開銷較 大,雖然實(shí)現(xiàn)了數(shù)據(jù)與腳本的分離,但測(cè)試邏輯仍與腳本捆綁在一起,導(dǎo)致用戶無法自定義 測(cè)試過程。(3)第三種方法是采用關(guān)鍵字驅(qū)動(dòng)測(cè)試技術(shù)(Keyword Driven Testing,使用關(guān) 鍵字來驅(qū)動(dòng)測(cè)試業(yè)務(wù)流的一種技術(shù))進(jìn)行自動(dòng)化測(cè)試。關(guān)鍵字驅(qū)動(dòng)方式的出現(xiàn)是對(duì)數(shù)據(jù)驅(qū) 動(dòng)方式的邏輯擴(kuò)展,是通過關(guān)鍵字"驅(qū)動(dòng)"測(cè)試業(yè)務(wù)流的過程。該方式實(shí)現(xiàn)了測(cè)試腳本、測(cè) 試數(shù)據(jù)、測(cè)試業(yè)務(wù)邏輯的分離,解決了測(cè)試數(shù)據(jù)難以被修改和定制、測(cè)試腳本的可重用性、 可維護(hù)性差的問題。它實(shí)現(xiàn)了一種通用腳本就能驅(qū)動(dòng)多種測(cè)試工具執(zhí)行,弱化測(cè)試人員對(duì) 特定測(cè)試工具語(yǔ)言開發(fā)腳本的要求。關(guān)鍵字一邊可分為三類:被操作對(duì)象(Object)、動(dòng)作 (Action)和值(Value),用面向?qū)ο笮问娇蓪⑵浔憩F(xiàn)為Object. Action (Value)。測(cè)試腳本 通過關(guān)鍵字集合的形式體現(xiàn)(測(cè)試人員編寫腳本的過程就是使用各種關(guān)鍵字描述測(cè)試內(nèi) 容的過程),測(cè)試業(yè)務(wù)邏輯被封裝到關(guān)鍵字中,形成數(shù)據(jù)文件,測(cè)試工具只要能夠解釋這些 關(guān)鍵字即可對(duì)其應(yīng)用自動(dòng)化。關(guān)鍵字驅(qū)動(dòng)測(cè)試技術(shù)作為一種成熟的自動(dòng)化測(cè)試方法,已經(jīng) 被業(yè)界廣泛的應(yīng)用于Web等領(lǐng)域的GUI (圖形用戶接口)測(cè)試中,隨之也出現(xiàn)了以QTP (即 Quick Test Professional軟件,一種具有關(guān)鍵字驅(qū)動(dòng)特色的功能測(cè)試工具,可應(yīng)用于Web 領(lǐng)域的GUI測(cè)試)為代表的功能測(cè)試工具?;陉P(guān)鍵字驅(qū)動(dòng)的通用測(cè)試框架參見圖1。
[0005] 如圖1所示,現(xiàn)有技術(shù)的關(guān)鍵字驅(qū)動(dòng)的自動(dòng)化測(cè)試方法的一般流程是通過將數(shù)據(jù) 和關(guān)鍵字集成在不同的數(shù)據(jù)表格中來決定測(cè)試業(yè)務(wù)流程,包含關(guān)鍵字的數(shù)據(jù)表格(上層測(cè) 試數(shù)據(jù)表、中層測(cè)試數(shù)據(jù)表、下層測(cè)試數(shù)據(jù)表)中關(guān)聯(lián)了測(cè)試業(yè)務(wù)邏輯和相應(yīng)的測(cè)試數(shù)據(jù), 在腳本驅(qū)動(dòng)引擎的控制下,讀取數(shù)據(jù)文件,解析關(guān)鍵字并調(diào)用相應(yīng)的關(guān)鍵字支持腳本,同時(shí) 傳遞對(duì)象和數(shù)據(jù),通過關(guān)鍵字支持腳本的執(zhí)行,實(shí)現(xiàn)與被測(cè)對(duì)象之間的數(shù)據(jù)交互,對(duì)比實(shí)際 輸出和預(yù)期輸出,將測(cè)試結(jié)果寫入測(cè)試報(bào)告。因此,數(shù)據(jù)文件中包含測(cè)試的業(yè)務(wù)邏輯,指定 需要執(zhí)行的測(cè)試內(nèi)容、測(cè)試步驟,而關(guān)鍵字支持腳本內(nèi)包含與具體被測(cè)對(duì)象交互的底層邏 輯,實(shí)現(xiàn)了腳本、數(shù)據(jù)、業(yè)務(wù)的真正分離。
[0006] 目前,城軌DCU的軟件測(cè)試以人工測(cè)試為主,自動(dòng)化測(cè)試為輔。人工測(cè)試方式即 由測(cè)試人員編寫測(cè)試用例,利用配套開發(fā)的測(cè)試環(huán)境手動(dòng)執(zhí)行測(cè)試用例完成測(cè)試過程,存 在人工測(cè)試效率低下、回歸測(cè)試環(huán)節(jié)效率低下、測(cè)試用例編寫工作量大的缺點(diǎn)。自動(dòng)化測(cè) 試主要包括應(yīng)用NI公司的TestStand軟件(NI公司的一款自動(dòng)化測(cè)試工具軟件,可配合 IabVIEW軟件開發(fā)自動(dòng)化測(cè)試系統(tǒng))的自動(dòng)化測(cè)試,該技術(shù)方案是配置TestStand測(cè)試工具 和測(cè)試環(huán)境的接口,集成公司自主研發(fā)的DCU純軟或者半實(shí)物仿真測(cè)試臺(tái)(即測(cè)試環(huán)境) 軟件,并由測(cè)試人員利用TestStand自帶的腳本開發(fā)環(huán)境開發(fā)并執(zhí)行測(cè)試腳本,完成測(cè)試。 但是,該技術(shù)方案在腳本開發(fā)、維護(hù)方面存在劣勢(shì):首先,測(cè)試人員開發(fā)腳本只能使用測(cè)試 工具自帶的腳本開發(fā)環(huán)境,需要測(cè)試人員具有一定的編程技能才能完成腳本開發(fā),開發(fā)出 來的測(cè)試腳本中沒有對(duì)測(cè)試數(shù)據(jù)和測(cè)試業(yè)務(wù)邏輯進(jìn)行分離,導(dǎo)致一旦需要變更測(cè)試就需要 變更測(cè)試腳本,腳本維護(hù)工作量大,可維護(hù)差;其次,測(cè)試腳本與被測(cè)對(duì)象之間耦合度高,測(cè) 試腳本復(fù)用性差,同類項(xiàng)目之間的測(cè)試腳本無法直接借用或維護(hù)使用,維護(hù)改造的難度和 重新開發(fā)一套測(cè)試腳本的難度相當(dāng),可維護(hù)性差。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明要解決的技術(shù)問題是:針對(duì)現(xiàn)有技術(shù)的上述問題,提供一種適用于城軌傳 動(dòng)控制單元的自動(dòng)化測(cè)試,對(duì)測(cè)試人員開發(fā)腳本的技能要求降低,腳本易于維護(hù)修改,能夠 適應(yīng)不同的測(cè)試環(huán)境或工具,達(dá)到自動(dòng)化測(cè)試腳本復(fù)用性高、可維護(hù)性和可移植性好,能夠 降低測(cè)試腳本開發(fā)及維護(hù)的時(shí)間和成本的基于關(guān)鍵字驅(qū)動(dòng)的城軌傳動(dòng)控制單元自動(dòng)化測(cè) 試方法。
[0008] 為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
[0009] -種基于關(guān)鍵字驅(qū)動(dòng)的城軌傳動(dòng)控制單元自動(dòng)化測(cè)試方法,步驟包括:
[0010] 1)確定被測(cè)對(duì)象的自動(dòng)化測(cè)試范圍及包含對(duì)象關(guān)鍵字和動(dòng)作關(guān)鍵字的關(guān)鍵字 集;
[0011] 2)根據(jù)關(guān)鍵字集中定義的關(guān)鍵字按照指定的腳本格式編寫測(cè)試腳本;
[0012] 3)建立基于關(guān)鍵字驅(qū)動(dòng)的自動(dòng)化測(cè)試框架,所述基于關(guān)鍵字驅(qū)動(dòng)的自動(dòng)化測(cè)試框 架中包括用于依次解析測(cè)試腳本的測(cè)試驅(qū)動(dòng)引擎,所述測(cè)試驅(qū)動(dòng)引擎中包括用于根據(jù)頂層 測(cè)試數(shù)據(jù)表解析測(cè)試腳本的頂層驅(qū)動(dòng)器、用于根據(jù)中層測(cè)試數(shù)據(jù)表解析測(cè)試腳本的中層驅(qū) 動(dòng)器以及用于根據(jù)底層測(cè)試數(shù)據(jù)表解析測(cè)試腳本的底層驅(qū)動(dòng)器;確定對(duì)象關(guān)鍵字對(duì)應(yīng)對(duì)象 所有相關(guān)聯(lián)的IO信號(hào),為所述基于關(guān)鍵字驅(qū)動(dòng)的自動(dòng)化測(cè)試框架構(gòu)造頂層測(cè)試數(shù)據(jù)表、中 層測(cè)試數(shù)據(jù)表、底層測(cè)試數(shù)據(jù)表以及用于提供底層函數(shù)調(diào)用以寫入腳本底層執(zhí)行序列文件 的關(guān)鍵字支持庫(kù),所述頂層測(cè)試數(shù)據(jù)表包含所有對(duì)象關(guān)鍵字及其關(guān)聯(lián)的中層測(cè)試數(shù)據(jù)表索 引的映射關(guān)系,所述中層測(cè)試數(shù)據(jù)表包含對(duì)象關(guān)鍵字對(duì)應(yīng)對(duì)象所有動(dòng)作邏輯實(shí)現(xiàn)及其關(guān)聯(lián) 的底層測(cè)試數(shù)據(jù)表索引的映射關(guān)系,所述底層測(cè)試數(shù)據(jù)表提供了參數(shù)和關(guān)鍵字支持庫(kù)中底 層函數(shù)之間的映射關(guān)系,所述參數(shù)是為對(duì)象所有相關(guān)聯(lián)的IO信號(hào)的抽象表述;所述關(guān)鍵字 支持庫(kù)封裝有與城軌傳動(dòng)控制單元中被測(cè)對(duì)象直接關(guān)聯(lián)的所有IO信號(hào)的底層函數(shù)和延時(shí) 函數(shù);
[0013] 4)將測(cè)試腳本輸入基于關(guān)鍵字驅(qū)動(dòng)的自動(dòng)化測(cè)試框架,針對(duì)測(cè)試腳本中的每一個(gè) 對(duì)象關(guān)鍵字,基于關(guān)鍵字驅(qū)動(dòng)的自動(dòng)化測(cè)試框架的測(cè)試驅(qū)動(dòng)引擎依次調(diào)用頂層驅(qū)動(dòng)器查詢 頂層測(cè)試數(shù)據(jù)表中的內(nèi)容、調(diào)用中層驅(qū)動(dòng)器查詢中層測(cè)試數(shù)據(jù)表中的內(nèi)容、調(diào)用底層驅(qū)動(dòng) 器查詢底層測(cè)試數(shù)據(jù)表中的內(nèi)容,調(diào)用關(guān)鍵字支持庫(kù)的底層函數(shù)輸出腳本底層執(zhí)行序列文 件并與被測(cè)對(duì)象直接交互執(zhí)行測(cè)試。
[0014] 優(yōu)選地,所述步驟1)的詳細(xì)步驟包括:
[0015] 1. 1)確定被測(cè)對(duì)象的自動(dòng)化測(cè)試范圍,從自動(dòng)化測(cè)試范圍中選擇一個(gè)待測(cè)需求點(diǎn) 作為當(dāng)前待測(cè)需求點(diǎn);
[0016] 1. 2)確定當(dāng)前待測(cè)需求點(diǎn)的關(guān)鍵詞提取規(guī)則集;
[0017] 1. 3)根據(jù)關(guān)鍵詞提取規(guī)則集提取當(dāng)前待測(cè)需求點(diǎn)的對(duì)象關(guān)