軟件自動化測試方法及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明一般地涉及自動化測試技術領域,并且更具體地,涉及軟件自動化測試方法及系統(tǒng)。
【背景技術】
[0002]隨著科技的發(fā)展,諸如平板電腦、智能手機的各種便攜式智能化電子設備在人們的生活中逐漸普及。目前,已經(jīng)開發(fā)了數(shù)量龐大的應用軟件以供在這些智能終端的操作系統(tǒng)上使用,在很大程度上豐富和便利了人們的生活。移動互聯(lián)網(wǎng)的蓬勃發(fā)展更是不僅使可開發(fā)的應用領域更豐富,同時也使軟件的分發(fā)和下載更加方便。
[0003]與在常規(guī)的計算機系統(tǒng)軟件類似,針對移動終端操作系統(tǒng)的應用軟件在發(fā)布之前必須通過測試來保證其正確性、完整性和安全性。一般地,可以使用人工操作或者自動化測試的方式來檢驗一款軟件是否滿足規(guī)定的需求或確定預期結果與實際結果之間的差別。在大多數(shù)情況下,自動化測試具有節(jié)省人力、時間或硬件資源等諸多優(yōu)勢。
[0004]為針對新開發(fā)的軟件或軟件的不同版本進行自動化測試,通常需要相應的自動化測試平臺。目前常用的移動終端操作系統(tǒng),例如Android系統(tǒng)、1S系統(tǒng)均提供了各類測試框架,使得軟件開發(fā)人員能夠通過腳本或代碼控制移動設備。然而,移動設備的一大特點是終端型號種類繁多。對于軟件開發(fā)商而言,經(jīng)常需要在眾多市場上可獲得的移動設備上測試同一軟件的不同開發(fā)版本。雖然部分測試工具實現(xiàn)了多部移動設備并行測試執(zhí)行和測試結果上傳,但多以單個測試任務或用例為單位呈現(xiàn)測試結果或報告,無法適用于企業(yè)級版本測試或在持續(xù)集成中快速呈現(xiàn)以版本為維度的測試結果或測試報告的要求。對于版本測試中多輪測試、單點或部分測試執(zhí)行場景,現(xiàn)有測試工具測試結果及測試報告無法以作自適應生成。
[0005]隨著移動設備及其上的應用軟件的廣泛普及,對于高效率的軟件自動化測試方案仍有很大的需求。
【發(fā)明內容】
[0006]本發(fā)明的目的是提供一種高效的軟件自動化測試方案,其能夠降低軟件測試成本,縮短軟件交付時間,同時提高軟件測試的效率和完備性。
[0007]根據(jù)本發(fā)明的一方面,一種軟件自動化測試系統(tǒng)被提供,所述系統(tǒng)包括測試服務器以及與測試服務器通信連接的一個或多個測試執(zhí)行器,每個測試執(zhí)行器分別與一個或多個目標設備通信連接,其中所述測試服務器被配置為存儲根據(jù)用戶輸入預先建立的測試信息表,其中每個測試信息表項被構造為通過主鍵唯一地被標識;所述測試執(zhí)行器被配置為向目標設備發(fā)送用例執(zhí)行命令、從目標設備接收測試執(zhí)行信息以及將所述測試執(zhí)行信息與對應的主鍵值一起上傳至所述測試服務器;并且所述測試服務器還被配置為以所述主鍵值為索引、根據(jù)所接收的測試執(zhí)行信息更新對應的測試信息表項中的測試結果部分。
[0008]根據(jù)本發(fā)明的一些實施例,所述主鍵為聯(lián)合主鍵,并且所述聯(lián)合主鍵至少包括被測軟件標識、版本號、目標設備標識以及測試用例編號字段。
[0009]根據(jù)本發(fā)明的一些實施例,所述測試用例編號被構造為指示實現(xiàn)該測試用例的測試代碼執(zhí)行函數(shù)以及該測試代碼執(zhí)行函數(shù)的完整路徑,并且向目標設備發(fā)送用例執(zhí)行命令包括通過解析所述測試用例編號來生成所述用例執(zhí)行命令。
[0010]根據(jù)本發(fā)明的一些實施例,所述測試用例編號被構造為按順序包括所述測試代碼執(zhí)行函數(shù)的各級模塊名稱。
[0011]根據(jù)本發(fā)明的一些實施例,測試信息表項中的測試結果部分包括與最新測試結果相關的第一字段集合以及與歷史測試結果相關的第二字段集合,并且更新所述測試結果部分包括將所述第一字段集合中的內容移入所述第二字段集合以及將最新接收的測試執(zhí)行信息填入所述第一字段集合。
[0012]根據(jù)本發(fā)明的一些實施例,所述測試執(zhí)行信息至少包括測試是否成功、測試時間和測試日志記錄。
[0013]根據(jù)本發(fā)明的一些實施例,將測試執(zhí)行信息與對應的主鍵值一起上傳至測試服務器包括將測試執(zhí)行信息與對應的主鍵值按HTTP格式組成報文。
[0014]根據(jù)本發(fā)明的另一方面,一種軟件自動化測試方法被提供,所述方法利用測試服務器和測試執(zhí)行器在目標設備上進行軟件自動化測試,其中所述測試服務器與一個或多個測試執(zhí)行器通信連接并且每個測試執(zhí)行器分別與一個或多個目標設備通信連接,所述方法包括:在測試服務器上存儲根據(jù)用戶輸入預先建立的測試信息表,其中每個測試信息表項被構造為通過主鍵唯一地被標識;由測試執(zhí)行器為向目標設備發(fā)送用例執(zhí)行命令;由測試執(zhí)行器從目標設備接收測試執(zhí)行信息;由測試執(zhí)行器將所述測試執(zhí)行信息與對應的主鍵值一起上傳至測試服務器;以及由測試服務器以所述主鍵值為索引、根據(jù)所接收的測試執(zhí)行信息更新對應的測試信息表項中的測試結果部分。
[0015]通過應用本發(fā)明所提供的軟件自動化測試方案,可以方便地在眾多目標設備上實現(xiàn)分布式的自動測試以及按所需維度對測試結果的收集和匯總,尤其適用于在移動終端的操作系統(tǒng)上對軟件進行測試。在本發(fā)明的一些實施例中,還實現(xiàn)了將測試用例與實現(xiàn)其的測試代碼之間的關聯(lián),這可以很大程度上提高在數(shù)量眾多的目標設備上并行地進行自動化測試的效率。另外,本發(fā)明所提供的軟件自動化測試方案還有助于在多種類型的設備及操作系統(tǒng)測試框架上同時進行測試,為軟件開發(fā)人員提供了極大的便利性。
【附圖說明】
[0016]本發(fā)明的前述和其他目標、特征和優(yōu)點根據(jù)下面對本發(fā)明的實施例的更具體的說明將是顯而易見的,這些實施例在附圖中被示意。
[0017]圖1是根據(jù)本發(fā)明的一個實施例的軟件自動化測試系統(tǒng)的示例性結構圖。
[0018]圖2是根據(jù)本發(fā)明的第一實施例的軟件自動化測試方法的示例性流程圖。
[0019]圖3是根據(jù)本發(fā)明的第二實施例的軟件自動化測試方法的示例性流程圖。
【具體實施方式】
[0020]以下結合附圖和【具體實施方式】進一步詳細說明本發(fā)明。需要說明的是,附圖中的各結構只是示意性說明,用以使本領域普通技術人員最佳地理解本發(fā)明的原理,其不一定按比例繪制。
[0021]圖1是根據(jù)本發(fā)明的一個實施例的軟件自動化測試系統(tǒng)的示例性結構圖,該系統(tǒng)可以被用于在多個目標設備上對待發(fā)布的軟件并行地進行測試。被測軟件針對在目標設備上的應用被開發(fā),尤其被設計為適應于目標設備的操作系統(tǒng)。在目標設備為移動終端的情況下,各種移動終端的硬件配置可能各不相同,而軟件人員的目標可能是使待發(fā)布的軟件在所有這些配置各異的移動終端上均能穩(wěn)定地運行。通過使用根據(jù)本發(fā)明實施例的軟件自動化測試系統(tǒng),可以幫助軟件開發(fā)人員方便高效地在各種目標設備上并行地對待發(fā)布的軟件進行測試。
[0022]如圖1所示,該系統(tǒng)大體上可以包括測試服務器100、一個或多個測試執(zhí)行器201、202,以及多個目標設備。測試服務器100分別與測試執(zhí)行器201、202通信連接。測試服務器與測試執(zhí)行器之間的通信可以采用本領域中已知的或待開發(fā)的任何通信技術來實現(xiàn),例如通過局域網(wǎng)技術等。每個測試執(zhí)行器可以分別與一個或多個目標設備通信連接。同樣地,測試執(zhí)行器與目標設備之間的通信可以采用本領域中已知的或待開發(fā)的任何技術來實現(xiàn),例如通過USB或Wifi技術等。每個測試執(zhí)行器所連接的目標設備的數(shù)量可