一種自動化測試方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明屬于軟件測試領(lǐng)域,更具體地,涉及一種自動化測試方法及系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)有的自動化測試,常常由獨立的自動化測試團(tuán)隊來執(zhí)行和維護(hù)功能測試人員收到自身編程水平的限制,一般無法十分了解自動化測試包的細(xì)節(jié),導(dǎo)致無法按照自身多類型的測試需求來執(zhí)行自動化腳本。編寫自動化腳本成員由于無法準(zhǔn)確了解功能測試用例測試點導(dǎo)致編寫自動化測試用例缺乏測試重點性,使自動化測試用例很難有效發(fā)現(xiàn)測試中的缺陷。
【發(fā)明內(nèi)容】
[0003]針對現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種自動化測試方法及系統(tǒng),其目的在于通過挖掘自然語言中測試工作相關(guān)的關(guān)鍵字實現(xiàn)相應(yīng)的測試動作,由此解決現(xiàn)有的自動化技術(shù)功能測試人員不了解自動化測試包的細(xì)節(jié)而變成人員無法準(zhǔn)確了解功能測試用例的測試點,造成的測試需求不明或者測試重點性不佳的技術(shù)問題。
[0004]為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種自動化測試方法,包括以下步驟:
[0005](I)根據(jù)觸發(fā)機制觸發(fā)測試代碼提??;
[0006](2)挖掘所述測試代碼中的測試關(guān)鍵字及測試對象;
[0007](3)將所述測試關(guān)鍵字對應(yīng)的測試腳本按照測試代碼的順序集合,形成測試代碼包;
[0008](4)執(zhí)行所述測試代碼包并生成測試報告。
[0009]優(yōu)選地,所述自動化測試方法,其步驟(I)所述觸發(fā)機制為時間觸發(fā)和/或事件觸發(fā)。
[0010]優(yōu)選地,所述自動化測試方法,其步驟(I)所述測試代碼提取順序為先進(jìn)先出或先進(jìn)后出。
[0011]優(yōu)選地,所述自動化測試方法,其步驟(2)所述關(guān)鍵字包括操作關(guān)鍵字和驗證關(guān)鍵字。
[0012]優(yōu)選地,所述自動化測試方法,所述測試對象基于安卓平臺;
[0013]所述步驟(3)具體為:將所述關(guān)鍵字對應(yīng)的測試腳本按照測試代碼的順序集合,形成測試代碼包并生成安卓測試應(yīng)用;
[0014]所述步驟(4)具體為:安裝所述安卓測試應(yīng)用并執(zhí)行測試代碼,生成測試報告。
[0015]按照本發(fā)明的另一方面,提供了一種自動化測試系統(tǒng),包括:
[0016]測試代碼管理模塊:用于保存功能測試人員開發(fā)的測試代碼,并根據(jù)觸發(fā)機制觸發(fā)測試代碼提取到測試關(guān)鍵字挖掘模塊;
[0017]測試關(guān)鍵字挖掘模塊:挖掘所述測試代碼中的測試關(guān)鍵字;
[0018]測試代碼包生成模塊:用于將所述測試關(guān)鍵字對應(yīng)的測試腳本按照測試代碼的順序集合,形成測試代碼包;
[0019]測試報告生成模塊:用于執(zhí)行所述測試代碼包并生成測試報告。
[0020]優(yōu)選地,所述自動化測試系統(tǒng),其代碼管理模塊采用時間觸發(fā)和/或事件觸發(fā)。
[0021 ]優(yōu)選地,所述自動化測試系統(tǒng),其代碼管理模塊包括測試代碼存儲單元,用于存儲測試代碼;所述測試代碼存儲單元為堆棧結(jié)構(gòu)或隊列結(jié)構(gòu)。
[0022]優(yōu)選地,所述自動化測試系統(tǒng),其關(guān)鍵字挖掘模塊包括測試關(guān)鍵字庫,用于存儲測試關(guān)鍵字。
[0023]優(yōu)選地,所述自動化測試系統(tǒng),所述測試對象基于安卓平臺,
[0024]所述代碼包生成模塊,用于將所述測試腳本打包為安卓測試應(yīng)用;
[0025]所述測試代碼生成模塊,用于安裝所述安卓測試應(yīng)用并執(zhí)行所述測試代碼包。
[0026]總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,由于功能測試人員能利用自然語言描述測試用例,而代碼開發(fā)人員能根據(jù)標(biāo)準(zhǔn)需求開發(fā)測試代碼,能夠取得下列測試自動化、腳本標(biāo)準(zhǔn)化、測試代碼穩(wěn)定性、魯棒性高、測試報告可靠的有益效果。
【附圖說明】
[0027]圖1是本發(fā)明的自動化測試方法的流程簡圖;
[0028]圖2是本發(fā)明的自動化測試系統(tǒng)的結(jié)構(gòu)示意圖;
[0029]圖3是本發(fā)明實施例提供的自動化測試系統(tǒng)的實現(xiàn)示意圖;
[0030]圖4是本發(fā)明實施例提供的自動化測試方法的流程圖。
【具體實施方式】
[0031]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
[0032]本發(fā)明提供了一種自動化測試方法,如圖1所示,包括以下步驟:
[0033](I)根據(jù)觸發(fā)機制觸發(fā)測試代碼提??;
[0034]所述觸發(fā)機制可采用時間觸發(fā)或者事件觸發(fā):時間觸發(fā)如定時觸發(fā);事件觸發(fā)如代碼更新時觸發(fā)。多種觸發(fā)方式可單一使用或者同時使用。
[0035]所述測試代碼提取可采用先進(jìn)先出或先進(jìn)后出順序。
[0036]所述測試代碼為功能測試人員根據(jù)測試用例編寫,可采用自然語言編寫,如中文或英文,例如:進(jìn)入〈登錄頁〉。
[0037](2)挖掘所述測試代碼中的測試關(guān)鍵字及測試對象;
[0038]例如:其中“進(jìn)入”為動作,“登錄頁”為測試對象。
[0039]測試關(guān)鍵字為測試常用動作,包括:
[0040]A、操作關(guān)鍵字:進(jìn)入、進(jìn)入連接、點擊、填寫、選擇、以及等待。
[0041 ] B、驗證關(guān)鍵字:顯示、驗證數(shù)值、驗證表格、驗證數(shù)值差、等待出現(xiàn)、以及不顯示。
[0042](3)將所述測試關(guān)鍵字對應(yīng)的測試腳本按照測試代碼的順序集合,形成測試代碼包;
[0043]如所述測試對象基于安卓平臺:
[0044]則將所述關(guān)鍵字對應(yīng)的測試腳本按照測試代碼的順序集合,形成測試代碼包并生成安卓測試應(yīng)用。
[0045]所述測試腳本為開發(fā)人員編寫,執(zhí)行測試關(guān)鍵字對應(yīng)的測試程序,采用計算機語言編寫,優(yōu)選采用腳本語言編寫,如Ruby、Python、Ja va等。
[0046](4)執(zhí)行所述測試代碼包并生成測試報告。
[0047]如所述測試對象基于安卓平臺:
[0048]所述步驟(4)具體為:安裝所述安卓測試應(yīng)用并執(zhí)行測試代碼,生成測試報告。
[0049]執(zhí)行所述測試代碼包的過程中,如執(zhí)行成功則記錄測試數(shù)據(jù),否則進(jìn)行異常處理,并記錄出錯數(shù)據(jù)。執(zhí)行所述測試代碼包記錄的所有數(shù)據(jù)形成測試報告,包括測試數(shù)據(jù)和出錯數(shù)據(jù)。
[0050]—種自動化測試系統(tǒng),如圖2所示,包括
[0051]測試代碼管理模塊:用于保存功能測試人員開發(fā)的測試代碼,并根據(jù)觸發(fā)機制觸發(fā)測試代碼提取到測試關(guān)鍵字挖掘模塊。
[0052]所述觸發(fā)機制可采用時間觸發(fā)或者事件觸發(fā):時間觸發(fā)如定時觸發(fā);事件觸發(fā)如代碼更新時觸發(fā)。多種觸發(fā)方式可單一使用或者同時使用。
[0053]所述測試代碼管理模塊包括測試代碼存儲單元,所述測試代碼存儲單元可采用堆棧結(jié)構(gòu)或者隊列結(jié)構(gòu)。
[0054]所述測試代碼為功能測試人員根據(jù)測試用例編寫,可采用自然語言編寫,如中文或英文。例如:進(jìn)入〈登錄頁〉。
[0055]測試關(guān)鍵字挖掘模塊:挖掘所述測試代碼中的測試關(guān)鍵字和測試對象;
[0056]例如,其中“進(jìn)入”為測試關(guān)鍵字,“登錄頁”為測試對象。
[0057]測試關(guān)鍵字為測試常用動作,包括:
[0058]A、操作關(guān)鍵字:進(jìn)入、進(jìn)入連接、點擊、填與、選擇、以及等待。
[0059]B、驗證關(guān)鍵字:顯示、驗證數(shù)值、驗證表格、驗證數(shù)值差、等待出現(xiàn)、以及不顯示。
[0060]所述關(guān)鍵字挖掘模塊,包括測試關(guān)鍵字庫,用于存儲測試關(guān)鍵字。
[0061]具體地,該模塊首先對測試代碼進(jìn)行匹配,以Ruby語言為例:測試用例為“進(jìn)入〈個人中心〉”,相應(yīng)腳本中匹配腳本定義為Given廠進(jìn)入〈(.+ )>$/do | name |。
[0062]測試代碼包生成模塊:用于將所述測試關(guān)鍵字對應(yīng)的測試腳本按照測試代碼的順序集合,形成測試代碼包;
[0063]所述測試代碼包生成模塊,包括腳本庫,用于存儲關(guān)鍵字對應(yīng)的腳本。
[0064]所述測試腳本為開發(fā)人員編寫,執(zhí)行測試關(guān)鍵字對應(yīng)的測試程序,采用計算機語言編寫,優(yōu)選采用腳本語言編寫,如Ruby、Python、Java等;
[0065]測試報告生成模塊:用于執(zhí)行所述測試代碼包并生成測試報告。
[0066]執(zhí)行所述測試代碼包的過程中,如執(zhí)行成功則記錄測試數(shù)據(jù),否則進(jìn)行異常處理,并記錄出錯數(shù)據(jù)。執(zhí)行所述測試代碼包記錄的所有數(shù)據(jù)形成測試報告,包括測試數(shù)據(jù)和出錯數(shù)據(jù)。
[0067]以下為實施例:
[0068]以基于Jenkins和Cucumber測試工具實現(xiàn)的本發(fā)明所述的自動化測試系統(tǒng)及方法為例。
[0069]Jenkins作為一款成熟的測試工具,是目前業(yè)內(nèi)最流行的快速持續(xù)集成工具之一,具有良好的穩(wěn)定性能和豐富擴展性。所有團(tuán)隊成員均可以通過登陸Jenkins平臺Web界面,按照需求任意選擇部署在平臺上的自動化測試包,目標(biāo)測試環(huán)境,測試集和測試用例,靈活地定