一種基于業(yè)務流程控制的應用程序測試方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種基于業(yè)務流程控制的應用程序測試方法及系統(tǒng),本發(fā)明提供的方法通過定義測試用例、實現(xiàn)自動化測試腳本、建立對應關系、定義測試流程、定義測試計劃、執(zhí)行測試任務等步驟對應用程序進行分布式自動測試;對應地,本發(fā)明提供一種系統(tǒng),所述系統(tǒng)包括數(shù)據(jù)存儲單元、流程管理單元、任務創(chuàng)建單元、任務執(zhí)行單元等單元模塊。本發(fā)明提供的方法及系統(tǒng)是針對流程性較強的應用程序進行設計,是一種基于測試流程控制的方法和系統(tǒng),應用本發(fā)明提供的系統(tǒng)和方法可以有效地提高測試覆蓋率,增加測試質(zhì)量;減少測試成本,提高人員效率;減少環(huán)境維護成本;減少傳統(tǒng)自動化測試所花的時間。
【專利說明】一種基于業(yè)務流程控制的應用程序測試方法及系統(tǒng)
【技術領域】
[0001]本發(fā)明涉及軟件測試以及網(wǎng)絡通信【技術領域】,具體涉及一種基于業(yè)務流程控制的應用程序測試方法及系統(tǒng)。
【背景技術】
[0002]在應用程序測試領域中,通常是使用人工或者自動手段來運行或測試某個系統(tǒng),其目的在于檢驗它是否滿足規(guī)定的需求或弄清預期結果與實際結果之間的差別。對于一些流程性較強的應用程序,如訂單系統(tǒng)生產(chǎn)流程,審核流程等系統(tǒng),采用人工測試手段時,手工測試人員要根據(jù)自己的測試經(jīng)驗和業(yè)務熟悉程度,憑感覺去測試這些流程,可能因為疲勞或者項目時間的壓力,使覆蓋率不是很高,容易產(chǎn)生漏測或者來不及測試的情況,導致線上事故,嚴重的會造成直接的經(jīng)濟損失。
[0003]對于此類問題,軟件測試行業(yè)中發(fā)展了一些自動化測試工具,如QTP,即HPQuickTest Professional software>Selenium等專業(yè)測試工具,此類工具可以通過執(zhí)行測試腳本,完成測試任務;同時,由于實際情況的需要,本行業(yè)內(nèi)還發(fā)展了一些測試管理工具,用于管理軟件的整個測試輸入、執(zhí)行過程和測試結果,如TestLink、TestCenter等。
[0004]應用上述兩種工具執(zhí)行測試工作時,已經(jīng)在一定程度上避免了手工測試帶來的問題,但是在實際實踐中,由于測試項目的數(shù)據(jù)量很大,需要測試的業(yè)務流程的組合情況很多,關鍵問題在于測試套件、測試用例和測試腳本的設計以及對它們之間關系的利用。比如應用QTP對應用程序進行測試時,測試人員需要對于應用程序中的每個業(yè)務流程分別設計測試用例以及測試腳本,非常依賴測試人員的經(jīng)驗和能力,會使得測試覆蓋率較低;并且由于測試任務的比較復雜以及數(shù)據(jù)量較大等問題,使得測試項目所此耗費的時間很長,所以依然存在測試效率低和測試成本高等問題。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明結合自動化測試工具和測試管理工具的特點以及多線程通信領域的技術,提供一種基于業(yè)務流程控制的分布式應用程序測試系統(tǒng)及方法,來提高測試覆蓋率、增加測試質(zhì)量、減少測試成本。本發(fā)明提供一種基于業(yè)務流程控制的應用程序測試方法,所述方法包括:
[0006]定義測試用例:應用測試管理工具,根據(jù)被測應用程序的業(yè)務流程,為所述流程中的每個業(yè)務節(jié)點分別設計測試用例,并將所述測試用例存儲于數(shù)據(jù)庫中;
[0007]實現(xiàn)自動化測試腳本:針對所述測試用例,分別編寫與各個測試用例對應的自動化測試腳本,并將所述自動化測試腳本存儲于數(shù)據(jù)庫中;
[0008]建立對應關系:應用測試管理工具,在所述數(shù)據(jù)庫中建立所述自動化測試腳本與所述測試用例的對應關系,所述對應關系是一對一的映射關系;
[0009]定義測試流程:應用測試管理工具,按照被測應用程序的業(yè)務流程中業(yè)務節(jié)點的邏輯順序,將所述測試用例組合成一個或多個測試套件;[0010]定義測試計劃:在測試管理工具中,選擇一個或多個所述測試套件,并選定一個帶有自動化測試工具并且處于空閑狀態(tài)的測試機作為執(zhí)行測試任務的對象;所述測試任務是測試套件中測試用例所對應的自動化測試腳本的組合;
[0011]執(zhí)行測試任務:被選定的測試機啟動自動化測試工具,加載數(shù)據(jù)庫中所有與測試套件包含的測試用例有對應關系的自動化測試腳本,并按照所述定義測試流程的步驟中定義的測試用例的組合順序執(zhí)行所述腳本。
[0012]進一步的,所述定義測試計劃的步驟是:在測試管理工具中,選擇一個或多個所述測試套件,并選定多個帶有自動化測試工具并且處于空閑狀態(tài)的測試機作為執(zhí)行任務的對象;并且由人為指定每個測試機所要執(zhí)行的測試任務。
[0013]進一步的,所述建立對應關系的步驟中,建立自動化測試腳本與測試用例的對應關系的方法是:在測試管理工具中,將每個測試用例的摘要字段輸入為與該測試用例對應的自動化腳本名稱。
[0014]進一步的,所述執(zhí)行測試任務的步驟還包括如下子步驟:
[0015]更新自動化測試腳本:在加載和執(zhí)行自動化測試腳本之前,在數(shù)據(jù)庫中利用版本管理工具更新自動化測試腳本的代碼。
[0016]進一步的,所述方法還包括如下步驟:
[0017]維護測試數(shù)據(jù):在所述定義測試計劃的步驟之后,應用測試管理工具對測試套件中的測試用例涉及的測試數(shù)據(jù)進行增加或替換。
[0018]進一步的,所述方法還包括如下步驟:
[0019]反饋任務進度:所述測試機在執(zhí)行測試任務的過程中每隔一段時間生成任務執(zhí)行進度報告。
[0020]進一步的,所述方法還包括如下步驟:
[0021]釋放測試機資源:測試機在測試任務將執(zhí)行完畢后,將所述測試機的資源釋放,使所述測試機重新處于空閑狀態(tài)。
[0022]進一步的,所述方法還包括如下步驟:
[0023]生成測試報告:測試機在測試任務將執(zhí)行完畢后,所述測試機生成測試報告并發(fā)送至指定的電子郵箱。
[0024]對應地,本發(fā)明提供一種基于業(yè)務流程控制的應用程序測試系統(tǒng),所述系統(tǒng)包括:
[0025]數(shù)據(jù)存儲單元,用于建立數(shù)據(jù)庫;
[0026]流程管理單元,用于建立測試套件與測試用例以及二者的對應關系,用于建立測試腳本與測試用例的對應關系;
[0027]任務創(chuàng)建單元,用于定義測試計劃、創(chuàng)建測試任務;
[0028]任務執(zhí)行單元,用于執(zhí)行測試任務;
[0029]所述流程管理單元根據(jù)數(shù)據(jù)存儲單元中的數(shù)據(jù)建立測試套件與測試用例以及二者的對應關系、建立測試腳本與測試用例的對應關系;所述任務創(chuàng)建單元根據(jù)流程管理單元建立的內(nèi)容定義測試計劃、創(chuàng)建測試任務;所述任務執(zhí)行單元根據(jù)任務創(chuàng)建單元發(fā)送的信息并讀取數(shù)據(jù)存儲單元的數(shù)據(jù)執(zhí)行測試任務。
[0030]進一步的,所述系統(tǒng)的任務執(zhí)行單元包括至少一個服務器。[0031]進一步的,所述系統(tǒng)的任務執(zhí)行單元包括至少一個測試機。
[0032]進一步的,當任務執(zhí)行單元包含一個服務器和至少一個測試機時,所述至少一個測試機與所述服務器相連。
[0033]進一步的,當任務執(zhí)行單元包含多個服務器和多個測試機,每個服務器與任意個測試機連接組成若干任務執(zhí)行子單元。
[0034]進一步的,所述多個測試機的操作系統(tǒng)不相同。
[0035]進一步的,所述系統(tǒng)還包括:
[0036]數(shù)據(jù)管理單元,用于維護測試數(shù)據(jù);所述數(shù)據(jù)管理單元對流程管理單元中建立的測試套件中的測試用例所用到的測試數(shù)據(jù)進行維護。
[0037]進一步的,所述系統(tǒng)還包括:
[0038]任務監(jiān)控單元,用于反饋測試機執(zhí)行測試任務的進度與結果;所述任務監(jiān)控單元根據(jù)任務執(zhí)行單元產(chǎn)生的數(shù)據(jù)進行反饋。
[0039]本發(fā)明提供的方法和系統(tǒng),通過對每個業(yè)務節(jié)點分別設計測試用例,以及建立對測試用例和測試腳本的對應關系和對整個測試流程的定義,提高了測試覆蓋率,增加測試質(zhì)量;減少測試成本。
【專利附圖】
【附圖說明】
[0040]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發(fā)明的其它特征、目的和優(yōu)點將會變得更明顯:
[0041]圖1是本發(fā)明實施例一提供的一種基于業(yè)務流程控制的分布式應用程序測試方法流程圖;
[0042]圖2是本發(fā)明實施例三提供的一種基于業(yè)務流程控制的應用程序測試系統(tǒng)的示意圖;
[0043]圖3是本發(fā)明實施例三提供的一種基于業(yè)務流程控制的應用程序測試系統(tǒng)中的任務執(zhí)行單元示意圖。
【具體實施方式】
[0044]下面結合附圖和實施例對本發(fā)明作進一步的詳細說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關的部分而非全部內(nèi)容。
[0045]實施例一
[0046]如圖1所示,本實施例提供一種基于業(yè)務流程控制的應用程序測試方法,本實施例以一個被測試應用程序為例,被測試的應用程序的業(yè)務流程包括四個業(yè)務節(jié)點1、2、3、4,本實施例所用的測試管理工具是Testlink,自動化測試工具是QTP或Selenium,QTP即HP QuickTest Professional software,并且應用本發(fā)明的方法以及任何實施例,都需要對Testlink進行二次開發(fā),增加若干功能模塊。所述測試方法包括以下步驟:
[0047]定義測試用例101:應用測試管理工具,根據(jù)被測應用程序的業(yè)務流程,為所述流程中的每個業(yè)務節(jié)點分別設計測試用例,并將所述測試用例存儲于數(shù)據(jù)庫中;首先應用Testlink定義與四個業(yè)務節(jié)點對應的4個測試用例A、B、C、D,A是針對節(jié)點I的用例、B是針對節(jié)點2的用例、C是針對節(jié)點3的用例、D是針對節(jié)點4的用例,并將四個測試用例存于數(shù)據(jù)庫中。
[0048]實現(xiàn)自動化測試腳本102:針對所述測試用例,分別編寫與各個測試用例對應的自動化測試腳本,并將所述自動化測試腳本存儲于數(shù)據(jù)庫中;根據(jù)4個測試用例編寫與之對應的自動化測試腳本,將四個腳本名稱分別命名為TestCase_A、TestCase_B、TestCase_C、TestCase_D,并將四個自動化測試腳本存儲于數(shù)據(jù)庫中。
[0049]建立對應關系103:應用測試管理工具,在所述數(shù)據(jù)庫中建立所述自動化測試腳本與所述測試用例的對應關系,所述對應關系是一對一的映射關系;在數(shù)據(jù)庫中建立測試用例 A、B、C、D 與自動化測試腳本 TestCase_A、TestCase_B、TestCase_C、TestCase_D 的對應關系。
[0050]定義測試流程104:應用測試管理工具,按照被測應用程序的業(yè)務流程中業(yè)務節(jié)點的邏輯順序,將所述測試用例組合成一個或多個測試套件;假設業(yè)務流程有多種邏輯順序,其中包括124、234,應用Testlink建立一個包含ABD流程的測試套件,命名為TestSuite_ABD,在此測試套件中添加A、B、D三個用例;并且可以建立多個測試套件,如建立另一個包含B⑶流程的測試套件,命名為TestSuite_B⑶,并在此測試套件中添加B、C、D三個用例。
[0051]定義測試計劃105:在測試管理工具中,選擇一個或多個所述測試套件,并選定一個帶有自動化測試工具并且處于空閑狀態(tài)的測試機作為執(zhí)行測試任務的對象;所述測試任務是測試套件中測試用例所對應的自動化測試腳本的組合;
[0052]由于實際情況中的測試流程較多,需要多個測試機共同完成測試任務,作為一種優(yōu)選的方案,在本實施例中,在測試管理工具中,選擇一個或多個所述測試套件,并選定多個帶有自動化測試工具并且處于空閑狀態(tài)的測試機作為執(zhí)行任務的對象;并且人為指定每個測試機所要執(zhí)行的測試任務。
[0053]在Testlink中定義測試計劃,命名為“回歸測試計劃”,將測試套件TestSuite_ABD下A、B、D用例和TestSuite_BCD下的B、C、D用例添加到“回歸測試計劃”中,此處添加的用例B、C、D是可選的,例如測試套件TestSuite_Bra,若只要執(zhí)行C、D用例,則添加C、D用例即可,后續(xù)執(zhí)行測試套件TestSuite_BCD的時候,實際運行的就是此處添加的測試用例。
[0054]本實施例采用圖3所示的系統(tǒng)實現(xiàn)多個測試機共同完成測試任務的功能,在定義測試計劃的步驟中,需要在testlink中填寫某個任務執(zhí)行子單元中服務器的ip地址并且選擇此服務器下的一個測試機,并為此測試機指定測試任務;如果有多個測試套件,即代表有多個測試任務,可以為多個測試機分配不同的測試任務來實現(xiàn)分布式執(zhí)行的功能。例如選中“回歸測試計劃”后,系統(tǒng)自動帶出測試套件TestSuite_ABD,和TestSuite_BCD,然后選中服務器I下的測試機I,將TestSuite_ABD任務信息封裝,發(fā)送socket請求給服務器I ;選中服務器2下的測試機4,將TestSuite_BCT任務信息封裝,發(fā)送socket請求給服務器2。
[0055]執(zhí)行測試任務106:被選定的測試機啟動自動化測試工具,加載數(shù)據(jù)庫中所有與測試套件包含的測試用例有對應關系的自動化測試腳本,并按照“定義測試流程”的步驟中定義的測試用例的組合順序執(zhí)行所述腳本。任務執(zhí)行子單元中的服務器I或服務器2接收到測試套件TestSuite_ABD或TestSuite_BCD后,服務器從數(shù)據(jù)庫中查詢測試用例A、B、D和測試用例B、C、D,并將測試用例發(fā)送給被選定的測試機I和測試機4,被選定的測試機接收到測試用例后,根據(jù)測試用例與自動化測試腳本的名稱的對應關系,從數(shù)據(jù)庫加載與測試用例對應的自動化測試腳本,獲取到所有測試用例與腳本后自動開始測試任務。測試機I和測試機4實現(xiàn)了分布式執(zhí)行測試任務的功能。
[0056]實施例二
[0057]本實施例提供的方法,是在實施例一基礎上提出的一種改進,本實施例中的軟硬件環(huán)境與實施例一相同。在本實施例提供的方法的建立對應關系的步驟中,建立自動化測試腳本與測試用例的對應關系的方法是:在測試管理工具中,將每個測試用例的摘要字段輸入為與該測試用例對應的自動化腳本名稱。同樣以實施例一的業(yè)務流程為例,對于測試用例A,在測試項目管理服務器中的Testlink測試用例摘要輸入框內(nèi),填寫TeStCaSe_A ;同樣地,對于測試用例B,摘要輸入框內(nèi)輸入TestCaSe_B,按照此方式將測試用例C、D的摘要字段輸入為與該測試用例對應的自動化測試腳本名稱TestCaSe_C、TeStCaSe_D。
[0058]在本實施例提供的方法的執(zhí)行測試任務的步驟還包括如下子步驟:
[0059]更新自動化測試腳本:在加載和執(zhí)行自動化測試腳本之前,在數(shù)據(jù)庫中利用版本管理工具更新自動化測試腳本的代碼。本實施例采用版本管理工具SVN,即subversion,對自動化測試腳本的代碼進行更新,本發(fā)明系統(tǒng)中的測試機在加載自動化測試腳本時,利用版本管理工具從數(shù)據(jù)庫中拉取最新的腳本代碼。此步驟可以保證系統(tǒng)所用的代碼是最新版本,并且是自動地執(zhí)行,可以減少環(huán)境維護的成本。
[0060]本實施例提供的方法方法還包括如下步驟:
[0061]維護測試數(shù)據(jù):在定義測試計劃的步驟之后,應用測試管理工具對測試套件中的測試用例涉及的測試數(shù)據(jù)進行增加或替換。
[0062]在本實施例中,對于Testlink中的測試套件TestSuite_ABD和TestSuite_BCD,若ABD流程中需用到商品種類數(shù)據(jù)為“普通”,則選中TestSuite_ABD,添加一個“商品種類”值為“普通”的數(shù)據(jù);若B⑶流程中需用到商品種類數(shù)據(jù)為“奢侈品”,則選中TestSuite_B⑶,添加一個“商品種類”值為“奢侈品”的數(shù)據(jù)。此步驟可以使測試人員更改測試流程中所用的測試數(shù)據(jù)數(shù)據(jù),此方法具有很強的適應性。
[0063]本實施例提供的方法還包括如下步驟:
[0064]反饋任務進度:所述測試機在執(zhí)行測試任務的過程中每隔一段時間通過軟件控制報告任務執(zhí)行進度。
[0065]本實施例中的測試機上的自動化測試工具QTP在執(zhí)行測試任務的過程中,將測試過程產(chǎn)生的數(shù)據(jù)和中間成果定時地發(fā)送給與其對應的服務器,服務器存儲該數(shù)據(jù),測試項目管理服務器從該服務器上讀取所述數(shù)據(jù),本實施例中提到的測試項目管理服務器是一個裝有Testlink的服務器。此步驟可以使測試人員查看任務的進度,并且可以讀取中間成果,有效地提高了工作效率。
[0066]本實施例提供的方法方法還包括如下步驟:
[0067]釋放測試機資源:測試機在測試任務將執(zhí)行完畢后,通過軟件控制將所述測試機的資源釋放,使所述測試機重新處于空閑狀態(tài)。本實施例中的測試機上的自動化測試工具QTP執(zhí)行完測試任務后,通知與其對應的服務器任務已完成,所述服務器將該測試機的資源釋放,使該測試機重新成為可用狀態(tài)或者說空閑狀態(tài),以便于在創(chuàng)建測試任務步驟中使該測試機可以被選定。此步驟可以使系統(tǒng)資源循環(huán)利用,進一步節(jié)約了資源,提高了系統(tǒng)的效率。
[0068]本實施例提供的方法方法還包括如下步驟:
[0069]生成測試報告:測試機在測試任務將執(zhí)行完畢后,通過軟件控制自動生成測試報告并發(fā)送至指定的電子郵箱。本實施例中,在測試項目管理服務器中可以指定若干電子郵箱地址,當測試機上的自動化測試工具QTP執(zhí)行完測試任務后,會自動生成測試報告并發(fā)送至指定的電子郵箱。此步驟可以使測試人員直觀地看到測試結果,節(jié)省了一定的人員成本,提高了工作效率。
[0070]實施例三
[0071]如圖2、圖3所示,本實施例提供一種基于業(yè)務流程控制的應用程序測試系統(tǒng),本系統(tǒng)應用測試管理工具Testlink和自動化功能測試工具QTP,即HP QuickTestProfessional,以及JAVA多線程Sockect通信技術實現(xiàn)系統(tǒng)中的各單元以及他們的連接關
系O
[0072]本實施例提供的系統(tǒng)包括:
[0073]數(shù)據(jù)存儲單元201,用于建立數(shù)據(jù)庫;本實施例采用建立專用于測試項目的數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)存儲單元的功能。
[0074]流程管理單元202,用于建立測試套件與測試用例以及二者的對應關系,用于建立測試腳本與測試用例的對應關系;本實施例采用測試項目管理工具Testlink中的測試用例管理功能模塊和測試需求管理功能模塊實現(xiàn)流程管理單元。
[0075]任務創(chuàng)建單元203,用于定義測試計劃、創(chuàng)建測試任務;
[0076]本實施例采用測試項目管理工具Testlink中的測試用例對測試需求的覆蓋管理功能模塊、測試計劃的制定功能模塊、測試用例的執(zhí)行功能模塊實現(xiàn)任務創(chuàng)建單元。
[0077]由于流程管理單元202和任務創(chuàng)建單元203都是利用測試項目管理工具Testlink現(xiàn)有的功能模塊來實現(xiàn)各自的功能,所以本實施例使用一個測試項目管理服務器207集成流程管理單元202和任務創(chuàng)建單元203,在所述測試項目管理服務器207上安裝Testlink并對Testlink進行二次開發(fā)。
[0078]任務執(zhí)行單元204,用于執(zhí)行測試任務;本實施例采用自動化功能測試工具QTP以及服務器與終端的JAVA多線程Sockect通信技術實現(xiàn)任務執(zhí)行單元的功能。在本實施例中,任務執(zhí)行單元包含一個服務器和多個測試機,每個測試機與同一服務器連接;具體連接方式是使用Java語言設計一套軟件安裝在服務器上和測試機上,在服務器上,指定本無服務器與測試機的連接端口以及本服務器與測試項目管理服務器的連接端口,在測試機上,為每個測試機命名,指定要連接的服務器ip和連接端口。
[0079]進一步的,本實施例提供的任務執(zhí)行單元,如圖3所示,本實施例系統(tǒng)的任務執(zhí)行單元包括多個服務器和多個測試機,每個服務器與任意個測試機連接組成若干任務執(zhí)行子單元。測試機1、測試機2、測試機3共3個測試機與服務器I相連組成了第一任務執(zhí)行子單元301 ;測試機4、測試機5共2個測試機與服務器2連接組成了第二任務執(zhí)行子單元302。本實施例中的服務器與測試機之間采用JAVA多線程Sockect通信技術進行通信。本系統(tǒng)的多個任務執(zhí)行子單元可以有效地分擔測試任務,進一步提高系統(tǒng)的效率,減少執(zhí)行過程所花費的時間。
[0080]所述流程管理單元根據(jù)數(shù)據(jù)存儲單元中的數(shù)據(jù)建立測試套件與測試用例以及二者的對應關系、建立測試腳本與測試用例的對應關系;所述任務創(chuàng)建單元根據(jù)流程管理單元建立的內(nèi)容定義測試計劃、創(chuàng)建測試任務;所述任務執(zhí)行單元根據(jù)任務創(chuàng)建單元發(fā)送的信息并讀取數(shù)據(jù)存儲單元的數(shù)據(jù)執(zhí)行測試任務。概括的說,本實施例提供的基于業(yè)務流程控制的分布式應用程序測試系統(tǒng),包括一個測試項目管理服務器207,所述測試項目管理服務器207中包括流程管理單元202和任務創(chuàng)建單元203 ;測試項目管理服務器207與數(shù)據(jù)存儲單元201連接,讀取或存儲數(shù)據(jù);所述測試項目管理服務器207還與任務執(zhí)行單元204連接,發(fā)送或接受數(shù)據(jù);所述任務執(zhí)行單元204中包括一個服務器和多個測試機。
[0081]進一步的,在本實施例提供的系統(tǒng)中,多個測試機的操作系統(tǒng)不相同。測試機的操作系統(tǒng)可以是windows操作系統(tǒng)、iOS手持設備操作系統(tǒng)等;對應地,測試機的種類也不相同,測試機可以是固定終端、移動終端、手持設備等;針對不同的測試機環(huán)境,測試機上應用的自動化測試工具也不相同。本系統(tǒng)可以跨平臺測試多種系統(tǒng)的應用程序,使系統(tǒng)的擴展性增強。
[0082]進一步的,實施例提供的系統(tǒng)還包括:
[0083]數(shù)據(jù)管理單元205,用于維護測試數(shù)據(jù);所述數(shù)據(jù)管理單元對流程管理單元中建立的測試套件中的測試用例所用到的測試數(shù)據(jù)進行維護。本實施例采用測試管理工具Testlink的測試用例管理功能模塊實現(xiàn)數(shù)據(jù)管理單元,與流程管理單元202和任務創(chuàng)建單元203相同,本實施例將數(shù)據(jù)管理單元205集成于測試項目管理服務器207上。
[0084]進一步的,本實施例提供的系統(tǒng)還包括:
[0085]任務監(jiān)控單元206,用于反饋測試機執(zhí)行測試任務的進度與結果;所述任務監(jiān)控單元根據(jù)任務執(zhí)行單元產(chǎn)生的數(shù)據(jù)進行反饋。本實施例采用Java語言設計的軟件安裝在測試項目管理服務器和任務執(zhí)行單元上實現(xiàn)任務監(jiān)控單元的功能。
[0086]上述僅為本發(fā)明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調(diào)整和替代而不會脫離本發(fā)明的保護范圍。因此,雖然通過以上實施例對本發(fā)明進行了較為詳細的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權利要求范圍決定。
【權利要求】
1.一種基于業(yè)務流程控制的應用程序測試方法,其特征在于,所述方法包括: 定義測試用例:應用測試管理工具,根據(jù)被測應用程序的業(yè)務流程,為所述流程中的每個業(yè)務節(jié)點分別設計測試用例,并將所述測試用例存儲于數(shù)據(jù)庫中; 實現(xiàn)自動化測試腳本:針對所述測試用例,分別編寫與各個測試用例對應的自動化測試腳本,并將所述自動化測試腳本存儲于數(shù)據(jù)庫中; 建立對應關系:應用測試管理工具,在所述數(shù)據(jù)庫中建立所述自動化測試腳本與所述測試用例的對應關系,所述對應關系是一對一的映射關系; 定義測試流程:應用測試管理工具,按照被測應用程序的業(yè)務流程中業(yè)務節(jié)點的邏輯順序,將所述測試用例組合成一個或多個測試套件; 定義測試計劃:在測試管理工具中,選擇一個或多個所述測試套件,并選定一個帶有自動化測試工具并且處于空閑狀態(tài)的測試機作為執(zhí)行測試任務的對象;所述測試任務是測試套件中測試用例所對應的自動化測試腳本的組合; 執(zhí)行測試任務:被選定的測試機啟動自動化測試工具,加載數(shù)據(jù)庫中所有與測試套件包含的測試用例有對應關系的自動化測試腳本,并按照所述定義測試流程的步驟中定義的測試用例的組合順序執(zhí)行所述腳本。
2.根據(jù)權利要求1所述的方法,其特征在于,所述定義測試計劃的步驟是:在測試管理工具中,選擇一個或多個所述測試套件,并選定多個帶有自動化測試工具并且處于空閑狀態(tài)的測試機作為執(zhí)行任務的對象;并且由人為指定每個測試機所要執(zhí)行的測試任務。
3.根據(jù)權利要求1或2所述的方法,其特征在于,所述建立對應關系的步驟中,建立自動化測試腳本與測試用例的對應關系的方法是:在測試管理工具中,將每個測試用例的摘要字段輸入為與該測試用例對應的自動化腳本名稱。
4.根據(jù)權利要求1或2所述的方法,其特征在于,所述執(zhí)行測試任務的步驟還包括如下子步驟: 更新自動化測試腳本:在加載和執(zhí)行自動化測試腳本之前,在數(shù)據(jù)庫中利用版本管理工具更新自動化測試腳本的代碼。
5.根據(jù)權利要求1或2所述的方法,其特征在于,所述方法還包括如下步驟: 維護測試數(shù)據(jù):在所述定義測試計劃的步驟之后,應用測試管理工具對測試套件中的測試用例涉及的測試數(shù)據(jù)進行增加或替換。
6.根據(jù)權利要求1或2所述的方法,其特征在于,所述方法還包括如下步驟: 反饋任務進度:所述測試機在執(zhí)行測試任務的過程中每隔一段時間生成任務執(zhí)行進度?艮告。
7.根據(jù)權利要求1或2所述的方法,其特征在于,所述方法還包括如下步驟: 釋放測試機資源:測試機在測試任務將執(zhí)行完畢后,將所述測試機的資源釋放,使所述測試機重新處于空閑狀態(tài)。
8.根據(jù)權利要求1或2所述的方法,其特征在于,所述方法還包括如下步驟: 生成測試報告:測試機在測試任務將執(zhí)行完畢后,所述測試機生成測試報告并發(fā)送至指定的電子郵箱。
9.一種基于業(yè)務流程控制的應用程序測試系統(tǒng),其特征在于,所述系統(tǒng)包括: 數(shù)據(jù)存儲單元,用于建立數(shù)據(jù)庫;流程管理單元,用于建立測試套件與測試用例以及二者的對應關系,用于建立測試腳本與測試用例的對應關系; 任務創(chuàng)建單元,用于定義測試計劃、創(chuàng)建測試任務; 任務執(zhí)行單元,用于執(zhí)行測試任務; 所述流程管理單元根據(jù)數(shù)據(jù)存儲單元中的數(shù)據(jù)建立測試套件與測試用例以及二者的對應關系、建立測試腳本與測試用例的對應關系;所述任務創(chuàng)建單元根據(jù)流程管理單元建立的內(nèi)容定義測試計劃、創(chuàng)建測試任務;所述任務執(zhí)行單元根據(jù)任務創(chuàng)建單元發(fā)送的信息并讀取數(shù)據(jù)存儲單元的數(shù)據(jù)執(zhí)行測試任務。
10.根據(jù)權利要求9所述的系統(tǒng),其特征在于,所述系統(tǒng)的任務執(zhí)行單元包括至少一個服務器。
11.根據(jù)權利要求10所述的系統(tǒng),其特征在于,所述系統(tǒng)的任務執(zhí)行單元包括至少一個測試機。
12.根據(jù)權利要求11所述的系統(tǒng),其特征在于,當任務執(zhí)行單元包含一個服務器和至少一個測試機時,所述至少一個測試機與所述服務器相連。
13.根據(jù)權利要求10所述的系統(tǒng),其特征在于,當任務執(zhí)行單元包含多個服務器和多個測試機,每個服務器與任意個測試機連接組成若干任務執(zhí)行子單元。
14.根據(jù)權利要求11或1 2或13所述的系統(tǒng),其特征在于,所述多個測試機的操作系統(tǒng)不相同。
15.根據(jù)權利要求9-13任意一項所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 數(shù)據(jù)管理單元,用于維護測試數(shù)據(jù);所述數(shù)據(jù)管理單元對流程管理單元中建立的測試套件中的測試用例所用到的測試數(shù)據(jù)進行維護。
16.根據(jù)權利要求9-13任意一項所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 任務監(jiān)控單元,用于反饋測試機執(zhí)行測試任務的進度與結果;所述任務監(jiān)控單元根據(jù)任務執(zhí)行單元產(chǎn)生的數(shù)據(jù)進行反饋。
【文檔編號】G06F11/36GK103530231SQ201310475965
【公開日】2014年1月22日 申請日期:2013年10月12日 優(yōu)先權日:2013年10月12日
【發(fā)明者】譚鵬飛 申請人:北京京東尚科信息技術有限公司