国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種軟件測試的方法及裝置的制作方法

      文檔序號:6463808閱讀:195來源:國知局
      專利名稱:一種軟件測試的方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及測試領(lǐng)域,特別是涉及一種軟件測試的方法及裝置。
      背景技術(shù)
      軟件測試是軟件開發(fā)過程的重要組成部分,是在軟件在投入運(yùn)行前, 對軟件的需求分析、設(shè)計規(guī)格說明和編碼的最終復(fù)審,是軟件質(zhì)量保證 的關(guān)鍵步驟。可以看出,軟件測試是為了發(fā)現(xiàn)軟件中存在的錯誤而執(zhí)行 測試腳本的過程。軟件測試的主要內(nèi)容是驗(yàn)證和確認(rèn),驗(yàn)證是保證軟件 可以執(zhí)行預(yù)期的測試流程,確認(rèn)是為了證實(shí)在一個給定的外部環(huán)境中軟 件邏輯的正確性,保證軟件可以以正確的方式執(zhí)行測試腳本。
      現(xiàn)有技術(shù)在對軟件進(jìn)行測試的過程中,測試腳本通常根據(jù)測試用例
      由測試工具(例如Robot或WinRunner )進(jìn)行錄制,錄制過程為啟動 功能測試工具,選擇錄制功能,依照測試用例逐步地操作被測試的軟件, 測試工具可以以腳本語言的形式記錄操作過程。當(dāng)錄制完成之后,軟件 開發(fā)人員可以對錄制的腳本進(jìn)行適當(dāng)修改,如增加上下文驗(yàn)證、思考時 間等,然后執(zhí)行所述測試腳本,可以在被測軟件上模擬已經(jīng)記錄的鍵盤 或鼠標(biāo)操作。
      但是該軟件測試的方法也存在不可避免的缺點(diǎn),即是在錄制測試腳 本時需要軟件開發(fā)人員預(yù)先操作相應(yīng)的被測軟件,并在錄制測試腳本 后,手工進(jìn)行相應(yīng)的修改和編輯才能執(zhí)行所述測試腳本,以完成軟件測 試的任務(wù),這種手工編寫測試腳本對軟件進(jìn)行測試的方法,使得軟件測 試的效率極其低下。
      總之,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是如 何能夠提出 一種軟件測試的方法,用以解決在軟件測試過程中需要手工 編寫測試腳本使得軟件測試效率低下的問題。

      發(fā)明內(nèi)容
      本發(fā)明所要解決的技術(shù)問題是提供一種軟件測試的方法,用以提高 軟件測試效率。
      本發(fā)明的另一個目的是將上述構(gòu)思應(yīng)用于具體的應(yīng)用環(huán)境中,提供 一種軟件測試的裝置,從而保證該方法的實(shí)現(xiàn)和應(yīng)用。
      為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種軟件測試方法,包

      建立界面元素庫和動作元素庫,所述界面元素庫存儲被測軟件的界 面元素,所述動作元素庫存儲用于操作所述界面元素的動作參數(shù),所述 動作參數(shù)包括動作名稱和動作執(zhí)行腳本;
      按照預(yù)定義的測試邏輯,從所述界面元素庫和動作元素庫中提取所 述測試邏輯所需的界面元素和動作元素,生成測試用例;
      將測試用例轉(zhuǎn)換為自動化測試腳本,解析執(zhí)行所述自動化測試腳 本,在被測軟件上完成相應(yīng)操作。
      優(yōu)選的,所述測試邏輯包括多條測試子邏輯,所述生成測試用例包

      根據(jù)所述界面元素和動作元素生成測試用例模板; 在所述測試用例模板中,分別定義各個測試子邏輯所要求的測試輸
      入數(shù)據(jù)和預(yù)期輸出結(jié)果;
      組合所述測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果形成測試用例。
      優(yōu)選的,所述測試用例模板以二維輸入表格的形式通過界面展示。
      優(yōu)選的,所述界面元素和動作元素為被測軟件一窗口中的界面元素
      和動作元素。
      優(yōu)選的,所述界面元素包括界面元素的名稱、類型和標(biāo)識。
      優(yōu)選的,所述界面元素為控件,所述界面元素的名稱為控件名稱, 所述界面元素的標(biāo)識為所述控件在工具語言中的定義。
      優(yōu)選的,所述將測試用例轉(zhuǎn)換為測試腳本包括
      讀取所述測試用例中的界面元素名稱、動作名稱、測試輸入數(shù)據(jù)和 預(yù)期輸出結(jié)果; 素庫中匹配,獲得相應(yīng)的界面元素標(biāo)識和動作執(zhí)行腳本;
      將所述界面元素名稱和標(biāo)識組合成映射文件;
      將所述界面元素名稱、動作執(zhí)行腳本、測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)
      果組合生成中間腳本;
      通過所述映射文件置換所述中間腳本中的界面元素,動態(tài)得到自動 化測試腳本。
      本發(fā)明實(shí)施例還提供了一種軟件測試裝置,包括 建立模塊,用于建立界面元素庫和動作元素庫,所述界面元素庫存 儲被測軟件的界面元素,所述動作元素庫存儲用于操作所述界面元素的 動作參數(shù),所述動作參數(shù)包括動作名稱和動作執(zhí)行腳本;
      提取模塊,用于按照預(yù)定義的測試邏輯,從所述界面元素庫和動作 元素庫中提取所述測試邏輯所需的界面元素和動作元素;
      生成測試用例模塊,用于依據(jù)所述界面元素和動作元素生成測試用
      例;
      轉(zhuǎn)換測試腳本模塊,用于將所述測試用例轉(zhuǎn)換為自動化測試腳本; 解析執(zhí)行模塊,用于解析執(zhí)行所述自動化測試腳本,在被測軟件上 完成相應(yīng)操作。
      優(yōu)選的,所述生成測試用例模塊包括
      生成模板子模塊,用于根據(jù)所述界面元素和動作元素生成測試用例 模板;
      定義子模塊,用于在所述測試用例模板中,分別定義各個測試子邏 輯所要求的測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;
      組合子模塊,用于組合所述測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果形成測試 用例。
      優(yōu)選的,所述界面元素包括界面元素的名稱、類型和標(biāo)識。 優(yōu)選的,所述界面元素為控件,所述界面元素的名稱為控件名稱, 所述界面元素的標(biāo)識為所述控件在工具語言中的定義。 優(yōu)選的,所述轉(zhuǎn)換測試腳本模塊包括
      讀取子模塊,用于讀取所述測試用例中的界面元素名稱、動作名稱、
      測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;
      元素庫和動作元素庫中匹配,獲得相應(yīng)的界面元素標(biāo)識和動作l丸行腳 本;
      生成映射文件子模塊,用于將所述界面元素名稱和標(biāo)識組合成映射 文件;
      生成中間腳本子模塊,用于將所述界面元素名稱、動作執(zhí)行腳本、 測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果組合生成中間腳本;
      生成測試腳本子模塊,用于通過所述映射文件置換所述中間腳本中 的界面元素,動態(tài)得到自動化測試腳本。
      本發(fā)明通過建立界面元素庫和動作元素庫,所述界面元素庫存儲被 測軟件的界面元素,所述動作元素庫存儲用于操作所述界面元素的動作 參數(shù),并按照預(yù)定義的測試邏輯,從所述界面元素庫和動作元素庫中提 取相應(yīng)的界面元素和動作元素,生成測試用例,然后將測試用例轉(zhuǎn)換為 自動化測試腳本,最后解析執(zhí)行所述自動化測試腳本,在被測軟件上完 成相應(yīng)操作,使得軟件開發(fā)人員不需要手工編輯測試腳本,可以在被測 軟件上模擬鍵盤輸入、鼠標(biāo)點(diǎn)擊等實(shí)際操作,大大提高了軟件的測試效 率,也節(jié)約了軟件開發(fā)的大量資源。


      圖1是本發(fā)明的一種軟件測試的方法實(shí)施例1的流程圖; 圖2是本發(fā)明的一種軟件測試的方法實(shí)施例2的流程圖; 圖3是本發(fā)明的一個具體例子中一個界面元素庫的示意圖; 圖4 (a)和圖4(b)是本發(fā)明的一個具體例子中動作元素庫的示 意圖5是本發(fā)明的一個具體例子中一個測試用例模板的示意圖; 圖6是本發(fā)明的一個具體例子中 一個測試用例的示意圖; 圖7是本發(fā)明的一個具體例子中一個映射文件的示意圖;圖8是本發(fā)明的 一 個具體例子中將測試用例轉(zhuǎn)換為中間腳本時的界
      面示意圖9是本發(fā)明的一個具體例子中一個中間腳本的示意圖10是本發(fā)明的一個具體例子中執(zhí)行中間腳本的界面示意圖11是本發(fā)明的一個具體例子中自動化測試腳本的示意圖12是本發(fā)明的 一 種軟件測試的裝置實(shí)施例的結(jié)構(gòu)框圖13是本發(fā)明的一種軟件測試的裝置優(yōu)選實(shí)施例的結(jié)構(gòu)框圖14是應(yīng)用圖13所示的優(yōu)選實(shí)施例進(jìn)行軟件測試的流程圖。
      具體實(shí)施例方式
      為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合 附圖和具體實(shí)施方式
      對本發(fā)明作進(jìn)一步詳細(xì)的說明。
      本發(fā)明可用于眾多通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或配置中。例如個 人計算機(jī)、服務(wù)器計算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處 理器系統(tǒng)、包括以上任何系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。
      本發(fā)明可以在由計算機(jī)執(zhí)行的計算機(jī)可執(zhí)行指令的 一般上下文中 描述,例如程序模塊。 一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定 抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分 布式計算環(huán)境中實(shí)踐本發(fā)明,在這些分布式計算環(huán)境中,由通過通信網(wǎng)
      絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序模 塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠(yuǎn)程計算機(jī)存儲介質(zhì)中。
      本發(fā)明實(shí)施例的核心構(gòu)思之一在于,建立界面元素庫和動作元素 庫,所述界面元素庫存儲被測軟件的界面元素,所述動作元素庫存儲用 于操作所述界面元素的動作參數(shù),所述動作參數(shù)包括動作名稱和動作執(zhí) 行腳本;并按照預(yù)定義的測試邏輯,從所述界面元素庫和動作元素庫中 提取相應(yīng)的界面元素和動作元素,生成測試用例;然后將測試用例轉(zhuǎn)換 為自動化測試腳本,最后解析執(zhí)行所述測試腳本,在被測軟件上完成相 應(yīng)操作;本發(fā)明采用預(yù)先建立界面元素庫和動作元素庫的方法,使得運(yùn)
      作元素庫中的腳本語言,不再需要軟件開發(fā)人員手工編寫測試腳本,大 大提高了軟件測試中的軟件測試效率,還可以進(jìn)一 步提高測試腳本的通 用性。
      參考圖1,示出了本發(fā)明的一種軟件測試的方法實(shí)施例1的流程圖,
      可以包括以下步驟
      步驟101:建立界面元素庫和動作元素庫,所述界面元素庫存儲被 測軟件的界面元素,所述動作元素庫存儲用于操作所述界面元素的動作 參數(shù),所述動作參數(shù)包括動作名稱和動作執(zhí)行腳本;
      在實(shí)際應(yīng)用中,對軟件進(jìn)行測試之前,軟件開發(fā)人員首先建立所述 界面元素庫,所述界面元素包括所述界面元素的名稱、類型和標(biāo)識,在 本實(shí)施例中,通過建立所述界面元素庫可以避免相同的界面元素在不同 的測試用例中重復(fù)錄制,可以提高界面元素的重用性;需要說明的是, 所述界面元素庫以被測軟件的一個窗口為單位保存所述窗口上的界面 元素;
      同時,軟件開發(fā)人員還需要建立動作元素庫,用于存儲操作所述界 面元素的動作參數(shù),所屬動作參數(shù)包括對界面元素操作的動作名稱,以 及所述動作名詞對應(yīng)的動作執(zhí)行腳本,還可以包括所述動作名稱的類 型,從而節(jié)省了大量錄制腳本的工作;
      步驟102:按照預(yù)定義的測試邏輯,從所述界面元素庫和動作元素 庫中提取相應(yīng)的界面元素和動作元素,生成測試用例;
      在實(shí)際中,本步驟的實(shí)現(xiàn)可以為,從所述界面元素庫和動作元素庫 中,根據(jù)測試執(zhí)行的具體步驟來提取相應(yīng)的界面元素和動作元素,根據(jù) 所述相應(yīng)的界面元素和動作元素生成測試用例;在實(shí)際應(yīng)用中,軟件測 試過程中的測試用例可以由測試輸入數(shù)據(jù)、預(yù)期輸出結(jié)果以及相應(yīng)的測 試執(zhí)行步驟三部分組成;
      步驟103:將測試用例轉(zhuǎn)換為自動化測試腳本,解析執(zhí)行所述自動 化測試腳本,在被測軟件上完成相應(yīng)操作;
      其中,所述自動化測試腳本是根據(jù)測試用例生成的可以用于對軟件
      進(jìn)行測試的腳本程序,利用這些腳本程序可以執(zhí)行對軟件的測試流程, 可以在被測軟件上模擬鍵盤輸入、鼠標(biāo)點(diǎn)擊等實(shí)際操作。
      可以理解的是,利用本發(fā)明實(shí)施例l的方法可以通過建立所述界面元 素庫以及動作元素庫節(jié)省測試腳本的編寫時間,生成的測試腳本可以由 測試工具解析并執(zhí)行,無需軟件開發(fā)人員手工修改或者編輯,減少了編
      程過程中出現(xiàn)的人為錯誤,大大提高了軟件測試過程中的軟件測試效率;
      例,大大提高了動作執(zhí)行腳本的共享性,同時提高了腳本的可維護(hù)性和 可管理性;再者,通過建立所述界面元素庫,使得被測軟件的界面元素 得到充分共享和有效管理,節(jié)省了抓取界面元素的大量開發(fā)成本。
      參考圖2,示出了本發(fā)明的一種軟件測試的方法實(shí)施例2的流程圖, 可以包括以下步驟
      步驟201:建立界面元素庫和動作元素庫,所述界面元素庫存儲被 測軟件的界面元素,所述動作元素庫存儲用于操作所述界面元素的動作 參數(shù),所述動作參數(shù)包括動作名稱和動作執(zhí)行腳本;
      在實(shí)際應(yīng)用中,對軟件進(jìn)行測試之前,軟件開發(fā)人員首先建立所述 界面元素庫,所述界面元素包括所述界面元素的名稱、類型和標(biāo)識,所 屬界面元素的名稱在本發(fā)明實(shí)施例中為即控件名稱,所述標(biāo)識為工具語 言的定義,為描述界面元素名稱的腳本語言;
      需要說明的是,本領(lǐng)域技術(shù)人員可以很容易的知悉,所述界面元素 的名稱還可以為其它字段的名稱,因此本發(fā)明對界面元素的名稱不做限 定;
      同時,軟件開發(fā)人員還需要建立動作元素庫,用于存儲操作所述界 面元素的動作參數(shù),所屬動作參數(shù)包括對界面元素操作的動作名稱,例 如點(diǎn)擊、雙擊、輸入、選擇等,以及所述動作名詞對應(yīng)的動作執(zhí)行腳 本,還可以包括所述動作名稱的類型;
      步驟202:按照預(yù)定義的測試邏輯,從所述界面元素庫和動作元素 庫中提取相應(yīng)的界面元素和動作元素; 需要說明的是,所述測試邏輯,可以理解為測試流程,包括多條測 試子邏輯,每條測試子邏輯可以理解為針對被測軟件某一個窗口的一次 測試子流程,根據(jù)所述多條子邏輯可以從所述界面元素庫和動作元素庫 中提取相應(yīng)的界面元素和動作元素;
      優(yōu)選的,所述界面元素和動作元素為被測軟件一窗口中的界面元素
      和動作元素;
      步驟203:根據(jù)所述界面元素和動作元素生成測試用例模板; 將所述相應(yīng)的界面元素和動作名稱組合成測試用例模板,優(yōu)選的,
      所述測試用例模板以二維輸入表格的形式通過界面展示;
      步驟204:在所述測試用例模板中,分別定義各個測試子邏輯所要
      求的測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;
      在測試用例模板中的二維輸入表格處,可以定義各個測試子邏輯所
      要求的測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果,所述定義測試輸入數(shù)據(jù)的過程可
      以理解為對界面元素和動作元素的賦值過程,通過賦值可以使得定義的
      測試輸入數(shù)據(jù)內(nèi)容與所述界面元素庫和動作元素庫相匹配;
      步驟205:組合所述測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果形成測試用例; 各個測試子邏輯定義完成后,對所述定義的測試輸入數(shù)據(jù)和預(yù)期輸
      出結(jié)果進(jìn)行組合,形成測試用例;
      步驟206:將測試用例轉(zhuǎn)換為測試腳本;
      優(yōu)選的,本步驟的實(shí)現(xiàn)方案可以包括以下子步驟
      子步驟2061:讀取所述測試用例中的界面元素名稱、動作名稱、測
      試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;
      測試用例設(shè)計完成后,按行讀取所述測試用例中的界面元素名稱、
      動作名稱、測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;
      子步驟2062:將所述界面元素名稱和動作名稱分別在所述界面元素
      庫和動作元素庫中匹配,獲得相應(yīng)的界面元素標(biāo)識和動作執(zhí)行腳本;
      作元素庫中匹配,獲得與所述界面元素名稱相應(yīng)的界面元素標(biāo)識,以及 與所述動作名稱相應(yīng)的動作執(zhí)行腳本; 子步驟2063:將所述界面元素名稱和標(biāo)識組合成映射文件;
      將所述界面元素和標(biāo)識組合成映射文件,所述映射文件為記錄界 面元素的文本文件,可以記錄界面元素的標(biāo)識和類型,所述映射文件內(nèi) 容的格式是已經(jīng)進(jìn)行了規(guī)范和定義的;所述映射文件可以為Map文件, 本領(lǐng)域普通技術(shù)人員可以很容易的知悉,所述界面元素和相應(yīng)的腳本語 言對應(yīng)關(guān)系保存在何處,以及如何保存都不影響本發(fā)明實(shí)施例的實(shí)現(xiàn), 因此本發(fā)明并不對此作出限定;
      子步驟2064:將所述界面元素名稱、動作執(zhí)行腳本、測試輸入數(shù)據(jù) 和預(yù)期輸出結(jié)果組合生成中間腳本;
      將界面元素名稱、動作執(zhí)行腳本、測試輸入數(shù)據(jù)、預(yù)期輸出結(jié)果組 合生成中間腳本;所述中間腳本為已經(jīng)規(guī)范的一種腳本語言,可以看出, 該腳本語言為描述性語言,已明確腳本語言的語法和構(gòu)成短語,可以在 對被測軟件進(jìn)行測試的過程中直接運(yùn)行;
      子步驟2065:通過所述映射文件置換所述中間腳本中的界面元素, 動態(tài)得到自動化測試腳本;
      運(yùn)行所述中間腳本,結(jié)合所述映射文件將所述中間腳本中的界面元 素進(jìn)行置換,動態(tài)得到自動化測試腳本;
      步驟207:解析執(zhí)行所述自動化測試腳本,在被測軟件上完成相應(yīng)
      操作;
      解析執(zhí)行所述自動化測試腳本,在被測軟件上模擬鍵盤輸入和鼠標(biāo) 點(diǎn)擊等實(shí)際操作,完成所述軟件測試的過程。
      以下通過一 個具體的例子進(jìn)一 步說明本發(fā)明的軟件測試過程。
      在實(shí)際應(yīng)用中,對軟件進(jìn)行測試之前,軟件開發(fā)人員首先建立所述 界面元素庫,所述界面元素包括所述界面元素的名稱、類型和標(biāo)識,所 屬界面元素的名稱在本發(fā)明實(shí)施例中為即控件名稱,所述標(biāo)識為工具語 言的定義,為描述界面元素名稱的腳本語言;
      Sl:建立界面元素庫;
      參考圖3,示出了本發(fā)明的一個具體例子中一個界面元素庫的示意 圖;其中,所述控件名稱可以為部門代碼、成本對象代碼、工時類型
      等,所述標(biāo)識為控件名稱在工具腳本中的定義,例如圖3中所示的"name =txtEdit(2),,等,以及所述控件名稱的類型,如所述部門代碼的類型 為"KDText,,;
      S2:建立動作元素庫;
      同時,軟件開發(fā)人員還需要建立動作元素庫,用于存儲操作所述界 面元素的動作參數(shù),所屬動作參數(shù)包括對界面元素操作的動作名稱,參 考圖4,示出了本發(fā)明的一個具體例子中的動作元素庫的示意圖;所述 動作元素名稱為圖4中所示的"動作詞",例如,"T新增"、"T保存" 等,對應(yīng)的動作執(zhí)行腳本(即是圖中所示的"腳本")為"T, @formname, @formname, CLICK,'Coords = 27* - 23,",類型為default;
      S3:按照預(yù)定義的測試邏輯,從所述界面元素庫和動作元素庫中提 取相應(yīng)的界面元素和動作元素,根據(jù)所述界面元素和動作元素生成測試 用例模板;
      參考圖5,示出了根據(jù)圖3和圖4所示的界面元素庫和動作元素庫 生成的一個測試用例模板的示意圖,所述測試用例模板可以以二維輸入 表格的形式展示;
      S4:在所述測試用例模板中,分別定義各個測試子邏輯所要求的測 試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;
      軟件開發(fā)人員可以在二維輸入表格中分別定義各個測試子邏輯所 要求的測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果,即是給所述界面元素和動作元素 賦值,例如,圖中,給控件名稱為"部門代碼"的值定義為12,"工時 類型"為"機(jī)臺工時"等,即是分別定義各個測試子邏輯所要求的測試 輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;
      S5:組合所述測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果形成測試用例;
      參考圖6,示出了本發(fā)明的一種軟件測試的方法中一個測試用例的 示意圖,可以理解的是,測試子邏輯所對應(yīng)為圖中所示的測試組件,多 個測試組件組成了圖6所示的測試用例;
      S6:讀取所述測試用例中的界面元素名稱、動作名稱、測試輸入數(shù) 據(jù)和預(yù)期輸出結(jié)果;
      元素庫中匹配,獲得相應(yīng)的界面元素標(biāo)識和動作執(zhí)行腳本;
      S8:〗奪所述界面元素名稱和標(biāo)識纟且合成映射文件; 參考圖7,示出了保存所述界面元素和相應(yīng)的腳本語言對應(yīng)關(guān)系的 映射文件的示意圖,所述映射文件的名稱為制造測試組\1.01.日成本模
      塊、B01.實(shí)際工時錄入.Map;可以理解的是,映射文件可以為Map文件; S9:將所述界面元素名稱、動作執(zhí)行腳本、測試輸入數(shù)據(jù)和預(yù)期輸 出結(jié)果組合生成中間腳本;
      測試用例定義完成之后,可以根據(jù)所述測試用例生成中間腳本,上 述步驟S6至S9為生成中間腳本的過程;參考圖8,示出了將圖6所示 的測試用例轉(zhuǎn)換為中間腳本時的界面示意圖;同時參考圖9,示出了本 發(fā)明的 一 個具體例子中 一 個中間腳本的示意圖,所述中間腳本的名稱 為制造測試組\1.01.日成本模塊、B01.實(shí)際工時錄入.SDD; S10:按行讀取并執(zhí)行所述中間腳本;
      參考圖IO,示出了執(zhí)行所述中間腳本時的界面示意圖,例如,讀取 到中間腳本中的數(shù)據(jù)為
      T frmEditComDo CLICK
      T frmEditKDSel SelectPartialMatch —般耗用用途 Sll:將讀取到的fmiEdit、 ComDo、 KDSel分別在界面元素庫中進(jìn)行 匹配,可以分別得到frmEdit、 ComDo、 KDSel在界面元素中的標(biāo)識 frmEdit=Type=Window; Name=frmEdit KDSel=Type=ComboListBox; Objectlndex=0 ComDo=Type=ComboBox; Name=ComDo
      需要說明的是,在執(zhí)行所述自動化測試腳本的過程中,因?yàn)閯幼髅?稱已經(jīng)定義,所以可以將動作名稱——SelectPartialMatch和CLICK分別轉(zhuǎn) 換為Click;
      S12:執(zhí)行中間腳本,將讀取到的界面元素名稱和動作名稱,轉(zhuǎn)換為 可以^f莫擬4建盤輸入、鼠標(biāo)點(diǎn)擊的自動化測試腳本 例如Window SetContext, "Name=frmEdit",""ComboBox Click, "Name=ComDo",""
      ComboListBox Click, "Objectlndex=0" , "Text-—般耗用,,'用途, 參考圖11,示出了本發(fā)明的一個具體例子中生成的所述測試腳本的 示意S13:執(zhí)行所述自動化測試腳本,在被測軟件上完成鍵盤輸入和鼠
      標(biāo)點(diǎn)擊等實(shí)際操作。
      需要說明的是,對于前述的各方法實(shí)施例,為了簡單描述,故將其 都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并 不受所描述的動作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其 他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所 描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊并不一定是本發(fā) 明所必須的。
      參考圖12,示出了本發(fā)明的一種軟件測試的裝置實(shí)施例的結(jié)構(gòu)框 圖,可以包括以下模塊
      建立模塊1201,用于建立界面元素庫和動作元素庫,所述界面元素 庫存儲被測軟件的界面元素,所述動作元素庫存儲用于操作所述界面元 素的動作參數(shù),所述動作參數(shù)包括動作名稱和動作執(zhí)行腳本;
      提取模塊1202,用于按照預(yù)定義的測試邏輯,從所述界面元素庫和
      生成測試用例模塊1203,用于依據(jù)所述界面元素和動作元素生成測 試用例;
      轉(zhuǎn)換測試腳本模塊1204,用于將所述測試用例轉(zhuǎn)換為自動化測試腳
      本;
      解析執(zhí)行模塊1205,用于解析執(zhí)行所述自動化測試腳本,在被測軟 件上完成相應(yīng)操作。
      在本實(shí)施例中,所述生成測試用例模塊在生成測試用例時,需要從 所述建立模塊中提取相應(yīng)的界面元素和動作元素,再將所述相應(yīng)的界面 元素和動作元素組合生成測試用例模板,軟件開發(fā)人員在所述測試用例
      模板上設(shè)計測試用例,并將測試用例轉(zhuǎn)換為測試腳本,所述解析執(zhí)行模 塊執(zhí)行所述測試腳本,可以在被測軟件上模擬鍵盤輸入、鼠標(biāo)點(diǎn)擊等實(shí) 際操作。
      參考圖13,示出了本發(fā)明的一種軟件測試的裝置優(yōu)選實(shí)施例的結(jié)構(gòu) 框圖,可以包括以下模塊
      建立模塊1301,用于建立界面元素庫和動作元素庫,所述界面元素 庫存儲被測軟件的界面元素,所述動作元素庫存儲用于操作所述界面元 素的動作參數(shù),所述動作參數(shù)包括動作名稱和動作執(zhí)行腳本;
      提取模塊1302,用于按照預(yù)定義的測試邏輯,從所述界面元素庫和 動作元素庫中提取所述測試邏輯所需的界面元素和動作元素;
      生成測試用例模塊1303,用于依據(jù)所述界面元素和動作元素生成測
      試用例;
      生成模板子模塊13031,用于根據(jù)所述界面元素和動作元素生成測 試用例模板;
      定義子模塊13032,用于在所述測試用例模板中,分別定義各個測
      試子邏輯所要求的測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;
      組合子模塊13033,用于組合所述測試子邏輯形成測試用例。 優(yōu)選的,所述界面元素包括界面元素的名稱、類型和標(biāo)識。 優(yōu)選的,所述界面元素為控件,所述界面元素的名稱為控件名稱,
      所述界面元素的標(biāo)識為所述控件在工具語言中的定義。
      轉(zhuǎn)換測試腳本模塊1304,用于將所述測試用例轉(zhuǎn)換為自動化測試腳
      本;
      讀取子模塊13041,用于讀取所述測試用例中的界面元素名稱、動 作名稱、測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;
      匹配子模塊13042,用于將所述界面元素名稱和動作名稱分別在所 述界面元素庫和動作元素庫中匹配,獲得相應(yīng)的界面元素標(biāo)識和動作執(zhí) 行腳本;
      生成映射文件子模塊13043,用于將所述界面元素名稱和標(biāo)識組合 映射文件;
      生成中間腳本子模塊13044,用于將所述界面元素名稱、動作執(zhí)行 腳本、測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果組合生成中間腳本;
      生成測試腳本子模塊13045,用于通過所述映射文件置換所述中間 腳本中的界面元素,動態(tài)得到自動化測試腳本。
      解析執(zhí)行模塊1305,用于解析執(zhí)行所述自動化測試腳本,在被測軟 件上完成相應(yīng)操作。
      參考圖14,示出了應(yīng)用圖13所示的優(yōu)選實(shí)施例進(jìn)行軟件測試的流 程圖,可以包括以下步驟
      步驟1401:建立^f莫塊建立界面元素庫和動作元素庫,所述界面元素 庫存儲被測軟件的界面元素,所述動作元素庫存儲用于操作所述界面元 素的動作參數(shù),所述動作參數(shù)包括動作名稱和動作執(zhí)行腳本;
      步驟1402:提取模塊按照預(yù)定義的測試邏輯,從所述界面元素庫和 動作元素庫中提取所述測試邏輯所需的界面元素和動作元素;
      步驟1403:生成模板子模塊根據(jù)所述界面元素和動作元素生成測試 用例模板;
      步驟1404:定義子模塊在所述測試用例模板中,分別定義各個測試 子邏輯所要求的測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;
      步驟1405:組合子模塊組合所述測試子邏輯形成測試用例;
      步驟1406:讀取子模塊讀取所述測試用例中的界面元素名稱、動作 名稱、測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;
      步驟1407:匹配子模塊將所述界面元素名稱和動作名稱分別在所述 界面元素庫和動作元素庫中匹配,獲得相應(yīng)的界面元素標(biāo)識和動作執(zhí)行
      腳本;
      步驟1408:生成映射文件子模塊將所述界面元素名稱和標(biāo)識組合成 映射文件;
      步驟1409:生成中間腳本子模塊將所述界面元素名稱、動作執(zhí)行腳 本、測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果組合生成中間腳本;
      步驟14010:生成測試腳本子模塊通過所述映射文件置換所述中間 腳本中的界面元素,動態(tài)得到自動化測試腳本;
      步驟14011:解析執(zhí)行模塊解析執(zhí)行所述自動化測試腳本,在被測 軟件上完成相應(yīng)操作。
      對于裝置實(shí)施例而言,由于其基本相應(yīng)于方法實(shí)施例,所以描述的 比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
      以上對本發(fā)明所提供的 一 種軟件測試的方法及軟件測試的裝置進(jìn)行
      闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思 想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí) 施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理 解為對本發(fā)明的限制。
      權(quán)利要求
      1、一種軟件測試的方法,其特征在于,包括建立界面元素庫和動作元素庫,所述界面元素庫存儲被測軟件的界面元素,所述動作元素庫存儲用于操作所述界面元素的動作參數(shù),所述動作參數(shù)包括動作名稱和動作執(zhí)行腳本;按照預(yù)定義的測試邏輯,從所述界面元素庫和動作元素庫中提取所述測試邏輯所需的界面元素和動作元素,生成測試用例;將測試用例轉(zhuǎn)換為自動化測試腳本,解析執(zhí)行所述自動化測試腳本,在被測軟件上完成相應(yīng)操作。
      2、 如權(quán)利要求1所述的方法,其特征在于,所述測試邏輯包括多 條測試子邏輯,所述生成測試用例包括根據(jù)所述界面元素和動作元素生成測試用例模板; 在所述測試用例模板中,分別定義各個測試子邏輯所要求的測試輸 入數(shù)據(jù)和預(yù)期輸出結(jié)果;組合所述測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果形成測試用例。
      3、 如權(quán)利要求2所述的方法,其特征在于,所述測試用例模板以 二維輸入表格的形式通過界面展示。
      4、 如權(quán)利要求l、 2或3所述的方法,其特征在于,所述界面元素 和動作元素為被測軟件一窗口中的界面元素和動作元素。
      5、 如權(quán)利要求1所述的方法,其特征在于,所述界面元素包括界 面元素的名稱、類型和標(biāo)識。
      6、 如權(quán)利要求5所述的方法,其特征在于,所述界面元素為控件, 所述界面元素的名稱為控件名稱,所述界面元素的標(biāo)識為所述控件在工 具語言中的定義。
      7、 如權(quán)利要求6所述的方法,其特征在于,所述將測試用例轉(zhuǎn)換 為測試腳本包括讀取所述測試用例中的界面元素名稱、動作名稱、測試輸入數(shù)據(jù)和 預(yù)期輸出結(jié)果; 素庫中匹配,獲得相應(yīng)的界面元素標(biāo)識和動作執(zhí)行腳本;將所述界面元素名稱和標(biāo)識組合成映射文件;將所述界面元素名稱、動作執(zhí)行腳本、測試輸入數(shù)據(jù)和預(yù)期輸出結(jié) 果組合生成中間腳本;通過所述映射文件置換所述中間腳本中的界面元素,動態(tài)得到自動 化測試腳本。
      8、 一種軟件測試的裝置,其特征在于,包括建立模塊,用于建立界面元素庫和動作元素庫,所述界面元素庫存 儲被測軟件的界面元素,所述動作元素庫存儲用于操作所述界面元素的 動作參數(shù),所述動作參數(shù)包括動作名稱和動作執(zhí)行腳本;提取模塊,用于按照預(yù)定義的測試邏輯,從所述界面元素庫和動作 元素庫中提取所述測試邏輯所需的界面元素和動作元素;生成測試用例模塊,用于依據(jù)所述界面元素和動作元素生成測試用例;轉(zhuǎn)換測試腳本模塊,用于將所述測試用例轉(zhuǎn)換為自動化測試腳本; 解析執(zhí)行模塊,用于解析執(zhí)行所述自動化測試腳本,在被測軟件上 完成相應(yīng)操作。
      9、 如權(quán)利要求8所述的裝置,其特征在于,所述生成測試用例模 塊包括生成模板子模塊,用于根據(jù)所述界面元素和動作元素生成測試用例 模板;定義子模塊,用于在所述測試用例模板中,分別定義各個測試子邏 輯所要求的測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;組合子模塊,用于組合所述測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果形成測試 用例。
      10、 如權(quán)利要求8或9所述的裝置,其特征在于,所述界面元素包 括界面元素的名稱、類型和標(biāo)識。
      11、 如權(quán)利要求10所述的裝置,其特征在于,所述界面元素為控 件,所述界面元素的名稱為控件名稱,所述界面元素的標(biāo)識為所述控件 在工具語言中的定義。
      12、如權(quán)利要求11所述的裝置,其特征在于,所述轉(zhuǎn)換測試腳本 模塊包括讀取子模塊,用于讀取所述測試用例中的界面元素名稱、動作名稱、 測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;匹配子模塊,用于將所述界面元素名稱和動作名稱分別在所述界面 元素庫和動作元素庫中匹配,獲得相應(yīng)的界面元素標(biāo)識和動作執(zhí)行腳本;生成映射文件子模塊,用于將所述界面元素名稱和標(biāo)識組合成映射 文件;生成中間腳本子模塊,用于將所述界面元素名稱、動作執(zhí)行腳本、 測試輸入數(shù)據(jù)和預(yù)期輸出結(jié)果組合生成中間腳本;生成測試腳本子模塊,用于通過所述映射文件置換所述中間腳本中 的界面元素,動態(tài)得到自動化測試腳本。
      全文摘要
      本發(fā)明提供了一種軟件測試的方法,包括建立界面元素庫和動作元素庫,所述界面元素庫存儲被測軟件的界面元素,所述動作元素庫存儲用于操作所述界面元素的動作參數(shù),所述動作參數(shù)包括動作名稱和動作執(zhí)行腳本;然后按照預(yù)定義的測試邏輯,從所述界面元素庫和動作元素庫中提取相應(yīng)的界面元素和動作元素,生成測試用例;最后將測試用例轉(zhuǎn)換為自動化測試腳本,解析執(zhí)行所述自動化測試腳本,在被測軟件上完成相應(yīng)操作。運(yùn)用本發(fā)明的方法,在運(yùn)行測試腳本時可以從所述界面元素庫和所述動作元素庫中調(diào)用腳本語言,不僅使得軟件測試的效率大大提高,節(jié)約了軟件開發(fā)的大量資源,進(jìn)一步的,也可以提高腳本語言的共享性、可維護(hù)性和可管理性。
      文檔編號G06F11/36GK101339534SQ20081011093
      公開日2009年1月7日 申請日期2008年6月17日 優(yōu)先權(quán)日2008年6月17日
      發(fā)明者關(guān)榮華, 鋼 肖, 鄧潤祥, 洪 陳, 黃爾謙 申請人:金蝶軟件(中國)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1