亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種軟件測(cè)試的方法及裝置的制作方法

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

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

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

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


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