專利名稱:一種實現(xiàn)軟件自動測試的方法及裝置的制作方法
技術領域:
本發(fā)明涉及計算機應用技術,尤其涉及實現(xiàn)軟件自動測試的方法及裝置。
背景技術:
計算機技術的飛速發(fā)展,使得軟件產品在人們生活中已不可或缺。隨著軟件產品廣泛地使用在人們工作和生活中,使得人們對軟件產品質量的要求亦不斷提高。作為保證軟件產品質量的措施之一,軟件測試也越來越顯示出它的巨大優(yōu)勢。然而,隨著軟件設計規(guī)模的加大以及軟件產品復雜度的提升,使得軟件的自動化測試變得愈來愈重要。目前,軟件自動測試技術的發(fā)展,使得軟件自動測試工具逐漸向多樣化和專業(yè)化的方向發(fā)展。
軟件自動測試有一個顯而易見的優(yōu)勢是它能夠提高測試效率,這是手工測試無法企及的。當然,它的優(yōu)勢并不止于這一點,還包括能夠跨越語言障礙,擺脫時間限制,進行回歸測試等,能夠保證測試過程對軟件測試的一致性和準確性,并能夠實現(xiàn)手工測試所無法做到的測試,如壓力測試(即對軟件在各種壓力狀態(tài)下的測試)以及并發(fā)測試等。但目前軟件自動測試方法也存在很多局限性,例如,I)無法進行一些特殊的測試項目,例如軟件使用性能測試,操作系統(tǒng)或網絡項目測試等;2)不能對程序中意想不到的意外事件進行測試;3)自動化測試會受到具體項目資源的限制。綜上可以看出,軟件自動測試的優(yōu)勢很強,能在繁瑣重復性的回歸測試中極大地減少人力、物力消耗,提高軟件測試的效率。但因其目前尚存在一些局限性而使得軟件測試效率提高的極為有限,還不能充分發(fā)揮自動化測試的全部優(yōu)勢,因此亟待改進。
發(fā)明內容
本發(fā)明所要解決的技術問題是提供一種實現(xiàn)軟件自動測試的方法及裝置,能夠進一步提高軟件測試的效率。為了解決上述技術問題,本發(fā)明提供了一種實現(xiàn)軟件自動測試的方法,涉及測試工具,該方法包括設置被測模塊的輸入和輸出規(guī)則;在測試工具上根據(jù)設置的輸入和輸出規(guī)則編輯或導入測試腳本,設定測試用例及其參數(shù);啟動測試工具運行,通過測試工具執(zhí)行測試用例對被測模塊進行測試。進一步地,在測試工具上根據(jù)設置的輸入和輸出規(guī)則編輯或導入測試腳本,設定測試用例及其參數(shù),具體包括在測試工具上按照輸入和輸出規(guī)則編輯測試腳本,或者通過測試工具導入按照輸入和輸出規(guī)則編輯的測試腳本;設定一個或多個測試用例,針對每一測試用例設定執(zhí)行的次數(shù)、執(zhí)行的時間間隔以及兩個測試用例之間執(zhí)行的時間間隔中的一種或多種參數(shù)。進一步地,通過測試工具執(zhí)行測試用例對被測模塊進行測試,包括以下測試中的一種或多種對被測模塊進行正常功能測試;對被測模塊進行異常處理的測試,包括被測模塊接收其它模塊輸出的非正常輸入、符合被測模塊輸入規(guī)則的邊界或界外輸入以及不符合被測模塊輸入規(guī)則的輸入中的一種或多種異常處理的測試;對被測模塊處于壓力情況下的測試,包括軟件執(zhí)行各種操作或運行在各階段下被測模塊對CPU、內存或虛擬內存以及句柄的占用情況,根據(jù)分析監(jiān)測結果數(shù)據(jù)統(tǒng)計出被測模塊運行中的情況。進一步地,在測試工具上設定測試用例及其參數(shù)的同時,還設定系統(tǒng)資源監(jiān)控的參數(shù),包括占用CPU、內存或虛擬內存以及句柄中的一種或多種參數(shù);
通過測試工具執(zhí)行測試用例對被測模塊進行測試,還包括對被測模塊進行測試過程中監(jiān)測系統(tǒng)的資源,包括軟件執(zhí)行各種操作或運行在各階段下被測模塊對CPU、內存或虛擬內存以及句柄的占用情況,根據(jù)分析監(jiān)測結果數(shù)據(jù)統(tǒng)計出被測模塊運行中的情況。進一步地,該方法還包括待測試結束后獲取測試結果,驗證被測模塊的正確性,分析被測模塊和/或軟件的性能,具體包括對獲取的測試結果進行分析,包括對被測模塊處理的正確性驗證和對被測模塊和/或軟件性能監(jiān)測數(shù)據(jù)的分析,并通過表格或圖形的形式展示分析結果。為了解決上述技術問題,本發(fā)明提供了一種實現(xiàn)軟件自動測試的裝置,包括依次連接的輸入輸出規(guī)則設置模塊、腳本編輯/導入模塊、測試用例設定模塊、測試執(zhí)行模塊以及測試結果分析模塊,其中輸入輸出規(guī)則設置模塊,用于設置被測模塊的輸入和輸出規(guī)則;腳本編輯/導入模塊,用于根據(jù)設置的被測模塊的輸入輸出規(guī)則編輯或導入測試腳本;測試用例設定模塊,用于根據(jù)測試腳本設定測試用例及其參數(shù);測試執(zhí)行模塊,用于通過執(zhí)行測試用例對被測模塊進行測試;測試結果分析模塊,用于待測試結束后獲取測試結果,驗證被測模塊運行的正確性,分析被測模塊和/或軟件的性能。進一步地,測試執(zhí)行模塊除了通過正常測試單元對被測模塊進行正常功能測試外,還通過異常測試單元對被測模塊進行異常處理的測試,或通過壓力測試單元對被測模塊處于壓力情況下的測試,或通過資源監(jiān)測單元在對被測模塊進行測試過程中監(jiān)測系統(tǒng)的資源。進一步地,異常測試單元對被測模塊進行異常處理的測試,包括被測模塊接收其它模塊輸出的非正常輸入、符合被測模塊輸入規(guī)則的邊界或界外輸入以及不符合被測模塊輸入規(guī)則的輸入中的一種或多種異常處理的測試。進一步地,壓力測試單元對被測模塊處于壓力情況下的測試,包括軟件執(zhí)行各種操作或運行在各階段下被測模塊對CPU、內存或虛擬內存以及句柄的占用情況,根據(jù)分析監(jiān)測結果數(shù)據(jù)統(tǒng)計出被測模塊運行中的情況。
進一步地,資源監(jiān)測單元在對被測模塊進行測試過程中監(jiān)測系統(tǒng)的資源,包括軟件執(zhí)行各種操作或運行在各階段下被測模塊對CPU、內存或虛擬內存以及句柄的占用情況,根據(jù)分析監(jiān)測結果數(shù)據(jù)統(tǒng)計出被測模塊運行中的情況。本發(fā)明通過對測試工具統(tǒng)一約定被測軟件模塊間的數(shù)據(jù)傳輸格式,在測試工具上編輯測試腳本自動生成測試用例,并設定測試用例的次數(shù),提供對被測軟件單模塊在各種情況下進行自動測試,包括正常、異常、壓力情況下的測試,并在測試過程中提供對系統(tǒng)資 源的監(jiān)控。同時,本發(fā)明的測試工具可以獲取被測單模塊在執(zhí)行測試用例后執(zhí)行的結果,對結果進行解析,通過判斷執(zhí)行結果的正誤來驗證被測單模塊的正確性。本發(fā)明較大程度地提高了軟件單模塊測試的工作效率,并可以全面分析軟件運行情況。
圖I為本發(fā)明的實現(xiàn)軟件自動測試的方法實施例的流程圖;圖2為本發(fā)明的實現(xiàn)軟件自動測試的裝置實施例的結構框圖。
具體實施例方式以下結合附圖和優(yōu)選實施例對本發(fā)明的技術方案進行詳細地闡述。應該理解,以下列舉的實施例僅用于說明和解釋本發(fā)明,而不構成對本發(fā)明技術方案的限制。本發(fā)明的實現(xiàn)軟件自動測試的方法實施例,其流程如圖I所示,包括如下步驟110 :設置被測模塊的輸入和輸出規(guī)則;為了實現(xiàn)對特定單模塊的測試,通過這樣的設置,可使得測試工具能夠通過模擬被測單模塊的輸入,以被測模塊支持的通信方式與其它模塊進行通信,從而盡量模擬被測模塊在軟件系統(tǒng)中所處的環(huán)境;并通過解析被測單模塊的輸出來判斷被測單模塊的正確性。120 :編輯或導入測試腳本,設定測試用例及其參數(shù),設定系統(tǒng)資源監(jiān)控的參數(shù);通過在本發(fā)明的測試工具上按照指定格式(輸入和輸出規(guī)則)編輯測試腳本,或者通過該測試工具導入按照指定格式外編輯的測試腳本,并設定測試用例及其執(zhí)行的次數(shù)、執(zhí)行的時間間隔以及兩個測試用例之間執(zhí)行的時間間隔等;同時還可設定測試過程中進行系統(tǒng)資源監(jiān)控的參數(shù)。130 :啟動測試工具運行,執(zhí)行測試用例;測試腳本完成編輯及測試用例及其參數(shù)的設定后,啟動測試工具,根據(jù)腳本設置的測試用例開始進行測試。140 :除了對被測模塊進行正常功能測試外,還對被測模塊進行如下的一種或多種測試1401 :異常測試,主要包括I)軟件異常情況下被測模塊接收的其它模塊的非正常輸入,即其它模塊發(fā)生故障時返回給該被測模塊的消息,通知該被測模塊其它模塊有異常發(fā)生;測試該被測模塊是否能正常處理該非正常輸入,執(zhí)行指定的錯誤處理。該非正常輸入的格式應符合被測模塊輸入規(guī)則。
2)符合被測模塊輸入規(guī)則但無法處理的邊界或界外輸入,測試被測模塊是否能正確執(zhí)行報錯處理。譬如,被測模塊可以處理1-30范圍內的數(shù)字,如果輸入是31的話,就在處被測模塊無法處理的范圍內,但它是符合輸入規(guī)則的,由此測試被測模塊的報錯機制是否正常。3)不符合被測模塊輸入規(guī)則的輸入,例如測試被測模塊是否能正常識別格式錯誤。比如模塊能夠處理格式為{2,3}的輸入,而對于這個輸入{2. 3,則是不符合輸入規(guī)則的,則測試被測模塊是否能識別該不可接受的輸入。1402 :壓力測試,主要包括I)測試被測模塊由多線程并發(fā)造成的壓力下是否能夠正常運行 當多線程并發(fā)的向被測模塊輸入數(shù)據(jù),會給軟件的整體運行造成壓力。此時要測試在大壓力情況下被測模塊是否依然能夠運行正常。2)測試被測模塊在系統(tǒng)壓力下是否能夠正常運行譬如模擬出系統(tǒng)CPU使用率為99%,或者內存耗盡或接近耗盡的情況,判斷該情況下被測模塊是否依然能夠正常運行。1403 :系統(tǒng)資源監(jiān)測,主要包括I)當軟件執(zhí)行各種操作時,對系統(tǒng)的CPU的總占用率,對被測模塊的CPU占用率,對內存和虛擬內存的占用,以及對句柄的占用;2)軟件運行在各階段(啟動,處理不同輸入,退出等),對被測模塊的CPU占用率,對內存或虛擬內存的占用,以及對句柄的占用3)對這些數(shù)據(jù)進行分析,可以統(tǒng)計出被測模塊運行過程的情況,例如,當被測模塊運行過程中,監(jiān)視到內存占用不斷增長,說明該被測模塊存在內存泄露的非正常情況,需要查找問題所在并給予解決。在測試過程中,既可單獨監(jiān)測系統(tǒng)資源,亦可對被測模塊對應的進程占用資源進行監(jiān)測,記錄監(jiān)測數(shù)據(jù),以便于后面對被測模塊的性能分析。本發(fā)明提供測試過程中對系統(tǒng)資源進行監(jiān)測的功能,根據(jù)編輯腳本設定自動監(jiān)測操作系統(tǒng)中各項資源的使用情況,被測模塊對應進程的系統(tǒng)資源占用情況,通過可用數(shù)據(jù)或者圖表的形式來展示,以全面地掌握被測模塊運行的性能情況。150:獲取測試結果,驗證被測模塊運行的正確性,分析其性能。待軟件整個測試過程完成后,對測試結果進行整理,包括對被測模塊處理的正確性驗證和對被測模塊性能監(jiān)測數(shù)據(jù)的整理。由于被測模塊的性能監(jiān)測直接得到的是數(shù)據(jù)結果,故可以通過表格或圖形的形式來展示。本發(fā)明針對上述方法實施例,相應地還提供了實現(xiàn)軟件自動測試的裝置實施例,其結構如圖2所示,包括依次連接的輸入輸出規(guī)則設置模塊、腳本編輯/導入模塊、測試用例設定模塊、測試執(zhí)行模塊以及測試結果分析模塊,其中輸入輸出規(guī)則設置模塊,用于設置被測模塊的輸入和輸出規(guī)則;腳本編輯/導入模塊,用于根據(jù)設置的被測模塊的輸入輸出規(guī)則編輯或導入測試腳本;測試用例設定模塊,用于根據(jù)測試腳本設定測試用例及其參數(shù);
測試執(zhí)行模塊,用于通過執(zhí)行測試用例對被測模塊進行測試;測試結果分析模塊,用于待測試結束后獲取測試結果,驗證被測模塊運行的正確性,分析被測模塊和/或軟件的性能。在上述裝置實施例中,測試執(zhí)行模塊除了通過正常測試單元對被測模塊進行正常功能測試外,還通過異常測試單元對被測模塊進行異常處理的測試,或通過壓力測試單元對被測模塊處于壓力情況下的測試,或通過資源監(jiān)測單元在對被測模塊進行測試過程中監(jiān)測系統(tǒng)的資源。在上述裝置實施例中,測試執(zhí)行模塊通過異常測試單元對被測模塊進行異常輸入處理的測試,包括被測 模塊接收其它模塊輸出的非正常輸入、符合被測模塊輸入規(guī)則的邊界或界外輸入以及不符合被測模塊輸入規(guī)則的輸入中的一種或多種異常處理的測試。在上述裝置實施例中,測試執(zhí)行模塊通過壓力測試單元對被測模塊處于壓力情況下的測試,包括測試被測模塊分別在由多線程并發(fā)造成的壓力下和在系統(tǒng)壓力下是否能夠正常運行。在上述裝置實施例中,測試執(zhí)行模塊通過資源監(jiān)測單元在對被測模塊進行測試過程中監(jiān)測系統(tǒng)的資源,包括軟件執(zhí)行各種操作或運行在各階段下被測模塊對CPU、內存或虛擬內存以及句柄的占用情況,根據(jù)分析監(jiān)測結果數(shù)據(jù)統(tǒng)計出被測模塊運行中的情況。在上述裝置實施例中,測試結果分析模塊待測試過程完成后,對獲取的測試結果進行分析,包括對被測模塊處理的正確性驗證和對被測模塊和/或軟件性能監(jiān)測數(shù)據(jù)的分析,并通過表格或圖形的形式展示分析結果。對于本領域的專業(yè)人員來說,在了解了本發(fā)明內容和原理后,能夠在不背離本發(fā)明的原理和范圍的情況下,根據(jù)本發(fā)明的方法進行形式和細節(jié)上的各種修正和改變,但是這些基于本發(fā)明的修正和改變仍在本發(fā)明的權利要求保護范圍之內。
權利要求
1.一種實現(xiàn)軟件自動測試的方法,涉及測試工具,該方法包括 設置被測模塊的輸入和輸出規(guī)則; 在測試工具上根據(jù)設置的所述輸入和輸出規(guī)則編輯或導入測試腳本,設定測試用例及其參數(shù); 啟動所述測試工具運行,通過所述測試工具執(zhí)行所述測試用例對被測模塊進行測試。
2.按照權利要求I所述的方法,其特征在于,在測試工具上根據(jù)設置的所述輸入和輸出規(guī)則編輯或導入測試腳本,設定測試用例及其參數(shù),具體包括 在所述測試工具上按照所述輸入和輸出規(guī)則編輯測試腳本,或者通過所述測試工具導入按照所述輸入和輸出規(guī)則編輯的測試腳本; 設定ー個或多個測試用例,針對每ー測試用例設定執(zhí)行的次數(shù)、執(zhí)行的時間間隔以及兩個測試用例之間執(zhí)行的時間間隔中的ー種或多種參數(shù)。
3.按照權利要求2所述的方法,其特征在干,通過所述測試工具執(zhí)行所述測試用例對被測模塊進行測試,包括以下測試中的ー種或多種 對被測模塊進行正常功能測試; 對被測模塊進行異常處理的測試,包括被測模塊接收其它模塊輸出的非正常輸入、符合被測模塊輸入規(guī)則的邊界或界外輸入以及不符合被測模塊輸入規(guī)則的輸入中的ー種或多種異常處理的測試; 對被測模塊處于壓カ情況下的測試,包括軟件執(zhí)行各種操作或運行在各階段下被測模塊對CPU、內存或虛擬內存以及句柄的占用情況,根據(jù)分析監(jiān)測結果數(shù)據(jù)統(tǒng)計出被測模塊運行中的情況。
4.按照權利要求3所述的方法,其特征在干,在測試工具上設定測試用例及其參數(shù)的同時,還設定系統(tǒng)資源監(jiān)控的參數(shù),包括占用所述CPU、內存或虛擬內存以及句柄中的ー種或多種參數(shù); 通過所述測試工具執(zhí)行所述測試用例對被測模塊進行測試,還包括對被測模塊進行測試過程中監(jiān)測系統(tǒng)的資源,包括軟件執(zhí)行各種操作或運行在各階段下被測模塊對CPU、內存或虛擬內存以及句柄的占用情況,根據(jù)分析監(jiān)測結果數(shù)據(jù)統(tǒng)計出被測模塊運行中的情況。
5.按照權利要求I至4任一項所述的方法,其特征在于,還包括 待測試結束后獲取測試結果,驗證所述被測模塊的正確性,分析所述被測模塊和/或所述軟件的性能,具體包括對獲取的測試結果進行分析,包括對被測模塊處理的正確性驗證和對被測模塊和/或軟件性能監(jiān)測數(shù)據(jù)的分析,并通過表格或圖形的形式展示分析結果。
6.一種實現(xiàn)軟件自動測試的裝置,其特征在于,包括依次連接的輸入輸出規(guī)則設置模塊、腳本編輯/導入模塊、測試用例設定模塊、測試執(zhí)行模塊以及測試結果分析模塊,其中 輸入輸出規(guī)則設置模塊,用于設置被測模塊的輸入和輸出規(guī)則; 腳本編輯/導入模塊,用于根據(jù)設置的所述被測模塊的輸入輸出規(guī)則編輯或導入測試腳本; 測試用例設定模塊,用于根據(jù)所述測試腳本設定測試用例及其參數(shù); 測試執(zhí)行模塊,用于通過執(zhí)行測試用例對被測模塊進行測試;測試結果分析模塊,用于待測試結束后獲取測試結果,驗證被測模塊運行的正確性,分析被測模塊和/或軟件的性能。
7.按照權利要求6所述的裝置,其特征在干, 所述測試執(zhí)行模塊除了通過正常測試單元對所述被測模塊進行正常功能測試外,還通過異常測試單元對所述被測模塊進行異常處理的測試,或通過壓カ測試單元對被測模塊處于壓力情況下的測試,或通過資源監(jiān)測單元在對被測模塊進行測試過程中監(jiān)測系統(tǒng)的資源。
8.按照權利要求7所述的裝置,其特征在干, 所述異常測試單元對所述被測模塊進行異常處理的測試,包括被測模塊接收其它模塊輸出的非正常輸入、符合被測模塊輸入規(guī)則的邊界或界外輸入以及不符合被測模塊輸入規(guī)則的輸入中的一種或多種異常處理的測試。
9.按照權利要求7所述的裝置,其特征在干, 所述壓カ測試單元對被測模塊處于壓カ情況下的測試,包括軟件執(zhí)行各種操作或運行在各階段下被測模塊對CPU、內存或虛擬內存以及句柄的占用情況,根據(jù)分析監(jiān)測結果數(shù)據(jù)統(tǒng)計出被測模塊運行中的情況。
10.按照權利要求7所述的裝置,其特征在干, 所述資源監(jiān)測單元在對被測模塊進行測試過程中監(jiān)測系統(tǒng)的資源,包括軟件執(zhí)行各種操作或運行在各階段下被測模塊對CPU、內存或虛擬內存以及句柄的占用情況,根據(jù)分析監(jiān)測結果數(shù)據(jù)統(tǒng)計出被測模塊運行中的情況。
全文摘要
本發(fā)明披露了一種實現(xiàn)軟件自動測試的方法及裝置,其中方法包括設置被測模塊的輸入和輸出規(guī)則;在測試工具上根據(jù)設置的輸入和輸出規(guī)則編輯或導入測試腳本,設定測試用例及其參數(shù);啟動測試工具運行,通過測試工具執(zhí)行測試用例對被測模塊進行測試。本發(fā)明提供對被測軟件單模塊在各種情況下進行自動測試,包括正常、異常、壓力情況下的測試,并在測試過程中提供對系統(tǒng)資源的監(jiān)控;同時可以獲取被測單模塊在執(zhí)行測試用例后執(zhí)行的結果,對結果進行解析,通過判斷執(zhí)行結果的正誤來驗證被測單模塊的正確性。本發(fā)明較大程度地提高了軟件單模塊測試的工作效率。
文檔編號G06F11/36GK102662828SQ201210067518
公開日2012年9月12日 申請日期2012年3月14日 優(yōu)先權日2012年3月14日
發(fā)明者戴文軍, 王倩 申請人:浪潮(北京)電子信息產業(yè)有限公司