一種應用測試方法和裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及計算機技術領域,尤其涉及一種應用測試方法和裝置。
【背景技術】
[0002]在對被測應用進行測試任務過程中,經常會遇到應用卡、慢的情形,應用測試的一個目標就是要定位這些問題的原因,比如是由被測應用的哪一些執(zhí)行函數(shù)占用CPU時間過長導致產生問題。現(xiàn)有技術中只能由測試人員觀察被測應用的執(zhí)行函數(shù)的CPU占用時間,若發(fā)現(xiàn)某執(zhí)行函數(shù)的CPU的占用時間異常則將其視為性能疑點執(zhí)行函數(shù),實際測試執(zhí)行過程中會耗費測試人員的大量時間精力,并且實際命中率不夠理想。
【發(fā)明內容】
[0003]本發(fā)明實施例所要解決的技術問題在于,提供一種應用測試方法和裝置,可提高發(fā)現(xiàn)性能疑點執(zhí)行函數(shù)的效率和命中率。
[0004]為了解決上述技術問題,本發(fā)明實施例提供了一種應用測試方法,包括:
[0005]分別獲取目標版本的被測應用和參考版本的被測應用運行指定測試用例的函數(shù)執(zhí)行耗時信息,所述函數(shù)執(zhí)行耗時信息包括所述對應版本的被測應用中的多個執(zhí)行函數(shù)在運行指定測試用例過程中的執(zhí)行時間;
[0006]通過比較目標版本對應的函數(shù)執(zhí)行耗時信息和參考版本對應的函數(shù)執(zhí)行耗時信息,獲取目標版本對應的函數(shù)執(zhí)行耗時信息中各個執(zhí)行函數(shù)的執(zhí)行時間與于在參考版本對應的函數(shù)執(zhí)行耗時信息中對應執(zhí)行函數(shù)的執(zhí)行時間的時間差值;
[0007]根據所述時間差值,獲取所述目標版本的被測應用中的第一執(zhí)行函數(shù)集合;
[0008]獲取被測應用從參考版本至目標版本之間的執(zhí)行函數(shù)變更記錄;
[0009]根據所述執(zhí)行函數(shù)變更記錄,從所述第一執(zhí)行函數(shù)集合中確定性能疑點執(zhí)行函數(shù)。
[0010]相應地,本發(fā)明實施例還提供了一種應用測試裝置,包括:
[0011]執(zhí)行耗時獲取模塊,用于分別獲取目標版本的被測應用和參考版本的被測應用運行指定測試用例的函數(shù)執(zhí)行耗時信息,所述函數(shù)執(zhí)行耗時信息包括所述對應版本的被測應用中的多個執(zhí)行函數(shù)在運行指定測試用例過程中的執(zhí)行時間;
[0012]執(zhí)行耗時比較模塊,用于通過比較目標版本對應的函數(shù)執(zhí)行耗時信息和參考版本對應的函數(shù)執(zhí)行耗時信息,獲取目標版本對應的函數(shù)執(zhí)行耗時信息中各個執(zhí)行函數(shù)的執(zhí)行時間與于在參考版本對應的函數(shù)執(zhí)行耗時信息中對應執(zhí)行函數(shù)的執(zhí)行時間的時間差值;
[0013]函數(shù)集合獲取模塊,用于根據所述時間差值,獲取所述目標版本的被測應用中的第一執(zhí)行函數(shù)集合;
[0014]變更記錄獲取模塊,用于獲取被測應用從參考版本至目標版本之間的執(zhí)行函數(shù)變更記錄;
[0015]疑點函數(shù)確定模塊,用于根據所述執(zhí)行函數(shù)變更記錄,從所述第一執(zhí)行函數(shù)集合中確定性能疑點執(zhí)行函數(shù)。
[0016]實施本發(fā)明實施例,具有如下有益效果:
[0017]本發(fā)明實施例根據被測應用從參考版本至目標版本之間的執(zhí)行函數(shù)變更記錄,從目標版本各個執(zhí)行函數(shù)的執(zhí)行時間與參考版本對應執(zhí)行函數(shù)的執(zhí)行時間的時間差值有異常的執(zhí)行函數(shù)中確定性能疑點執(zhí)行函數(shù),實現(xiàn)了被測應用中執(zhí)行函數(shù)CPU占用時間異常的準確檢測,提高了發(fā)現(xiàn)性能疑點執(zhí)行函數(shù)的效率和命中率。
【附圖說明】
[0018]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0019]圖1是本發(fā)明實施例提供的一種應用測試方法的流程示意圖;
[0020]圖2是本發(fā)明另一實施例提供的一種應用測試方法的流程示意圖;
[0021]圖3是本發(fā)明又一實施例提供的一種應用測試方法的流程示意圖;
[0022]圖4是本發(fā)明實施例提供的一種應用測試裝置的結構示意圖;
[0023]圖5是本發(fā)明實施例中圖4所示的執(zhí)行耗時比較模塊的結構示意圖。
【具體實施方式】
[0024]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0025]本發(fā)明提及的應用測試方法的應用場景可以包括:某應用軟件版本更新后,針對更新版本后應用軟件程序代碼中執(zhí)行函數(shù)的CPU占用時長進行性能測試。上述應用軟件可以包括Android系統(tǒng)應用軟件、1S系統(tǒng)應用軟件、塞班系統(tǒng)應用軟件或者Windows系統(tǒng)應用軟件等。
[0026]圖1是本發(fā)明實施例提供的一種應用測試方法的流程示意圖,所述應用測試方法可以包括以下步驟:
[0027]S101,分別獲取目標版本的被測應用和參考版本的被測應用運行指定測試用例的函數(shù)執(zhí)行耗時信息。
[0028]具體的,所述函數(shù)執(zhí)行耗時信息包括所述對應版本的被測應用中的多個執(zhí)行函數(shù)在運行指定測試用例過程中的執(zhí)行時間。上述指定測試用例可以是預設的為完成目標版本被測應用性能測試而編制的一組測試輸入、執(zhí)行條件以及預期結果。
[0029]可選的,獲取所述目標版本的被測應用運行指定測試用例的運行追蹤文件,如Trace文件,所述目標版本的被測應用運行指定測試用例的運行追蹤文件包括目標版本的被測應用運行指定測試用例的函數(shù)執(zhí)行耗時信息。相應的,獲取所述參考版本的被測應用運行指定測試用例的運行追蹤文件,所述參考版本的被測應用運行指定測試用例的運行追蹤文件包括參考版本的被測應用運行指定測試用例的函數(shù)執(zhí)行耗時信息??蛇x的,可以通過調試橋從命令行錄制上述運行追蹤文件,例如,在Android系統(tǒng)中,可以通過ADB (Android Debug Bridge)從命令行直接錄入Trace文件。
[0030]S102,通過比較目標版本對應的函數(shù)執(zhí)行耗時信息和參考版本對應的函數(shù)執(zhí)行耗時信息,獲取目標版本對應的函數(shù)執(zhí)行耗時信息中各個執(zhí)行函數(shù)的執(zhí)行時間與于在參考版本對應的函數(shù)執(zhí)行耗時信息中對應執(zhí)行函數(shù)的執(zhí)行時間的時間差值。
[0031]本步驟中,通過比較步驟SlOl中獲取的目標版本的被測應用中的多個執(zhí)行函數(shù)在運行指定測試用例過程中的執(zhí)行時間和參考版本的被測應用中的多個執(zhí)行函數(shù)在運行指定測試用例過程中的執(zhí)行時間,進一步獲取目標版本對應的函數(shù)執(zhí)行耗時信息中各個執(zhí)行函數(shù)的執(zhí)行時間與于在參考版本對應的函數(shù)執(zhí)行耗時信息中對應執(zhí)行函數(shù)的執(zhí)行時間的時間差值。在一種可選的實施方式中,本步驟的解析過程具體可包括如下步驟11)和12):
[0032]11)、根據執(zhí)行函數(shù)的包名,從目標版本對應的函數(shù)執(zhí)行耗時信息中篩選出所述被測應用的自身執(zhí)行函數(shù)的執(zhí)行時間。
[0033]具體的,上述運行追蹤文件包括所述被測應用的自身執(zhí)行函數(shù)的執(zhí)行時間和系統(tǒng)執(zhí)行函數(shù)的執(zhí)行時間,根據執(zhí)行函數(shù)的包名,將所述被測應用的自身執(zhí)行函數(shù)和系統(tǒng)執(zhí)行函數(shù)區(qū)分開,并將被測應用的自身執(zhí)行函數(shù)的執(zhí)行時間從目標版本對應的函數(shù)執(zhí)行耗時信息中提取出來。例如,包名為“com/google”或“android/view”的執(zhí)行函數(shù)為系統(tǒng)執(zhí)行函數(shù),包名為“com/qzone”或“com/tencent”的執(zhí)行函數(shù)為某一被測應用的自身執(zhí)行函數(shù),可以提取包名為“ com/qzone ”或“ com/tencent ”執(zhí)行函數(shù)的執(zhí)行時間。
[0034]12)、獲取目標版本對應的函數(shù)執(zhí)行耗時信息中各個自身執(zhí)行函數(shù)的執(zhí)行時間與于在參考版本對應的函數(shù)執(zhí)行耗時信息中對應執(zhí)行函數(shù)的執(zhí)行時間的時間差值。
[0035]具體的,分別獲取目標版本對應的函數(shù)執(zhí)行耗時信息中自身執(zhí)行函數(shù)在運行指定測試用例過程中的執(zhí)行時間和參考版本對應的函數(shù)執(zhí)行耗時信息中與上述自身執(zhí)行函數(shù)相同包名的執(zhí)行函數(shù)在運行指定測試用例過程中的執(zhí)行時間,然后計算兩者的差值。例如,目標版本對應的函數(shù)執(zhí)行耗時信息中包名為“com/qzone”的自身執(zhí)行函數(shù)在運行指定用例過程中的執(zhí)行時間為458000微秒,參考版本對應的函數(shù)執(zhí)行耗時信息中包名為“ com/qzone”的自身執(zhí)行函數(shù)的執(zhí)行時間為450000微秒,得到二者的差值為8000微秒。
[0036]S103,根據所述時間差值,獲取所述目標版本的被測應用中的第一執(zhí)行函數(shù)集合。
[0037]具體的,可以將步驟S102中獲取的所述時間差值中滿足預設條件的時間差值對應的目標版本的被測應用中的自身執(zhí)行函數(shù)確定為第一執(zhí)行函