一種人機命令腳本更新方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及人機命令腳本技術領域,尤其涉及一種人機命令腳本更新方法及裝置。
【背景技術】
[0002]人與智能設備之間通過人機語言(Man-Machine Language, MML)命令實現人機對話,同時,MML命令也是構成網絡資源的重要基礎。
[0003]當網絡資源或智能設備的系統(tǒng)需要更新時,MML命令也會相應地進行更新??紤]到更新后的穩(wěn)定性等因素,在對MML命令徹底更新前,需要對網絡資源或系統(tǒng)的人機命令腳本進行測試。由于人機命令腳本包含的MML命令數量巨大,導致人機命令腳本的更新工作過程耗時長且復雜。
[0004]目前,采用批量MML命令自動化腳本的方式對人機命令腳本進行測試的方法較為普遍,盡管批量MML命令自動化腳本的方式加快了人機命令腳本的更新和維護,但由于網絡資源的版本經常變化,且人機命令腳本包含的MML命令的數量太大,人機命令腳本的維護還是給批量MML命令自動化腳本的方式帶來很大的挑戰(zhàn)。
[0005]現階段常見的問題是被測網絡資源或系統(tǒng)的業(yè)務發(fā)生了變動時,由于網絡資源或系統(tǒng)對應的MML命令數量巨大,MML命令的測試腳本修改或者更新的過程過于復雜,導致在短時間內更新大量MML命令的測試腳本成為無法完成的任務。要保證在被測網絡資源或系統(tǒng)的業(yè)務出現變動時,及時準確地修改上次的人機命令的測試腳本,將其更新至符合當前測試的狀態(tài),現有方法主要通過改善自動化測試腳本的結構來解決MML命令自動化測試腳本的維護問題?,F有的大型自動化測試框架就是為解決此類問題而產生的,其發(fā)展經歷了如下幾個階段:
[0006]1.非結構化的自動化測試框架:數據和MML命令的腳本糅合在一起,一條腳本就是一個測試用例,這類腳本開發(fā)速度較快,但是維護成本很高,被測試網絡資源或系統(tǒng)的任何變化都需要通過維護腳本來解決。
[0007]2.數據驅動的自動化測試框架:從數據文件讀取輸入數據,通過變量的參數化,將測試數據傳入測試腳本,不同的數據文件對應不同的測試用例。在這種模式下數據和腳本分離,腳本的利用率、可維護性大大提高,數據的覆蓋率也較高,但受界面變化的影響仍然很大。
[0008]3.關鍵字驅動的自動化測試框架:關鍵字驅動測試是數據驅動測試的一種改進類型,它將測試邏輯按照關鍵字進行分解,形成數據文件,關鍵字對應封裝的業(yè)務邏輯。主要關鍵字包括三類:被操作對象、操作和值。關鍵字驅動的主要思想是:腳本與數據分離、界面元素名與測試內部對象名分離、測試描述與具體實現細節(jié)分離。數據驅動的自動化測試框架在受界面影響方面、較數據驅動和錄制/回放有明顯的優(yōu)勢,可根據界面的變化更新對應的關鍵字對象,而不用重新錄制腳本。
[0009]上述方法是通過改進人機命令腳本的結構來增加人機命令腳本的可維護性,這種結構化的腳本存在如下問題:一、人機命令腳本開發(fā)的復雜度大大增加。由于要進行數據分離和關鍵字封裝,這就增加了人機命令腳本開發(fā)的技術難度,延長了人機命令腳本開發(fā)周期;二、存在較大的人機命令腳本維護工作量,MML命令變化后對關鍵字的修改需要花費很多時間。
【發(fā)明內容】
[0010]有鑒于此,本發(fā)明實施例期望提供一種人機命令腳本更新方法及裝置,至少能解決人機命令腳本的更新過程過于復雜等技術問題。
[0011]本發(fā)明實施例的技術方案是這樣實現的:
[0012]本發(fā)明實施例提供了一種人機命令腳本更新方法,所述方法包括:
[0013]通過第一人機語言命令得到第一數據字典;
[0014]將所述第一數據字典和第二人機語言命令對應的第二數據字典進行比較,得到差異性人機語言命令集合;根據所述差異性人機語言命令集合得到人機語言命令更新規(guī)則;
[0015]根據所述人機語言命令更新規(guī)則對基于第二人機語言命令的人機命令腳本進行更新。
[0016]上述方案中,所述通過第一人機語言命令得到第一數據字典包括:
[0017]掃描包含具有第一人機語言命令的人機命令腳本的被測試系統(tǒng),得到第一人機語g命令;
[0018]按設定屬性對所述第一人機語言命令進行排序,得到第一數據字典。
[0019]上述方案中,所述將所述第一數據字典和第二人機語言命令對應的第二數據字典進行比較,得到差異性人機語言命令集合包括:
[0020]將所述第一數據字典中的第一設定人機語言命令組成第一區(qū)別人機語言命令集合;所述第一設定人機語言命令按照所述設定屬性不能在所述第二數據字典中找到完全相同的人機語言命令;
[0021]將所述第二數據字典中的第二設定人機語言命令組成第二區(qū)別人機語言命令集合;所述第二設定人機語言命令按照所述設定屬性不能在所述第一數據字典中找到完全相同的人機語言命令;
[0022]將所述第一區(qū)別人機語言命令集合和第二區(qū)別人機語言命令集合組成差異性人機語目命令集合。
[0023]上述方案中,所述根據所述差異性人機語言命令集合得到人機語言命令更新規(guī)則包括:
[0024]根據所述設定屬性的優(yōu)先級確定所述差異性人機語言命令集合中的所述第二區(qū)別人機語言命令集合的人機語言命令的更新順序;
[0025]根據所述更新順序對應的所述設定屬性的關鍵字確定對所述第二區(qū)別人機語言命令集合內的人機語言命令的更新方向;
[0026]將屬于所述第二區(qū)別人機語言命令集合的人機語言命令按照所述更新方向更新為對應的屬于所述第一區(qū)別人機語言命令集合的人機語言命令,得到屬于所述第二區(qū)別人機語言命令集合的人機語言命令的人機語言命令更新規(guī)則。
[0027]上述方案中,所述根據所述差異性人機語言命令集合得到人機語言命令更新規(guī)則還包括:
[0028]若屬于所述第二區(qū)別人機語言命令集合的人機語言命令按照所述更新方向無法更新為對應的屬于所述第一區(qū)別人機語言命令集合的人機語言命令,則將屬于所述第二區(qū)別人機語言命令集合的人機語言命令保存至第一人機語言命令。
[0029]本發(fā)明實施例還提供了一種人機命令腳本更新裝置,所述裝置包括:
[0030]第一數據字典獲取單元,用于通過第一人機語言命令得到第一數據字典;
[0031]人機語言命令更新規(guī)則獲取單元,用于將所述第一數據字典和第二人機語言命令對應的第二數據字典進行比較,得到差異性人機語言命令集合;根據所述差異性人機語言命令集合得到人機語言命令更新規(guī)則;
[0032]人機命令腳本更新單元,用于根據所述人機語言命令更新規(guī)則對基于第二人機語言命令的人機命令腳本進行更新。
[0033]上述方案中,所述第一數據字典獲取單元包括:
[0034]人機語言命令獲取模塊,用于掃描包含具有第一人機語言命令的人機命令腳本的被測試系統(tǒng),得到第一人機語言命令;
[0035]第一數據字典獲取模塊,用于按設定屬性對所述第一人機語言命令進行排序,得到第一數據字典。
[0036]上述方案中,所述人機語言命令更新規(guī)則獲取單元包括:
[0037]第一區(qū)別人機語言命令集合獲取模塊,用于將所述第一數據字典中的第一設定人機語言命令組成第一區(qū)別人機語言命令集合;所述第一設定人機語言命令按照所述設定屬性不能在所述第二數據字典中找到完全相同的人機語言命令;
[0038]第二區(qū)別人機語言命令集合獲取模塊,用于將所述第二數據字典中的第二設定人機語言命令組成第二區(qū)別人機語言命令集合;所述第二設定人機語言命令按照所述設定屬性不能在所述第一數據字典中找到完全相同的人機語言命令;
[0039]差異性人機語言命令集合獲取模塊,用于將所述第一區(qū)別人機語言命令集合和第二區(qū)別人機