一種用于應用程序的測試方法及裝置的制造方法
【技術領域】
[0001]本發明涉及軟件工程技術領域,尤其涉及一種用于應用程序的測試方法及裝置。
【背景技術】
[0002]隨著科學技術的發展,智能終端的種類越來越多,現在人們可以通過各種類型的智能終端,享受隨著科技發展帶來的舒適生活。例如,智能手機、平板電腦等智能終端已經成為人們生活中一個重要的組成部分,人們可以使用智能手機、平板電腦等智能終端聽音樂、看電影、玩游戲、網上沖浪等等,以減輕現代快節奏生活所帶來的壓力。
[0003]智能終端,具有獨立的操作系統,支持用戶自行安裝第三方服務商提供的各種類型的APP (Applicat1n,應用程序),例如:游戲類APP、視頻類APP、音樂類APP、購物類APP、安全類APP、拍照類APP、炒股類APP、社交類APP、團購類APP、點餐類APP、支付類APP,等等,從而滿足了人們日常生活中的各種需求。
[0004]在APP開發過程中,需要進行大量的軟件測試工作。軟件測試是使用人工操作或者軟件自動運行的方式來檢驗APP是否滿足規定的需求或弄清預期結果與實際結果之間的差別的過程。軟件測試是幫助識別開發完成(中間或最終的版本)的軟件(整體或部分)的正確度、完全度和質量的過程,是SQA (software quality assurance,軟件質量保證)的重要子域。
[0005]現如今,很多APP都需要智能終端上的硬件(例如:傳感器)的配合,來實現一些特定的功能。例如:一些社交APP需要在加速度傳感器的配合下,實現“搖一搖”功能;一些賽車游戲APP需要陀螺儀的配合,實現“賽車轉彎”的功能;一些購物或支付APP需要攝像頭的配合,實現“掃碼支付”的功能;一些導航APP需要氣壓傳感器的配合,實現高度信息的獲取;等等。而針對這些特定功能的測試,單純依靠測試軟件難以實現,一般需要測試人員模擬相關場景進行親身操作,例如,在測試“搖一搖”功能時,需要測試人員搖動移動終端,以觸發加速度傳感器;在測試“掃碼支付功”能時,需要測試人員操作攝像頭掃描支付碼(可以是條形碼或二維碼),這不利于自動化測試的要求,導致測試效率較低,這已成為當前亟待解決的問題。
【發明內容】
[0006]鑒于上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的用于應用程序的測試方法及裝置。
[0007]本發明的一個方面,提供了一種用于應用程序的測試方法,包括:
[0008]觸發待測試應用程序調用一預設應用程序接口 API函數;其中,所述待測試應用程序安裝在所述移動終端的系統上,所述預設API函數用于調用所述移動終端內的一預設硬件,以實現所述待測試應用程序中的一預設功能;
[0009]攔截所述預設API函數的返回值;
[0010]對所述返回值進行修改;
[0011]將修改后的返回值發送給所述待測試應用程序,以使所述待測試應用程序基于所述修改后的返回值實現所述預設功能,從而對所述預設功能進行測試;
[0012]記錄對所述預設功能進行測試的測試結果。
[0013]優選地,所述觸發待測試應用程序調用一預設應用程序接口 API函數之前,還包括:
[0014]接收一預設終端發出的廣播消息;
[0015]從所述廣播消息中提取一預設請求,其中,所述預設請求用于請求對所述預設功能進行測試;
[0016]響應所述預設請求,執行所述觸發待測試應用程序調用一預設應用程序接口 API函數。
[0017]優選地,所述觸發待測試應用程序調用一預設應用程序接口 API函數之前,還包括:
[0018]在所述移動終端的系統上安裝所述待測試應用程序。
[0019]優選地,所述觸發待測試應用程序調用一預設應用程序接口 API函數,包括:
[0020]對所述待測試應用程序的用戶界面UI上的一預設控件進行操作,從而觸發待測試應用程序調用所述預設API函數。
[0021]優選地,所述攔截所述預設API函數的返回值,包括:
[0022]通過鉤子Η00Κ函數,攔截所述預設API函數的返回值。
[0023]優選地,所述對所述預設API函數的返回值進行修改,包括:
[0024]從所述預設請求中,提取所述預設硬件的設置參數;
[0025]基于所述設置參數,修改所述返回值。
[0026]優選地,所述記錄對所述預設功能進行測試的測試結果,包括:
[0027]記錄所述待測試應用程序實現所述預設功能后的相關數據;和/或
[0028]記錄所述待測試應用程序實現所述預設功能后的屏幕截圖。
[0029]優選地,所述記錄對所述預設功能進行測試的測試結果之后,還包括:
[0030]將所述測試結果發送給所述預設終端。
[0031]本發明的另一個方面,提供一種用于應用程序的測試裝置,其特征在于,包括:
[0032]觸發單元,用于觸發待測試應用程序調用一預設應用程序接口 API函數;其中,所述待測試應用程序安裝在所述移動終端的系統上,所述預設API函數用于調用所述移動終端內的一預設硬件,以實現所述待測試應用程序中的一預設功能;
[0033]攔截單元,用于攔截所述預設API函數的返回值;
[0034]修改單元,用于對所述返回值進行修改;
[0035]第一發送單元,用于將修改后的返回值發送給所述待測試應用程序,以使所述待測試應用程序基于所述修改后的返回值實現所述預設功能,從而對所述預設功能進行測試;
[0036]記錄單元,用于記錄對所述預設功能進行測試的測試結果。
[0037]優選地,所述用于應用程序的測試裝置,還包括:
[0038]接收單元,用于所述觸發待測試應用程序調用一預設應用程序接口 API函數之前,接收一預設終端發出的廣播消息;
[0039]提取單元,用于從所述廣播消息中提取一預設請求,其中,所述預設請求用于請求對所述預設功能進行測試;
[0040]響應單元,用于響應所述預設請求,執行所述觸發待測試應用程序調用一預設應用程序接口 API函數。
[0041]優選地,所述用于應用程序的測試裝置,還包括:
[0042]安裝單元,用于所述觸發待測試應用程序調用一預設應用程序接口 API函數之前,在所述移動終端的系統上安裝所述待測試應用程序。
[0043]優選地,所述觸發單元,具體用于:
[0044]對所述待測試應用程序的用戶界面UI上的一預設控件進行操作,從而觸發待測試應用程序調用所述預設API函數。
[0045]優選地,所述攔截單元,具體用于:
[0046]通過鉤子Η00Κ函數,攔截所述預設API函數的返回值。
[0047]優選地,所述修改單元,具體用于:
[0048]從所述預設請求中,提取所述預設硬件的設置參數;基于所述設置參數,修改所述返回值。
[0049]優選地,所述記錄單元,具體用于:
[0050]記錄所述待測試應用程序實現所述預設功能后的相關數據;和/或
[0051]記錄所述待測試應用程序實現所述預設功能后的屏幕截圖。
[0052]優選地,所述用于應用程序的測試裝置,還包括:
[0053]第二發送單元,用于所述記錄對所述預設功能進行測試的測試結果之后,將所述測試結果發送給所述預設終端。
[0054]本申請實施例中提供的一個或多個技術方案,至少具有如下技術效果或優點:
[0055]根據本發明的一種用于應用程序的測試方法,包括:觸發待測試應用程序調用一預設應用程序接口 API函數;其中,待測試應用程序安裝在移動終端的系統上,預設API函數用于調用移動終端內的一預設硬件,以實現待測試應用程序中的一預設功能;攔截預設API函數的返回值;對返回值進行修改;將修改后的返回值發送給待測試應用程序,以使待測試應用程序基于修改后的返回值實現預設功能,從而對預設功能進行測試;記錄對預設功能進行測試的測試結果。本發明通過攔截預設API函數的返回值,并對該返回值進行修改,來模擬不同的測試場景,再將修改后的返回值發送給待測試應用程序,從而使待測試應用程序獲得了預設硬件的配合,以實現預設的功能,最終實現了對待測試應用程序的預設功能進行自動化測試的技術效果,從而提高了測試效率。
[0056]上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發明的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本發明的【具體實施方式】。
【附圖說明】
[0057]通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優選實施方式的目的,而并不認為是對本發明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0058]圖1示出了根據本發明一個實施例的自動化軟件測試系統的架構圖;
[0059]圖2示出了根據本發明一個實施例的一種用于應用程序的測試方法的流程圖;
[0060]圖3示出了根據本發明一個實施例的一種用于應用程序的測試裝置的結構圖。
【具體實施方式】
[0061]本發明實施例提供了一種用于應用程序的測試方法及裝置,用以解決現有技術中,無法對應用程序中需要硬件配合的功能進行自動化測試的技術問題。
[0062]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的