本發明涉及軟件測試技術領域,特別涉及一種軟件自動化測試的報錯日志的自動分析方法和系統。
背景技術:
在軟件業十分成熟的今天,agile(敏捷)開發在業界日益流行,而面臨的挑戰也日益增多,不斷變化的用戶需求、縮短的開發周期、頻繁的部署上線、復雜的產品架構和團隊組織,如何繼續保證軟件的質量是一個不能回避的課題。
自動化集成是各大公司的測試趨勢,而對測試用例的測試結果的分析一般是采用人工統計的方式,首先進入報錯日志鏈接,然后再將報錯日志拉到最底部,最后才能知道報錯原因。現有的方式操作不便,測試結果的分析比較耗時,測試人員分析測試結果的效率較低。
技術實現要素:
本發明要解決的技術問題是為了克服現有技術中軟件測試結果分析采用人工統計的方式操作不便、耗時、效率低的缺陷,提供一種能夠提高測試人員分析報錯日志的效率、減少分析及等待時間,從而提高自動化測試持續集成效率的軟件自動化測試的報錯日志的自動分析方法和系統。
本發明是通過下述技術方案來解決上述技術問題:
一種軟件自動化測試的報錯日志的自動分析方法,其特點在于,包括以下步驟:
s1、獲取每條報錯日志,對所述報錯日志進行預處理,以得到第一日志,所述預處理用于去除所述報錯日志中的干擾詞,所述干擾詞包括system、the、error和/或中文字符;
s2、判斷所述第一日志的長度是否大于預設閾值,若是則執行步驟s3,若否則執行步驟s4;
s3、根據詞庫數據庫對所述第一日志分詞,以得到第二日志;
s4、步驟s2中若否則設置所述第一日志為第二日志;將所述第二日志與規則數據庫中的歸類規則進行匹配,以得到匹配的異常錯誤詳細信息,獲取所述匹配的異常錯誤詳細信息對應的異常錯誤類型,設置所述對應的異常錯誤類型為所述報錯日志的錯誤標識;每條所述歸類規則包括一一對應的異常錯誤類型和異常錯誤詳細信息。
本方案中,當每條測試用例執行完,如果有報錯信息,則首先對報錯日志進行預處理,以去除掉干擾詞,從而提高后續錯誤日志分析的準確率;隨后判斷報錯日志的字節數,如果超過預設閾值,說明長度過長,需要經過分詞處理后再進行歸類規則匹配,如果小于預設閾值則直接進行全文匹配。經過匹配后能夠得到該條報錯日志的錯誤標識,測試人員分析測試結果時通過該錯誤標識即可直觀地獲知該測試用例的報錯原因,而不需要進入報錯日志鏈接,再將報錯日志拉到最底部才能知道報錯原因。本方案在進行軟件自動化測試的報錯日志的分析時不需要測試人員手動操作即可直觀獲知報錯原因,有效提高了測試人員分析報錯日志的效率、減少分析及等待時間,從而提高自動化測試持續集成效率。
較佳地,所述自動分析方法還包括以下步驟:創建所述規則數據庫。
本方案中,通過創建規則數據庫為報錯日志進行錯誤匹配提供匹配依據,規則數據庫包括預先存好的歸類規則,歸類規則用于表示錯誤歸屬類別,包括一一對應的異常錯誤類型和異常錯誤詳細信息,異常錯誤類型表示該報錯日志屬于哪一類錯誤,異常錯誤詳細信息表示該報錯日志包括的具體錯誤信息。
較佳地,所述自動分析方法還包括以下步驟:通過操作頁面增加、刪除和/或修改所述規則數據庫中的歸類規則。
本方案中,為用戶提供操作頁面,通過該操作頁面用戶可自行增加、刪除和/或修改錯誤歸屬類別即歸類規則。用戶增加一個類別,可自行定義級別,根據用戶定義的級別,可自動生成各種相對判斷出錯模式,同時用戶可自行選擇歸類類別,可擴展性好,適用于不同的網絡環境。
較佳地,步驟s4中進行匹配時挑選匹配度最高的異常錯誤詳細信息作為所述匹配的異常錯誤詳細信息。
本方案中,對于匹配時有多種能夠匹配的歸類規則的情況,此時選擇匹配度最高的異常錯誤詳細信息作為所述匹配的異常錯誤詳細信息,能夠提高自動分析報錯原因的準確率。
較佳地,步驟s3為:根據所述詞庫數據庫和所述規則數據庫對所述第一日志分詞,以得到所述第二日志。
本方案中,分詞時不僅考慮傳統的詞庫數據庫,還結合了規則數據庫,能夠更加符合軟件自動化測試的報錯日志的自動分析的需求,使得分詞后的結果更加合理,減少誤判率。
本發明還提供一種軟件自動化測試的報錯日志的自動分析系統,其特點在于,包括預處理模塊、長度判斷模塊、分詞模塊和匹配模塊;所述預處理模塊用于獲取每條報錯日志,對所述報錯日志進行預處理,以得到第一日志,所述預處理用于去除所述報錯日志中的干擾詞,所述干擾詞包括system、the、error和/或中文字符;所述長度判斷模塊用于判斷所述第一日志的長度是否大于預設閾值,若是則調用所述分詞模塊,若否則所述調用匹配;所述分詞模塊用于根據詞庫數據庫對所述第一日志分詞,以得到第二日志;所述匹配模塊用于在所述長度判斷模塊中若否時設置所述第一日志為第二日志;所述匹配模塊還用于將所述第二日志與規則數據庫中的歸類規則進行匹配,以得到匹配的異常錯誤詳細信息,獲取所述匹配的異常錯誤詳細信息對應的異常錯誤類型,設置所述對應的異常錯誤類型為所述報錯日志的錯誤標識;每條所述歸類規則包括一一對應的異常錯誤類型和異常錯誤詳細信息。
較佳地,所述自動分析系統還包括規則數據庫創建模塊,所述規則數據庫創建模塊用于創建所述規則數據庫。
較佳地,所述自動分析系統還包括歸類規則處理模塊,所述歸類規則處理模塊用于通過操作頁面增加、刪除和/或修改所述規則數據庫中的歸類規則。
較佳地,所述匹配模塊在進行匹配時挑選匹配度最高的異常錯誤詳細信息作為所述匹配的異常錯誤詳細信息。
較佳地,所述分詞模塊根據所述詞庫數據庫和所述規則數據庫對所述第一日志分詞,以得到所述第二日志。
本發明的積極進步效果在于:本發明提供的軟件自動化測試的報錯日志的自動分析方法和系統能夠自動得到每條報錯日志的錯誤標識,測試人員分析測試結果時通過該錯誤標識即可直觀地獲知該測試用例的報錯原因,而不需要進入報錯日志鏈接,再將報錯日志拉到最底部才能知道報錯原因。本發明在進行軟件自動化測試的報錯日志的分析時不需要測試人員手動操作即可直觀獲知報錯原因,有效提高了測試人員分析報錯日志的效率、減少分析及等待時間,從而提高自動化測試持續集成效率。
附圖說明
圖1為本發明一較佳實施例的軟件自動化測試的報錯日志的自動分析方法的流程圖。
圖2為發明一較佳實施例的軟件自動化測試的報錯日志的自動分析系統的示意圖。
圖3為發明一較佳實施例中規則數據庫中存儲的歸類規則的示意圖。
具體實施方式
下面通過實施例的方式進一步說明本發明,但并不因此將本發明限制在所述的實施例范圍之中。
如圖1所示,一種軟件自動化測試的報錯日志的自動分析方法,包括以下步驟:
步驟101、創建規則數據庫,規則數據庫用于存儲歸類規則,每條歸類規則包括一一對應的異常錯誤類型和異常錯誤詳細信息。
步驟102、通過操作頁面增加、刪除和/或修改規則數據庫中的歸類規則。
步驟103、獲取每條報錯日志,對報錯日志進行預處理,以得到第一日志,所述預處理用于去除所述報錯日志中的干擾詞,干擾詞包括system、the、error和/或中文字符。
步驟104、判斷第一日志的長度是否大于預設閾值,若是則執行步驟105,若否則執行步驟106。
步驟105、根據詞庫數據庫和規則數據庫對第一日志分詞,以得到第二日志。
步驟106、步驟104中若否則設置第一日志為第二日志;將第二日志與規則數據庫中的歸類規則進行匹配,挑選匹配度最高的異常錯誤詳細信息作為匹配的異常錯誤詳細信息,獲取所述匹配的異常錯誤詳細信息對應的異常錯誤類型,設置所述對應的異常錯誤類型為所述報錯日志的錯誤標識。
如圖2所示,一種基于圖1所示自動分析方法的軟件自動化測試的報錯日志的自動分析系統,包括規則數據庫創建模塊1、歸類規則處理模塊2、預處理模塊3、長度判斷模塊4、分詞模塊5和匹配模塊6。
規則數據庫創建模塊1用于創建規則數據庫,規則數據庫用于存儲歸類規則,每條歸類規則包括一一對應的異常錯誤類型和異常錯誤詳細信息。
歸類規則處理模塊2用于通過操作頁面增加、刪除和/或修改規則數據庫中的歸類規則。
預處理模塊3用于獲取每條報錯日志,對報錯日志進行預處理,以得到第一日志,所述預處理用于去除報錯日志中的干擾詞,干擾詞包括system、the、error和/或中文字符。
長度判斷模塊4用于判斷第一日志的長度是否大于預設閾值,若是則調用分詞模塊5,若否則調用匹配模塊6。
分詞模塊5用于根據詞庫數據庫和規則數據庫對第一日志分詞,以得到第二日志。
匹配模塊6用于在長度判斷模塊4中若否時設置第一日志為第二日志;匹配模塊6還用于將第二日志與規則數據庫中的歸類規則進行匹配,挑選匹配度最高的異常錯誤詳細信息作為匹配的異常錯誤詳細信息,獲取所述匹配的異常錯誤詳細信息對應的異常錯誤類型,設置所述對應的異常錯誤類型為所述報錯日志的錯誤標識。
下面繼續通過具體的例子,進一步說明本發明的技術方案和技術效果。
基于本實施例提供的自動分析方法的軟件具體實現時可以將api(應用程序編程接口)、ui(用戶界面)和移動終端app(應用軟件)三種平臺自動化集成一體,用戶可以自己選擇采用哪種平臺進行錯誤日志的分析。用戶可以自己創建項目,可以托管執行測試用例,用戶可以在web(全球廣域網)頁面查詢測試用例的執行情況及查詢測試報告,從軟件后臺可以清晰的查看到所有執行情況及日志信息,提供清晰的可視化平臺。當每條測試用例執行完,如果有報錯信息,本實施例會自動對其進行預處理,如果報錯信息字節數小于預設閾值,則根據規則數據庫來進行全文匹配,如果超過預設閾值,則是對報錯日志進行分詞處理,對應分詞后的結構跟已有的歸類規則進行過濾匹配,匹配度最高的歸類規則對應的異常錯誤類型則是該測試用例的報錯日志的錯誤標識。只要用戶執行完測試用例,若有錯誤日志則可自動啟動錯誤日志分析操作,從而能夠自動得到該測試用例的報錯原因,不用再一一點開報錯日志,逐個分析,極大地節約了測試人員的時間。
如圖3所示,規則數據庫中存儲的歸類規則包括一一對應的異常錯誤類型和異常錯誤詳細信息,這些歸類規則一般為提前抓取的錯誤類別。本實施例還為用戶提供了操作頁面,方便用戶對錯誤類別進行擴展,用戶可以自行通過該操作頁面實現對圖3所示的規則數據庫的操作,具體為增加、刪除和/或修改歸類規則,用戶增加一個類別即增加一條歸類規則后,可自行定義級別,根據用戶定義的級別,可自動生成各種相對判斷出錯模式,同時用戶可自行選擇歸類類別,可擴展性好,適用于不同的網絡環境。本實施例從已有的錯誤日志中提取信息,經預處理后再根據情況決定是否分詞,最后再使用規則數據庫進行過濾匹配,從而匹配到合適的錯誤類別進行標識。本實施例針對待匹配的文本,有效地支持全文匹配和基于關鍵詞的模糊匹配方法。全文匹配模式檢索快速,適合需實時檢測、實時反饋檢測結果。基于關鍵詞的模糊匹配,在基于關鍵字匹配的基礎上,通過分析報錯信息的變形規律,制定出一套常規的日志報錯變種規則,并嵌入到匹配算法當中。
本發明能夠自動對報錯日志進行分析,快速獲取所有測試用例的報錯信息,并按歸類規則對錯誤類型進行分類并標識,得到每條報錯日志的錯誤標識,測試人員通過瀏覽錯誤標識就能夠直觀的看到所有報錯信息,節省了手動點擊鏈接再查看報錯日志詳情從而獲取報錯原因的時間,有效提高了測試人員分析報錯日志的效率、減少分析及等待時間,從而提高自動化測試持續集成效率。
雖然以上描述了本發明的具體實施方式,但是本領域的技術人員應當理解,這僅是舉例說明,本發明的保護范圍是由所附權利要求書限定的。本領域的技術人員在不背離本發明的原理和實質的前提下,可以對這些實施方式做出多種變更或修改,但這些變更和修改均落入本發明的保護范圍。